网络通信 频道

会话发起协议SIP的分析和研究

摘 要:SIP是IETF的MMUSIC工作组提出的支持多媒体会话的信令控制协议,用于创建、修改、终止多媒体会话或呼叫,在现代的多媒体通信中有着相当广泛的应用,成为H.323协议族的有利竞争者。本文对SIP协议功能特点及SIP与H.323协议的异同点作了详细的阐述。



一、引 言

  近年来,随着IP电话、视频会议等多媒体通信业务的发展,多媒体会话建立协议所起的关键作用逐渐被认识。ITU-T已经为建立多媒体会议系统制订了H.323建议[4],其中包括了呼叫建立的相关协议,并且已经在IP电话业务中得到广泛的应用。但是,H.323建议承袭了许多传统电话网呼叫建立的思想,协议本身较为复杂,实现比较困难,不能完全适应因特网环境下传输多媒体的要求。因此,IETF(Internet Engineering Task Force,Internet工程任务组)提出并且成立专门工作组研究了与H.323不同的另一种支持多媒体会话的信令控制协议,即会话发起协议SIP(Session Initiation Protocol[1][2])。SIP协议采用了因特网中流行的客户/服务器(C/S)模式;报文采用文本表示,简单、易于实现;功能扩展性及网络缩放性好,为开发各种增值业务和会议呼叫提供了很多的方便。因此,SIP协议倍受瞩目,其本身也得到不断地发展完善。  

二、会话发起协议SIP  

1.SIP功能

  SIP是网络应用层信令控制协议,用于创建、修改、终止多媒体会话或呼叫。它借鉴了简单邮件传输协议(SMTP)和超文本传输协议(HTTP)的优点,支持名字匹配和重定向业务,支持ISDN和智能网络电话用户业务的实现,也支持个人移动性,功能强大。

  具体来说,SIP主要支持以下5个方面的多媒体通信功能:

  ·用户定位(User location):确定通信所使用的终端系统位置;
  ·用户能力判断(User capability):确定通信所使用的媒体类型及媒体参数 ;
·用户可用性判定(User availability):确定被叫方是否愿意加入通信;
  ·呼叫建立(Callsetup):在主、被叫之间建立约定的、支持特定媒体流传输的连接;
  ·呼叫处理(Call handling):包括呼叫修改和呼叫终止等处理。

  作为IETF多媒体数据和控制的整个体系结构的一部分,SIP能与RSVP、RTP、RTSP、SAP、SDP等协议一起协同工作。此外,SIP可以使用会议控制系统中的多点控制单元(MCU),取代多播发起多方呼叫;电话网系统中连接PSTN各方的网关也可使用SIP在相互之间建立呼叫。SIP可与其他呼叫建立和信令协议联合作用。当然,SIP不提供诸如平台控制和表决等会议控制业务,也不指定会议的管理方式,不分配多播地址。  
2.SIP特征

  与其他服务于建立多媒体呼叫连接的协议相比较,SIP协议具有基于网络结构体系进行构建,采用C/S模式,简洁,扩展性好等特点。

  ·SIP代理服务器可以选择是否在本地存储单个的SIP事务状态。服务器存储本地请求业务的执行结果,可以提高呼叫处理效率,不存储时,则更适应大量呼叫的处理。
  ·SIP对传输层及网络层协议做最少的假设,即底层协议只要能提供分组或者比特流业务,无论是TCP或者UDP均可。此外,SIP还能直接在ATM AAL5、IPX、帧中继或X.25上使用。
  ·SIP报文是基于文本形式的。方便地使用Ja-va、Tcl、Perl等语言,即可实现、调试,使SIP更具灵活性和扩展性。由于SIP是用来发起多媒体会议,而非传输媒体数据的协议,使用基于文本形式所产生的额外开销并不重要。  

3.SIP报文

  SIP协议工作依赖于特定SIP实体,而SIP报文是SIP实体间用于沟通、协调工作的信息。SIP是基于C/S机制的协议,因此相应的有两种类型报文,即请求和响应报文。

  请求报文是客户发给服务器的报文,是客户想要进行的操作。SIP协议定义了若干种交互方法,目前有INVITE、ACK、OPTIONS、BYE、CANCEL、REGISTER六类。其中INVITE报文或邀请用户和业务参加一个会话,或针对现存呼叫对(Call-Leg)进行修改、管理及更新;BYE报文终止呼叫双方通信,释放建立的呼叫连接;CANCEL报文终止已经发出但还没有收到响应的请求。随着SIP功能的扩展,可以定义更多更有效的报文来支持不断发展的多媒体通信业务。

  响应报文是服务器发给客户的报文,是服务器对所接收请求报文的回答。根据其状态码分为以下六类:(1)信息响应、(2)成功响应、(3)重定向响应、(4)客户出错、(5)服务器出错、(6)全局出错。SIP响应码是3位整数,可扩展。不要求SIP应用程序理解所有已注册响应码的含义,但必须理解所有响应码的类别。不能识别的响应码则作为×00处理,此时,用户代理应向用户显示该响应的消息体。消息体一般含有能解释该异常状态的可读信息。  

