CSMA/CD 的后退算法
后退算法是一种用于解决冲突的算法。它的工作方式如下,
当发生这种冲突时,两台设备均会等待随机一段时间然后再重新传输信号,它们会一直尝试直到数据成功传输为止。这称为后退,因为节点在尝试再次重新访问之前会“后退”一段时间。这段随机时间与设备已尝试传输信号的次数成正比。
算法
下面是一个简单的流程图来简要解释 Back Off 算法。
可以看出,每次迭代 N 的值都会增加,[0,2 ^ n-1] 的范围也会增加,这样一来,发生冲突的可能性就会降低!
此外,在某些情况下它可能是一个缺点,因为持续不断地后退会导致一些节点丢弃数据包。毕竟,已经达到最大的尝试次数限制。
因此,在发生冲突后,每个节点都必须等待一段时间,该时间由以下公式给出:
Waiting time = K * Tslot
Tslot是离散时间槽,其长度等于 2t,其中 t 是网络中的最大传播延迟。
K = [0, 2n -1]。n 是冲突次数。
广告