首页/网络/无线与 Wi-Fi 速查/Block ACK 块确认机制
无线基础与标准67 条

Block ACK 块确认机制

一次确认多个帧,代替逐帧 ACK,是高聚合度场景下减少确认开销的关键机制。

无线与 Wi-Fi 速查网络更新于 2026-10-13

块确认解决什么问题

802.11 传统模式下每个数据帧都要单独回一个 ACK,在高聚合、高吞吐场景里确认帧本身就会吃掉大量空口时间。Block ACK(块确认,BA)随 802.11n 引入:发送方连续发出一组 MPDU,接收方用一个 BA 帧携带位图回传,一次性告知哪些帧收到、哪些需要重传。它和 A-MPDU 聚合是配套关系,没有 BA,聚合度越高确认开销越难承受。

基本信息

引入标准802.11n(HT),11ac/11ax 沿用
协商帧ADDBA Request / Response、DELBA
协商粒度每个 TID(业务优先级)一条会话
窗口大小Buffersize 字段,常见取值 64
配套机制A-MPDU 聚合、A-MSDU 聚合

典型使用场景

  • 大文件传输与备份:帧越聚合,逐帧 ACK 的开销占比越高,块确认收益越明显
  • 高清视频回传与推流:稳定高码率下减少确认帧抢占空口时间
  • 802.11ac/ax 高带宽链路:只有聚合加块确认才能把标称速率跑成实际吞吐
  • 排障「聚合已开但吞吐仍低」:确认 BA 会话是否真的协商成功
  • 多厂商互联互通测试:不同厂商对窗口大小与超时的实现存在差异,需要列入用例

Wireshark 过滤与判读

Wireshark 过滤与判读
wlan.fixed.category_code == 3   # 块确认类别(Block Ack)
wlan.fixed.action_code == 0      # ADDBA Request:发起协商
wlan.fixed.action_code == 1      # ADDBA Response:接受或拒绝
wlan.fixed.action_code == 2      # DELBA:结束会话
wlan.ba                          # 所有块确认相关帧(数据量大,先过滤再看)
wlan.ba.control                  # 展开可见窗口起点与位图

ADDBA 字段读法

字段含义异常表现
Dialog Token本次协商的事务标识短时间内大量重复出现说明协商在反复重来
Starting Sequence Number接收窗口的起始序号与发送侧不一致会造成位图错位、重传异常
Buffersize接收侧可缓存的 MPDU 数量取值过小会限制实际聚合度
Timeout会话保持时间(单位 TU)到期未续会退回逐帧 ACK
块确认按 TID 分别协商:掉一条 TID 的 BA 会话只影响那一个优先级队列,排查时先按 TID 分组看,再判断影响面是全网还是少数业务。
抓包时 BA 帧数量极大,先用显示过滤器定位,再看 ADDBA 是否成对出现,最后看 BA 位图里是否频繁出现未确认位。

易错点

  • ADDBA Response 状态码非 0 时发送侧会退回逐帧确认,表现为「关联速率很高但实际吞吐很低」,只看协商速率会误判为链路正常
  • Buffersize 与并发终端数不匹配时,高密场景会因接收缓冲不足触发重传放大,效果可能比不开聚合更差
  • 抓包点必须落在无线侧才看得到 ADDBA;在上联有线口抓包只剩聚合后的 IP 报文,无法判断块确认状态
  • 不同厂商对 BA 超时时间与支持的 TID 数量实现不同,互联互通测试不能只验证能否关联成功

数据来源与参考

  • IEEE 802.11n(Block ACK)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