基于SIP的VoIP在下一代网络中的应用
发布时间:2006-10-14 8:04:33   收集提供:gaoqian
万敏,万晓榆 重庆邮电学院


  摘要:如何在下一代网络(NGN)中提供优质的VoIP是下一代网络多媒体通信业务的关键问题,从SIP电话协议栈,SIPMESSAGE和通信机制几个方面来分析了基于SIP的VoIP特点,并探讨了其在下一代网络中的应用优势。

  关键词:呼叫控制;请求;响应;可扩充性;可扩展性

0 引 言

  实时IP呼叫和多媒体通信是下一代网络(NGN)业务提供的重要方面。H.323和SIP(sessioninitiation protocol)都是实现VoIP和多媒体应用的通信协议。目前,包括我国在内的许多国家都采用H.323作为IP电话网关之间的协议,整个IP电话系统只是把IP网络作为传输媒介,在用户的接入上还是采用电路交换系统,把IP电话网关作为电路交换网和IP网络的接口。但是,在下一代网络中,由于IP产品和IP网关在电话网中的大规模使用和集成,使得端到端都必须采用IP协议来实现纯IP的业务应用。基于纯IP的SIP协议是用于创建、修改、终止IP网上的多媒体会议或呼叫的应用层控制协议,它借鉴了HTTP协议和SMTP协议,结构简单并具有可扩充性和可扩展性。此外,SIP还提供良好的QoS支 持,这对于NGN在IP网络上实现VoIP和多媒体通信来讲,SIP在全面满足NGN特性要求的应用上具有独特的优势,将成为下一代网络VoIP的重要解决方案。

1 SIP如何实现VoIP

  SIP不是垂直型通信系统,不能独立提供业务,它必须与其它协议共同使用来构建一个完整的多媒体体系结构,所以在构建下一代网络的多媒体体系时,采用以下的协议组合提供多媒体业务。基于SIP的电话协议栈如图1所示。图1中,①网络层:使用IPv4或IPv6(建议IPv6);②传输层:使用TCP或UDP(建议UDP);③应用层:包括以SIP为核心的多个协议。

  ·SIP协议用于传送呼叫控制命令。在定义消  息时只定义了消息的头部,在消息体中采用了文本格式的会话描述协议SDP,用于在消息中传送呼叫的媒体类型和格式等信息,加快了呼叫建立的速度。

  ·RTSP(realtime streaming protocol)控制发送“一点到多点”文本格式的多媒体数据流。

  ·RSVP(reservation protocal,资源预留协议)用于主机为特定应用数据流请求特定的QoS以及端点应用程序发送QoS请求为数据传送的各个节点保留网络资源(如带宽,缓冲区大小等),大大增强了现有Internet网络的QoS控制。

  ·RTP(real-time transport protocol,实时传送协议)用于AMR(adaptive multi-rate)和AMR-WB(adaptive multi-rate wideband)编码的语音信号的实时传送,并提供QoS反馈。

  ·RTCP(real-time transportcontrolprotocol,实时控制协议)用于传递实时信号的质量参数,提供QoS监视机制,同时还可用于传送用户的信息,建立呼叫控制机制。

  媒体封装主要采用ITU-T的G系列和H系列建议,G系列用于语音压缩,H系列用于视频压缩,提供视频电话。SIP在协议栈中完成的功能是建立和终止多媒体通信:①用户定位(user location):确定通信使用的终端系统位置;②用户可用性判定(user availablity):确定被叫方是否愿意加入通信;③用户能力判断(user capability):确定通信使用的媒体类型及参数;④会议建立(session setup):在主、被叫之间建立约定的支持特定媒体流传输的连接;⑤会议管理(session management):包括传输、终止会议,修改会议参数,调用业务。

  从SIP电话协议结构可以看出,SIP基本的呼叫信令,用户的定位注册与整个IP电话系统的服务质量,业务派生,任务内容描述和会议控制都是相互独立的。从这种模块化的协议结构来看,基于SIP的VoIP得到了端到端的QoS支持,使用UDP无连接协议,在网络负荷较重时又避免了在超时证实中导致的呼叫建立时延的增加。同时,SIP这种分布式的控制方式和TCP或UDP支持本地多播信令,对于扩展多媒体会议规模非常有益。在NGN中,采用SIP把呼叫传输和呼叫控制分开,实现了媒体与业务的分离,媒体和控制的分离,这样用户可以通过第三方控制机制定义新的业务而不必关心承载业务的网络形式和终端类型,使网络具备了可扩展性和快速部署新业务的能力,使网络运营者更有竞争力。

