Skip to content

CSMA/CD(载波监听多路访问/碰撞检测)

CSMA/CD 是传统以太网(IEEE 802.3)的介质访问控制(MAC)协议,解决多台计算机共享一条总线时的冲突问题。

工作原理

先听后发,边发边听,冲突停发,随机延迟后重发

1. 监听信道
2. 信道空闲 → 开始发送
   信道忙 → 等待(继续监听)
3. 发送期间继续监听
4. 检测到碰撞 → 发送强化碰撞信号(JAM)→ 停止发送
5. 等待随机退避时间 → 重新从步骤1开始

争用期(碰撞窗口)

\[2 au = 2 imes rac{d}{v}\]

其中 \(d\) 是最远两站间距离,\(v\) 是传播速度。

最小帧长:发送完整帧之前必须能检测到碰撞:

\[L_{min} = 2 au imes C\]

以太网(10 Mbit/s,最远2500m):\(L_{min} = 64\) 字节 = 512 比特。

短于64字节的帧被认为是碰撞碎片,直接丢弃。

截断二进制指数退避算法

第 \(k\) 次碰撞后,随机等待 \(r imes 2 au\) 时间,其中:

\[r \in \{0, 1, 2, ..., 2^{\min(k,10)} - 1\}\]
  • 前10次:退避范围倍增(指数增长)
  • 10次以后:退避范围固定在 \(2^{10} = 1024\) 个时间槽
  • 超过16次仍失败:丢帧,报告上层错误

信道利用率

\[U_{max} = rac{1}{1+a}, \quad a = rac{ au}{T_0}\]

\(a\) 越小(帧越长或距离越短),利用率越高。

局限性

  • 只适用于半双工(发送时无法接收)
  • 碰撞域:同一CSMA/CD网段内所有站竞争
  • 负载高时碰撞增多,性能急剧下降

现代以太网用全双工交换机代替集线器,消除了CSMA/CD的需求(每个端口独立全双工链路)。

参见

  • [[03-数据链路层]] — 以太网完整介绍
  • [[CSMA_CA|CSMA/CA]] — 无线网络的对应协议
  • [[03-数据链路层|以太网交换机]] — 消除碰撞域的方案