财讯中国

SIP应用层网关技术

来源:网络 2022-02-02 12:00:03

引言

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

相关新闻

SIP应用层网关技术
2022-02-02 12:00:03
什么是系统仿真
2022-02-02 10:30:32
调速器原理
2022-02-02 10:30:26
做工精致易维修 三星Note3拆解图文评测
2022-02-02 10:30:21
三星:全球商用战略启动
2022-02-02 10:30:15
Xperia X10的拆解指南
2022-02-02 10:30:10
iPod Shuffle是怎么随机播放歌曲的
2022-02-02 10:30:04
iOS 15.4支持戴口罩解锁 实测仅支持iPhone 12/13!
2022-02-02 09:21:38
40年老牌中国电视企业赚翻了:净利润超150亿元
2022-02-02 09:21:33
iOS 15.4支持戴口罩解锁:苹果终于满足iPhone用户需求!
2022-02-02 09:21:27
iOS 15.4解锁第三方应用120Hz自适应高刷
2022-02-02 09:21:21
联想拯救者Y7000P 2022款散热升级
2022-02-02 09:21:15
BT携手诺基亚在英国进行Open RAN技术试验
2022-02-02 09:21:09
宁德时代:预计2021年盈利140亿至165亿元
2022-02-02 09:21:02
基于单片机设计的脉搏测量仪
2022-02-02 09:00:12
MAX706S在DSP系统中的应用
2022-02-02 09:00:06
雷士吴长江“三逐”皆因“名、利、命”所致
2022-02-02 09:00:01
《双人成行》将被改编成影视作品
2022-02-02 07:40:06
三星Galaxy S22配件曝光 设计有新意
2022-02-02 07:40:00
2021全球半导体营收突破5000亿美元
2022-02-02 07:39:54
500Hz刷新率显示屏来了!京东方再推新品
2022-02-02 07:39:47
微软收购动视暴雪 将面临反垄断调查
2022-02-02 07:39:41
性能彪悍的轻薄二合一本上架:绝密神技、顶配13499元!
2022-02-02 07:39:35
第十代iPad配置全曝光 搭载A14处理器 今年发布
2022-02-02 07:39:28
织带卷对卷直喷数码印花
2022-02-02 07:39:22
格力要在质量下狠功夫!董明珠:低价赢市场是对中国制造不负责
2022-02-02 07:39:16
不止K50系列 Redmi全新千元神机入网
2022-02-02 07:39:09
投资150亿元!武汉华星光电模组厂房及综合动力站封顶!
2022-02-02 07:39:03
配置相当凶残!各大PC品牌顶配游戏本盘点
2022-02-02 07:38:57
理光植物基墨水用于包装和装饰应用
2022-02-02 07:38:50
佳能平板打印机FLOW技术提高生产率20%
2022-02-02 07:38:44
Netflix正式列出了对谷歌最新Pixels的HDR支持
2022-02-02 07:38:38
曝任天堂将在2月21日公布另一款《星之卡比》新作
2022-02-02 07:38:32
卢伟冰已经用上Redmi K50 新品发布会年后开
2022-02-02 07:38:25
标配两款62Wh电池 这款13英寸笔记本在水下都能用
2022-02-02 07:38:19
XP被抛弃 WinRAR 6.10正式支持Windows 11新版右键菜单
2022-02-02 07:38:12
新研究发现完全接种疫苗的患者COVID-19的症状要轻得多
2022-02-02 07:38:10
小尺寸笔记本最佳伴侣 红米27英寸显示器只卖799
2022-02-02 07:38:03
重回入门级市场:AMD速龙 4150GE实物跑分曝光
2022-02-02 07:38:02
全球显示器市场及工业显示器市场分析
2022-02-02 07:30:25
万用表使用方法图解
2022-02-02 07:30:20
谷歌手机G1最让人不可接受的十大缺点
2022-02-02 07:30:15
7大点看清聚合物锂电池和锂电池区别
2022-02-02 07:30:09
联想手机X2拆机图解评测
2022-02-02 07:30:04
Nvidia的云游戏服务登陆LG电视
2022-02-02 06:10:19
三星新品发布会PTT泄露 S22影像性能迎来重大更新
2022-02-02 06:10:13
富士胶片球制造结构进一步加快喷墨业务增长
2022-02-02 06:10:06
康丽数码有望在2026年营业收入达到10亿美元
2022-02-02 06:10:00
《使命召唤》新作有11家工作室参与
2022-02-02 06:09:53
2022年最具性价比 小熊意式半自动咖啡机269元
2022-02-02 06:09:47
电影《神秘海域》新预告公布 2月18日北美上映
2022-02-02 06:09:41
次世代来袭?《赛博朋克2077》PS5版封面在PSN曝光
2022-02-02 06:09:34
预算3000元也可以买到合适的笔记本
2022-02-02 06:09:28
理光正式推出工业喷墨RICOH TH6310F
2022-02-02 06:09:21
AirPods Max最贵保护套 采用环保材料 售价6200元
2022-02-02 06:09:14
质量炸裂!10款好评如潮的游戏本盘点
2022-02-02 06:09:05
自动驾驶汽车行业正在放弃 "自动驾驶 "一词,将其留给特斯拉
2022-02-02 06:08:58
还得是奎爷!《战神4》steam周销三连冠
2022-02-02 06:08:51
小米新机跑分曝光 定位低端 配置不高
2022-02-02 06:08:43
Redmi K50 Pro或将于三月发布 搭载天玑9000处理器
2022-02-02 06:08:36
小米称霸印度手机市场 海外版新机9日发布
2022-02-02 06:08:28
苹果Apple Watch竟能成功运行33年前的游戏
2022-02-02 06:08:21
【手慢无】航嘉GX680P特价促销 259元拿下
2022-02-02 06:08:12
惠普为工业打印机客户推出混合现实服务
2022-02-02 06:08:03
2021年笔记本电脑的出货量持续上升 Windows 11推动增长
2022-02-02 06:08:01
压敏电阻符号怎么表示 压敏电阻选型参数及作用
2022-02-02 06:00:36
如何做好科研和发表论文
2022-02-02 06:00:30
运算放大器型号集中说明
2022-02-02 06:00:25
UPS系统的几种测试
2022-02-02 06:00:19
风光已逝—摩托罗拉T190拆解
2022-02-02 06:00:14
戴尔Latitude 7370拆机评测
2022-02-02 06:00:09
电动机型号与轴承的关系
2022-02-02 06:00:03
Intel正式发布12代酷睿移动版:5GHz
2022-02-01 22:51:33
多达8款 iPhone 14全系曝光:国行、美版SIM卡不同
2022-02-01 22:51:27
2022全球品牌价值500强发布:微信蝉联“全球最强品牌”
2022-02-01 22:51:21
新MacBook系列各种问题不断!苹果发macOS更新
2022-02-01 22:51:14
RTX 30系列六大核心首次聚齐:500平方毫米小怪兽
2022-02-01 22:51:08
苹果创新纪录:中国市场营收暴增 第一季度iPhone销量卖疯
2022-02-01 22:51:02
京东发春晚红包战报,互动量达691 亿
2022-02-01 22:38:11
因发现忽略停车路口标志的问题 特斯拉OTA召回完全自动驾驶功能
2022-02-01 22:38:08
iPad出货量大降,安卓平板成了?
2022-02-01 22:38:02
Gucci为549美元的AirPods Max推出售价高达980美元的保护套
2022-02-01 22:38:00
Linux下C应用程序开发
2022-02-01 22:30:16
一种移动视频监控及定位系统的设计
2022-02-01 22:30:11
递进式分配器的使用与维修
2022-02-01 22:30:06
有了大存储深度示波器为什么还要用波形记录仪?
2022-02-01 22:30:00
Redmi K50会成为新的旗舰机焊门员吗?
2022-02-01 21:08:25
三星Galaxy S22系列配置曝光 2月9日发布
2022-02-01 21:08:17
罗技发布RightSight 2软件 让混合型视频会议的远程参与者更对等
2022-02-01 21:08:14
三星GalaxyS22官方海报公布 6.1英寸小屏幕
2022-02-01 21:08:09
iOS 15.4测试版中发现AR/VR头显提示和网络应用推送通知支持代码
2022-02-01 21:08:07
今年春节有6.88亿人抢微信红包
2022-02-01 21:08:01
“造车新势力”1月成绩单出炉:哪吒交付量暴增超400% 蔚来交付环比下滑
2022-02-01 21:08:00
硅整流二极管的检测方法
2022-02-01 21:00:20
BCD七段数码管显示译码器电路
2022-02-01 21:00:15
富士康否认关闭通路事业部
2022-02-01 21:00:09
整流器原理
2022-02-01 21:00:04
蜂鸣器原理
2022-02-01 20:59:58
微软Edge浏览器突然开通官微
2022-02-01 19:51:27
比任何一款新车都重要 马斯克:机器人是特斯拉今年头号产品
2022-02-01 19:51:21

热门文章

热点专题