2 SIPMESSAGE机制

  SIP本身是一种分层协议,如图2所示。由此可见,SIP采用C/S结构,通过MESSAGE机制来建立会话。因为SIP处理的是客户端与服务器之间的请求和响应,所以SIP消息包括了请求消息和响应消息。二者都具有相同的消息格式:





  在请求消息的起始行中,SIP定义了请求执行的操作。SIP提供了给用户扩充的功能集,到目前为止的版本共定义了:邀请(INVITE)、证实(ACK)、选择(OPTIONS)、再见(BYE)、取消(CANCEL)、登记(REGISTER)、信息(INFO)、分配(ALLOCATE)和更新(UPDATE)。为了加强可扩充性,SIP采用了和HTTP一样的层次式的数字差错代码,在响应消息的状态行中共定义了6类响应来表示指示请求执行的结果,每个响应代码均用3位数表示,第1位数字指示响应的类别,后2位数字表示具体的响应。

SIP的头部字段定义了:①From:指示请求的 发端;②To:指示请求的收端;③Call-ID:用于唯一标识一个特定的邀请或标识某一客户的所有登记;④Cseq:表示命令序列号;⑤Via:指示请求经历的路径;⑥Contact:给出直接通信的地址;⑦Expires:给出消息内容超期的时间。

  SIP消息体采用SDP定义,而SDP的传送和媒体的协商则由RTSP,HTTP等来完成。SDP消息封装如图3所示。



  SDP会话描述由文本行组成,每个文本行的格式均为<类型>=<值>,包含了参与现存会话相关的必要信息。①会话信息:会话名和目的;会话激活的时间区段;构成会话的媒体;接收媒体所需地址、端口、格式等;会话所用的带宽信息(任选);会话负责人的联系信息(任选)。②媒体信息:媒体类型(视频/音频等);传送协议(RTP/UDP/IP、H.323等);媒体格式(H.261视频/MPEG视频等);媒体地址和端口。③时间信息:会话的开始和结束时间。④加密信息:可选。

  其中,用户号码用与E-mail地址类似的SIPURL来表示。

  sip:用户名:口令@主机:端口;传输层协议参数;用户类型参数;方法参数;生存期参数;服务器地址参数?头部名=头部值&头部名=头部值

  例如:sip:j.doe:secret@big.com;transport=tcp

  从编码结构来看,SIP消息具有丰富的可扩充性。由于SIP基于文本,使得代码生成和语法解析都很简单,而且便于协议的扩展和调试,提高了其用户化程度。SIP允许旧的头部字段和性能不用时将其去掉,从而保证了协议和编码的简洁清晰。SDP允许会话的开始结束时间可由多组时间段组成,而且可以包含重复时间,对NGN用户来讲,这种业务设置的灵活性是倍受欢迎的。同时SDP分单点发送和多点发送操作,增强了SIP对呼叫的控制能力。SIPURL可以嵌入到Web页或其它超文本链路中,使NGN能够实现click-to-call(用户点击鼠标来发出呼叫)的SIP扩充业务。

