如何计算样本RTT?

网络工程 网络核心 网络发现
2021-07-28 04:34:30

我是网络新手,并想知道如何计算样本 RTT,稍后将使用它来计算估计的 RTT,

这是我分配的问题:

假设 TCP 当前的往返时间估计值 (estimatedRTT) 和 RTT 偏差 (DevRTT) 分别为250 msec17 msec,(变量定义见教科书)。假设RTT的接下来的三个测量值330400以及320 分别。

得到这三个测得的RTT值后,计算TCP的新值estimatedRTT、DevRTT和TCP超时值。使用α = 0.125的值β = 0.25

估计:

RTT=(1-Alpha)*Estimated RTT+Alpha*SampleRTT
DEV RTT=(1-BETA)*DEVRTT+BETA*|SAMPLERTT-ESTIMATEDRTT|
timout=EstimatedRTT-4*DEVRTT

我有一些疑问:

  1. 如何计算样本 RTT?
  2. 上面公式中估计的 RTT 是之前估计的 RTT 吗?
2个回答

在我看来,编写此算法的更好方法是这样的。

EstimatedRTT = (1-α)*EstimatedRTT_prev + α*SampleRTT
DevRTT = (1-β)*DevRTT_prev + β*|SampleRTT - EstimatedRTT|
timeout = EstimatedRTT + 4*DevRTT

这可能回答了你的第二个问题。注意需要按这个顺序计算,因为上一个公式中计算的值在下一个使用。

获取 RTT 样本的方式是使用计时器来测量发送数据包所需的时间以及再次接收该特定数据包的确认时间。这意味着它可以在每个 RTT 中获取一个新样本。通过使用时间戳 TCP 选项,还可以使用每个 ack 作为样本。

来源:https : //tools.ietf.org/rfc/rfc6298.txt

编辑:解决了评论中提出的问题

您的超时公式不正确。它应该是

timeout = EstimatedRTT + 4* DevRTT

样品RTT是在问题,即给定的RTT 330400320每次迭代和estimatedRTT以前是estimatedRTT