1.运输层:TCP超时重传时间的选择
笔记来源:
湖科大教书匠:TCP超时重传时间的选择
声明:该学习笔记来自湖科大教书匠,笔记仅做学习参考
若将超时重传时间RTO < \lt < 报文段0的往返时间RTT0,则会出现报文段不必要的重传
若将超时重传时间RTO
>
\gt
> 往返时间RTT0,则会出现网络空闲时间增加
综上:RTO的值应该略大于RTT0即可
若报文段1的往返时间RTT1大于之前设置的RTO,则会出现不必要的重传
不能直接使用某次测量得到的RTT样本来计算超时重传时间RTO,固定的RTO可能适用于某个报文段,但不适用于其他报文段,即
某个报文段的往返时间
RTT
\text{RTT}
RTT
>
>
> 超时重传时间RTO,不合适
应该使用
加权平均往返时间
RTT
S
\text{RTT}_S
RTTS
>
\gt
> 超时重传时间RTO
超时重传时间RTO计算公式
往返时间RTT的测量较复杂
情况一:原报文段丢失,重传报文段后,收到确认报文段,但发送方不知道这个确认报文段是原报文段的确认还是重传报文段的确认,实际上此确认报文段是对原报文段的确认
情况二:确认报文段的传输时间过长,触发了超时重传,但发送方不知道这个确认报文段是原报文段的确认还是重传报文段的确认,实际上此确认报文段是对原报文段的确认
由以上两种情况可知,我们无法测准RTT,也就无法准确计算RTO,我们也就无法确定超时重传的时间。使用修正过的Karn算法解决这个问题,解决方式:报文段每重传一次,就把超时重传时间RTO增大。
典型做法:若出现超时重传,则新RTO取为旧RTO的2倍