SIP应用层网关技术

最新更新时间:2012-05-16来源: 互联网关键字:SIP  应用层  网关技术 手机看文章 扫描二维码
随时随地手机看文章

引言

  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应用之间的关系。

SIP应用层网关的实现

  本节前面部分详细的介绍了SIP应用层网关实现的理论基础,本节介绍ALG的软件实现方式,软件开发平台是Windows2000,开发工具是Visua1C++ 6.0,采用的是OSIP协议栈,开发的语言主要是C。

  结构及工作流程

  这里ALG被分成两个部分:ALG主体部分和SIP URI信息管理系统部分,这两部分被设计成是两个相互独立的程序。ALG主体部分的功能是处理各种流向上的SIP消息、管理呼叫环境以及跨网络呼叫时,在通信双方之间进行RTP数据包的转发;SIP URI信息管理系统部分的功能是负责私网内部SIP URI及其绑定信息的管理和维护,该系统及其维护的数据库放置在私网内部的其它主机上运行。两部分之间通过UDP/TCP进行通信,这样可以减小来自外网上攻击的风险,从而提高数据信息的安全性。 由于ALG主体无法直接对SIPURI的数据信息进行访问,因此必须在这两部分之间提供访问的接口,“信息数据库接口”模块就是为 ALG访问SIP URI信息管理系统的接口。

  SIP应用层网关的主要工作由一个SIP消息的监听线程、一个与SIP URI信息管理系统进行通信的线程、一个SIP消息处理线程(包括对话的管理和维护)和数量不定的RTP数据包转发线程完成。RTP数据包转发线程能够根据需要而动态的生成和释放,因此数量不定。

  SIP应用层网关的基本工作流程如下:

  应用程序初始化完毕以后,启动SIP消息监听线程、URI信息数据库访问线程和SIP消息处理线程。SIP消息监听线程对ALG的所有SIP端口(包括私网和公网)进行监听,如果收到SIP消息,它把消息连同其源IP地址和端口以及消息本身的长度封装成一个简单的数据结构放入一个先入先出的队列(FIFO)当中,然后继续监听,它不对消息进行进一步的处理。

  一旦FIFO中有了SIP消息,SIP消息处理线程就被唤醒,并投入运行,它从FIFO中取走消息,然后开始对这个消息进行处理:首先它对消息进行解析以及例行的语法检查,然后根据SIP消息的源地址和目的地址将其分成四类:

  (1)内部消息,其源地址和目的地址都在私网内部。

  (2)对外消息,其源地址是私网地址,目的地址是公网地址。

  (3)对内消息,其源地址是公网地址,目的地址是ALG的公网地址。

  (4)外部消息,其源地址和目的地址都是公网地址。

  SIP消息被分成以上四类后,ALG对它们进行不同的处理。第(1)类消息称为“内部消息”,第(2)类和第(3)类消息统称为“跨网络消息”;第(4)类消息称为“外部消息”,它会被无条件丢弃,ALG不对其作进一步的处理。SIP消息处理线程在对“跨网络消息”消息进行处理的同时,对呼叫的上下文环境进行管理和维护,并在必要的时候,启动新的RTP数据包转发线程,使其完成对跨网络通信的RTP数据包的转发工作。

  基于SOCKET消息接收与应答功能模块

  由于UDP包的接收是异步的,ALG无法预测何时会有SIP消息到来,因此在SIP应用层网关的设计中,用单独的线程对SIP端口进行监听。由于SIP应用层网关处在两个网络的边界上,并在两网之间转发数据,因此ALG的SIP端口也相应的分为私网和公网两部分,在任何一边的网络上,都可以打开一个或者多个与套节字(SOCKET)相联系的SIP端口。并且每隔一定时间试图从所有监听的SIP端口相关联的SOCKET上读取数据,如果读到了数据,就对数据做简单的封装,然后把它放入应用层网关的SIP消息FIFO当中。

  信息数据库接口模块

  出于安全性的考虑,SIP URI信息管理系统从SIP应用层网关中分离出去,这个系统的功能并不复杂,一方面它接受来自ALG的访问;另一方面,它必须对自身的信息数据库进行维护。ALG本身必须通过信息数据库接口模块对其进行访问。

  ALG需要从SIP URI信息管理系统得到的信息有两类:一类是用户信息,包括用户名和密码;另一类是SIP URI绑定信息,这一类信息的交互是双向的,不同的REGISTER请求会要求ALG添加、修改、删除或者仅仅是获取SIP URI的绑定信息。本文用统一的数据结构来表示这两类信息,这样只需要一次访问就能够获取所需全部信息,可以缩短ALG处理SIP消息所需的时间。

  信息管理模块

  SIP应用层网关需要很多信息才能完成工作,有些信息是动态的,例如SIP URI的绑定信息,不同用户不同时间的绑定信息是不同的,因此只有在需要的时候应用层网关才从数据库中进行动态的访问;而另外一些信息则是相对稳定的,如ALG本身的域名、IP地址等等。这些信息很多,但并不复杂,大多是字符串、数值或者布尔型的变量,信息管理模块的功能就是维护和管理它们。

  “媒体会话”模块

  当SIP应用层网关为跨网络呼叫的终端之间建立起媒体会话(视频、音频)的连接后,双方之间主要的交互将是RTP数据流(媒体数据被打包成RTP数据包)的交互,“媒体会话”模块的功能主要就是在通信双方之间进行RTP数据包的转发工作,每一个RTP数据包转发器能够为多路RTP连接提供数据包转发服务。

  当ALG需要为一路RTP连接提供数据包转发服务时,它试图从转发器环境中得到一个空闲的RTP数据包转发器,如果环境中的转发器都已经被占用,环境会试图创建一个新的RTP数据包转发器,并把它加入到环境当中,并将它返回给ALG使用。另一方面,当一个转发器不再为任何RTP连接提供转发服务时,环境会把它删除,并释放相应的资源。

  “消息处理及对话维护”模块

  这是SIP应用层网关的核心模块,它的功能是对收到的SIP消息进行解析和处理,完成对SIP消息的代理,对跨网络呼叫的上下文环境进行维护以及在必要时启动对话的RTP代理。这些功能之间是相互关联的,统一由SIP消息处理及对话的维护线程完成。图2是SIP消息处理线程的工作流程图。

  本文小节

  SIP协议凭借其简单、易于扩展、便于实现等诸多优点越来越得到业界的青睐,越来越多的基于SIP协议的网络如VOIP、视频会议、智能家居系统被开发实现,本文实现的SIP应用层网关正是SIP网络对NAT/Firewall的穿越的关键技术,但这一方案仍存在着不足之处,由于SIP应用层网关必须对跨网络的所有SIP消息进行解析,导致这些消息须以明码的形式传输,降低了SIP应用的安全性,进一步研究表明:这要求我们对SIP协议进行适当扩展来实现信息的加密。

