Wireless Protocols

Compressed Block ACK

/kuhm-prest blok ak/
Introduced with 802.11n high-throughput operation, this acknowledgment frame confirms an entire burst of aggregated frames in a single response by carrying a 64-bit bitmap rather than the legacy 128-byte uncompressed bitmap. Each bit maps to one MPDU within an A-MPDU data frame, so a station can acknowledge up to 64 sub-frames at once and trigger selective retransmission of only the sub-frames whose bits are clear. Shrinking the BlockAck frame from roughly 152 bytes to 32 bytes removes most per-frame acknowledgment overhead, which is the dominant efficiency win that frame aggregation depends on at gigabit Wi-Fi rates.
Category: Wireless Protocols
Bitmap: 64 bits (8 bytes)
Max MPDUs Acked: 64

Anatomy of the 802.11 Block ACK Mechanism

Block acknowledgment was added in 802.11e to let a transmitter send a contiguous block of QoS data frames and receive one consolidated acknowledgment instead of an immediate ACK after every frame. The original variant used a 128-byte bitmap with 16 bits per MPDU, reserving room to acknowledge each fragment of a fragmented frame. When 802.11n coupled Block ACK with A-MPDU aggregation, fragmentation became irrelevant, so the Compressed Block ACK collapsed the bitmap to a single bit per MPDU. The result is a 64-bit field where bit n reports the status of the MPDU at Starting Sequence Number plus n, evaluated modulo 4096 because the 802.11 sequence number space is 12 bits wide.

The session is created through the ADDBA (Add Block Acknowledgment) handshake, in which the originator proposes a buffer size and a reordering window (WinSize, up to 64) and the recipient confirms. During the session the originator may end an A-MPDU with a Block Ack Request (BlockAckReq) to explicitly poll for a BlockAck, or rely on implicit Block Ack solicited by the aggregate itself. The recipient maintains a scoreboard indexed by sequence number, sets the corresponding bit for every sub-frame that passes its FCS check, and returns the bitmap. The originator then retransmits only the MPDUs that were not acknowledged, advancing the window as the lowest outstanding sequence number is confirmed.

Because each A-MPDU sub-frame is wrapped in its own delimiter with a CRC and a length field, a receiver can deaggregate the burst and validate each MPDU independently even when an earlier sub-frame is corrupted. This per-MPDU integrity is what makes selective retransmission practical and is why a single radio glitch no longer forces the whole aggregate to be resent. The mechanism is fundamental to the throughput of 802.11n, 802.11ac, and 802.11ax devices.

Bitmap Mapping and Overhead Equations

Bitmap index to sequence number:
SN(n) = (SSN + n) mod 4096,   n = 0 … 63

BlockAck frame size (MAC frame, with FCS):
Compressed ≈ 32 bytes  vs.  Uncompressed ≈ 152 bytes

Aggregation MAC efficiency:
ηMAC ≈ Tdata / (Tdata + SIFS + TBA + DIFS),   Tdata = N × TMPDU

Where SSN = Starting Sequence Number, N = number of MPDUs in the A-MPDU (≤ 64), TMPDU = on-air time per MPDU, Tdata = aggregate transmit time, TBA = BlockAck transmit time. Aggregating N MPDUs amortizes the fixed SIFS, BlockAck, and DIFS overhead across one exchange instead of N, so ηMAC climbs toward 1 as N grows. Example: 64 × 1500-byte MSDUs at MCS 9, 80 MHz, where one 32-byte BlockAck replaces 64 separate immediate ACKs and their SIFS gaps, lifting ηMAC from roughly 0.45 for single-frame exchanges to above 0.85.

Block Acknowledgment Variants Compared

VariantStandardBitmap SizeBits / MPDUMax MPDUsTypical Use
Basic (immediate ACK)802.11 (legacy)nonen/a1Per-frame acknowledgment
Uncompressed Block ACK802.11e128 bytes1664Fragmented QoS bursts
Compressed Block ACK802.11n / ac8 bytes164A-MPDU aggregation
Multi-STA Block ACK802.11axvariable per-STA164 per STAOFDMA / MU-MIMO uplink
Multi-TID Block ACK802.11n / axper-TID 8 bytes164 per TIDMixed access categories
Common Questions

Frequently Asked Questions

How does the Compressed Block ACK differ from the original uncompressed Block ACK?

The 802.11e Block ACK carried a 128-byte bitmap with 16 bits per MPDU to acknowledge each fragment. Since aggregation rarely uses fragmentation, the Compressed Block ACK in 802.11n cut the bitmap to 8 bytes (64 bits), one bit per MPDU, shrinking the BlockAck frame from about 152 bytes to 32 bytes and saving roughly 40 µs of air time at a 24 Mbps control rate. The Starting Sequence Number anchors bit 0; each later bit maps to the next sequence number modulo 4096.

How many MPDUs can a single Compressed Block ACK acknowledge?

The 64-bit bitmap acknowledges up to 64 MPDUs, matching the WinSize = 64 reordering window negotiated in the ADDBA handshake. The count is also bounded by A-MPDU length limits: 65,535 bytes in 802.11n and 1,048,575 bytes in 802.11ac and 802.11ax. With 1,500-byte MSDUs a full 64-MPDU aggregate is about 96 KB, so the larger 802.11ax limit lets the entire window fill at high MCS. 802.11ax also adds a Multi-STA Block ACK for OFDMA and MU-MIMO.

How does a receiver signal which frames in an A-MPDU were lost?

Each bitmap bit maps to one MPDU sequence number from the Starting Sequence Number: a 1 means the MPDU passed its FCS check, a 0 means it was missing or corrupted. The transmitter resends only the MPDUs whose bits are 0, which is selective retransmission, instead of resending the whole aggregate. Because each A-MPDU sub-frame carries its own delimiter and CRC, the receiver can deaggregate and FCS-check sub-frames individually even when earlier ones fail.

Wireless Test & Front-Ends

Building the RF Front End Behind Wi-Fi 6/7

From low-noise amplifiers to filtered front-end modules, RF Essentials supplies the millimeter-wave and microwave components that high-throughput 802.11 links rely on. Talk to our engineering team about your design.

Get in Touch