SIP可靠性(SIP Reliability)

来源:互联网 发布:日语动漫配音软件 编辑:程序博客网 时间:2024/06/15 08:24
根据RFC3261,SIPUA必须支持TCP及UDP底层传输协议。这两种方式除了使用方式不一样之外,对SIP协议自身的影响主要体现在可靠性处理上。

 

SIP可靠性机制主要是为了支持不可靠传输层协议,如UDP。当SIP使用的传输层协议为TCP或TLS时,这种机制将不再使用,因为TCP协议能处理消息重发和报告目的端不可达到问题等。

 

SIP使用UDP传输层协议时,必须提供机制解决消息包丢失和消息包传输次序混乱问题。SIP的可靠性机制包括:
1 重传时钟
2 CSeq值的增长
3 ACK

 

时钟一般在事务中使用,而接受到的CSeq值并不一定是严格增一的。

 

 

SIPon UDP vs SIP on TCP
TCP虽然可以支持传输可靠性,但必须知道TCP重发消息包的时间。虽然我们相信使用TCP连接时,但把数据包传给传输层时,默认其能将包成功的发送到对端;但如果旧包被新包代替,而旧包未到达对端则无需继续传送。而UDP允许SIP应用进行时间和可靠性的控制,所以对协议本身更有优势。
一般TCP连接带来的资源消耗较大,而像Proxy这种业务繁忙的单元却很难支持大量的TCP连接。
而之所以要支持TCP,是因为一些防火墙不支持UDP包的穿越。使用TCP,它可以简单的处理SIP消息,并打开通道进行相关RTP流的传输。
但综合来看,TCP作为SIP传输层的应用比较少见,在将来一段时间该状况可能不变。

原创粉丝点击