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-数据链路层|以太网交换机]] — 消除碰撞域的方案