预览加载中,请您耐心等待几秒...
1/8
2/8
3/8
4/8
5/8
6/8
7/8
8/8

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

基于ICE方式SIP信令穿透SymmetricNAT技术研究 曾立吴平高万林武文娟 1(中国农业大学计算机科学与技术系,北京100083)2(中国人民大学信息学院,北京100872) 摘要 基于IP的语音、数据、视频等业务在NGN网络中所面临的一个实际困难就是如何有效地穿透各种NAT/FW的问题。对此,会话初始化协议SIP以往的解决方法有ALGs,STUN,TURN等方式。本文探讨了一种新的媒体会话信令穿透NAT/FW的解决方案—交互式连通建立方式(ICE)。它通过综合利用现有协议,以一种更有效的方式来组织会话建立过程,使之在不增加任何延迟同时比STUN等单一协议更具有健壮性、灵活性。本文详细介绍了ICE算法,并设计一个实例针对SIP信令协议穿透SymmetricNAT流程进行了描述,最后总结了ICE的优势及应用前景。 关键词 ICE;SymmetricNAT;STUN;TURN;SIP 1问题背景 多媒体会话信令协议是在准备建立媒体流传输的代理之间交换信息的协议,例如SIP、RTSP、H.323等。媒体流与信令流截然不同,它们所采用的网络通道也不一致。由于协议自身设计上的原因,使得媒体流无法直接穿透网络地址转换/防火墙(NAT/FW)。因为它们生存期的目标只是为了建立一个在信息中携带IP地址的分组流,这在遇到NAT/FW时会带来许多问题。而且这些协议的目标是通过建立P2P(PeertoPeer)媒体流以减小时延,而协议本身很多方面却与NAT存在兼容性问题,这也是穿透NAT/FW的困难所在。 而NAT仍是解决当前公用IP地址紧缺和网络安全问题的最有力手段,它主要有四种类型:完全圆锥型NAT(FullConeNAT),地址限制圆锥型NAT(AddressRestrictedConeNAT),端口限制圆锥型NAT(PortRestrictedConeNAT),对称型NAT(SymmetricNAT)。前三种NAT,映射与目的地址无关,只要源地址相同,映射就相同,而对称型NAT的映射则同时关联源地址和目的地址,所以穿透问题最为复杂。 不少方案已经被应用于解决穿透NAT问题,例如:ALGs(ApplicationLayerGateways)、MiddleboxControlProtocol、STUN(SimpleTraversalofUDPthroughNAT)、TURN(TraversalUsingRelayNAT)、RSIP(RealmSpecificIP)、symmetricRTP等。然而,当这些技术应用于不同的网络拓扑时都有着显著的利弊,以至于我们只能根据不同的接入方式来应用不同的方案,所以未能很好地解决All-NAT与Efficiency的问题,同时还会给系统引入了许多复杂性和脆弱性因素。所以我们目前需要一种综合的足够灵活的方法,使之能在各种情况下对NAT/FW的信令穿透问题提供最优解。事实上,ICE正是符合这样要求的一种良好的解决方案。 2ICE技术 2.1ICE简介 交互式连通建立方式ICE(InteractiveConnectivityEstablishment)并非一种新的协议,它不需要对STUN、TURN或RSIP进行扩展就可适用于各种NAT。ICE是通过综合运用上面某几种协议,使之在最适合的情况下工作,以弥补单独使用其中任何一种所带来的固有缺陷。对于SIP来说,ICE只需要定义一些SDP(SessionDescriptionProtocol)附加属性即可,对于别的多媒体信令协议也需要制定一些相应的机制来实现。本文仅就SIP问题展开讨论。 2.2多媒体信令 媒体流穿透NAT的过程是独立于某种具体的信令协议的。通信发生在两个客户端-会话发起者和会话响应者。初始化信息(InitiateMessage)包含了描述会话发起者媒体流的配置与特征,并经过信令调停者(也叫信令中继),最后到达会话响应者。假设会话响应者同意通信,接受信息(AcceptMessage)将产生并反馈至会话初始者,媒体流建立成功。此外,信令协议还对媒体流参数修改以及会话终止消息等提供支持。对于SIP,会话发起者即UAC(UserAgentClient),会话响应者即UAS(UserAgentServer),初始化消息对应SDP请求里面的INVITE,接受消息对应于SDP应答里面的200OK,终止消息对应于BYE。 2.3算法流程 2.3.1收集传输地址 会话发起者需要收集的对象包括本地传输地址(LocalTransportAddress)和来源传输地址(DerivedTransportAddress)。本地传输地址通常由主机上一个物理(或虚拟)接口绑定一个端口而获得。会话发起者还将访问提供UNSAF(Unilateralself-addres