TCP RTO

来源:百度文库 编辑:神马文学网 时间:2024/04/30 02:47:31
TCP RTO2009-03-24 14:16 传统地,TCP设施使用粗间隔时钟来测量RTT并触发RTO,这使得应用于RTO上的最小值很大。研究表明,需要一个很大的最小RTO值来保持TCP的保守,以避免虚假重发 [AP99]。因此,本规范要求有一个很大的最小RTO值作为保守之需,而同时承认,在未来的某个时刻,研究可能表明一个小一些的最小RTO值是可接受 的,或者,是优越的。
(2.5) 可以给RTO使用最大值,如果该值至少有60秒。

维护RTO定时器
一个设施必须维护重发定时器,使得一个段绝不会过早的重发,亦即,在该段的前一次发送之后少于一个RTO的时间里重发。
下面是推荐的维护重发定时器的算法。
(5.1) 每一次一个包含数据的包被发送(包括重发),如果该定时器没有运行则启动它,使得它在RTO秒之后超时(按照当前的RTO值)。
(5.2) 当所有的发出数据都被确认之后,关闭该重发定时器。
(5.3) 当接收到一个ACK确认一个新的数据,重新启动该重发定时器,使得它在RTO秒之后超时(按照当前的RTO值)。
当重发定时器超时后,作下列事情:
(5.4) 重发最早的尚未被TCP接收方响应的段。
(5.5) 宿主机必须设置RTO= RTO * 2(“还原定时器”)。在上面(2.5)中讨论的最大值可以用来为该两倍乘操作提供一个上限。
(5.6) 启动重发定时器,使得在RTO秒之后它会超时(对于5.5所描述的两倍乘操作之后的RTO的值而言)。
注意到在重发之后,一旦一个新的RTT(回环时间)测量完成(这只有在新的数据被发出并且得到响应时才会发生),在第二节中描述的计算就会执行,包括RTO计算,而这可能会导致“崩溃的”RTO在按指数补偿之后被放弃(规则5.5)。