陈志辉,王 俊,丁 锐,袁 静
(中国电子科技集团公司第三十研究所,四川成都610041)
会话初始协议 SIP(Session Initiation Protocol)[1]是IETF提出的应用层会话控制协议,用于建立、修改和终结实时多媒体会话。具有可扩展性、灵活性、互操作性、可重用性、简单高效等特点。SIP是下一代网络NGN的核心协议,在互联网以及固定、移动IP 网络得到了成功应用[2-4]。
无线自组网(Wireless Ad hoc networks)不依赖固定基础设施,具有无中心、自组织、多跳路由、动态拓扑等特点,网络抗毁性和灵活性较强,尤其适合灾难救助、偏远地区、紧急突发、作战战场等场合,具有广泛的用途和前景。
随着无线自组网发展,其网络IP化、无线传输带宽增加、质量保障能力提高,使其具备了提供实时多媒体业务的能力,无线自组网提供实时多媒体业务成为重要的应用需求。SIP已经在互联网、固定IP网络、移动IP网络(有固定基础设施)得到了成功应用,在更灵活、有着广泛用途的无线自组网中推广应用成为SIP应用需求。两个方面的需求,促使进行SIP协议(下一代网络NGN提供多媒体业务的核心协议)应用到无线自组网的研究。IP是无线自组网和SIP结合的基本条件,无线传输带宽增加、质量保障能力提高是结合的重要保障,提供实时多媒体业务是结合的目标。
无线自组网极易受到天气、地形、电磁干扰、节点移动等方面的影响,导致有时网络很不可靠,甚至网络不可用。最初针对固定IP网络设计的SIP协议,虽然在移动IP网络应用中进行了许多改进。同时作为应用层协议,SIP也设计了较完整的可靠性机制,如应答确认机制、重传机制、超时机制等,并支持低层不可靠传输,但仍然难以适应无线自组网的网络不可用情况。SIP协议如何成功地延伸应用到无线自组网,提供多媒体业务支持,发挥其统一融合能力,简化应用系统、增强终端智能,进一步促进无线自组网的灵活性、易部署性、易用性,成为当前急需的、重要的研究内容。
文中分析标准SIP协议在无线自组网中应用存在的问题,设计了新的可靠性机制、引用并运用已有的可靠性机制,形成完整的可靠性解决方案,提高了SIP协议在无线自组网中的适应性。
SIP主要的可靠性机制有:
(1)周期性重注册机制
终端注册主要是通知服务器终端当前的位置信息,服务器记录、更新位置信息,确保终端位置信息的正确性。终端周期性重注册,确保了终端位置信息的有效性,服务器可以根据注册是否超时,判断终端位置信息是否失效。
(2)请求应答
SIP中的所有请求消息都要求应答,使请求方可以确定接收方成功收到该请求。
(3)确认机制
对重要的应答消息,请求方发送 ACKPRACK[5]进行确认。如 INVITE请求的响应 200 OK,需要请求方使用ACK进行确认。如果请求方没有进行确认,应答方重复发送响应。
(4)重传机制
请求发送后,如果规定的时间内没有收到响应消息,请求方会重发请求多次。
(5)超时机制
在重新发送请求或响应后,一直没有得到正确的响应或确认,一定时间后,重发方终止会话。
(6)临时可靠响应机制[6]
一般情况下,临时响应都是不太重要的。但现在的很多临时响应非常重要,如支持资源预留的183响应就非常重要,直接决定会话是否继续建立。
无线自组织网的可靠性比较低,通常在96%[7]左右,远远低于有线网络的可靠性。特别是战场等复杂电磁环境下,无线自组织网的可靠性将进一步降低,有时甚至达到不可用的程度。
宏观上SIP可以分成非会话、会话建立中、会话建立三个状态。其中标准SIP在会话建立中、会话建立后两个状态的可靠性机制还不完善,在无线自组网等可靠性降低到一定较低程度时(不可用时),存在如下问题:
(1)拨号后长时间无响应
主叫发出INVITE,收到100临时响应后、收到180响应前发生网络不可用。主叫将一直停留在Proceeding状态,没有超时处理机制。
(2)长时间单边振铃
在被叫收到INVITE发出180响应后、主叫收到180响应前发生网络不可用。被叫将长时间单边振铃。
(3)振铃后接续不成功
主叫收到180响应后,发生网络不可用,主被叫继续振铃,被叫摘机后,会话不能建立成功。
(4)终端长时间无业务数据无提示
会话建立成功后通信期间,发生网络不可用,主被叫长时间无业务数据后,且没有任何提示。
(5)服务器资源泄漏
会话建立成功后,发生网络不可用,主被叫在没有收到业务数据后,可以在用户的干预下结束会话,并释放本地资源。但服务器不能收到任何结束会话的信令,将一直保留此会话申请的资源,造成资源泄漏。
(1)拨号后长时间无响应
图1是RFC3261中INVITE client transaction状态图。进入状态Proceeding后,只有收到200以上的响应才能进入下一个状态。如果没有收到任何消息,将长时间停留在Proceeding状态,缺少一个无任何响应超时进入下一个状态的机制。
图1 INVITE客户端事务Fig.1 INVITE client transaction
(2)长时间单边振铃
标准SIP协议的振铃指示消息180响应,没有任何确认措施。被叫发送180响应后,开始振铃,无法知道主叫方是否接收到180响应。这种机制上的缺陷导致主叫、被叫振铃不同步情况。因此应当将180作为重要的临时响应,进行确认,确保主被叫同步。
(3)振铃后接续不成功
标准SIP采用单次发送180响应消息机制,被叫发出180响应后、主叫收到180响应后,双方开始振铃。如果振铃期间发生网络不可用的异常,主被叫无法感知异常,错误地继续振铃,导致用户摘机时无法接通。因此,需要监控振铃期间的网络可用情况,一旦网络不可用,振铃将停止,避免振铃正常却不能接通的情况。
(4)终端长时间无业务数据无提示
通信过程中发生网络不可用,终端收不到业务数据。由于缺少会话保持功能,将不能发现网络不可用,无法给出提示。因此,在终端上需要增加会话保持机制。
会话保持是控制面的功能,其探测时间通常比较长(几十秒级),可以结合数据面业务数据的实时性,及时(几十毫秒级)发现异常,并在控制面通过确认机制进行确认。
(5)服务器资源泄漏
服务器资源泄漏主要是服务器在会话建立、撤销过程中,都是出于被动的位置,缺少主动监控措施,对会话的有效性进行鉴别,因此需要增加会话保持功能。
由于会话保持探测时间通常比较长,导致资源泄漏时间长,可以在资源紧缺的时候,启动主动巡查机制,减少资源泄漏的时间。
针对标准SIP协议存在的问题和分析,设计了以下几种改进措施:
(1)增加Proceeding超时机制
在RFC3261中INVITE client transaction状态机(见图1)的基础上,新设计Proceeding状态超时机制,如图2中虚线所示。
图2 新INVITE客户端事务Fig.2 New INVITE client transaction
Proceeding状态超时机制工作过程:①在收到100响应进入Proceeding状态后,启动超时定时器;②如果收到180响应,复位超时定时器,并使用振铃提示用户;③如果主叫在超时时间内没有收到180响应,将超时退出Proceeding状态,(如果已经振铃,即收到过180响应,但在后续180响应没有收到,就先停止振铃)并使用语音提示用户挂机。
建议超时时间是重复发送180响应间隔(见重复发送180机制)的倍数(如2倍)。重复发送180响应间隔建议值为2T1(T1是往返估计时延,缺省值是500 ms),即Proceeding超时时间建议为4T1(缺省值是2 s)。
(2)对180临时响应进行确认机制
将180作为重要的临时响应,并对其采用可靠临时响应机制,主叫在收到180机可靠性临时响应指示时,应该使用PRACK进行确认。主叫收到180后进行振铃,被叫在接收到PRACK后才振铃。如果PRACK丢失,180响应将重传。
(3)重复发送180机制
从振铃到用户摘机的时间相对比较长,几秒到几十秒,这段时间网络的可用状态可能发生变化。采用单次发送180响应提示已经不能适应,可以以一定间隔重复发送180(建议间隔使用2T1,缺省值是1 s),主叫据此可判断网络是否正常,同时主叫对180响应进行确认(发送PRACK),被叫可据此判断网络是否正常。
被叫停止发送和主叫停止检测180响应:①被叫在用户摘机后,发送200 OK响应,被叫停止发送180响应;②主叫在接收到被叫的200 OK响应后,停止检测180响应;③如果被叫用户一直没有摘机的话,主叫可以用户主动挂机或proceeding超时后,停止检测180响应;④被叫在主叫挂机或INVITE事务超时后,停止发送180响应。
(4)选用Session Timer会话保持机制[4]
Session Timer会话保持机制是RFC4028定义的,标准建议有状态工作模式时,使用Session Timer功能进行会话保持。基本原理是通过在UAC和UAS之间协商会话刷新的发起者和刷新周期。发起者使用re-INVITE或UPDATE进行刷新,接收者进行响应。如果长时间连续没有刷新请求或响应,表明网络出现异常,双方可以终止会话,释放资源。
在标准SIP协议中,会话保持机制是可选机制(只有在有状态服务器使用该机制)。在无线自组网中,传输资源有限,资源管理是有效运行的基础,会话保持机制将作为资源释放最重要的监控触发措施。建议将会话保持机制作为无线自组网SIP协议的必选机制。
(5)实时感知确认机制
Session Timer会话保持的周期通常不能太短,导致难以即时发现问题。在明确知道数据传输特征的情况下,如RTP数据包的间隔、静音数据包的间隔等特征。可以借助实时RTP数据包接收情况,及时发现网络异常,并启动类似会话刷新的动作进行确认,解决Session Timer会话保持机制实时性差的缺陷。
(6)紧急巡查机制
可以在SIP服务器使用的资源紧缺到一定门限时,启动紧急巡查机制(发送 UPDATE、re-INVITE),对连续多次巡查没有响应的会话,服务器主动终止,释放资源。
将3.2节提出的可靠性机制实现后,分别部署在1台SIP服务器和2台终端上,连接到有线局域网上(由于这些机制的改进是针对网路不可用的,可以在有线网络进行模拟),其中SIP服务器、终端设计成可以手动控制部分消息的发送、转发,以便准确配合模拟网路断开等操作。设置Proceeding超时时间为2 s(4T1,其中T1使用缺省值500 ms),180重复发送时间间隔是1 s(2T1)。Session Timer超时时间1 800 s,采用终端发起刷新方式。
紧急巡查采用动态参数,根据资源占用率的不同采用不同的参数,原则上是资源使用率越高时,巡查时间越短,最短可达500 ms(T1)。在无线自组织网络环境进行了初步的测试和验证,改进前后试验结果如表1所示。
表1 测试结果Table 1 Test result
测试结果表明,提出的可靠性改进机制解决了会话建立、会话过程中,网络不可用引起的主叫拨号后长时间无响应、长时间单边振铃、振铃后接续不成功、服务器资源泄漏等问题,能正确发现异常,进行相应的处理并提示用户。但发现问题的及时性较差,借助实时感知确认机制,终端可以及时发现异常并处理。在呼叫保持能力的测试过程中,由于网络不可用将引起资源不能正常释放,只能通过Session Timer超时释放,及时性很差,大大降低了呼叫保持能力。通过紧急巡查机制,可以确保呼叫资源出现紧缺时,及时确认会话有效性,并释放无效会话的资源,确保呼叫保持能力。
总的说来,改进后的SIP可靠性机制,将异常发现和处理控制在秒级,并及时给用户正确的提示,大大提升了用户的体验。
文中针对标准SIP协议在无线自组网不可用时引起的问题进行了总结和分析,设计了新的可靠性机制,扩展了原SIP协议中可靠性机制的应用范围,形成了无线组网下SIP协议较完整的可靠性机制。并经过初步测试验证,改进后的SIP协议能较好的适应无线自组网网络可靠性差、甚至不可用等情况。基本达到了将SIP协议延伸应用到无线自组网,在无线自组网中提供多媒体业务的预期目标。
受无线自组网具体特性、用户体验要求、带宽占用、闪断干扰等因素影响,各种可靠性机制的参数值的确定方法比较复杂,它们相互制约,难以统一。可靠性机制参数值的确定优化有待进行深入研究完善。
[1]ROSENBERG J,SCHULZRINNE H,CAMARILLO G,et al.RFC3261 - 2002,SIP:Session Initiation Protocol[S].[s.l.]:IETF,2005.
[2]黄育平,黄威.SIP协议在软交换中应用的研究[J].通信技术,2012,45(07):45 -47.HUANG Yu -ping,HUANG Wei.Study on Applications of SIP Protocol in Soft Exchange[J].Communications Technology,2012,45(07):45 -47.
[3]汪陈伍,李广华.HSIP:下一代无线网络理想的选择[J].2009,42(07):218 -219,228.WANG Chen-wu,LI Guang-hua.HSIP:Ideal Choice for Next- Generation Wireless Network[J].2009,42(07):218 -219,228.
[4]孙旭辉,龙昭华,蒋贵全.基于SIP的VoWLAN的移动性研究[J].2009,42(04):178 -179,182.SUN Xu-hui,LONG Zhao-hua,JIANG Gui-quan.Mobility of VoWLAN based on SIP[J].2009,42(04):178 -179,182.
[5]ROSENBERG J,SCHULZRINNE H.RFC3262 - 2002,Reliability of Provisional Responses in Session Initiation Protocol(SIP)[S].[s.l.]:IETF,2002.
[6]DONOVAN S,ROSENBERG J.RFC4028 -2005,Session Timers in the Session Initiation Protocol(SIP)[S].[s.l.]:IETF,2005.
[7]马睿,朱建冲,杨美玲.基于抗毁性的军事通信网可靠性和节点重要性分析[J].兵工自动化,2012,31(10):44-47.MA Rui,ZHU Jian - chong,YANG Meiling.Analysis on Reliability and Nodal Importance of Military Communication Network based on Invulnerability[J].Ordnance Industry Automation,2012,31(10):44 -47.