4.SIP实体

SIP呼叫建立功能主要依靠各类实体完成。由SIP发送实体(客户端)产生请求 ,并发送到SIP接收实体(服务器)。服务器处理请求,并向客户端返回一个或多个响应报文。相应的请求和响应,构成一个事务(Transaction)。

SIP协议中,进行通信的组件包括两个部分:  

·用户代理。它是一个智能的终端系统,代表了需要加入呼叫的客户,它包括两个部分:用户代理客户端UAC(User Agent Client),用于初始化一个呼叫,发出请求;用户代理服务器UAS(User Agent Server),通常为呼叫的目的地,用于回答呼叫,发出响应。
  ·网络服务器。SIP提供三类服务器:注册服务器(Registrar)可及时了解它所在区域内注册的SIP用户;代理服务器(Proxy Server)类似HTTP代理,接收请求,确定目的服务器的位置,并把请求提交出去,对请求的协议则按照原路由返回,其功能相当于应用层转发请求和响应的路由器;重定向服务器(Redirect Server)收到请求后并不向后提交,而是告诉客户去直接请求下一跳服务器,重定向服务器通过转发响应来回答客户请求,在响应中告诉客户下一跳服务器地址。三类服务器构成网络服务器链,共同支持SIP建立会话。  

5.SIP的呼叫建立 
 
  SIP实体通过报文交换建立呼叫。图1是一个典型的SIP事务操作的例子[3]。一个SIP用户代理产生一个INVITE请求(sip:joe@company.com),并被发送到一个本地代理服务器,过程①。该代理服务器在域名服务器(DNS)中查找company .com,获得该区域内处理SIP请求的服务器的IP地址。然后将该请求转发给该服务器处理,过程②。company.com的服务器开始识别用户joe,但该用户现在注册为j.user@university.edu。因此,重定向服务器重新确定请求地址,返回给本地代理服务器,过程③。本地服务器在DNS中查找university.edu,获得其处理SIP请求的服务器的IP地址,并将请求转发到该服务器,过程④。university.edu的服务器搜索当地数据库,过程⑤。查到j.user@university.edu即本地的j.smith@cs.university.edu,过程⑥。于是,代理服务器将请求转发给cs.university.edu的服务器,过程⑦。服务器知道用户在本地注册的IP地址,并将该请求转发到用户,过程⑧。用户接受呼叫,响应通过服务器链返回给主叫方(9,10,11,12)。

三、SIP与H.323

  在SIP之前,H.323建议已经被提出用于构建多媒体会议系统,现阶段仍有广泛的应用。H.323建议是基于分组交换网络(PBN)的多媒体会议系统(以下简称H.323会议系统)。H.323会议系统不假定其工作的网络基础能提供服务质量(QoS)保证。和SIP一样,随着IP网的迅速发展,其主要被应用于IP网中。  

1.H.323会议系统的结构

  为了实现在会议系统中传输音频、视频、数据和控制信号组成的信息流,H.323建议定义的多媒体会议系统主要由终端、网守(GateKeeper,亦称网闸)、网关(Gateway)、多点控制器(MC)、多点处理器(MP)和多点控制单元(MCU)等组成。其中终端、网守和网关可用于发起和接受呼叫,又称为端点(endpoint);网守只参与呼叫的控制,是系统的一个功能实体。

  ·H.323终端,是能够在分组交换网络中提供实时、双向通信的节点设备。终端负责对媒体信息进行编解码、发送和接收并处理呼叫控制信令。
  ·网守,相当于SIP中的代理服务器,其功能是向H.323端点提供呼叫控制服务。H.323网守在系统中必须提供4种基本服务:地址翻译、带宽控制、许可控制与区管理功能。此外,还包括有带宽管理、呼叫鉴权、呼叫控制信令和呼叫管理等项可选功能。虽然网守是H.323系统的可选组件,但在实用的系统中却是不可缺少的重要部件。
  ·多点控制单元,用于支持三个以上端点设备的会议。在H.323系统中,一个多点控制单元由一个多点控制器(MC)和零个或几个多点处理器(MP)组成。MC处理终端间的H.245控制信息,从而决定它对视频和音频通常的处理能力。MP直接处理媒体信息流,可对音频、视频或数据信息进行混合、切换及其它处理。MCU一般是独立的单元设备,具有自已的运输层地址。
  ·网关,用于实现与其它网络的互通。其主要功能是H.323会议节点设备与其他ITU标准相兼容的终端之间的转换,其中包括数据传输格式(如H.225.0到H.221)和通信规程(信令)的转换(如H.245到H.242)。另外,在分组网络和电路交换网络之间,网关完成视频、音频和数据信息编码格式之间的互译。 
 