3 SIP基本呼叫过程

  SIP两个主要元素是用户代理(user agent: UA)和网络服务器。用户代理即指SIP端系统,包括处理SIP请求的用户代理客户(user agent client:UAC)和处理SIP响应的用户代理服务器(useragent server:UAS)。网络服务器则有几种类型:重定向服务器(redirect server),代理服务器(proxyserver),登记服务器(register server)。SIP的通信机制的核心是请求<—>响应。一个基本的SIP呼叫的过程可分为以下3部分。

  (1)当UAC发出呼叫“邀请”,UAC在请求消息起始行中写入INVITE,及被叫当前的SIPURL地址,在头部字段To中写入被叫的SIPURL地址,在Call-ID字段中生成唯一的呼叫标识,在From字段中写入主叫用户的SIPURL地址,在Via字段中写入自己的主机名或者网络地址,消息体内SDP写明UAC/UAS所支持的媒体类型以及网络地址和端口号(用于端系统间的媒体协商)。代理服务器收到请求消息后,将自己的地址压入头部字段Via栈中(路由中的代理服务器都作同样的处理)。当消息到达被叫侧的用户代理服务器时,代理服务器向定位服务器发起查询,查询被叫当前的位置信息,如果被叫的位置信息未发生更新,请求消息则直接发给被叫;如果被叫位置发生了更新,代理服务器则继续根据新的地址转发请求消息,直到到达被叫UAS。

  (2)被叫UAS收到请求消息后,回送响应。响应分为两种类型:一类是中间响应,报告呼叫进展情况,如用户空闲、正在振铃等;一类是最终响应,包括成功响应和异常失败响应。响应根据请求消息中的Via字段,原路返回主叫UAC。对于表示成功的响应,UAC使用“确认”(ACK)方法向被叫UAS发请求消息,被叫UAC收到确认消息后,主被叫间会话建立,双方通过RTP协议互发信息。

  (3)通信结束后,任何一方向对方发送“再见”(BYE)请求,请求终止会话,接收方回送成功响应,则会话结束。在通信过程中,任何一方如果想更改会话的状态可以再次发起呼叫INVITE请求,使用相同的Call-ID,并在命令序列字段Cseq中对原有请求  的Cseq加1,请求的接收方根据收到的头部信息和消息体,与以前的进行对比,调整相应的状态和媒体参数。

  SIP采用自己的应用层可靠性机制来保证信令的可靠传输,缩短了呼叫建立的往返时延。SIP容错性强,而且由于错误检测能力的增强使包丢失回检率也高于其它协议。SIP给代理服务器(proxyserver)定义了状态和无状态两种工作模式。在无状态模式下,中间服务器收到呼叫请求,执行相应操作后将请求前传,不保留呼叫状态。SIP包含足够的状态信息,可以确保响应信息的正确回传;同时,SIP消息允许在UDP上传送,而UDP是面向无连接的,这意味着在大话务量情况下SIP服务器可以采用基于UDP的无状态工作模式,这样就可以显著地减少存储器容量和计算量,同时提高了网络的可扩展性。

  由于对呼叫控制能力的增强,SIP通过用户重定向(relocation)到多个点位(location)及多跳(multi-hop)搜索机制,达到快速的用户定位,采用呼叫转移或多点同时呼叫的方式实现了NGN中对个人移动业务很好的支持。

4 结论

  SIP的设计思想借鉴了互联网的标准和协议,结构简单,利于扩展。SIP信令互通性提出的基于SIP的增强机制SIP-T协议解决了PSTN网络信令 在IP网络上的协议转换和传输问题,但SIP定义范围比较有限等缺点还有待完善。我们同时也看到,在下一代网络的终端与软交换之间的通信应用SIP协议,即基于SIP的VoIP,可以得到端到端的QoS支持,有效的网络控制管理以及灵活多样的多媒体业务提供。国际上诸多大型通信公司对SIP的支持将推动NGN的发展。

参考文献

[1] ROSENBERG J,SCHULZRINNE H,CAMARILLO G,et al.SIP:SessionInitiation Protocol[EB/OL].draft-ietf-sip-  rgc2543bis-09.ps,2002-02-27.

[2] HANDLEYM,JACOBSON V.SDP:sessiondescription protocol[R].RFC 2327,April1998.

[3] DALGICIsmail,FANG Hanlin.Comparisonof H.323 and SIPfor IPtelephony signaling[D].Columbia University Department of  Computer Science,September,1999.

[4] 李艳军.NGN网中基于SIP的号码移动性研究[D].重庆:重庆邮电学院,1999.

[5] 罗斯青.H.323和SIP的比较[J].通讯世界,2002,(5):60-62.


摘自 重庆邮电学院学报
 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50