随着全球性的市场开放和竞争的日益激烈,传统的电信网技术正发生深刻的变革,通信市场的竞争也愈演愈烈。语音网上基于原电路交换的业务将逐渐转移到以分组交换和数据通信为基础的机构上,IP将占主要地位,VoIP技术成为通信行业最火热的焦点之一。
目前在国际上,应用的标准协议包括ITU-T提出的H.323协议和IEEE提出的SIP协议。
1、H.323协议
H.323协议是目前在VoIP网络中被用得最广泛的一种信令协议,其作用范围如图1所示。这一体系结构包括了H.323终端、网关、关守及多点控制单元(MCU)。H.323的总体目标实现H.323端点之间媒体流交换。
图1 H.323的范围及H.323终端的交互
其中,H.323终端是与其他H.323端点进行实时通信的端点;
网关是在H.323网络和其他类型网络之间提供转换服务的H.323端点,网关两侧信令协议及媒体格式之间的转换在网关内部进行;关守在H.323网络中,是一个可选实体,存在时,可以控制(指对来自一个或多个端点的访问进行授权,并可允许或拒绝端点发来的任何呼叫)许多H.323终端、网关和多点控制器;多点控制器(MC)是一个管理多个终端和/或网关之间多点会议的 H.323端点。MC指出可被各个实体共享的媒体,还可以改变资源的配置。MC的位置,可以被安置在一个独立的MCU中,也可以与网关、关守或H.323 终端等实体结合在一起。
H.323协议是一个庞大的协议族,包括许多相关的协议,形成了一个协议栈,如图2所示。媒体交换是通过运行在UDP上的RTP来实现的,只要有RTP则RTCP是不可少的。RTP协议为音频、视频等实时数据提供端到端的传递服务,可以向接收端点传送恢复实时信号必需的定时和顺序信息, RTCP协议能向收发双方和网络运营者提供QoS的监测手段。
图2 H.323协议栈
实际中在H.323端点之间交换的消息是由H.225.0和H.245这两个协议定义。H.225.0协议包括两个部分,一部分是IUT-T Q.931建议的变体,用于在H.323端点之间建立以及拆除连接,被称作呼叫信令或是Q.931信令。另一部分被称作登录、许可和状态(RSA)信令,用于端点和关守之间,使关守用该信令来许可或是拒绝端点对网络资源的访问。H.245是用于两个或多个端点之间的控制协议,它可以确保一个实体只发送能够被另一个实体接收和理解的媒体,其运行在端点之间的一条或多条逻辑信道上。
上述这三个信令协议——RAS,Q.931和H.245,可用来建立呼叫、维持呼叫和拆除呼叫。不同协议消息的传递是交替进行的,图3简单描述了一个呼叫的建立过程以及呼叫过程中各相关协议的控制作用。可以这样理解:当一个端点想要与另一个端点建立呼叫时,首先,源端点使用RAS信令来从一个关守那里获得许可;然后,源端点用Q.931信令来建立与目的端点的通信;最后,源端点使用H.245控制信令与目的端点协商媒体参数并建立媒体传送。
图3 呼叫过程与协议控制
2、SIP协议
SIP是由IETF开发的一种信令协议,用来处理多媒体会话的建立、更改、拆卸,与其他协议比较,SIP描述了潜在的会话参与者的会话特征。SIP中定义了两类基本的网络实体,客户机和服务器。客户机是指为了向服务器发送请求而与服务器建立连接的应用程序,服务器是用于向客户机发出的请求提供服务并回送应答的应用程序。共有四种不同类型的服务器:
(1)用户代理服务器:当接到SIP请求时它联系用户,并代表用户返回响应。
(2)代理服务器:代表其他客户机发起请求,既充当服务器又充当客户机的媒介程序。在转发请求之前,它可以改写原请求消息中的内容。
(3)重定向服务器:它接收SIP请求,并把请求中的原地址映射成零个或多个新地址,返回给客户机。
(4)注册服务器:它接收客户机的注册请求,完成用户地址的注册。
SIP网络实体之间的沟通是由SIP消息来完成,其语法构成是基于文本的,可以分为两类消息类型,即请求消息和回应消息。每个消息都是由一个起始行,零个或多个首部和任意的消息体组成。对于请求消息,起始行为请求行,规定了所提交请求的类型,语法结构为: request-line=method SP Request URI SP SIP-Version CRLF,其中定义了7种方法,名称和描述如表1所示。对于回应消息,起始行为状态行,指出某个请求是成功还是失败,语法结构为status-line= SIP version SP status code DP reason-phrase CRLF,基中定义了状态代码,它的值在100和699之间,第一个数字表示回应的级别,不同级别的说明如表2所示。消息首部提供了关于请求或回应的更多信息以及用来承载额外信息的方式。消息体通常描述将要建立的会话类型,但SIP并不定义消息体的结构或内容,它是由另一个不同的协议来描述,最常见的为 SDP(会话描述协议)。
表1 SIP请求方法描述
方法 - 说明
INVITE - 用来回应呼叫用户的一个请求
ACK - 用来初始化一个会话
BYE - 结束一个已连接的呼叫
CANCLE - 用于取消一个已发出但未连接的呼叫
REGISTER - 用于向注册服务器注册客户端的相关信息
OPTI0N - 用于查询服务器的相关信息和功能
INF0 - 用来送出通信中的资讯但并不改变任何通信的状态
表2 SIP请求方法描述
状态码 - 描述
1XX - 通知
2XX - 成功
3XX - 重定向
4XX - 请求失败
5XX - 服务器错误
6XX - 全局性错误
SIP协议支持三种呼叫方式,用户代理客户机向用户代理服务器直接呼叫,用户代理客户机在重定向服务器辅助下重定向呼叫,由代理服务器代表用户客户机向被叫发起呼叫。以应用代理服务器为例,说明一个简单呼叫的建立过程,如图4所示。
图4 代理服务器建立呼叫过程
3、H.323协议与SIP协议的比较
(1)两种协议的编码机制不同,H.323是使用二进制编码方式,实现比较复杂,而SIP是基于文本的协议,实现简单。
(2)SIP会话请求过程和媒体协商过程等是一起进行的,因此呼叫建立时间短,而在H.323中呼叫建立过程和进行媒体参数等协商的信令控制过程是分开进行的。
(3)H.323中定义了专门的协议用于补充业务,而SIP只要充分利用已定义的头域,必要时对头域进行简单扩展就能很方便地支持补充业务或智能业务,可扩展性强。
(4)H.323进行集中,层次式控制,而SIP类似于其他的Internet协议,设计上就为分布式的呼叫模型服务的,具有分布的组播功能。
总之,H.323沿用的是传统的电话信令模式,符合通信领域传统的设计思想,已被广泛接受,应用比较成熟。而SIP协议借鉴了互联网的标准和协议的设计思想,简单、灵活等特点正吸引着越来越多的设商关注和支持,并逐渐成为未来发展的方向,但还不够成熟。目前,这两种协议都在积极的寻求改进,很长时间内将在VoIP服务中共存。