Appearance
CSMA/CA协议
考情分析
CSMA/CA 在 408 中属于中低频考点,通常以选择题形式出现,重点是与 CSMA/CD 的区别、隐蔽站问题、以及 RTS/CTS 机制。
考频:★★☆
为什么无线网不能用 CSMA/CD
CSMA/CD 要求站点能够边发边听——在发送的同时检测信道上是否有冲突信号。这在有线网络中没有问题,但在无线网络中行不通,原因有两个:
1. 无线信号衰减严重
无线信号的发射功率远大于接收功率(差距可达百万倍)。站点在发送时,自己的发射信号会"淹没"信道上其他站点的微弱信号,根本检测不到冲突。
2. 隐蔽站问题(Hidden Station)
A ←--范围--→ B ←--范围--→ C
A 和 C 互相听不到对方A 和 C 都在 B 的通信范围内,但 A 和 C 互相听不到。A 在给 B 发数据时,C 侦听信道发现"空闲"(因为它听不到 A),也开始给 B 发数据,结果在 B 处产生冲突。
这就是隐蔽站问题——两个站互相"隐蔽",侦听机制失效。
暴露站问题(Exposed Station)
A ←--范围--→ B ←--范围--→ C ←--范围--→ DB 在给 A 发数据,C 侦听到信道"忙"(因为它听到了 B),就不敢给 D 发数据。但实际上 C 给 D 发数据并不会和 B→A 的传输冲突(A 听不到 C,D 听不到 B)。
这就是暴露站问题——站点过于保守,白白等待,降低了信道利用率。
CSMA/CA 的基本思想
CA = Collision Avoidance,冲突避免。既然无法像 CD 那样"检测"冲突,那就尽量"避免"冲突。
CSMA/CA 的策略:发送前先预约信道,尽量减少冲突的概率。
工作流程
基本接入过程(DCF)
第 1 步: 发送方侦听信道
第 2 步: 如果信道空闲,等待 DIFS(分布式帧间间隔)时间后,进入随机退避
第 3 步: 随机退避:从退避窗口中随机选一个值,在信道持续空闲的前提下倒计时。如果计时期间信道变忙,暂停计时,等信道再次空闲 DIFS 后继续倒计时
第 4 步: 退避计时器归零后,发送数据帧
第 5 步: 接收方收到帧后,等待 SIFS(短帧间间隔)时间后发送 ACK
第 6 步: 发送方收到 ACK,传输完成。如果在超时时间内没收到 ACK,认为传输失败,重新从第 1 步开始
帧间间隔
CSMA/CA 使用不同的帧间间隔来实现优先级控制:
| 间隔类型 | 长度 | 用途 |
|---|---|---|
| SIFS(短帧间间隔) | 最短 | ACK、CTS 等高优先级帧 |
| DIFS(分布式帧间间隔) | 较长 | 普通数据帧发送前的等待 |
SIFS < DIFS,所以 ACK 和 CTS 总是能优先抢占信道。
RTS/CTS 机制
为了解决隐蔽站问题,CSMA/CA 引入了 RTS/CTS 握手机制:
RTS(Request To Send):发送方先发一个短的"请求发送"帧
CTS(Clear To Send):接收方回复一个短的"允许发送"帧
虚拟载波侦听(NAV)
RTS 和 CTS 帧中包含一个持续时间字段,告知周围站点"信道将被占用多长时间"。其他站点收到 RTS 或 CTS 后,设置自己的 **NAV(Network Allocation Vector,网络分配向量)**计时器,在 NAV 倒计时期间不尝试发送。
- 隐蔽站 C 虽然听不到 A 的 RTS,但能听到 B 的 CTS → 设置 NAV,避免冲突
- 这就是虚拟载波侦听——不是真的在物理层侦听信号,而是通过 NAV 计时器判断信道是否"忙"
RTS/CTS 的好处
即使 RTS 发生冲突,因为 RTS 帧很短,浪费的时间也很少(远小于一个完整数据帧的传输时间)。把冲突限制在短帧的范围内,降低了冲突的代价。
CSMA/CD vs CSMA/CA 对比
| 对比项 | CSMA/CD | CSMA/CA |
|---|---|---|
| 应用场景 | 有线以太网 | 无线局域网(802.11) |
| 冲突处理 | 检测冲突后停发 | 避免冲突(预约信道) |
| 能否检测冲突 | 能(边发边听) | 不能(无线信号特性限制) |
| 确认机制 | 无(靠上层协议) | 有(链路层 ACK) |
| RTS/CTS | 不需要 | 可选(解决隐蔽站) |
| 帧间间隔 | 无 | SIFS、DIFS 等多种 |
一个关键区别: CSMA/CD 在数据链路层不需要 ACK(因为冲突能被检测到),而 CSMA/CA 必须有 ACK——因为发送方无法检测冲突,只能通过 ACK 来确认帧是否成功送达。
易错点
1. CA 是"冲突避免"不是"冲突消除"
CSMA/CA 不能完全避免冲突(比如两个站的退避计时器同时归零),只是大幅降低了冲突概率。
2. RTS/CTS 不是强制的
802.11 标准中 RTS/CTS 是可选的。对于短帧,直接发送的效率更高(RTS/CTS 的开销反而不划算)。通常设一个阈值,数据帧超过该阈值才使用 RTS/CTS。
3. 退避机制的区别
CSMA/CD 是冲突后退避,CSMA/CA 是发送前就退避(即使信道空闲也要等 DIFS + 随机退避)。CSMA/CA 的退避是预防性的。
4. 无线网络用 CA,有线网络用 CD
这一条看似简单,但选择题中经常出"以太网使用 CSMA/CA"之类的干扰选项。以太网 = CSMA/CD,Wi-Fi = CSMA/CA。
高频考点清单
- 无线网络不能用 CD 的原因(信号衰减 + 隐蔽站)
- 隐蔽站问题和暴露站问题的含义
- CSMA/CA 的基本工作流程
- RTS/CTS 握手机制及其解决的问题
- NAV 虚拟载波侦听的原理
- CSMA/CD 与 CSMA/CA 的对比