CSMA/CD的退避算法

2025年2月26日 | 阅读 6 分钟

引言

退避技术是一种解决冲突的技术。当发生冲突时,两个设备会等待随机一段时间,然后重新传输信号。它们会持续尝试,直到数据成功发送。这被称为退避,因为节点在尝试重新访问之前会“退避”一段设定的时间。这个随机的时间段与它们尝试传输信号的次数有关。

算法

下面提供了一个基本流程图,简要说明了退避算法。

Back-off Algorithm for CSMA/CD

正如所观察到的,随着每个周期的增加,N 的值也在增加,[0, 2^n-1] 的范围也随之增加,从而降低了冲突的概率。

此外,在某些情况下,这可能是不利的,因为持续的退避会导致一些节点丢弃数据包。毕竟,最大尝试次数限制已经达到。

因此,在发生冲突后,每个节点都必须等待一段指定的时间,如公式所示:

Tslot 是一个离散的时间槽,长度为 2t,其中 t 是网络的传播延迟最大值。

K = [0, 2n -1]。N 是冲突次数。

以下是它的一些主要特点:

发送设备在发生冲突后会等待一段随机的时间,然后再次发送数据包。为了避免多个设备同时重新发送数据包并导致新的冲突,会使用随机延迟。

随机延迟时长使用指数退避方法计算。每次接触后,延迟时间翻倍并达到其最大值。它从最小值开始。时隙时间是从信号从网络段的一端传播到另一端所需的时间;最大延迟时间通常设置为 1024 个时隙时间。

退避方法实现在每个设备的网卡(NIC)的硬件中。当检测到冲突时,网卡会生成一个介于 0 和 2^n-1 之间的随机整数,其中 n 代表检测到的冲突次数。然后,网卡通过将随机数乘以时隙时间来计算重新传输前的延迟。

如果在达到最大重传次数仍未成功传输,设备将关闭并显示传输错误。

CSMA/CD 退避算法的应用

许多应用可以使用为载波侦听多路访问/冲突检测(CSMA/CD)设计的退避算法来实现。它主要应用于需要多个设备共享通用介质的网络通信系统。其中一些已在下面列出:

1. 以太网网络

该算法最常见的应用是在以太网网络中,特别是基于 IEEE 802.3 标准的网络。它有助于管理数据流量和减少本地区域网(LAN)中的冲突,从而确保计算机、打印机和服务器等设备之间高效可靠的通信。

2. 无线网络

尽管无线通信的性质使得 CSMA/CD 在无线网络中不太普遍,但退避算法背后的原理已纳入 Wi-Fi (IEEE 802.11) 使用的 CSMA/CA(冲突避免)等协议中。这些协议采用退避机制来控制对无线介质的访问,并防止冲突的发生。

3. 电缆调制解调器网络

然而,提供宽带互联网服务的电缆调制解调器网络也基于退避算法的变体,具体取决于网络内经历的拥塞或流量级别。在这些骨干网络中,许多用户共享系统内的带宽和其他资源,以避免冲突。尽管如此,这些系统中的退避算法旨在控制对该共享资源的访问,以最大程度地减少干扰并公平地分配带宽。

4. 工业自动化

此外,在工业自动化环境中,许多设备和传感器通过需要多种流量管理措施的网络进行通信,以实现数据冲突的预防。这对于确保对工业过程的监控和监督至关重要的实时数据传输非常重要。

5. 数据中心

此外,数据中心(服务器和网络设备所在的地方)使用以太网网络,并通过利用退避算法来促进数据流。此外,它们有助于在密集的高速局域网环境中提高性能并减少拥塞。

好处

1. 冲突概率呈指数级降低。

2. 提高网络性能:退避算法通过减少重传和冲突的数量,从而提高整体网络性能。

3. 提高信道利用率:退避算法通过减少冲突数量来提高信道利用率,更好地利用网络资源。

4. 减少延迟:减少冲突数量也将减少传输尝试之间的等待时间,从而减少延迟。

5. 公平性:在其他条件相同的情况下,退避算法可以保证网络内部的公平性。

6. 适应性:退避算法可以作为一种策略来应对网络中的动态变化。例如,当网络拥塞时,它会增加重传尝试之间的时间,而在网络空闲时则会减少,从而适当地利用网络资源。

7. 可扩展性:退避算法适用于任何规模的网络;从小型的局域网到大型的广域网。

8. 能源效率:退避算法通过减少冲突和重传次数来降低网络节点的能耗;这对于手机和物联网设备等电池供电设备尤其重要。

9. 健壮性:为了确保大量节点不会导致性能下降或恶化,退避算法被认为是健壮的。

缺点

1. 捕获效应:赢得一次的站点会一直赢得。

2. 仅兼容两个主机或站点。

3. 开销增加:网络退避算法会增加额外的开销,因为在重新传输任何数据包之前必须等待一段随机时间。

4. 复杂性:例如,退避算法很复杂,需要很高的实现复杂性。

5. 易受攻击:拒绝服务(DoS)攻击是退避算法面临的一些漏洞,攻击者可以操纵随机时间间隔,使网络失明,从而停止运行。

6. 性能有限:事实上,虽然 Bacchus 的节点可以在低到中等负载情况下提高网络性能,但在许多节点试图访问网络的重负载情况下可能不成功。

7. 时间敏感型应用的初始化和效率问题:可能,退避算法不适用于实时视频流或 IP 语音(VoIP)等时间敏感型应用,因为即使是轻微的延迟也可能产生严重后果。

8. 没有扩展空间:在可扩展性方面,退避算法可以用于任何规模的网络,但在节点数量众多且并发访问信道的大型网络中效率会降低。

9. 邻近性和噪声相关的等待时间:退避算法依赖于距离和干扰;相互靠近的节点发生冲突的概率更高,因此需要更长的随机等待周期。

10. 不支持 QoS(服务质量):它不支持服务质量(QoS),这对于视频流、VoIP、在线游戏等许多网络应用至关重要。

结论

退避算法被认为是载波侦听多路访问/冲突检测(CSMA/CD)以太网网络中管理网络访问和高效数据传输的关键组成部分。在发生冲突时,退避算法可以通过在重新发送前引入随机延迟来帮助减少再次发生冲突的可能性。具体来说,在检测到冲突后,每个设备都会在由先前冲突次数决定的特定间隔内等待随机持续时间。由于指数退避策略,后续冲突的范围呈指数级增长。退避算法通过减慢重传尝试,确保设备之间更公平的带宽分配,从而减少冲突的再次发生,并提高整体网络性能。这对于保持以太网网络的韧性和效率至关重要,特别是在高流量和许多设备争用通信资源的区域。