Appearance
题目
下列选项中,对正确接收到的数据帧进行确认的 MAC 协议是( )。
错因
A
CSMA(基础载波侦听)只做"听信道空闲再发",不发 ACK 也不重传——不可靠。错的根源:把"侦听信道"误当成"确认接收",但 CSMA 的"听"是发送前听,不是收到后回。
B
CDMA 是物理层多路复用技术——靠正交码片让多站同时占用信道不互扰,与 MAC 层确认无关。CDMA 自身不定义"确认"机制,依赖上层(如 802.11 MAC、3G/4G 物理层之上的层)。错的根源:把多路复用和 MAC 协议混淆。
C
CSMA/CD(有线以太网,IEEE 802.3)发现冲突后回退重发——但不在 MAC 层做正确接收的 ACK。以太网 MAC 帧没有 ACK 字段、收方收到后不回复确认(依赖上层 TCP 重传)。错的根源:把"冲突检测"误当成"接收确认"——CD 检测的是发送时的冲突,不是接收的成功。
总解析
MAC 协议是否做接收确认对照:
| 协议 | 应用场景 | 是否做 MAC 层确认 |
|---|---|---|
| CSMA(基础) | 早期 ALOHA 等 | ❌ |
| CDMA | 3G、卫星 | ❌(物理层多路复用,无 MAC 确认) |
| CSMA/CD(有线 IEEE 802.3) | 早期共享以太网 | ❌(无 MAC 层 ACK,依赖上层) |
| CSMA/CA(无线 IEEE 802.11) | Wi-Fi | ✅(每数据帧都要 ACK 确认) |
为什么 CSMA/CA 必须做 ACK:
无线信道根本性不可靠——多径衰落、隐藏终端、干扰、距离衰减都让数据帧极易丢失。如果不做 MAC 层 ACK,丢帧只能等上层 TCP 超时重传(往往要 1 秒以上),延迟大、效率低。
所以 802.11 设计了 ACK 机制:
发送方:DIFS → RTS → SIFS → CTS → SIFS → 数据帧 → SIFS → ACK
↑
接收方收完数据帧后
立即回 ACK 确认数据帧后必须 SIFS(短帧间间隔)→ ACK,是 802.11 的标准动作。这也是为什么 CSMA/CA 能在不可靠的无线信道上工作——MAC 层级的快速重传补救了物理层的丢包。
对比有线 CSMA/CD:
有线信道相对可靠,CSMA/CD 的策略是"边发边检冲突,撞了重发",正常发完不回 ACK——以太网 MAC 帧没 ACK 字段,依赖 TCP 重传处理偶发错误。
最终答案是 D(CSMA/CA)。
编者注(生僻术语):"MAC 层确认"和"传输层确认"的层级差异——
- MAC 层 ACK(CSMA/CA):极快(μs 级),单帧粒度
- 传输层 ACK(TCP):慢(ms 级),按字节累计
802.11 双层确认实际同时存在:每个数据帧 MAC 层先 ACK 一次(保证链路层收到),TCP 段层面再 ACK 一次(保证端到端正确)。两层各司其职。