超时重传时间的确定
超时重传时间RTO
:TCP数据报文段发出后,经过RTO的时间没有收到其确认报文,就会重新发送该报文段往返时间RTT
:TCP数据报文段发出到收到该报文的确认报文所经历的时间- 通常:超时重传时间RTO要略大于往返时间RTT,但由于实际网络环境的复杂性,RTT的测量并没有那么容易,RTT的测量有可能偏大或偏小。
一、实际网络中使用的往返时间RTT
是由平滑往返时间
R
T
T
S
RTT_S
RTTS度量的
-
在实际的网络中,通常不直接使用测量得到的
RTT样本
,而是使用加权平均往返时间
R T T S RTT_S RTTS , R T T S RTT_S RTTS是经过RTT样本
加权计算得到的:其中 R T T S RTT_S RTTS 又称为平滑往返时间
R T T S 1 = R T T 1 , ( R T T 1 是第一次测得的 R T T 样本 ) RTT_S1 = RTT_1,(RTT_1是第一次测得的RTT样本) RTTS1=RTT1,(RTT1是第一次测得的RTT样本)新的 R T T S = ( 1 − α ) × 旧的 R T T S + α × 新的 R T T 样本 新的RTT_S = (1-\alpha)\times 旧的RTT_S + \alpha \times 新的RTT样本 新的RTTS=(1−α)×旧的RTTS+α×新的RTT样本
其中: 0 ≤ α < 1 0 \leq \alpha < 1 0≤α<1,当前的建议标准是 α = 0.125 \alpha = 0.125 α=0.125.
- 也即新的
平滑往返时间
R T T S RTT_S RTTS 是旧的平滑往返时间
和新测得的往返时间样本RTT样本
的加权平均 - 举例: R T T S 2 = ( 1 − α ) × R T T S 1 + α × 新的 R T T 样本 RTT_S2 = (1-\alpha)\times RTT_S1 + \alpha \times 新的RTT样本 RTTS2=(1−α)×RTTS1+α×新的RTT样本
- 也即新的
二、超时重传时间RTO
由平滑往返时间
R
T
T
S
RTT_S
RTTS和RTT偏差
共同决定
-
请不要忘了,我们的任务是计算超时重传时间RTO,上述的仅仅是处理得到了比较合理的平滑往返时间 R T T S RTT_S RTTS
-
RTO
的官方建议计算标准是:
R T O = R T T S + 4 × R T T D RTO = RTT_S + 4 \times RTT_D RTO=RTTS+4×RTTD -
其中 R T T D RTT_D RTTD是RTT偏差的加权平均,其计算公式如下:
R T T D 1 = R T T 1 ÷ 2 , ( R T T 1 是第一次测得的 R T T 样本 ) RTT_D1 = RTT_1 \div 2,(RTT_1是第一次测得的RTT样本) RTTD1=RTT1÷2,(RTT1是第一次测得的RTT样本)新的 R T T D = ( 1 − β ) × 旧的 R T T D + β × ∣ 旧的 R T T S − 新的 R T T 样本 ∣ 新的RTT_D = (1-\beta)\times旧的RTT_D + \beta\times |旧的RTT_S - 新的RTT样本| 新的RTTD=(1−β)×旧的RTTD+β×∣旧的RTTS−新的RTT样本∣
- 其中: 0 ≤ β < 1 0 \leq \beta < 1 0≤β<1,当前官方建议标准 β = 0.25 \beta = 0.25 β=0.25
-
上述的绝对值正好解释了为什么是偏差,所谓的偏差就是前一次计算的
较为合理的往返时间
R T T S RTT_S RTTS与新测量的RTT样本
之间的偏差 -
也即对于第三个公式理解就是:新的超时重传时间RTO是平滑往返时间 R T T S RTT_S RTTS与 R T T D RTT_D RTTD线性求和
- 而
R
T
T
D
RTT_D
RTTD是旧的
R
T
T
D
RTT_D
RTTD与
RTT样本
的偏差的加权平均 - 举例: R T T D 2 = ( 1 − β ) × R T T D 1 + β × ∣ R T T S 1 − 新的 R T T 样本 ∣ RTT_D2 = (1-\beta)\times RTT_D1 + \beta \times |RTT_S1 -新的RTT样本| RTTD2=(1−β)×RTTD1+β×∣RTTS1−新的RTT样本∣
- 而
R
T
T
D
RTT_D
RTTD是旧的
R
T
T
D
RTT_D
RTTD与
-
三、总结
①超时重传时间RTO
由平滑往返时间
R
T
T
S
RTT_S
RTTS和RTT偏差
共同决定
②平滑往返时间
R
T
T
S
RTT_S
RTTS由新测得的往返时间样本RTT
和上一次的平滑往返时间
R
T
T
S
RTT_S
RTTS加权平均决定
③RTT偏差
由新测得的往返时间样本RTT
和上次的RTT偏差
以及上次的平滑往返时间
R
T
T
S
RTT_S
RTTS共同决定
如此迭代,不断更新超时重传时间RTO
如果本文对您有用,可以点赞、收藏本文哦,下次用到时就好找多了
如果能关注作者就太好了,作者将持续学习,持续输出,持续分享!谢谢鼓励!