CSMA/CD协议

682 阅读2分钟

CSMA/CD协议详解

CSMA/CD 全称是:

Carrier Sense Multiple Access with Collision Detection
(载波监听多路访问/碰撞检测)

它是一种总线型网络(如以太网)中用于协调多个设备共享一条信道的协议。


名字拆解

  • CS(Carrier Sense)= 载波监听
    在发送前先“听一听”信道上有没有其他设备在传输数据。

  • MA(Multiple Access)= 多路访问
    网络上多个设备共享同一个传输介质。

  • CD(Collision Detection)= 碰撞检测
    一旦发现数据碰撞,马上停止发送,并通知其他设备重发。


工作流程

  1. 监听(Carrier Sense)
    设备要发送数据前,先监听信道

    • 如果信道是空闲的 ➔ 开始发送数据。
    • 如果信道是忙碌的 ➔ 等待一段时间再重试。
  2. 发送(Send)
    监听到信道空闲后,开始发送数据。

  3. 检测碰撞(Collision Detection)
    在发送过程中,设备持续监听是否发生“碰撞”。碰撞是指:

    • 两台设备几乎同时判断信道空闲,然后都开始发送 ➔ 数据冲突。
  4. 响应碰撞(Collision Handling)
    如果发现发生了碰撞:

    • 设备立即发送一个干扰信号,通知其他设备“发生碰撞”。
    • 然后停止发送数据。
  5. 重发(Retry)
    发生碰撞的设备会:

    • 等待一个随机的退避时间(使用二进制指数退避算法)。
    • 然后重新尝试发送。

示例

假设有三台电脑 A、B、C 连接到同一个Hub:

  1. A想发数据,监听发现信道空闲 ➔ 开始发送。
  2. B几乎同时也想发数据,也监听发现空闲 ➔ 也开始发送。
  3. 数据发生冲突,A和B都发现了碰撞 ➔ 发送干扰信号 ➔ 停止发送。
  4. A和B随机等待不同的时间 ➔ 再次尝试发送。

特点和局限

特点说明
简单高效在网络设备较少、流量不大时很有效。
碰撞域大所有设备共享信道,碰撞风险高。
带宽共享所有设备共享带宽,效率低于交换式网络。
半双工只能实现半双工通信(发送和接收不能同时进行)。
已被淘汰现代交换机采用全双工通信交换机制,几乎不再使用CSMA/CD协议。

总结

CSMA/CD协议是以太网中用于防止数据冲突的机制,它通过“先监听、边发送边检测碰撞、碰撞后退避重发”的流程来协调多台设备共享一条链路。