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