本讲对应 IEEE Std 802.11-2024 的 10.1(Introduction)+ 10.2(MAC architecture)+ 10.3(DCF)+ 10.4/10.5(分片/去分片)+ 10.6(多速率支持)+ 10.7(MSDU 传输限制)+ 10.9(Control Wrapper 操作) 。
第 03--05 讲回答了"帧长什么样"(Clause 9 帧格式);从本讲开始进入"帧怎么发出去"------Clause 10(MAC 子层功能描述) 。Clause 10 是 MAC 接入机制的总纲:先看MAC 架构 (DCF/HCF/MCF/TUA 四个"协调功能"怎么分工),再重点拆 DCF(Distributed Coordination Function,分布式协调功能) ------它是一切接入的地基 :CSMA/CA 载波侦听、帧间间隔(IFS)、NAV 虚拟载波侦听、RTS/CTS、Ack、随机退避、接入过程与重传。最后收掉本讲配套的分片/去分片、多速率支持、MSDU 传输限制。
阅读目标:读完本讲,你能画出 MAC 架构图并说出 DCF/HCF/MCF/TUA 各自管什么;能讲清"物理载波侦听 + 虚拟载波侦听(NAV)"的双通道机制;能背出 SIFS/PIFS/DIFS/AIFS/EIFS 的用途与推导公式;能画出 DCF 下"空闲 DIFS → 退避 → 发送 → 等 Ack → 失败倍增 CW"的完整接入流程;知道 RTS/CTS 解决什么问题、dot11RTSThreshold 怎么起作用;能解释 CW 指数退避与短/长重试计数;知道分片为什么能提高可靠性、多速率选择的基本规则。
一、Clause 10 的地图(10.1 Introduction)------"接入机制的总纲"
Clause 9 定义"帧格式"(长什么样),Clause 10 定义"帧交换机制"(怎么发、怎么收、怎么确认、怎么重传)。Clause 10 的完整结构(2024 版):
| 小节 | 内容 | 规模 | 归属 |
|---|---|---|---|
| 10.1 | Introduction | 短 | ← 本讲 |
| 10.2 | MAC 架构(DCF/HCF/MCF/TUA 总览) | 中 | ← 本讲 |
| 10.3 | DCF(CSMA/CA 全过程) | 约 190 页,本章最大块 | ← 本讲 |
| 10.4--10.5 | MSDU/A-MSDU/MMPDU 分片与去分片 | 中 | ← 本讲 |
| 10.6 | 多速率支持(Rate selection) | 中 | ← 本讲 |
| 10.7 | MSDU 传输限制 | 短 | ← 本讲 |
| 10.8 | HT Control field 操作 | 短 | 第 07 讲 |
| 10.9 | Control Wrapper 操作 | 短 | ← 本讲 |
| 10.10--10.12 | MSDU/A-MSDU/A-MPDU 处理 | 中 | 第 08 讲 |
| 10.20--10.22 | S1G 动态 AID、Group ID、监管域 | 中 | 第 07 讲 |
| 10.23 | HCF(EDCA + HCCA) | 约 260 页 | 第 07 讲 |
| 10.24 | MCF(Mesh 协调) | 中 | 第 16 讲 |
| 10.25--10.29 | 块确认、No Ack、保护机制、帧处理、RD 协议 | 大 | 第 08 讲 |
| 10.30+ | 各 PHY 专属 MAC 机制(HT/VHT/HE/S1G/DMG...) | 大 | 第 09、17--21 讲 |
一句话:Clause 9 是"帧的语法",Clause 10 是"信道的语法"------本讲先立架构、再立 DCF 这个"地基"。
二、MAC 架构(10.2)------四个"协调功能"的分工
2.1 架构总览(Figure 10-1)
MAC 通过几个**协调功能(Coordination Function)**来管理介质接入。2024 版一共四个协调功能:
| 协调功能 | 全称 | 服务对象 | 机制 | 说明 |
|---|---|---|---|---|
| DCF | Distributed Coordination Function | 所有 STA 必须实现 | CSMA/CA 分布式竞争接入 | 一切接入的基础,其他功能都建立在它之上 |
| HCF | Hybrid Coordination Function | QoS STA(非 mesh) | EDCA (基于竞争)+ HCCA(受控/轮询) | QoS 设施,见第 07 讲 |
| MCF | Mesh Coordination Function | mesh STA | EDCA + MCCA(受控) | 网状网专用,见第 16 讲 |
| TUA | Triggered Uplink Access | 非 AP HE STA | AP 触发多用户上行 | 11ax 的 OFDMA 上行,见第 19 讲 |
┌────────────────────────────────────────────────────────┐
│ MAC 层(介质访问控制) │
│ │
│ ┌───────────┐ ┌───────────┐ ┌────────────────┐ │
│ │ HCF │ │ MCF │ │ TUA │ │
│ │ EDCA+HCCA │ │ EDCA+MCCA │ │ (HE 触发上行) │ │
│ └─────┬─────┘ └─────┬─────┘ └───────┬────────┘ │
│ └───────────────┼─────────────────┘ │
│ ┌─────▼─────┐ │
│ │ DCF │ ← 所有接入的地基 │
│ └─────┬─────┘ │
└─────────────────────────┼──────────────────────────────┘
▼
PHY(DSSS/OFDM/HT/VHT/HE...)
(Figure 10-1------非 DMG/CMMG/S1G STA 的 MAC 架构)
- DCF 在最底层:HCF、MCF、TUA 都"借用" DCF 的竞争机制;MAC 也允许直接使用 DCF 服务;
- 各功能的存在条件 :HCF 在 QoS STA 中、MCF 在 mesh STA 中、TUA 在非 AP HE STA 中,其余 STA 只有 DCF。
2.2 各 STA 类型的架构差异
| STA 类型 | 架构特点 |
|---|---|
| S1G(亚 1 GHz) | Figure 10-2:EDCA + RAW(受限接入窗口) + TWT(目标唤醒时间),都架在 DCF 上 |
| DMG/CMMG(60 GHz/毫米波) | Figure 10-3:按调度期 分时隙------A-BFT(波束训练)、ATI(公告)、CBAP(基于竞争的接入期,用 DCF)、SP(服务期,受控) |
| 普通(2.4/5/6 GHz) | Figure 10-1:HCF + MCF + TUA 叠加在 DCF 上 |
2.3 DCF 概述(10.2.2)------"所有接入的原型"
DCF 是 CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance,载波侦听多址/冲突避免):
- 要发帧先侦听介质,忙则等待(推迟);
- 介质空闲后,还要保持空闲一段最小间隔才允许发送;
- 忙完之后或成功发送后,进入随机退避,避免多个等待的 STA 同时抢发;
- 可选RTS/CTS 短帧交换,进一步避免冲突。
关键背景:无线是"半双工 + 传播不确定"的介质 ------发送方无法像有线 CSMA/CD 那样"边发边听、检测到冲突就停止"。所以 802.11 用 CSMA/CA :与其"检测冲突",不如尽量避免冲突(随机退避 + 预约信道)。
三、DCF 的总体设计(10.3.1)------"三个支柱"
10.3 DCF 是本章最大的块,其设计可以归纳为三个支柱:
| 支柱 | 对应小节 | 内容 |
|---|---|---|
| 载波侦听(CS) | 10.3.2.1 | 物理(CCA)+ 虚拟(NAV)双通道判断介质忙/闲 |
| 帧间间隔(IFS) | 10.3.2.3 | 用不同长短的间隙给不同类型的帧/功能分级 |
| 随机退避(Backoff) | 10.3.3 + 10.3.4.3 | 竞争冲突的"仲裁器":谁退避完谁先发 |
再加上确认与重传(10.3.2.11、10.3.4.4)保证可靠交付。下面逐个拆。
3.1 为什么"介质刚忙完"是冲突最高发时刻?
CSMA/CA 要解决的核心问题:多个 STA 一直在等信道,一旦信道空闲,它们可能同时抢发 ------此时冲突概率最高。所以 802.11 规定:忙完之后,每个 STA 都要等一个随机退避时间,把"同时抢发"变成"随机先后",从根上降低冲突概率。
记忆:退避 = 给"同时苏醒的一群 STA" 随机排队的机制。
四、载波侦听机制(10.3.2.1)------"物理 + 虚拟"双通道
4.1 两种侦听
| 侦听 | 由谁提供 | 机制 |
|---|---|---|
| 物理载波侦听 | PHY | CCA(Clear Channel Assessment,空闲信道评估):检测射频能量/前导,把忙/闲结果上报 MAC |
| 虚拟载波侦听 | MAC | NAV(Network Allocation Vector,网络分配向量)(所有 MAC)+ RID(S1G 专用) |
判定规则:只要物理或虚拟任一指示"忙",介质就视为忙;两者都空闲才视为闲。
4.2 NAV 是什么?
- NAV 是一个倒计时的计数器,"预测"未来介质会被占用多久;
- 它从帧里的 Duration 字段获得数值(RTS/CTS、MU-RTS Trigger 帧、各数据/管理帧的 Duration 都会广播"我要占用多久");
- 介质忙/闲:NAV 不为 0 → 虚拟忙;NAV 为 0 → 虚拟闲。
一句话:物理侦听"现在"忙不忙,NAV 侦听"将来"忙多久------听到别人的预约信息,即使自己听不到对方的数据帧,也知道别抢(这就是解决隐藏节点的关键,见第七节)。
4.3 NAV 的更新规则(10.3.2.4)
- NAV 只增不减:收到 Duration 比当前 NAV 大才更新(取 max);
- 例外 :收的帧 RA 是自己的 MAC 地址时不更新 NAV(那是发给自己的,不影响自己接入);
- 帧在 RTS/CTS 交换后,若在 NAVTimeout 内没等到后续信号,可以重置 NAV(预约失效);
- HE STA 用双 NAV(分别对应 BSS 内/外的帧,见 26.2.4);DMG 支持多 NAV(S1G 还有 RID 计数器)。
五、帧间间隔 IFS(10.3.2.3)------"信道的时间分级"
5.1 什么是 IFS
IFS(Interframe Space,帧间间隔) = 两个相邻 PPDU 之间必须保持的空闲时间。间隔越短,优先级越高------因为想接入的 STA 要等够相应的间隔才敢发,等得短的先抢到。
5.2 十种 IFS(2024 版)
| IFS | 全称 | 用途 | 状态 |
|---|---|---|---|
| SIFS | Short IFS | 帧交换序列内部(数据→Ack、RTS→CTS 等),最短、最高优先级 | 现行 |
| PIFS | PCF IFS | 优先级接入(Beacon、信道切换通告等),= SIFS + 1 slot | 现行 |
| DIFS | DCF IFS | DCF 下传数据/管理帧,= SIFS + 2 slot | 现行 |
| AIFSAC | Arbitration IFS | EDCA 每个 AC 的仲裁间隔,= SIFS + AIFSNAC × slot | 第 07 讲 |
| EIFS | Extended IFS | 收到错误帧后要等的更长间隔 | 现行 |
| RIFS | Reduced IFS | 11n 时代减少开销,已废弃(obsolete) | 废弃 |
| SBIFS / BRPIFS / MBIFS / LBIFS | 各种波束成形 IFS | DMG/EDMG(60 GHz)波束成形专用 | 第 21 讲 |
5.3 关键公式(10.3.7)
aSIFSTime = aRxPHYDelay + aMACProcessingDelay + aRxTxTurnaroundTime
aSlotTime = aCCATime + aMACProcessingDelay + aRxTxTurnaroundTime + aAirPropagationTime
aRxTxTurnaroundTime = aTxPHYDelay + aRxTxSwitchTime + aTxRampOnTime
PIFS = aSIFSTime + aSlotTime
DIFS = aSIFSTime + 2 × aSlotTime
EIFS = aSIFSTime + AckTxTime + DIFS
- aSIFSTime / aSlotTime 由各 PHY 特性表(PLME characteristics)给出;
- aSlotTime 包含传播时间(aAirPropagationTime),这就是"时隙"里要考虑最远 STA 传播延迟的原因;
- EIFS 比 DIFS 多一个 Ack 传输时间:收到坏帧时,给"真正的接收方"留出回复 Ack 的时间,避免自己抢先打断对方的确认。
5.4 常见 PHY 的典型值(以各 PHY 条款为准)
| 参数 | DSSS/HR-DSSS(2.4 GHz 传统) | OFDM/ERP-OFDM/HT/VHT/HE |
|---|---|---|
| aSIFSTime | 10 µs | 16 µs |
| aSlotTime | 20 µs(短时隙 9 µs) | 9 µs |
| PIFS | 30 µs | 25 µs |
| DIFS | 50 µs | 34 µs |
| aCWmin | 31 | 15 |
| aCWmax | 1023 | 1023 |
5.5 SIFS 为什么"无敌"
SIFS 用于帧交换序列内部 (如收 Data 后 SIFS 回 Ack、收 RTS 后 SIFS 回 CTS)。因为 SIFS 比 DIFS/PIFS 短,正在进行的帧交换序列总是能优先完成,不会被外部的竞争接入打断------这就是"一个序列内不能插队"的保证。
六、NAV 的设置与重置(10.3.2.4)------"虚拟预约"
6.1 Duration 字段怎么定
| 帧类型 | Duration 含义 |
|---|---|
| RTS | 后续 Data + CTS + Ack + 3×SIFS 的总时间(预约整个交换) |
| CTS | RTS 的 Duration 减去 CTS 与 SIFS 的传输时间(NAV 接力) |
| 单播数据帧 | 到紧随其后的 Ack 结束(或分片序列到下一个 Ack) |
| CF-End | 0(清除 NAV) |
6.2 RTS/CTS 交换中的 NAV(Figure 10-6)
源 STA ──RTS──▶ 目的 STA
◀──CTS─────
──Data────▶
◀──Ack─────
邻居 A(听到 RTS) : NAV 从 RTS 的 Duration 设置(覆盖 Data+Ack)
邻居 B(只听到 CTS) : NAV 从 CTS 的 Duration 设置(比 A 短,但已够)
邻居 C(听到 Data) : NAV 从 Data 的 Duration 设置
- 关键:RTS 让"源周围的邻居"预约,CTS 让"目的周围的邻居"预约,两边的隐藏节点都被覆盖;
- 收 RTS 但没有 收到 CTS 时,源 STA 在 NAVTimeout 后可以重置 NAV。
七、RTS/CTS 机制(10.3.2.6/9 + 10.3.5)------"信道预约 + 快速冲突推断"
7.1 为什么用 RTS/CTS
- 解决隐藏节点:A 和 C 都连 B 但互相听不到;A 发 RTS→B,B 回 CTS,让 C 也听到预约而让路;
- 快速冲突推断:RTS 很短,若 CTS 没回来,损失小、重试快(比直接发长数据失败再重试划算);
- 跨 BSS 保护:预约信息能跨越重叠 BSS 边界;
- 带宽探测(VHT/HE):RTS/CTS 还能帮助判断可用带宽(动态带宽)。
7.2 什么时候用------dot11RTSThreshold
- dot11RTSThreshold :帧长度阈值。PSDU 长度大于该阈值时,单播数据/管理帧前先用 RTS/CTS(10.3.5);
- 阈值设为 0 则每帧都用;设为很大(如 1023)则基本不用;
- 2024 版还有 dot11TXOPDurationRTSThreshold(非 AP HE STA 用 RTS/CTS 发起 TXOP 的场景,26.2.1);
- RTS/CTS 带来额外开销,所以短帧不值得用------"不是每帧都 RTS"。
7.3 CTS 的响应条件(10.3.2.9)
收到指向自己的 RTS 后,NAV 空闲才回 CTS(NAV 忙说明介质已被别人预约,不回);回 CTS 前先等 SIFS。
- CTSTimeout(RTS 发出后等 CTS 的超时)= aSIFSTime + aSlotTime + aRxPHYStartDelay;
- 超时未收到 CTS → 判定 RTS 失败 → 进退避、SRC+1;
- CTS 的 RA = 来自 RTS 的 TA;CTS 的 Duration = RTS 的 Duration − CTS 时间 − SIFS。
7.4 组播不能用 RTS/CTS
组播帧(To DS=0)不用 RTS/CTS、也不收 Ack(10.3.6)------因为接收方不止一个,无法统一确认;可靠性因此低于单播(除 GATS/GCR 等特殊服务)。
八、确认过程(10.3.2.11)------"立即正向确认"
8.1 哪些帧要确认
以下帧收到后要在 SIFS 后回 Ack/BlockAck(不考虑介质忙闲):
- 单播管理帧(Action No Ack 除外);
- 单播非 QoS 数据帧;
- 单播 QoS 数据帧(Normal Ack / Implicit BAR 策略);
- BlockAckReq 、非立即响应的 BlockAck;
- PS-Poll(可以用 Data 帧代替 Ack 作为确认,省电场景)。
组播帧不回 Ack ;Action No Ack 不回 Ack。
8.2 AckTimeout
- 发帧方发出需确认的帧后,等 AckTimeout = aSIFSTime + aSlotTime + aRxPHYStartDelay;
- 超时没等到任何 PHY 起始指示 → 判定失败 → 退避、计数+1;
- 等到的是错误帧/其他帧 → 同样按失败处理(收的帧可另行处理);
- 收到指向自己的 Ack → 成功。
记忆:"成功 = 收到对的确认;其余都是失败" 。注意:数据帧可能已正确到达,只是 Ack 丢了------所以重传可能产生重复帧,靠接收方的去重机制(Sequence Control)过滤。
九、随机退避过程(10.3.3 + 10.3.4.3)------"冲突仲裁器"
9.1 退避计数
Backoff Count = Random() ∈ [0, CW]
- 从 0, CW 均匀随机取一个整数作为退避计数;
- 每个 aSlotTime 递减 1 :介质空闲一个时隙就减 1;介质忙则冻结(不减,等再次空闲 DIFS + 1 slot 后继续);
- 退避计数减到 0 就发送。
9.2 CW(竞争窗口)的指数变化
- 初值 CW = aCWmin;
- 每次发送失败 :CW 翻倍(CW = 2×CW + 1,即 2^k − 1 序列)直到 aCWmax;
- 成功发送后:CW 复位回 aCWmin;
- 这一"失败倍增、成功复位"就是指数退避(Exponential Backoff),让负载重时大家把退避拉开,保持协议稳定(Figure 10-21)。
记忆:CW 先小后大------轻轻失败轻轻让,屡屡失败狠狠让。高负载下 CW 趋近 aCWmax,冲突概率被压住。
9.3 重试计数(短/长)
| 计数 | 对应场景 | 复位时机 |
|---|---|---|
| SRC / SSRC(短重试) | 长度 ≤ dot11RTSThreshold 的帧、RTS 帧失败 | 收到 CTS/Ack/BlockAck 成功时 |
| LRC / SLRC(长重试) | 长度 > dot11RTSThreshold 的帧失败 | 收到 Ack 成功时 |
| 组播帧 | 发出即复位 | --- |
9.4 什么时候必须退避(10.3.4.3)
- 想发帧但介质忙;
- 推断发送失败(没等到 Ack/CTS);
- 每次成功传输(More Fragments=0)之后也要退避------即使没有更多帧要发。
这一条保证:相邻的两次传输之间至少隔一个 DIFS,并且让所有 STA 都"排队"轮转,谁都不能霸占信道。
十、DCF 接入过程(10.3.4)------"完整流程"
10.1 基本接入(Basic Access,10.3.4.2)
有帧要发
│
├─ 介质空闲 且 保持空闲 DIFS(或 EIFS)且退避计数=0 ──▶ 立即发送
│
└─ 否则 ──▶ 执行随机退避(等 DIFS/EIFS 后逐 slot 递减)
│
└─ 退避到 0 ──▶ 发送
(Figure 10-22 / 10-23)
10.2 分片突发与"控制信道"(10.3.4.5)
- 竞争到信道后,发送方可以连续发送一个 MSDU 的多个分片 ,分片之间用 SIFS 间隔(不重新竞争);
- 每片单独确认;收到 Ack 且还有分片 → SIFS 后继续 ;没收到 Ack → 停止突发,回到竞争流程,从最后一个未确认的分片开始重传;
- 这种"抢占信道后连续发分片"的序列叫 fragment burst。
10.3 恢复与重传限制(10.3.4.4)
- 错误恢复是发起方(源 STA)的责任;失败就重传;
- 重传直到成功,或达到重试上限 dot11ShortRetryLimit 、或超过 dot11MaxTransmitMSDULifetime(MSDU 存活时间);
- 重传帧的 Retry 位 = 1(接收方据此去重);
- 单播传输在帧长超阈值时用 RTS/CTS 保护(10.3.5);组播传输用基本接入、无确认(10.3.6)。
十一、DCF 时序关系(10.3.7)------"时间账"
-
所有时序都以 PHY 原语为参照(PHY-TXEND.confirm、PHY-RXSTART.indication 等);
-
IFS 时长与 STA 的比特率无关(由 PHY 特性固定);
-
aSlotTime 可以动态变化:它含 aAirPropagationTime(传播时间),而传播时间随监管域/覆盖等级变化(10.22.5);
-
帧交换序列的典型时序:
...... 数据帧 ......│ SIFS │ Ack ......│ DIFS │ 退避slot... │ 下一帧
└── 序列内部,不可插队 ──┘ └─ 新一轮竞争 ─┘
十二、分片与去分片(10.4--10.5)------"短帧更可靠"
12.1 为什么分片(10.2.7 / 10.4)
- 把长 MSDU/A-MSDU/MMPDU 拆成多个较小的 MPDU(分片),逐个传输、逐个确认;
- 帧越短,出错概率越低------分片牺牲头部开销,换取低误码率信道下的可靠传输;
- 每片独立重传(坏一片只重传一片,不必重传整个 MSDU)。
12.2 分片规则(10.4)
- 触发:长度超过 dot11FragmentationThreshold 的单播 MSDU/MMPDU;
- 每片长度相等 (最后一片可短),且为偶数字节(末片可奇);
- 同一 MSDU 的所有分片序列号相同 ,分片号(Fragment Number)从 0 递增;
- More Fragments 位:不是末片则置 1,末片置 0;
- 生命周期:发送方维护 MSDU 定时器(dot11MaxTransmitMSDULifetime),超时丢弃未完成分片;
- 例外 :块确认(HT-immediate BA)下的 MSDU、A-MPDU 内的 MPDU(S-MPDU 除外)、组播帧------不分片。
12.3 去分片(10.5)
- 接收方按 (源地址, 目的地址, 序列号) 把分片归组,按分片号重组;
- 维护 接收定时器(dot11MaxReceiveLifetime),超时丢弃已收分片;
- 重复分片丢弃(但单播重复分片仍要回 Ack);
- 加密分片必须先解密再去分片;不同密钥/加密与非加密混合的分片不能重组。
记忆:分片 = 发送方"化整为零 + 逐片确认";去分片 = 接收方"按号归组 + 超时清理"。它与 A-MPDU 聚合方向相反------一个为了抗错,一个为了省头(第 08 讲)。
十三、多速率支持(10.6)------"用多快的速率发?"
13.1 思想
PHY 支持多种速率(如 1--11 Mb/s、6--54 Mb/s、MCS0--11...)。"什么时候用什么速率"的算法标准不管 (留给实现),但为了共存与互通,标准规定了速率选择的硬性规则。
13.2 核心规则(10.6.5 / 10.6.6)
| 帧类型 | 速率规则 |
|---|---|
| Beacon / 组播数据与管理帧 | 用 BSSBasicRateSet(基本速率集) 里的速率(非 HT PPDU)------保证 BSS 内所有 STA 都能收到 |
| 单播数据/管理帧 | 可以用任何接收方支持的速率/MCS,但不得用接收方不支持的速率(以其声明的能力元素为准),也不能超过其带宽/空间流能力 |
| 控制响应帧(Ack/CTS/BlockAck) | 用等于或低于引发帧的速率,且必须在操作速率集中------保证控制帧最容易被收到 |
| 未知接收方能力时 | 回退到基本速率集/强制速率 |
记忆:组播与 Beacon 求"谁都听得懂"(基本速率);单播求"对方听得懂"(对方声明能力);控制帧求"稳"(不高于引发帧)。速率选择算法(如自动速率控制)是厂商实现,标准只管"边界规则"。
十四、MSDU 传输限制(10.7)与 Control Wrapper(10.9)
14.1 MSDU 传输限制(10.7)------"别把顺序搞乱"
为避免 MSDU 乱序和丢弃,同时有多个 MSDU 在传时:
| STA 类型 | 同一 RA 下最多 outstanding 的 MSDU |
|---|---|
| 非 QoS STA | 同一 SA 最多 1 个;且最多 1 个 MMPDU |
| QoS STA(非块确认下) | 每个 TID 最多 1 个 |
- "outstanding" = 已开始发送、还没收到最终确认的 MSDU/MMPDU;
- 块确认(第 08 讲)允许更多在途帧------这是它吞吐高的原因之一。
14.2 Control Wrapper(10.9)------"给控制帧穿件 HT Control 外套"
- Control Wrapper 帧 = 传统控制帧 + HT Control 字段,让控制帧也能携带带内控制信息(第 04 讲提过);
- 收端收到 Control Wrapper,按被包装帧的子类型处理(如同直接收到该帧);
- HE STA 之间不再使用 Control Wrapper(HE 有自己的 A-Control 机制)。
十五、小结
| 主题 | 核心要点 |
|---|---|
| MAC 架构(10.2) | DCF 是所有接入的地基;HCF(EDCA/HCCA)、MCF、TUA 分层叠加 |
| 载波侦听(10.3.2.1) | 物理 CCA + 虚拟 NAV 双通道;任一忙则忙 |
| 帧间间隔(10.3.2.3) | SIFS 最短最高优先;PIFS=DIFS+1slot;DIFS=SIFS+2slot;EIFS 用于坏帧后 |
| NAV(10.3.2.4) | 从 Duration 预约;只增不减;RA 是自己不更新 |
| RTS/CTS(10.3.2.6/9) | 解决隐藏节点、快速冲突推断、跨 BSS 保护;dot11RTSThreshold 控制 |
| 确认(10.3.2.11) | 单播立即正向确认;AckTimeout 判定失败 |
| 退避(10.3.3) | CW 从 aCWmin 指数倍增到 aCWmax,成功复位;每次传输后都退避 |
| 接入与重传(10.3.4) | 空闲 DIFS + 退避到 0 → 发送;失败重传到上限/寿命 |
| 时序(10.3.7) | IFS 由 PHY 特性决定,与速率无关 |
| 分片(10.4--10.5) | 短帧更可靠;逐片确认;序列号+分片号重组 |
| 多速率(10.6) | 组播/Beacon 用基本速率;单播用对方支持速率;控制响应帧不高于引发帧 |
| 其他(10.7/10.9) | 每 TID/SA 限制在途 MSDU 数防乱序;Control Wrapper 携带 HT Control |
整节一句话回顾 :Clause 10 回答"帧怎么发出去"------DCF 用 CSMA/CA 把"谁先用信道"用"侦听 + 间隔 + 随机退避"排出来,再用确认与重传保证可靠;HCF/MCF/TUA 都在这套地基上加装各自的 QoS/多用户机制。DCF 是理解 802.11 一切接入行为(包括后面 EDCA、块确认、HE 触发上行)的钥匙。