计算机网络—RTT-RTTS-RTTD和RTO的解释及例题讲解

  RTT(往返时延)、RTTS(平滑往返时间)、RTTD(往返偏移时间)和RTO(超时重传)是网络通信中常用的几个术语,尤其在TCP协议中非常重要。

  下面是一个表格,用于解释这些术语的定义和它们之间的区别:

术语 全称 定义 用途 计算公式

RTT

往返时延

Round-Trip Time 数据包从发送端发送到接收端,再从接收端返回发送端的总往返时间。 用于测量网络延迟。 直接测量

RTTS

平滑往返时间

Smoothed Round-Trip Time RTT的加权平均值,用于平滑短期的RTT波动。 提供更稳定的RTT估计,用于计算RTO。

当第一次n=1测量RTT样本时,RTTs的值为所测量到的RTT样本的值

n代表当前最新值,n-1代表上一次旧值。

以后每次计算公式如下:

RTTS(n) = (1-alpha) * RTTS(n-1) + alpha *RTT(n)

RTTD

往返偏移时间

Round-Trip Time Deviation RTT的偏差值,表示RTT与其平均值之间的差异。 用于估计RTT的波动性,辅助计算RTO。

当第一次n=1测量时,RTTD取RTT样本值的一半。

n代表当前最新值,n-1代表上一次旧值。

以后每次计算公式如下:

RTTD(n) = (1-beta) *RTTD(n-1) + beta * |RTTS (n)- RTT(n)|

RTO

超时重传时间

Retransmission Timeout 超时重传时间,如果在此时间内未收到确认应答,则认为数据包丢失。 控制数据的重传,防止因网络延迟导致的不必要重传,优化TCP性能。 RTO(n) = RTTS(n) + 4*RTTD(n)

解释计算公式

  • RTT 的值通常是通过测量发送数据包和接收到响应之间的时间差来直接获得的。它反映了从发送一个信号到收到确认的总时间,这个时间包括了数据传输和处理的延迟。
  • RTTS 是对RTT测量值的一种平滑处理。使用指数加权移动平均(EWMA)算法来计算,其中 ( alpha ) 是平滑因子,通常取值约为 0.125。这个公式有助于减少偶然的高峰或低谷对RTT估计的影响,使RTT估计更加稳定。
  • RTTD 是衡量RTT值波动的一个指标。在网络条件变化或负载波动时,RTTD可以帮助调整RTO的大小,以适应网络状况的变化。其中 ( beta ) 是用于计算偏差的平滑因子,通常取值约为 0.25。这个偏差值衡量了RTT的波动程度。
  • RTO 的计算基于当前的RTTS和RTTD值,用于确定何时应该重新发送未被确认的数据包。乘以4的因子是为了确保在网络条件变化时有足够的缓冲,防止过早重传,同时也避免因响应太慢而延迟数据传输。

例题:

假定TCP在开始建立连接时,发送方设定超时重传时间RTO=6秒。
(1)当发送方收到对方的连接确认报文段时,测量出RTT样本值为1.5秒。试计算现在的RTO值。
(2)当发送方发送数据报文段并收到确认时,测量出RTT样本值为2.5秒。试计算现在的RTO值

1
已知RTO=RTTS+4*RTTD。其中 RTTd RTTs 的偏差加权均值。
初次测量时,
  • RTTD取RTT样本值(1.5)的一半。
  • RTTD(1) = RTT/2 = 1.5/2=0.75s
依题意,当第一次测量RTT样本时,RTTS =  RTT( 1 )样本值为 1.5 秒,则
RTO(1) = RTTS(1) + 4*RTTD(1) = 1.5 + 4*0.75 = 4.5s
2
后续测量中,
  • RTTS(2) = (1-alpha) * RTTS(1) + alpha *RTT(n)
  • Alpha=0.125
  • =(1-0.125)×1.5s+18×2.5s=1.625s
  • RTTD(2=1-beta* RTTD(1+beta*|RTTS(2)- RTT(2)|
  • Beta=0.25
  • =(1-0.25)×0.75s + 0.25×| 1.625s-2.5s |  = 0.78125s
  • RTO(2) =  RTTS(2) + 4*RTTD(2)
  • =1.625+4*0.78125 = 4.75s
上一篇:LeetCode 面试题 02.07. 链表相交


下一篇:java 23种设计模型讲解跟实例-行为型模式