您好,欢迎来电子发烧友网! ,新用户?[免费注册]

您的位置:电子发烧友网>电子百科>无线通信>无线局域网>

SIP应用层网关技术

2011年04月20日 11:37 www.elecfans.com 作者:电子发烧友 用户评论(0

  引言

  SIP (Session Initiation Protocol)称为会话初始协议[1][4],是一个与HTTP和SMTP类似的、基于文本的协议,SIP独立于传输层协议和其它会话控制协议,可以与其他协议(如RSVP,RTSP等)一起构建多媒体通信系统如智能家居网络视频会议[2]等。

  NAT/防火墙(FW)为私网提供统一的对外出口,从而隐藏内部网络的拓扑结构,提高了私网的安全性[3]。但这也给私网的远程控制应用带来很大的麻烦。对于NAT,其功能是在公网IP地址及端口和私网IP地址及端口间进行映射,工作在传输层,它只对TCP/UDP包头中的地址、端口进行修改,而SIP协议需要在信令消息中内嵌IP地址和端口号[5],这些地址、端口在应用层上才可见,因此NAT不会对其中的地址信息进行修改,导致信令消息中的IP地址和端口不能指向正确的地址,因而通信也不能正常进行;对于FW,对公网打开的端口通常是固定的(Fw不会在运行过程中动态的打开或者关闭这些端口),且数目有限。而基于SIP构建的私网的远程控制应用要求FW不但能够提供对信令协议的代理功能,而且要求FW能够在通信过程中动态的打开一些端口进行媒体流数据的交流,现有的FW难以满足这个要求。

  鉴于上述原因,本文提出了“SIP应用层网关”技术,并将其应用于网络通信中来建立相对合理、完善的SIP网络,以解决SIP私网远程控制中穿越NAT/FireWall的难题。

  SIP私网穿越NAT/防火墙方法分析

  由于所有NAT和Firewall都是对于TCP/IP层以下进行处理和过滤的,而SIP是应用层控制信令协议,SIP与下面的传输层和网络层协议无关。所以必须采用其他的途径来解决基于SIP的私网穿越NAT/防火墙这一问题,主要有以下不同的解决方案:1.UpnP(通用即插即用);2.TURN(Traversal Using Relay NAT);3.STUN(Simple Traversal of UDP Through network Address Translators);4.ALG(Application Layer Gateway,应用层网关)。

  其中前3种都是由SIP Client(包括UA和Proxy)通过某种手段或协议在INVITE之前获取自己的公网地址和端口。需要SIP Client提供额外支持,并且也不适应所有的NAT方式。ALG(Application Layer Gateway)[2]适应所有NAT方式,并不需要SIP Client做任何额外的支持。它对Application层的SIP信令进行处理和修改,从而做到透明转换地址。该思想的基本思路是通过在NAT/FW中加入协议认知(Protocol Awareness)能力,使NAT/FW能够在SIP信令消息通过时修改其内容中的地址信息,ALG修改SIP消息里面的SIP地址和端口,并为分配给呼叫双方的地址和端口进行绑定,这样,以后的媒体流数据能够通过NAT/FW指定的端口穿过。本文主要讨论的是基于SIP的应用层网关方法。

  SIP应用层网关原理分析

  “SIP应用层网关”是为解决基于SIP的私网控制应用穿越NAT/FW的问题,实现私网内的SIP用户代理与公网上的SIP用户代理之间的互连而提出的解决方案,从功能上来说,SIP应用层网关是一种为私网内的SIP终端提供连接到公网的代理功能的SIP设备或软件。下文中提及的“应用层网关”和ALG(Application Level Gateway)都是指SIP应用层网关。

  为了实现SIP应用层网关的功能,同时保持与已有SIP应用的兼容性,必须把ALG设计成一个SIP兼容的应用。但是对于私网上和公网上的SIP应用而言,ALG提供的功能并不完全相同:对于私网的SIP终端,SIP应用层网关的角色是一个SIP意义上的代理服务器(Proxy),它不但需要为通往公网上的呼叫提供代理,同时还需要为私网内部不同SIP终端之间的呼叫提供代理;另一方面ALG必须允许私网内部SIP终端进行注册,因为只有通过注册才能使SIP终端明白ALG是它们的代理服务器,因此,SIP应用层网关同时也是私网上的SIP注册服务器。而对于公网上的SIP终端而言,私网内部是不可见的,唯一可见的是处于公网上的SIP应用层网关,因此对它而言,ALG只是一个SIP终端,公网上的SIP设备就能够直接对它进行呼叫或者接收它的呼叫。

  综上所述,SIP应用层网关功能在私网和公网上是非对称的,可划分为:1.对内功能:SIP应用层网关是私网上的SIP注册服务器和代理服务器,同时,对于跨网呼叫的情况,SIP应用层网关除需为私网终端提供SIP消息的代理,还须提供媒体流数据的代理,这种媒体数据的代理功能对通信双方是透明的;对外功能:在公网上,SIP应用层网关作为一个普通的SIP终端而存在,它能够与公网上的其它SIP应用建立互连关系,并隐藏ALG与私网内部SIP应用之间的关系。

  

非常好我支持^.^

(2) 100%

不好我反对

(0) 0%

( 发表人:Spring )

      发表评论

      用户评论
      评价:好评中评差评

      发表评论,获取积分! 请遵守相关规定!