关键字:SIP  应用层  网关技术 编辑:神话 引用地址:SIP应用层网关技术

上一篇:无线宽带ADSL应用
下一篇:安奈特宽带小区网络解决方案

推荐阅读最新更新时间:2023-10-12 20:40

瑞萨电子开发用于汽车通信网关SoC的新技术
2月22日,半导体解决方案供应商瑞萨电子株式会社(Renesas Electronics Corporation)宣布开发出四种车载通信网关片上系统(SoC)器件技术,有望在定义汽车系统中的下一代电子/电气(E/E)架构方面发挥关键作用。 图片来源:瑞萨电子 用于汽车网关的SoC必须具备高性能以实现云服务等新应用(在非使用期间具有较低功耗),并需要提供快速CAN响应以支持即时启动。此外,这些SoC需要提供高能效的通信技术,使网络能够作为网关使用发热功率和安全技术来实现车外的安全通信。为满足这些要求,瑞萨电子开发出(1)可动态改变电路运行时序的架构,以匹配具有优化性能和功耗的车辆条件,(2)通过仅对基本程序进行分区和供
[汽车电子]
瑞萨电子开发用于汽车通信<font color='red'>网关</font>SoC的新<font color='red'>技术</font>
全球能源互联网关技术清单出炉 储能位列其中
中国储能网讯: 全球能源互联网发展合作组织22日在京发布《全球能源互联网发展战略白皮书》《跨国跨洲电网互联技术与展望》《全球能源互联网发展与展望(2017)》,勾画了未来几十年全球能源互联网的发展路径,首次明确提出一份相关关键技术清单。 全球能源互联网发展合作组织主席刘振亚表示,当前,构建全球能源互联网的资源、技术、经济、政治条件已具备,如资源上,全球清洁能源资源仅开发万分之五就可满足全球能源需求;技术上,特高压、智能电网等关键技术日趋成熟。 但在5大领域,仍有诸多技术难关有待攻克。《白皮书》明确提出,在特高压领域:主要攻克±1100千伏以上特高压直流输变电技术,加快设备研制和工程应用;突破特高压直流海底电
[新能源]
全数字式数控总线应用层通用化设计
0 引言   现场总线以其高速、实时、稳定、费用低廉等优点得到越来越广泛的应用,迅速发展成为工业控制网络中使用最广泛的通信网络。现场总线技术的迅速发展,引起了数控系统结构的改变,数控系统已从简单的运动轨迹控制器转变成贯穿数字化制造全过程的系统级平台,基于现场总线技术的数控系统已进入成熟阶段。同时,随着全数字伺服技术的发展,数字接口替代了传统模拟接口。开发基于现场总线技术及全数字伺服技术的全数字式数控系统是目前国际高档数控系统的发展趋势。然而。国际上存在多种现场总线协议标准。国际电工委员会(IEC)于2007年公布的IEC61158第4版包含了20种现场总线协议标准,其中lO种是工业以太网协议标准。未列入国际标准的现场总线协议更
[嵌入式]
基于LabVIEW的SIP系统仿真的设计与实现
将虚拟仪器的概念引入大亚湾核电站的SIP系统的仿真,利用计算机仿真技术参与其系统设计有助于缩短设计周期,降低设计费用和提高设计质量,基于这些优点利用LabVIEW进行了SIP系统的虚拟仿真设计,目前已经取得了预期的效果,主要以SIP系统的RCP10通道为例进行详细地仿真设计介绍。 过程仪表系统(法文简称SIP系统)作为核岛系统的一部分,其作用是接收来自现场过程测量仪表的模拟信号(包括压力、水位、流量、温度、转速等),然后根据设计要求对现场模拟信号进行处理,再送到相关系统和设备进行显示、记录和处理。从一定意义上讲,SIP系统在仪控系统中处于承上启下的地位。SIP系统的故障是隐蔽的,但是,SIP作为反应堆广义保护系统的一个重要组成
[测试测量]
基于LabVIEW的<font color='red'>SIP</font>系统仿真的设计与实现
环旭电子半年度净利同比下降29%,战略布局 SiP、服务器
     8月14日,环旭电子发布2018年半年报,公司 2018 年上半年实现营业收入 128.05 亿元,较 2017 年上半年 128.92 亿元下降 0.67%。其中,第二季度实现营业收入 65.79 亿元,较 2017 年第二季度 64.22 亿元同比增长 2.45%,环比 2018 年第一季度 62.26 亿元增长 5.67%。  2018 年上半年实现净利润 3.92 亿元,较 2017 年上半年 5.56 亿元下降 29.48%;扣非后净利润为 3.86 亿元,较 2017 年上半年 4.47 亿元下降 13.63%。 环旭电子表示,上半年营收与去年同期基本保持持平,主要原因是上半年是电子行业淡季,产能利用率偏低。
