CSMA/CD中的冲突检测

17 Mar 2025 | 5 分钟阅读

CSMA/CD (载波侦听多路访问/冲突检测) 是一种早期的以太网技术/局域网媒体访问控制技术,在共享总线拓扑结构和同轴电缆用于将每个节点(计算机)连接到网络时,它被普遍使用。以太网现在是全双工的;拓扑结构是星形(通过交换机或路由器连接)或点对点(直接连接)。因此,CSMA/CD 不再使用,但它们仍然可用。

设想这样一个场景:'n' 个站点连接到一条链路,并且都在等待通过该通道发送数据。所有“n”个站点都希望连接到该链路或通道以发送自己的数据。当多个站点同时传输数据时,就会出现问题。在这种情况下,来自多个站点的数据将发生冲突。

CSMA/CD 就是这样一种方法,其中遵循该协议的各个站点就某些条款和冲突检测技术达成一致,以实现高效传输。为了防止数据在传输到目的地时被损坏,该协议决定了哪个站点何时广播。

CSMA/CD 如何工作?

步骤 1: 验证发送方是否已准备好发送数据包。

步骤 2: 验证变速箱链路是否处于空闲模式。

发送方必须持续监控传输链路或介质的状态。它定期监控来自其他节点的广播以执行此操作。在链路上,发送方发送虚假数据。如果它没有收到任何冲突信号,则链路当前未被使用。当载波被感知为空闲且没有冲突时,数据将被发送。否则,它不发送数据。

步骤 3: 发送数据并查找冲突。

来自发送方的数据通过链路发送。CSMA/CD 中没有“确认”系统。它通过冲突信号验证成功和不成功的传输。如果在传输过程中节点收到冲突信号,则传输停止。然后,站点向链路发送一个干扰信号,并等待预定的时间,然后再次发送帧。它在某个任意间隔后尝试再次发送数据,并重复与之前相同的过程。

步骤 4: 如果在传播过程中未发现冲突,则发送方完成帧传输并重置计数器。

一个站点如何确定其数据是否发生冲突?

Collision Detection in CSMA/CD

考虑上述情况。A 和 B 站。

传播时间:Tp = 1 小时(信号从 A 点传播到 B 点需要 1 小时)。

发生冲突后,会生成一个冲突信号并发送到 A 和 B 站以提醒它们。由于冲突发生在中间,冲突信号也需要 30 分钟才能到达 A 和 B。

该链路上所有站点都可以听到此冲突信号。

我们如何确定发生冲突的数据来自我们的站点?

在这种情况下,传输时间 (Tt) > 传播时间 (Tp) [大致上限] 适用。

这是因为我们希望确保在我们从站点广播数据的最后一个比特之前,一些比特已经到达目的地。这保证了链路不会过载,并且不会发生冲突。

然而,上面的绑定是松散的。我们还没有给出冲突信号何时需要返回给我们。在执行此操作时,请考虑最坏情况。

Collision Detection in CSMA/CD

再次考虑系统。

此时数据在到达 B 之前不久发生冲突。冲突信号再次需要 59:59 分钟才能到达 A。因此,A 在 2 * Tp 之后,或者大约 2 小时之后收到冲突信息。

这是一个系统能够确定其自身数据是否发生冲突的最快时间。

传输数据包的最小大小应该是多少?

当我们没有这么长的包时,填充很有帮助。为了满足上述要求,我们可以在数据末尾填充额外的字符。

CSMA/CD 碰撞检测使用以下特性

  • 载波侦听: 在发送数据之前,设备会侦听网络以查看传输介质是否可用。如果介质当前繁忙,设备会等待介质空闲后再发送数据。
  • 多个设备
  • 在 CSMA/CD 网络中共享相同的传输通道,称为多路访问。当介质可用且空闲时,所有设备都具有平等的访问权限并可以传输数据。
  • 冲突检测: 当两个或更多设备同时传输数据时,就会发生冲突。当设备检测到冲突时,它会立即停止传输并发送一个干扰信号以提醒网络中的所有其他设备发生冲突。为了降低再次发生冲突的可能性,设备会随机等待一段时间,然后再次尝试广播。
  • 退避算法: CSMA/CD 中采用退避算法来决定设备在发生冲突后是否可以重新传输数据。该程序在设备重新传输数据之前使用随机延迟,以减少再次发生冲突的可能性。
  • 为了让所有设备有充足的时间在传输停止之前识别冲突,CSMA/CD 要求最小帧大小。如果帧太短,设备可能不会注意到冲突并继续发送,这可能会损害网络数据。
  • CSMA/CD 的优点

    • 简单且广泛使用:CSMA/CD 是一种常见的以太网网络协议,易于使用和实现。
    • 公平性:CSMA/CD 网络保证数据传输的公平性,因为所有设备都具有平等的传输通道访问权限。
    • 效率:通过避免不必要的冲突并最小化网络拥塞,CSMA/CD 能够有效地利用传输通道。

    CSMA/CD 的缺点

    • 可扩展性有限:CSMA/CD 存在可扩展性问题,可能不适用于具有许多设备的大型网络。
    • 存在冲突风险:尽管 CSMA/CD 能够检测冲突,但它无法阻止冲突的发生。冲突可能导致数据损坏、重传延迟和网络速度下降。
    • 带宽浪费:如果设备频繁遇到冲突,CSMA/CD 的随机退避技术可能导致网络容量的浪费。
    • 安全攻击:由于 CSMA/CD 缺乏任何安全保护,它容易受到数据包嗅探和欺骗等威胁。