所以我理解的方式,如果站A和站B,则尝试在同一时隙处发送帧,发生冲突,导致下一个插槽的尝试。但算法不会重复自己吗?同样的两个站将在第二个插槽上再试一次,它仍然会碰撞。此外,这意味着第一槽将保持未使用。

我理解错了吗?

有帮助吗?

解决方案

这是一个很好的问题。当您研究更多时,会发现所有Aloha协议变体都具有高效和含糊不清的。是的,开槽的Aloha的中心概念似乎表明碰撞会引发无限的数据碰撞循环。让我们来看看来自UOH的纯Aloha协议的(仅限)纯粹的Aloha协议:

  • 如果任何设备都有数据发送,请发送它
  • 如果发生碰撞,请稍后再次尝试

    开槽Aloha只是纯Aloha的延伸,该纯Aloha增加了一个典型的典型:

  • 数据必须以规则的间隔(插槽)发送

使用规则间隔显着提高效率。

现在,关于冲突,请遵守以下图:

来源: wikimedia

注意器件C,F和H遇到碰撞,当它们都尝试以相同的时间间隔发送数据?设备C尝试立即重新发送数据,设备F等待几帧,设备H尚未尝试再次发送数据。

谈到Aloha协议时,通过发送数据“稍后”是什么意思?从现在开始的一秒钟后。三个插槽稍后。两年后。这取决于每个设备来决定。

如果以后意味着每个设备的相同帧,也会发生无限碰撞。这就是为什么必须开发质量方法以防止这种行为。在编程中,这被称为退避方案。

可预测且有效的退避方案将尝试实现可能产生的帧(新帧,并从其冲突的数据重复),这降低了碰撞概率,例如泊松分布。

推荐阅读:泊松分发

许可以下: CC-BY-SA归因
不隶属于 cs.stackexchange
scroll top