Chinaunix首页 | 论坛 | 博客
  • 博客访问: 819052
  • 博文数量: 756
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 4980
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 14:40
文章分类

全部博文(756)

文章存档

2011年(1)

2008年(755)

我的朋友

分类:

2008-10-13 16:09:37

UPPC系统NAT穿透技术

作者出处不详

1.介绍

由于安全方面的考虑和IPv4地址数量的限制,现实中的Internet中存在大量NAT和防火墙设备。这些设备的存在严重阻碍了点对点多媒体通讯。UPPC采用类似于TURN (Traversal Using Relay NAT)的架构实现NAT/FW穿透,具有智能高效和穿透能力强,可穿透任意层NAT,无须改动网关设备配置等优点。UPPC的信令和媒体传输都是基于UDP协议,所以下文不讨论TCP的穿透NAT防火墙技术,下面先介绍防火墙和NAT对于多媒体通讯阻碍的基本情况。

2.防火墙NAT介绍

防火墙主要用于限制特定类型或特定方向通讯,从而保护内网不受来自外部攻击。主要限制包括:

1.只允许TCPUDP通讯

2.禁用部分端口或只开放部分端口

由于TCP协议的高延迟特性,交互式多媒体通讯基本都采用基于UDP的媒体传输协议。对于只允许TCP的防火墙,UPPCNAT/FW方案也无法穿透。

NAT则有四类,下面简单描述一个场景,然后说明四种NAT的原理。假设一个网络如下:

1A机器在内网

2NAT

3BC机器在公网

 

1Full Cone:当AB通讯过后,NATA打开一个公网端口,C随后就可以通过访问这个公网端口与A通讯。

2Restricted ConeC无法通过A访问BNAT打开的公网端口与A通讯,NAT只允许B通过这个端口与A通讯,NAT限制外网机器的IP地址

3Port Restricted ConeB只能使用当初A访问B时的端口与A通讯,NAT限制外网机器的IPPort对。

4Symmetric:以上三种通称ConeNAT,特征就是NAT打开的外网端口和内网机器IPPort是一一对应的,只要是从同一个内部地址和端口出来的包,NAT都将它转换成同一个外部地址和端口。但是Symmetric不同,具体表现在:只要是从同一个内部地址和端口出来,且到同一个外部目标地址和端口,则NAT也都将它转换成同一个外部地址和端口。但如果从同一个内部地址和端口出来,是到另一个外部目标地址和端口,则NAT将使用不同的映射,转换成不同的端口。Symmetric的公网地址取决于完整通讯的五元组。

目前NAT/FW穿透方案如ALG, STUN等主要用于Cone型通讯,对于Symmetric无能为力,UPPC采用类似与TURN的方案,当通讯双方都在不同Symmetric NAT后时,利用一个公网上的Relay Service (具体就是UC Distribution Service)转发,其他情况使用反向连接,也就是发送和接受使用同一个端口解决穿透问题。

 

3 UPPC防火墙原理

3.1 信令

UPPC主要组件有UCSNSuper Node,UCDS (Distribution Service), Web Phone客户端构成。其中Web Phone的信令和媒体流都使用Symmetric Connection与外界通讯,Web Phone启动后首先尝试登录UCSNUCSN通过比较收到的地址与信令中的地址确定Web Phone是否在NAT后面,如果是的话,通知该客户端启动Keep Alive任务,通过周期性的主动Ping UCSN的信令端口,从而保持同一端口打开,当呼叫接入时,UCSN通过Keep Alive的信道将信令发给NAT后的客户端。

 

 

 

3.2 媒体

Web Phone A需要与外界Web Phone B建立媒体连接时,UCSN根据双方的NAT情况决定其通讯方式:

A.当A, B都在公网时,双方直接建立媒体通讯。

B.当A, B有一方在NAT后时,UCSNNAT后的一方主动向公网上的一方发起反向连接,然后公网上的B在通过这个通道与A通讯。

C. A, B在同一个NAT后面是,双方直接建立媒体通讯

D. A, B在不同的NAT后时,UCSN通知UCDS打开若干个端口(一个媒体类型一个通道),然后告诉A, B直接与UCDS的指定端口通讯,UCDS将从不同地址收到的媒体包互相转发,完成媒体中继。
--------------------next---------------------

阅读(336) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~