[手机便携]
HOLTEK推出内置Semtech LoRa®技术的智能火灾警报MCU SIP模块
Holtek是总部位于台湾的微控制器领导厂商,今日宣布与高性能模拟和混合信号半导体产品及先进算法领先供应商Semtech Corporation 合作,推出一款新的内置Semtech的LoRa®器件和无线射频技术(LoRa Technology) 并基于LoRaWAN™开放协议的智能火灾警报模块。 Holtek将在2017年10月12日至11月2日期间的Holtek新产品发表会中,展示其远距离烟雾探测报警SIP模块。此智能防火警报模块内置Semtech的LoRa® 技术和Holtek新推出的烟雾侦测MCU,包含报警器和主控制器两部分。主控制器以Holtek M0+ MCU监测器进行烟雾侦测并搭配LoRa®技术实现远距离通
[网络通信]
全球最小尺寸物联网WiFi SiP模组亮相CES
全球领先的物联网方案提供商江波龙科技2016年1月4日在CES上发布全球最小尺寸物联网WiFi SiP模组 LTP0201。LTP0201具备高集成度、超小尺寸以及超低功耗等优点,专为物联网设备和穿戴式产品设计,可以帮助它们实现与其他智能设备或者云端互联,从而实现物联网云数据分析和其他增值服务。 LTP0201尺寸仅6mmx 6mm,只有普通PCBA模组的1/10甚至更小;这款革命性的产品集成了单片机、内存、电源管理、WiFi和WiFi射频器件,可以为互连设备提供高性能、低成本、低功耗的方案。 LTP0201 SiP模组整合一个低功耗的32位MCU,片上SR
[网络通信]
全球最小尺寸物联网WiFi <font color='red'>SiP</font>模组亮相CES
应用层和后台分析便携式电子产品的节能技术
  便携式电子产品的节能技术基本上可以按照其执行方式分为应用层技术及后台技术两大类。应用层技术由应用程序本身来执行,以打印机为例,最后一份文件完成打印之后,打印机便会改用低功率模式。后台技术由工作系统、后台任务或硬件来执行,因此完全或几乎不受主要应用任务控制。外设活动监控电路便是一种后台技术,其特点是可将显示器背光系统或磁盘马达的电源切断。       应用层技术      看似简单的手持式遥控器其实设计很复杂,因为它的关闭模式并非真正关闭。事实上,遥控长期处于等待状态,以便用户可以随时、随手便按。任何按钮一经触动,遥控器便会从低功率的睡眠模式中唤醒,然后进入完全活跃模式。较为先进的电子产品可能会在开启及关闭之间添加多个不同的模式
[手机便携]
从<font color='red'>应用层</font>和后台分析便携式电子产品的节能<font color='red'>技术</font>
小广播
最新模拟电子文章
更多每日新闻
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved