SampleRTT如何每RTT测量一次,而不测量每个段?

网络工程 通讯协议 协议理论 rtt
2021-07-07 11:21:21

根据 RFC,SampleRTT 每 RTT 测量一次。

我的文本:计算机网络:自上而下的方法(6ed By: Kurose & Ross)还指出:

大多数 TCP 实现一次只进行一个 SampleRTT 测量,而不是为每个传输的段测量一个 SampleRTT。也就是说,在任何时间点,仅针对已传输但当前未确认的段之一估计 SampleRTT,导致大约每个 RTT 一次的 SampleRTT 新值。

但是当同时发送多个未确认的段时,每个段可能有不同的RTT。如何每个 RTT 测量一次,而不是每个分段测量一次?

1个回答

我的理解是,为简单起见,该算法一次测量单个段的 RTT,这基本上是一种采样技术。

如果我们测量每个段的 RTT,当 ACK 到达时,我们会得到一整套 RTT。如果我们一次只有一个测量值处于活动状态,我们会得到完整系列时间的一个子集。由于我们对 RTT 系列做的下一件事是平滑它们,如果我们有完整的集合或子集,它没有太大区别。

我们使用平滑时间来估计未来的 RTT,以减少拥塞但保持利用率。拥有 100% 的片段时间而不是每个发送窗口一个片段的时间并不会显着改善预测,因为真正的问题是不可预测的突然变化,例如链接断开或高使用率流开始。