Block acknowledgement (BA) was initially defined in IEEE 802.11e as an optional scheme to improve the MAC efficiency.
802.11n amendment ratified in 2009 enhances this BA mechanism then made it as mandatory to support by all 802.11n-capable devices.
- The Originator which intends to use Block Ack Mechanism, should first check if the recipient station is capable of participating in Block Ack Mechanism.
- If the intended recipient is capable of participating, the originator sends ADDBA Request indicating the TID for which the Block Ack is being set up. It will also set the Block Ack Policy subfield value to 1.
- If the BA Request is accepted by the Receiver, it should then respond back with an ADDBA Response frame which indicates the type of Block Ack and the number of buffers that it shall allocate for the support of this Block Ack agreement, with Block Ack Policy subfield value set to 1.
- When a Block Ack agreement is established between two stations, the originator could vary (increase or decrease) the size of its transmission window, depending on the Buffer Size field of the ADDBA Response frame.
- The A-MSDU Supported field indicates whether an A-MSDU may be sent under the particular Block Ack agreement. The originator sets this field to 1 to indicate that it might transmit A-MSDUs with this TID. The recipient sets this field to 1 to indicate that it is capable of receiving an A-MSDU with this TID.
- Once the Block Ack exchange has been set up, data and ACK frames are transferred.
Note: The recipient can always reject the response based on its capabilities to support Block ack mechanism or the AMSDU support.
Types of Block ACK Policy:
- Immediate Block ACK Policy: If the originator sends an immediate Block ACK policy in a Block ACK Request (also referred as BAR frame), the recipient then replies back with a Block ACK frame mentioning the missing frames, so that the originator can update its record and retry the frames that were not acknowledged in the BA request.
- Delayed Block ACK Policy: If the originator sends a Delayed Block ACK policy in a Block ACK request (BAR) frame, the recipient then replies back with a ACK frame. Once the contents of the Block ACK frame is put together, the recipient should then send this Block ACK at the earliest available TXOP (Transmit Opportunity) with highest Access Category.
The Block Ack Policy, Buffer Size, TID, AMSDU fields are highlighted in the below screenshots.
Client MAC – 12:64:cf:4f:71:47
BSSID Address – 1c:28:af:7d:eb:f3
Uplink Switch Address – 20:4c:03:26:48:7c
Category Code: Block Ack – wlan.fixed.category_code == 3
Action Code: Add Block Ack Request – wlan.fixed.action_code == 0x00
Action Code: Delete Block Ack – wlan.fixed.action_code == 0x02
Block ACK Mechanism –
ADDBA Request from the Originator :
ADDBA Response from the Recipient :
Block ACK Request Frame
Block ACK Frame
IEEE Standard 802.11 – 2020