2.H.323会议系统的呼叫建立

  H.323是一套相当完备的协议,其中H.225.0建议和H.245建议用于进行呼叫(相当于SIP中的会话)建立。H.225.0主要由Q.931发展而来,在呼叫建立过程中,终端必须和网守进行交互,为此H.225.0定义了RAS(Register,Admission and Status)协议。H.323系统的呼叫建立是一个相当复杂的过程,主要包括以下三个阶段:

  ·呼叫接纳控制:在端点与网守之间执行RAS协议,网守同意接纳后在端点和网守或端点之间建立起可靠的呼叫信令信道。
  ·呼叫控制:通过呼叫信令信道执行呼叫信令协议(H.225.0),其主要的消息类型和格式定义均来自Q.931。呼叫建立成功后在端点之间建立起H.245控制信道。
  ·连接控制:执行H.245协议,通过在H.245控制信道上进行的消息交换建立起一个或多个逻辑子信道用于传输媒体信息。有趣的是,H.225.0建议还定义了对信息流进行打包和传送的格式。
  呼叫接纳通过后,端点间呼叫信令消息的传送有两种方式:直接选路方式和网守选路方式。在直接选路方式中,网守提供呼叫双方的运输层地址,然后端点间的信令消息直接发往对端。而在网守选路方式中,网守提供自身的信令信道运输层地址,端点间的信令消息将通过网守进行转发。

3.SIP和H.323的比较

  SIP由IETF的MMUSIC小组提出。它通过重用报头域、编码规则、出错码、以及认证机制等来构建网络电话。与ITU提出的H.323协议族相比,它具有简单,扩展性、缩放性好以及和现有的Internet应用紧密等特点[5]。

  从复杂性来看,H.323协议使用基于ASN.1的二进制编码,需要特定的解析器实现代码的解析;SIP是基于文本编码,报文的产生和编码简单,可读性好,易于实现和修改。此外,H.323定义多种组件,而各组件的功能没有明显的界定,其业务实现往往需要多个组件的交互。H.323呼叫建立过程复杂,使用快速呼叫建立机制也需要以牺牲其它方面的性能为代价。并且H.323常配合其它协议(如RTP和RTCP等)使用,而覆盖了自己本来具备的功能。SIP协议定义组件少而有效,使用单个请求报文即包含一系列信息。当然SIP协议定义的范围也相对有限。

  从功能扩展性来看,SIP借鉴了HTTP、SMTP的成功方法,内建了一系列可扩展 、兼容性好的功能。SIP协议通过相关报头域指示服务器需要理解的具体性能,开发者也可以在IANA上注册创建新的SIP性能。SIP还采用层次性数字出错码。SIP实体查看出错码第一位指示的类型即可确定基本的操作,而其它两位数字则提示了附加信息,可扩展。文本方式的报文格式也使得用户可以方便直接地了解报头域用途 。H.323通过设置“非标准参数”域来实现其扩展性能,但这种扩展性仅限于非标准参数,以及H.323终端无法告知对方它所支持的扩展功能等的有限情况。此外,两个协议的兼容性考虑也有所不同。H.323采用电信网信令的通常概念,要求新的版本具有完全的后向兼容性,这样使协议消息更趋于复杂。而SIP去除不再使用的旧报头域,使协议及编码简洁清晰[6]。

  从网络可缩放性来看,H.323的网关和网守必须在呼叫期间保存该呼叫的相关信息,并且使用TCP传输,需要保存连接状态,这就大大限制了它所能支持的网络规模。而SIP协议报文携带相关操作的必要信息,实体可以无状态地工作,不保存任何呼叫信息。并且SIP可使用UDP传输,无需保存连接状态,从而明显地减少了所需保存的信息量,增强缩放性。另一方面,H.323通过MCU来支持多方会议,MCU的负担过重,成为大型会议的瓶颈。尽管H.323最新版本对其功能有一定改进,但作用有限。相比之下,SIP分布式地进行会议协调,支持多播信令,更好地适应不同规模的会议的需求。

  SIP和H.323除基本电话呼叫业务外,还都支持媒体能力交换和丰富的补充业务。此外,SIP协议通过网络服务器重定向被叫方目前地址,更好地支持个人移动性,而H.323在这方面的性能则比较欠缺。SIP还通过PINT、SPIRITS等协议有效的实现了Internet和PSTN的互通。

  当然,SIP和H.323提供的业务有很多相似性。它们都服务于多媒体通信,并且都使用实时传送协议(RTP)在IP网络环境下传输媒体流。H.323协议成熟完备,而SIP协议开放灵活。两者之间,特别是它们在呼叫管理控制等方面有许多可以相互借鉴的东西。SIP-H.323工作组的存在,就是一个很好的例子。  
 
四、结论  

  A.S.Tanenbaum说过:“多媒体是网络的圣杯”,具有实时特征的多媒体应用,如会议电视,将成为下一代网络业务发展的重点。由于SIP与底层协议无关,扩展性好,可在其上层构建多样的多媒体业务。在多方共同努力下,服务于下一代网络的信令控制协议SIP标准及相关技术正在不断地发展完善。SIP构建的系统与其它现存网络业务的互联等将是下阶段SIP研究的重点。

 

转载地址:http://www.voipchina.cn/technology/2004-03-24/36715.shtml

0
相关文章