SIP协议概述

SIP是由IETF提出来的一个应用控制(信令)协议 。正如名字所隐含的--用于发起会话 。它可用来 创建、修改以及终结多个参与者参加的多媒体会话进程 。参与会话的成员可以通过组播方式、单播 连网或者两者结合的形式进行通信 。SIP中有客户机和服务器之分 。客户机是指为了向服务器发送请求而与服务器建立连接的应用程 序 。用户代理(User Agent)和代理(Proxy)中含有客户机 。服务器是用于向客户机发出的请求 提供服务并回送应答的应用程序 。共有四类基本服务器:
·用户代理服务器:当接到SIP请求时它联系用户,并代表用户返回响应 。
·代理服务器:代表其它客户机发起请求,既充当服务器又充当客户机的媒介程序 。在转发请 求之前,它可以改写原请求消息中的内容 。
·重定向服务器:它接收SIP请求,并把请求中的原地址映射成零个或多个新地址,返回给客户机 。
·注册服务器:它接收客户机的注册请求,完成用户地址的注册 。用户终端程序往往需要包括用户 代理客户机和用户代理服务器 。代理服务器、重定向服务器和注册服务器可以看出是公众性的网络 服务器 。在SIP中还经常提到定位服务器的概念,但是定位服务器不属于SIP服务 。
SIP在设计上充分考虑了对其它协议的扩展适应性 。它支持许多种地址描述和寻址,包括用户名 @主机地址:被叫号码@PSTN网关地址:Tel:010-62281234普通电话的描述等 。这样,SIP主叫按照 被叫地址就可以识别出被叫在传统电话网上的位置,然后通过一个与传统电话网相连的网关发起并 建立呼叫 。SIP最强大之处就是用户定位功能 。SIP本身含有向注册服务器注册的功能,也可以利用 其它定位服务器DNS、LDAP等提供的定位服务来增强其定位功能 。
SIP共规定了六种信令:INVITE、ACK、CANCEL、OPTIONS、BYE、REGISTER 。其中INVITE和 ACK用于建立呼叫,完成三次握手,或者用于建立以后改变会话属性;BYE用以结束会话;TIONS用 于查询服务器能力;CANCEL用于取消已经发出但未最终结束的请求;REGISTER用于客户出向注册服 务器注册用户位置等消息 。
SIP协议支持三种呼叫方式:由用户代理服务机(UAC)向用户代理服务器(UAS)直接呼叫, 由UAC在重定向服务器的辅助下进行重定向呼叫和由代理服务器代表UAC向被叫发起呼叫 。通过 SIP代理建立呼叫的例子 如图6-8所示 。
H.323和SIP协议的比较
H.323和SIP分别是通信领域与因特网两大阵营推出的建议 。H.323企图把IP电话当作是众所周 知的传统电话,只是传输方式发生了改变,由电路交换变成了分组交换 。而SIP协议侧重于将IP电话 作为因特网上的一个应用,较其实应用(如FTP,E-mail等)增加了信令和QoS的要求,它们支持的 业务基本相同,也都利用RTP作为媒体传输的协议 。但H.323是一个相对复杂的协议 。
H.323采用基于ASN.1和压缩编码规则的二进制方法表示其消息 。ASN.1通常需要非凡的代码生 成器来进行词法和语法分析 。而SIP的基于文本的协议,类似于HTTP 。基于文本的编码意味着头域的 含义是一目了然的,如From、To、Subject等域名 。这种分布式、几乎不需要复杂的文档说明的标 准规范夫风格,其优越性已在过去的实践中得到了充分的证实(现在广为流行的邮件协议SMTP就是 这样的一个例子) 。SIP的消息体部份采用SDP进行描述,SDP中的每一项格式为=,也比较简单 。
在支持会议电话方面,H.323由于由多点控制单元(MCU)集中执行会议控制功能,所有参加会 议终端都向MCU发送控制消息,MCU可能会成为颈,非凡是对于具有附加特性的大型会议;并且 323不支持信令的组播功能,其单功能限制了可扩展性,降低了可靠性 。而SIP设计上就为分布式的 呼叫模型,具有分布式的组播功能,其组播功能不仅便于会议控制,而且简化了用户定位、群组邀 请等,并且能节约宽带 。但是H.323集是中控制便于计费,对宽带的治理也比较简单、有效 。

推荐阅读