CSMA/CA 介质访问控制协议
CSMA/CA vs CSMA/CD
特性 |
CSMA/CD(以太网) |
CSMA/CA(WiFi) |
|---|---|---|
碰撞处理 |
检测并重传 |
预先避免 |
半双工/全双工 |
全双工 |
半双工 |
为什么不同 |
有线可检测碰撞 |
无线无法可靠检测碰撞 |
WiFi 使用 CA(Collision Avoidance,避免碰撞)而非 CD(Collision Detection,检测碰撞),因为:
发送方无法监听:自身发射信号远强于接收信号
隐藏终端问题:A 和 C 都听不到对方,但都能干扰 B
暴露终端问题:C 可以发送给 D,但不需要等待 A→B 完成
CSMA/CA 工作流程
基本流程
1. 监听信道(Carrier Sense)
├── 物理层载波侦听(PHY-CS):检测能量电平
└── MAC 层虚拟载波侦听(VCA):NAV 计数器
2. 信道空闲?
├── 是 → 等待 DIFS,然后发送
└── 否 → 等待信道空闲 → DIFS → 进入退避
3. 退避(Backoff)
├── 随机选择 backoff counter ∈ [0, CW]
├── 每经过一个 slot time,counter -1
├── 信道变忙?→ 暂停 counter
├── 信道空闲 ≥ DIFS?→ 恢复计数
└── counter = 0?→ 发送帧
4. 等待 ACK
├── 收到 ACK → 成功,CW 重置为 CWmin
└── 未收到 ACK → 失败,CW 翻倍(二进制指数退避)
时间参数
参数 |
20 MHz |
40 MHz |
说明 |
|---|---|---|---|
SIFS |
16 μs |
16 μs |
短帧间间隔(高优先级响应) |
PIFS |
28 μs |
28 μs |
PCF 帧间间隔 |
DIFS/DCF-IFS |
34 μs |
34 μs |
分布式帧间间隔 |
EIFS |
492 μs |
492 μs |
扩展帧间间隔(错误后) |
Slot time (2.4G) |
20 μs |
20 μs |
退避时隙 |
Slot time (5G) |
9 μs |
9 μs |
5 GHz 更短的时隙 |
CW(Contestation Window)参数
CWmin / CWmax:
- 802.11a/b/g: CWmin=15, CWmax=1023
- 802.11n/ac/ax: CWmin=15, CWmax=1023(默认)
CWmin=15, CWmax=1023(QoS 数据)
退避过程:
第1次尝试: CW = [0, 15] → 随机选一个数
第2次尝试: CW = [0, 31] → 翻倍
第3次尝试: CW = [0, 63] → 继续翻倍
...
第N次尝试: CW = [0, 1023] → 达到上限后不再增加
RTS/CTS 机制
隐藏终端问题
A ────→ B ←──── C
A 和 C 互相听不到,但都会干扰 B。
当 A 正在发送给 B 时,C 也开始发送 → 碰撞!
RTS/CTS 解决方案
A B C
│ │ │
│──RTS────→│ │ (C 听到 RTS,设置 NAV)
│←─CTS────│ │ (C 听到 CTS,延长 NAV)
│──Data──→│ │ (C 保持沉默)
│←─ACK───│ │
RTS(Request to Send):发送方请求发送,包含数据帧长度
CTS(Clear to Send):接收方确认,通知周围设备保持安静
NAV(Network Allocation Vector):虚拟载波侦听计数器
何时启用 RTS/CTS?
场景 |
建议 |
|---|---|
默认 |
禁用(开销大) |
隐藏终端严重 |
启用,或设置低 RTS threshold |
小帧传输多 |
谨慎使用(RTS/CTS 开销可能超过数据本身) |
EIFS(扩展帧间间隔)
当接收方检测到帧错误(FCS 校验失败)时:
正常情况: DIFS → backoff → transmit
错误后: EIFS → backoff → transmit
EIFS = SIFS + ACK_time + DIFS
目的:给发送方时间重传,避免接收方在恢复期间抢占信道
性能分析
吞吐量的理论上限(MacGregor- Kleinrock 模型)
S = (Pₜ × Tₜ) / (Tₜ + Tₑ + Tᵢ)
其中:
S = 吞吐量效率
Pₜ = 传输成功概率
Tₜ = 成功传输时间
Tₑ = 碰撞/失败后的平均等待时间
Tᵢ = 信道空闲时间
实际观察到的规律
1-2 个竞争设备:效率 > 80%
5-10 个竞争设备:效率 ~ 50-70%
20+ 个竞争设备:效率 < 30%,退避时间占主导