基于ICE方式的综合性NAT穿越解决方案设计与实现_第1页
基于ICE方式的综合性NAT穿越解决方案设计与实现_第2页
基于ICE方式的综合性NAT穿越解决方案设计与实现_第3页
基于ICE方式的综合性NAT穿越解决方案设计与实现_第4页
基于ICE方式的综合性NAT穿越解决方案设计与实现_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第27卷第5期2006年5月小型微型计算机系统MINI-MICROSYSTEMSVol127No.5May2006基于ICE方式的综合性SIPNAT解决方案设计与实现刘杨1,2,姜琳颖3,张色珍1,2,王平1,21(2(3(中国科学院研究生院,北京100039)中国科学院沈阳计算技术研究所,辽宁沈阳110004)东北大学软件学院,辽宁沈阳110004)E2mail:liuyang@摘要:参考ICE、STUN协议、TURN协议,设计并实现了一个基于ICE方式的综合性SIPNAT解决方案:应用STUN协议和TURN协议,客户端通过ICE方式选择最优传输路径,实现负载均衡.本文通过设计一个实例详细说明整个实现流程.关键词:ICE;TURN;STUN;SIP;NAT穿越中图分类号:TP393文献标识码:A文章编:1000(MethodologyforNATTraversalfortheSIPLIUYang1(2(3(1,2321,2,JIANGLin2ying,2,GingGraduateSchoolofofBina)ShenyangmpineseAcademyofSciences,Shenyang110004,China)SoftwareUiversity,Shenyang110004,China)Abstract:ThisarticlerealizesasolutionforSIPNATbasedonICE,STUNandTURN.TheclientusesICEtoselectthebestrouterandcontrolthebalanceofloading.ThisarticlealsodescribesthedetailedICEalgorithmanddesignsanexampletoshowhowICEworks.Keywords:ICE;TURN;STUN;SIP;NAT1多媒体数据的NAT穿越问题由于Internet的迅猛发展,公网IPv4地址变得非常紧缺.出于管理和网络安全方面的考虑,许多企业和机构将内部的主机组织起来形成局域网,这些主机通过设在网络边界的网关与外部网络通信,网关采用NAT(网络地址转换器)技术,其本质是一个将私网地址与公网地址相映射的转换表.SIP(SessionInitiationProtocol)是IETF定义的用于创建、修改、终止IP会话的信令协议.它和其他IETF媒体传输协议如:RTP、RTSP、MEGACO、SDP等,一起协作完成整个媒体会话过程.SIP不是具体某项服务的载体,它只是为会话参与方提供参数协商支持,即会话参与方可通过SIP消息体传递各自在会话中所需参数并进行协商.SIP消息体(MessageBody)是用SDP协议描述的,它主要包括会话媒体参数,如地址、端口和所使用的CODEC等.为了传输媒体流时产生的时延最小,SIP被设计成提供端到端的通讯,也就是说通过SIP协商后,最终需要NAT后的UA直接给另一个UA发送媒体流,这就产生了所谓的NAT穿越问题.因为如果不通过任何手段,那SIP协商的结果只是UA的私网地址,该地址在公网是不可路由的.要NAT设备对所有数据包进行监控和解析,性能、可扩展性和可实施性较差;MIDCOM协议性能较好但实现复杂,需要对现有NAT设备进行升级,投入较大,实现周期较长;FullProxy方式通过代理同时转发信令和媒体流,性能等均较好但是转发服务器负载较大,容易出现丢包或延迟的现象;STUN的优点是实现简单,支持多级NAT,不增加服务器任何负担,性能好,但是不支持TCP,无法在对称NAT下工作,不支持不同地址域之间(如IPv4与IPv6之间)的通信;TURN协议可以解决所有NAT问题,可扩展性好但是TURN服务器负载较重,容易出现丢包或延迟.每种方案都有其各自的优缺点存在.经过仔细研究和分析,作者设计并实现了一个基于ICE方式的综合性SIPNAT解决方案.该方案实现简单不需要对现有NAT和代理设备做任何升级,可以在所有网络拓扑结构和各种NAT类型下很好工作,能够自动选择最优的媒体传输路径以实现高可靠、低延迟,同时支持Ipv4和Ipv6网络之间的通信.3设计思想及相关技术本方案主要应用STUN协议和TURN协议,客户端通过ICE方式选择最优传输路径,实现负载均衡.STUN和TURN实现的思路相似,都是通过某种机制预先得到公网可路由的地址,直接将它放在SDP报文中,这样报文负载中的内容在经过NAT时就无需被修改了,按普通NAT流程转换报文头的IP地址即可.2解决方案针对NAT问题目前有多种解决方案:ALG(应用层网关协议)实现简单但需要对现有NAT设备进行升级同时需收稿日期:2004212227作者简介:刘杨,女,1980年生,硕士研究生,研究方向为网络通信;姜琳颖,女,1972年生,副教授,研究方向为网络通信与嵌入式系统;张色珍,女,1981年生,硕士研究生,研究方向为网络通信.王平,女,1978年生,硕士研究生,主要研究方向为网络通信.©1994-2010ChinaAcademicJournalElectronicPublishingHouse.Allrightsreserved.8263.1SIP[5]及SDP[6]相关属性简介小型微型计算机系统2006年・From:这个域在所有请求和响应中都必须存在.它包含一个可选的请求发起者的显示名和地址.SIP响应的From域只是请求的拷贝.・To:这个域在所有请求和响应中都必须存在,表示一个请求的预期目标.响应消息的To域也是请求的拷贝.・Via:用于记录一个请求的路径,以便中间的SIP服务器能沿着同一条路径转发应答.・c=:SDP中用于描述可接收媒体流数据的地址.・m=:SDP中用于描述可接收媒体流数据的端口及支持的媒体数据类型.[3]3.2STUN(SimpleTraversalofUDP)STUN是一个简单的C2S通讯协议,客户端一般在局网中运行,可以嵌入终端系统的应用程序中.地方运行,是无状态的,用于接收STUN响应.STUN(,长度和事务ID)MA2ADDRESS存在于应答中,,即NAT转换后的地址和端口.STUN能够判断NAT和防火墙的类型并返回NAT转换后的公网地址,其基本实现过程为客户端发起STUN请求,服务器端将经NAT转换后的源地址拷贝到应答的MAPPED2ADDRESS属性中传回客户端.客户端通过三次测试来判断NAT类型.3.3TURN(TraversalUsingRelayNAT)[4]TURN也是一种简单的客户机2服务器应用层协议,TURN客户机首先查找TURN服务器的地址,当找到服务址和端口,SDP的接受端可以用这个地址来替换m和c中的地址.4系统设计及实现系统主要分两部分,客户端和服务器.服务器端采用NAT过滤机制,综合STUNServer与TURNServer,客户端包括STUNclient与STUNServer、TURNclient以及ICE控制模块,嵌入SIPUA中运行.拓扑结构如图1所示.图1系统拓扑结构图下面通过一个例子具体说明本解决方案的优势及具体实现过程.在如图2所示的网络中A与B之间准备进行媒体通话.A的局网地址为::1010;B的局网地址为:23766;NAT出口地址为:;北京的STUNTURNServer地址为:0;上海的STUNTURNServer地址为:4.器地址后,就向服务器发送一个分配请求消息,假设分配被服务器授权并没有被欺诈,则服务器为该客户机分配一个公网上的IP地址和端口(这个端口将被打开,并在有效时间内处于被监听状态),并将这个传输地址放入到分配响应的allocated属性域中,然后返回给客户端.同时一直在监听这个端口.假设在固定的时间内没有通信或预分配的请求到达,则释放这个端口,其他设备可以重新使用该端口.3.4ICE[1]ICE全称InteractiveConnectivityEstablishment,即交互式连通方案.它不是一种新的协议,而是一种综合利用现有的协议,使它们分别在最适合的条件下工作从而实现整个传输过程的最优化选择的方案.其具体工作方式为支持ICE的UA列出所有可以到达它的地址,这些地址可能包括本地地址,STUN来源地址,TURN分配的地址,甚至VPN地址.本地UA会将这些地址传递给另一个UA,另一个UA对所有列出的地址进行测试,找出优先级最高的可以连通的地址作为默认的媒体发送到地址,这个地址就是可连通的延迟最小地址.ICE不需要对服务器进行任何升级,本方案在客户端嵌入ICE模块,将ICE自身的消息映射到SIP消息中去,同时还对消息的SDP属性进行简单扩展22在SDP的media块内定义一个新的属性"alt"来支持ICE.该属性包括候选的IP地图2基于ICE方式的综合性SIPNAT解决方案实例A在北京的某SIP服务器注册而B在上海的某SIP服务器中注册,这两个服务器都支持STUN和TURN.A与B在同一个局网中但他们互相之间并不知道对方所处的位置及网络情况.他们的出口NAT采用安全性最高的对称型NAT.这是一个较极端的假设,在客户端不支持ICE的情况下,因为STUN无法解决对称NAT的穿越问题,所以媒体流只能由TURN服务器来转发(如路径1所示),这可以实现媒体连接但可能出现较大的延迟.实际上A与B在同一个局网中,是可以不经过TURN而直接进行媒体连接的,即通过路径2,但是目前包括Proxy、STUN、TURN在内的多种解决方案都无法判断并完成这个最优的选择.而本方案在客户端加入了ICE模块,可以直接实现路径2的传输.为了方便说明整个过程,我们先假设A与B都在北京的©1994-2010ChinaAcademicJournalElectronicPublishingHouse.Allrightsreserved.5期刘杨等:基于ICE方式的综合性SIPNAT解决方案设计与实现827Sip服务器上注册,即他们使用同一STUNTURNserver.UAA首先进行初始过程,启动STUN和TURN的客户端开始收集所有可能被连通的地址,本例中这些地址包括本地地址::1010;STUN来源地址::9988;TURN分配的地址:0:8076.之后UAA会在这个本地地址上启动STUN服务器来进行监听.对收集到的地址ICE会按照来源不同赋予不同的优先数,优先数在0~1之务器转发STUN绑定请求,作为从本地地址发送STUN绑定的一种补充.使用滑动窗口协议控制时间,在超时之前如果得到STUN响应,就说明该地址可以用来发送媒体流,如果它的优先级大于默认地址的优先级就用该地址替换默认的媒体发送到地址.流程如图3所示.应答者B可以接受或者拒绝连接.若拒绝,rejection会中止整个ICE过程.若接受,则发送accept消息,如下:o=bob2890844730289084871INIP4s=v=0c=INIP40t=00m=audio8078RTPAVP0a=alt:41.0:peeras88jl23766a=alt:50.8:peer1as88kla=alt:6.4:peer2as88ll192..alt:70.4:l.0.5556间,是按照如果采用了这个地址进行传输需要通过的中间媒介数的多少定义的,中间媒介越多,优先数越小.规定IPv6地址具有最高优先数然后是本地IPv4地址〉STUN来源地址〉TURN来源地址〉VPN地址.消息没有alt属,A.那么A会进行与B相同的检测地址可,确定一个优先级最高的地址作为默认的发送到地址,此时双方的媒体连接协商成功可以发送媒体流.对于本例来说这个媒体地址都是对方的局网地址.这样就实现了路径的最优化选择.5结束语本文提出的基于ICE方式的SIPNAT解决方案是一个综合性解决方案,在对现有NAT设备不作任何改动的情况下以最有效的方式实现多媒体数据流对NAT的穿越.服务器部分的STUN和TURN可以解决各种类型的NAT问题,扩展性极好,支持多级NAT;而客户端应用ICE方式在进行负载均衡的同时能够最大限度的提供一种最优化的路径选择方案,从而实现最低延迟的通信效果.这种综合的解决方案最大优势是能够支持IPv4与IPv6网络之间的通讯,在IPv6网络正广泛部署的今天,它可以作为连接IPv4和IPv6的纽带,促进IPv4网络向IPv6网络转化,由于广泛的适应能力和对未来网络的支持,这种方案有广阔的应用前景.图3系统应答流程实例之后构建ICE的initiate消息,这里SDP的c和m被设置成默认地址,这个地址是一个一定可实现连通的转发服务器地址,本例中为TURN地址.将这个消息影射到SIP的INVITE消息中发送,UAA的INVITE消息中SDP属性构[2]References:造如下:o=alice28908447302890844731INIP4s=v=0c=INIP40t=00m=audio8076RTPAVP0a=alt:11.0:user9kksj==1010a=alt:20.5:user19kksk==9988a=alt:30.4:user29kksl==08076UAB在启动时就可以初始化客户端ICE,进行与A同样的地址收集、启动STUN服务以及优先数赋值过程.收到INVITE消息后,收到initiate消息后B会按优先级顺序向消息中的每一个候选地址发送STUN绑定请求来测试其连通性.这个请求包括USERNAME属性、PASSWORD属性以及MESSAGE2INTEGRITY属性.如果应答方有从TURN得到的地址,它可能会用TURNSEND原语通过该TURN服[1]RosenbergJ.Interactiveconnectivityestablishment(ICE):amethodologyfornetworkaddresstranslator(NAT)traversalformultimediasessionestablishmentprotocols[EBOL].,:..Internetdrafthttpwwwjdrosennetpapersdraft2ietf2mmusic2ice201.txt,February16,2004.[2]RosenbergJ.Examplesofnetworkaddresstra

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论