基于SIP对应用层移动性支持的研究
陈雪莲
摘要:文章首先介绍了SIP协议的特点以及基本工作原理;然后详细描述了SIP对应用层移动性支持的工作过程,并着重分析了SIP对应用程序提供的终端、个人、会话和服务移动性的支持。
关键词:SIP协议;移动性;应用层
1.移动性研究
随着Internet的迅猛发展,用户对移动性的要求越来越高,移动IP实现了对用户移动的透明性的支持,但是也存在一些局限性,尤其在对延迟敏感的多媒体应用上,如三角路由、三角注册、需要home地址和隧道管理等。初始对话协议(Session Initiation Protocol,SIP)是一种应用层协议,用于建立和释放单播或多播的多媒体会话。IETF对其进行标准化用于多播会议IP电话呼叫。基于SIP,本文提出一种独立于底层技术的体系结构来支持多媒体服务的移动性。
2.SIP基本原理
SIP是一个应用层控制协议,它能够允许两方或多方建立、修改、终止多媒体流的会话或呼叫。媒体流可以是音频、视频或者任何基于Internet的通信机制,比如分布式游戏、共享应用和共享的文本编辑器等。IETF等对SIP进行了标准化,并在Internet电话有了很多的应用。
SIP主要有两种结构元素:用户代理uA和网络服务器。uA驻留在SIP的终端站中,它包含两个部分:用户代理客户端(User Agent Client,UAC),该部分负责发布SIP请求;用户代理服务器(User Agent Server,UAS),它負责响应SIP请求。其中,用户代理服务器有3种不同类型:重定向服务器、代理服务器和注册服务器。基本SIP呼叫不需要服务器,但其他一些增强特性需要服务器的支持。
3.SIP支持移动性的原理
SIP协议中所包含的SIP代理服务器和SIP重定向服务器,接受用户的注册并保存用户的位置信息,为用户提供移动性支持。用户有一个公开的地址,如peter@domain.com,并在其家网络中SIP服务器上注册,当用户移动到其他网络时,用户会及时更新在自己家网络中的SIP服务器上的注册的位置信息,这样,当有对该用户的呼叫时,服务器能够找到该用户。
当一个会话建立起来以后,如移动用户从一个网络移动到一个新的网络,这时它的网络接入点发生了变化,如IP地址,为了保持通信,移动用户必须用原来的Call-ID向通信对方发出一个新的INVITE,并在contact字段中告诉对方自己现在所用的新的地址,同时在请求头中的SDP的连接数据字段里,告诉对方将媒体流重定向到移动用户的新地址。
4.终端移动性
终端移动性允许一个设备在IP子网中移动,使其所属的子网改变时,仍然可以接收到请求的信息,并且保持会话,为了在子网改变以后,能够再保持会话,这个子网需要DHCP和动态DNS。
在应用层,SIP的注册机制可以被看作是与移动IP的注册机制等价的。移动IP绑定一个固定的IP地址到一个临时的IP地址来标识主机,而SIP则给临时的IP地址绑定一个用户的标识符。SIP对终端移动性的支持包括3个阶段:呼叫前(pre-call)、呼叫中(mid-call)的移动性和从网络分割中恢复。
4.1呼叫前的移动性(pre-call mobility)
SIP移动性最容易的部分是呼叫前的移动性。在接收和开始一个呼叫之前,移动主机需要一个新的地址。每获得一个新的IP地址,移动主机都只需要重新向它的家网络注册新的IP地址,如图2所示。具体的执行流程为:
Step 1:通信主机向重定向服务器发送SIP请求。
Step 2:重定向服务器向通信主机返回一个302响应消息。
Step 3:通信主机向移动主机发送一个SIP请求。
Step 4:移动主机向通信主机发送一个OK,向应消息。
Step 5:通信主机向移动主机发送数据信息。
4.2呼叫中的移动性(mid-call mobility)
对呼叫中的移动性,正在移动的主机发送另一个INVITE消息给通信的主机,而不通过任何中间的代理。在呼叫开始建立阶段,如果SIP代理通过插入一个Record-Route来成为未来信令消息循环的一部分,这样SIP代理就可以被穿越。这个INVITIE请求包含一个新的IP地址的更新的会话描述,因此当移动主机的应用程序发现它获得了一个新的IP地址时,位置更新有一个单项的延迟。对宽带接入,这个延迟可能等于传播延迟加上几毫秒,但是在低带宽的系统中可能会增加几十毫秒的延迟。
可以通过以下的方式实现快速移交。移动主机不通告它自己的地址作为媒体流的目的地址,而是采用代理或者代理相关的RTP转换器的地址来代替。同样,在包含INVITE请求的会话描述中,代理也可以重写网络地址,所以这种机制不一定需要终端系统的支持。RTP转换器截取媒体包,然后把他们传递给移交后的新地址。此外,这样一个转换器也可以转换媒体代码为低带宽或者增加进一步的错误校验。例如,sIP代理可以使用Megaco或者MGCP。在实现中,SIP信令是分开的,网络中的一个服务器可以在呼叫方终止呼叫,这个服务器然后再通知移动主机。RTP转换器的插入减少了移交延迟。
在应用层支持IP层的软移交方法是比较困难的,通信主机必须分别发送两个数据流给新的IP地址和原来的IP地址。采用RTP转换器的方法能够对该移交操作有帮助。为了保证软交的安全性,SIP使用3种认证机制:HTTP、使用共享密钥和PGP的数字认证、使用公共密钥的加密。一个防止入侵者的根本方法是使用一个随机产生的呼叫标识符。
4.3网络分割
如果网络分割持续的时间少于30秒,SIP不需要其他的机制就可以恢复,当没有回应的消息时,只要重传这个请求就可以了。如果网络分割持续的时间更长,更新有可能丢失,而且其他主机也可能移动了位置。在这种情况下,为了重新建立连接,每一方都应该将SIP的INVITE请求写为规范的地址,发送给另一方的家代理。如果SIP的UA实现了SIP会话定时机制:可以根据用户配置的间隔时间定时刷新会话。
4.4分级注册
缺省情况下,注册的请求是发给本地的SIP服务器的。任何位置的改变都会引起一个SIP注册请求和应答被发送。如果SIP服务器为很多主机服务,那么这种注册请求会增加服务器和网络的负载,因此可以采用分级注册的方法。在一个最近的SIP服务器注册,而它指导应该如何转发或重定向注册请求。分级注册请求原理如图3所示。
5.结语
本文介绍了应用层的移动性可以部分或全部代替网络的移动性,包括终端、个人、会话和服务移动性。本文提出的算法适用于所有基于IP的应用程序,而不仅是针对Internet电话和会议。