One of the most significant feature in WiFi which contributes immensely to the throughput until today is Aggregation.
The ability to pack packets together and transmit all at once and also acknowledge all together allowing the transmitter to correctly detect the missed and received packets deserves more appreciation from Wifi world as compared with other fancy features from VHT,HE,EHT or may be future IHT (Infinitely High throughput (??) era.
The Block Ack mechanism associated with the Aggregation in the packet transmission flow is an important aspect and I’m sharing here the variations in the block ack method based on the packet captures from various real clients in our lab. Understanding this can help debug throughput related issues.
There are 3 types of Block Ack we can see in general from the packet captures:
Type 1: The Starting sequence number of the Block ACK representing the Actual Starting sequence number of the AMPDU Block received. In this case, the first missing sequence number represented by the bitmap will become the starting sequence number of next AMPDU Block
- The picture attached (Type 1) represents 3 AMPDU blocks from a packet capture. The picture also shows how to interpret the bitmap to find the missing frames.
Type 2: The starting sequence number of the block ack does not represent the actual starting sequence number of the AMPDU. In this case the SSN gets adjusted to a previously received packet’s sequence number in such a way that the SSN+64 will give the starting sequence number of the next TXOP block.
- In the picture (Type 2) representing AMPDU blocks of a packet capture, the starting sequence number gets adjusted to 12 to acknowledge 64 packets from sequence number 12th packet which was received prior. So the next start sequence number for the AMPDU is 76 as you see. This pattern is seen only when the receiver have received at least 64 packets.
- Type 3: Until first 64 packets are received, we see another variant (refer picture Type 3) that Starting sequence number stays same for all the block acks until it successfully received 64 packets. Post 64 packets , the SSN readjusts to the #2 variant. The first missing sequence number represented by the bitmap will become the starting sequence number of next TXOP in this variant as like other variants.
Note that in any case if missing sequence number is there in the bit map then the next sequence number of the subsequent AMPDU is the first missing sequence number of the previous Block Ack.