CSMA/CA(载波监听多路访问/碰撞避免)
CSMA/CA 是IEEE 802.11无线局域网的介质访问控制协议,与有线以太网的[[CSMA_CD|CSMA/CD]]相对应。
为什么不用CSMA/CD?
- 碰撞检测硬件代价过大:无线中自身发送信号远强于碰撞信号
- 隐蔽站问题:A和C互相听不见,但都向B发送,B处发生碰撞,A和C均不知道
核心机制:时间间隔(IFS)
- SIFS(短帧间间隔):最短,用于ACK、CTS等紧急响应帧
- DIFS(分布协调功能帧间间隔):用于数据帧和管理帧
- 规则:DIFS > SIFS,保证ACK帧优先于新数据帧
发送流程(DCF)
1. 站A监听信道
2. 信道空闲持续DIFS时间 → A立即发送DATA
3. B接收,CRC校验通过
4. 等待SIFS → B发ACK(因SIFS短,其他站的DIFS还没到)
5. A收到ACK → 成功完成
退避算法(Backoff)
当信道忙或发生碰撞时: 1. 推迟接入(冻结退避计时器) 2. 等待信道空闲后进入争用期 3. 在 \([0, CW]\) 时隙中随机选一个数,开始倒计时 4. 计时器先归零的站先发送 5. 碰撞后:\(CW\) 近似加倍(指数退避),重新随机
建议参数:\(15 \leq CW \leq 1023\),初始CW=15
RTS/CTS信道预约
解决隐蔽站问题:
- NAV(网络分配向量):C收到CTS后设置NAV,在NAV期间不发送
- RTS/CTS是可选的,帧超过阈值时才值得使用(RTS=20B, CTS=14B,数据帧最大2346B)
与CSMA/CD对比
| 特性 | CSMA/CD | CSMA/CA |
|---|---|---|
| 介质 | 有线(以太网) | 无线(WiFi) |
| 策略 | 碰撞检测 | 碰撞避免 |
| 碰撞处理 | 检测到立即停止 | 随机退避预防 |
| ACK | 无(高层保证) | 每帧ACK确认 |
| 当前状态 | 已被全双工交换机淘汰 | 仍是主流无线MAC |
参见
- [[09-无线网络]] — WLAN完整介绍
- [[CSMA_CD|CSMA/CD]] — 有线以太网的对应协议
- [[09-无线网络|802.11帧格式]] — 四地址字段详解