天天看点

重试中的指数退避算法

重试中的指数退避算法

退避算法:

      退避算法是在在单个信道的基于竞争的介质的一种访问控制(MAC)协议。每当一个以上的节点在同一时刻试图访问介质的时候,它会导致分组碰撞。如果相撞的节点试图再次访问信道,在节点做及时同步的时候数据包将发生碰撞。因此,节点需要时间位差。为了产生这种位差,退避算法(例如二进制指数退避(BEB)) 。例如,在BEB算法中,每当一个节点的传输涉及在与另一个节点的传输发生碰撞,两个节点都将选择一个随机的等待时间,在下次再次尝试前需要等待选择的随机时间。如果他们在这样的尝试都没有成功,他们自己的竞争窗口增加一倍,在发射前再次选择等待一个随机时间。这个过程将被重复一定次数的尝试。如果经过数次尝试之后都失败了,那么其传输的数据包将被从传输队列中移除。

      二进制退避技术(Binary Exponential Back off). 指在遇到重复的冲突时,站点将重复传输,但在每一次冲突之后,随着 时延 的平均值将加倍。二进制指数退避算法提供了一个处理重负荷的方法。尝试传输的重复失败导致更长的退避时间,这将有助于负荷的平滑。如果没有这样的退避,以下状况可能发生:两个或多站点同时尝试传输,这将导致冲突,之后这些站点又立即尝试重传,导致一个新冲突。

继续阅读