Skip to content

2018年 408 计算机网络 第 35 题

计算机网络2018年选择题2分

题目

IEEE 802.11 无线局域网的 MAC 协议 CSMA/CA 进行信道预约的方法是( )。

错因

A

确认帧(ACK)是接收方收到数据后发回的确认信号,用于实现可靠传输——它是"事后确认",不是事前预约。CSMA/CA 中 ACK 出现在数据帧之后,表示接收方已正确接收,与"预约信道占用"是两个不同的功能。错的根源:把"预约"和"确认"两个概念混了。

B

二进制指数退避(BEB)是发生冲突后的等待算法——按 随机退避一段时间再重试。它解决的是"已经撞了之后怎么避免再撞",不是预约。预约是"开打前先打招呼让别人让路",与退避完全不同。错的根源:把"冲突避免机制"统统当成"预约",没区分前后顺序。

C

MAC 地址是链路层身份标识,与"预约信道"无关。一个站点用一个 MAC 地址即可工作,不需要多 MAC。错的根源:可能是凭直觉乱选;或者把 802.11 的 BSSID / SSID / MAC 等多种 ID 混淆为"使用多个 MAC 地址"。

总解析

CSMA/CA 的信道预约机制:RTS / CTS 交换

802.11 无线局域网与有线 CSMA/CD 的根本不同:无线信号不能边发边检测(发送时本机收发器开发射机,听不到自己以外的信号),所以做不到 CSMA/CD 的"边发边监听冲突"。代替方案是预约——在真正发数据前先用短控制帧"打招呼"。

RTS / CTS 流程(针对"隐藏终端问题"):

步骤帧类型发送方接收方内容
RTS(Request To Send,请求发送)站 AAP"我要给 AP 发数据 X 字节,需要占用信道 N μs"
CTS(Clear To Send,允许发送)AP广播"我准许 A 发,所有听到这条 CTS 的站请等 N μs 再发"
Data站 AAP真正的数据帧
ACKAP站 A接收确认

为什么这么做:RTS / CTS 中的"持续时间"(NAV,Network Allocation Vector)通知所有听到的站点"信道接下来要被占多久",这些站会虚拟地认为信道忙(即使物理上听不到 A 的数据传输)——这就是"预约"的本质。

特别地,隐藏终端(A 与 B 都能听到 AP,但 A 与 B 互相听不到)也能通过 CTS 知道 A 正在传,避免同时发干扰。

逐项核对

选项功能是否预约
A 发送 ACK事后确认接收
B 二进制指数退避冲突后退避
C 使用多个 MAC无关
D 交换 RTS / CTS预约信道占用

最终答案是 D(交换 RTS 与 CTS 帧)

编者注(生僻术语):CSMA/CA 中的"CA"= Collision Avoidance(冲突避免)——区别于 CSMA/CD 的 "Collision Detection"(冲突检测)。"避免" vs "检测" 这两个词的差别决定了:

  • 有线 CSMA/CD:边发边检,真撞了再退避
  • 无线 CSMA/CA:发前预约,力求不撞(RTS/CTS + 严格的帧间间隔 DIFS/SIFS + 二进制指数退避)

RTS/CTS 是 CA 思想最直接的体现。

最后更新:

⚠️ 这道题暂未配可视化,欢迎在 CodeBrick 反馈区告诉我们你想看哪道题