指数退避算法

指数退避算法

发生冲突时,会发送干扰信号以防止进一步发送数据。稍后,经过大约 k μs 后,会重新发送帧。​​如果在此期间也发生冲突,则在大约 k1 μs 后重新发送。如果在此期间也发生冲突,则在 k2 μs 后重新发送。

我在互联网上搜索并得到下面的链接,它表明随机值介于 0 和 ((2 的 n 次方) - 1) 之间,其中“n”是失败尝试的次数。 http://en.wikipedia.org/wiki/Exponential_backoff

但是,我对“51.2 μs”这个值感兴趣。上面的链接将“51.2 μs”作为示例值。但是,最佳值应该从哪里开始呢?有什么想法吗?

非常感谢,Karthik Balaguru

答案1

51.2 μs 的值是在 10baseT(10 Mbps)以太网网络上传输最小允许大小(64 字节)的帧所需的时间(64 字节 = 512 位 = 51.2μs @ 10 Mbps)。

此时发送干扰信号是为了确保该段上的所有站都检测到碰撞。

答案2

你的意思是k1? 每台机器都应该有所不同。

您希望重新发送尽可能快地进行,而不会再次发生冲突。如果每台机器的k1不同,那么机器1的重传就不会干扰机器2的重传。

具体来说,最优k1将大于发送单个数据包的最大时间 最低限度无论使用什么链路层技术。

相关内容