SIP协议中的T1和T2

来源:互联网 发布:晚礼服 知乎 编辑:程序博客网 时间:2024/04/30 13:16

本文转载自:http://net.chinaunix.net/8/2008/10/21/1294575.shtml


SIP协议中的T1和T2
因为SIP定义了自己的可靠性机制,所以可以使用不可靠的传输层协议,比方说UDP,来进行连接。
使用UDP来传输SIP时,消息的丢失和接受消息的顺序错乱都是有可能的。因为UDP只能保证传输的内容是无错的,但是不能保证传输的内容一定会到达目的地。SIP的可靠性机制包括:
1. 重传计时器;
2. CSeq递增;
3. 确认通知
UAC和stateful proxy都可以在一个新的request发送之后启动T1计时器。如果在T1时间过后都没有收到response,就要重发request。如果收到了一个临时的response(1xx),T1就被忽略,而一个时间更长的计时器T2就开始计时了。如果在T1时间过后都没有收到response,就要重发request。
每次重发request之后,计时器就会翻倍,但最大不超过T2。如果超过T2,每次就按T2时间重发。当增长到timer-T1X64时,这种指数级的增长过程会停止。此时的stateful proxy会丢弃重发的request,只是按照它自己的计时器重发request。一般它还会重发临时的response(1xx)。
对于INVITE的request,重传机制会略有不同。在收到一个临时的response(1xx)之后,INVITE永远都不会被重发。一个proxy可能在3分钟之后丢弃transaction状态。
推荐的T1和T2的值分别为500ms和4s。一般来说,T1是网络中每一跳的时间。这里的值可以更大,但不能缩小,因为这样会产生更多的重传信息。

0 0