我刚开始建立网络,弄清楚如何计算样本RTT,然后再用它来计算估计的RTT,
这是我指定的问题:
假设TCP对往返时间(estimatedRTT)和RTT (DevRTT)中的偏差的当前估计值分别为250 msec和17 msec (变量定义见教科书)。假设RTT的下三个测量值分别是330、400和320。
计算TCP的新值estimatedRTT、DevRTT,以及在这三个测量值之后的TCP超时值为obtained.Use α = 0.125和β = 0.25的值。
据估计:
RTT=(1-Alpha)*Estimated RTT+Alpha*SampleRTT
DEV RTT=(1-BETA)*DEVRTT+BETA*|SAMPLERTT-ESTIMATEDRTT|
timout=EstimatedRTT-4*DEVRTT我有一些问题:
发布于 2016-11-24 18:51:12
在我看来,写这个算法的一个更好的方法是这样。
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
编辑:评论中提出的问题
发布于 2016-12-25 05:26:33
超时公式不正确。它应该是
timeout = EstimatedRTT + 4* DevRTT
样例RTT是问题中给出的RTT,即每次迭代的330、400、320,而estimatedRTT以前是estimatedRTT。
https://networkengineering.stackexchange.com/questions/23317
复制相似问题