5.6 TCP超时重传时间的选择

5.6 TCP超时重传的时间的选择(RTO)

  • 利用每次测量得到的RTT样本,计算加权平均往返时间RTTs(又称为平滑的往返时间)。
  • 超时重传的时间应略大于RTTs的值。
  1. 计算RTTS \[ 初始RTT_S = 测得的第一个RTT \] \[ RTTs = (1-\alpha)\times 旧的RTTs + \alpha \times 新的RTT样本 \] 建议 \(\alpha\) = 0.125

  2. 计算RTTD \[ 初始RTT_D = \frac{RTT_1}{2}\\ RTT_D = (1 - \beta) \times 旧的RTT_D + \beta \times \vert RTT_S - 新的RTT样本 \vert \] 建议\(\beta\) = 0.25

  3. 针对出现超时重传时无法测准往返时间RTT的问题,Kan提出了一个算法:在计算 加权平均往返时间RTTs时,只要报文段重传了,就不采用其往返时间RTT样本。也 就是出现重传时,不重新计算RTTs,进而超时重传时间RTO也不会重新计算。

  4. 这又引起了新的问题。设想出现这样的情况:报文段的时延突然增大了很多,并目 之后很长一段时间都会保持这种时延。因此在原来得出的重传时间内,不会收到确 认报文段。于是就重传报文段。但根据Kar算法,不考虑重传的报文段的往返时间 样本。这样,超时重传时间就无法更新。这会导致报文段反复被重传。

  5. 因此,要对Kan算法进行修正。方法是:报文段每重传一次,就把超时重传时间 RTO增大一些。典型的做法是将新RTO的值取为旧RTO值的2倍。

  6. 计算超时重传时间 \[ RTO = RTT_S + 4 \times RTT_D \] 只要某报文段超时重传,就将RTO设为原来的两倍,而不是按照上述公式计算


5.6 TCP超时重传时间的选择
http://binbo-zappy.github.io/2024/11/18/计算机网络/5-6-TCP超时重传时间的重传/
作者
Binbo
发布于
2024年11月18日
许可协议