Block Acknowledgement (BA)
♣ What is Block Acknowledge ment (BA)?
Block Acknowledgement is a mechanism to acknowledge one or more Data frame(s) present within A-MPDU.
♣ From which IEEE standard BA was introduced?
BA was introduced in 802.11n standard. 802.11ac also supports BA because if it’s advantages were proven in 802.11n.
♣ Which layer feature is BA?
BA is MAC layer feature not PHY layer feature.
♣ Which Data Rate BA is sent?
BA is sent at highest basic data rate. Generally we have observed that BA is sent at 24Mbps. This may vary depending upon test configurations.
Let’s understand from where we get this 24Mbps.
Follow below screenshot for STA and AP connection and then observe the BA data rate.
♦ Step1:
“Check for highest basic data rate declared at AP’s Beacon or Association Response”
Beacon:
Assoc Response:
So we have observed that highest basic rate is 24Mbps mentioned in Beacon and Association response.
♦ Step2:
“See BA Data Rate”
Now let’s see one BA’s data rate where receiver is AP.
So we can see BA data rate is 24Mbps.
To understand Basic Rate and Supported rate follow different post.
♣ Normal ACK verses BA:
♠ ACK ♠ | ♠ BA ♠ |
*************************************** | *************************************** |
All Spec supports this. | 802.11n and 802.11ac support this. |
Normal ACK data rate is lowest basic data rate like Beacon. | BA data rate is highest basic data rate. |
Normal ACK works with single MPDU. | BA works with A-MPDU even there is single data inside A-MPDU. |
Overhead is more to give acknowledge for multiple data. So network efficiency is less. | Improves network efficiency significantly for multiple data ack scenario. |
*************************************** | *************************************** |
Below diagram is to explain the frame exchange differences for Normal ACK and BA
♣ BA frame analysis:
Here is the basic frame format for a BA.
Let’s see the below screenshot for understanding each field of BA.
♦♦ BA policy is always set to “No Acknowledgement” for BA because BA does not any further ACK. BA itself is the ACK for A-MPDU.
♦♦ Why Compressed BA is used instead of Normal BA?
It is an enhanced version of BA defined in 802.11n. In compressed BA, Fragmented MSDUs cannot be transmitted and hence the bitmap size is reduced from 1024 (64*16) bits to 64 (64*1) bits = 8Bytes.
Remember Aggregation (Here A-MPDU) and Fragmentation is reserve scenario. Aggregation means bundle more data together where as fragmentation means breaking data into pieces. As A-MPDU is used with BA, there is no fragmented data present inside A-MPDU.
♣ What is BAR (Block ACK Request)?
In general, BA is sent immediately after A-MPDU is received. But we may see some device send BAR to ask acknowledgement for some MSDU with one starting sequence number.
Let’s see one sniffer capture where BAR is sent.
In simple sentence:
Sender sends BAR asking the acknowledgement status for MPDU where starting sequence number is X. It’s possible that sender of A-MPDU did not get BA for those data frame where starting sequence number is X. That’s why sender of A-MPDU is sending BAR for lost MPDUs.
♣ BA bitmap deep analysis in Wireshark:
First of all, there may be slight different BA Bitmap mechanism used by different Wi-Fi devices. Here we are going to see the simple method used to indicate whether receiver has received MPDU or not.
We will take one example from capture and explain. Let’s follow screenshot and explanation.
♦ Step1:
We can see one A-MPDU where 8 MPDUs are there.
MPDU sequence numbers are 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685.
Now BA is sent from receiver where
♦ “Block Ack Bitmap: bf00000000000000”
♦ Starting sequence number is 1678
So BA is telling
“I am acknowledging MPDUs with starting sequence number is 1678.
Bitmap is indicating which packet is received and which packet is not received “
Let’s try to understand the meaning of Bitmap (8Bytes [Compressed Bitmap])
Bitmap Hex value is: 0xbf00000000000000 and only 8bytes is used to give MPDU ACK.
Converting 0xbf into binary as 1011 1111. Read from right to left.
bit | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 |
Sequence number | 1685 | 1684 | 1683 | 1682 | 1681 | 1680 | 1679 | 1678 |
This means receiver has received sequence number: 1678, 1679, 1680, 1681, 1682, 1683, 1685.
Not received: 1684
♦ Step2:
As sequence number 1684 is not received so transmitter has to resend it.
We can see in screenshot that 1684 is included in next A-MPDU.
And BA starting sequence number is 1684.
Bitmap is 0xfd00000000000000
0xfd = 11111101
If we use Step1 calculation then we get this
bit | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 |
Sequence number | 1691 | 1690 | 1689 | 1688 | 1687 | 1686 | 1685 | 1684 |
1684 is received and 1685 is mentioned as missing because it was already received in last A-MPDU.
Using this method we can try to calculate BA compressed Bitmap for received or not received MPDUs.
♣ Is MPDU retry bit set to indicate if that MPDU is retried or not? If answer is not, then why is that?
Maximum scenario, I have observed MPDU retry bit is not set for retransmitted MPDU. Using BA compressed bit map calculation we can find out. So, retry bit set is not helpful here.
But, I have observed some vendor set retry bit for MPDU if it’s retransmitted. So, its implementation depended.
Here is the screenshot for our scenario. Retried bit is not set.
♣ Conclusion:
Block Acknowledgement is a strong feature for 802.11n and 802.11ac and newer IEEE standards to improve wireless throughput significantly. I hope this article helps to debug BA and A-MPDU throughput related issues.
♥♥If you have any doubts or query please let me know in comment section or send mail at feedback@wifisharks.com.♥♥
Share this:
- Click to share on Twitter (Opens in new window)
- Click to share on Facebook (Opens in new window)
- Click to share on LinkedIn (Opens in new window)
- Click to share on WhatsApp (Opens in new window)
- Click to share on Reddit (Opens in new window)
- Click to share on Tumblr (Opens in new window)
- Click to share on Pinterest (Opens in new window)
- Click to share on Pocket (Opens in new window)
- Click to share on Telegram (Opens in new window)
- Click to share on Skype (Opens in new window)
- Click to print (Opens in new window)
4 comments on “Block Acknowledgement (BA)”
Leave a Reply
Cancel reply
Search
Categories
- Common (2)
- Capture Download (1)
- Non-WLAN (1)
- Wireshark (2)
- WLAN (26)
- 6E (1)
- 802.11 Frames (3)
- 802.11ac (1)
- 802.11ax (1)
- 802.11be (1)
- 802.11n (1)
- General (1)
- InterviewQuestions (1)
- MCQ (3)
- PowerSave (6)
- Throughput (1)
- WLAN Basic (6)
- CSMA/CA (2)
- Interframe Space(IFS) (1)
- Network Allocation Vector (NAV) (1)
- Scanning (1)
All Posts
- June 2023 (2)
- April 2023 (1)
- March 2023 (1)
- May 2022 (1)
- July 2021 (1)
- March 2021 (1)
- February 2021 (5)
- January 2021 (4)
- December 2020 (2)
- November 2020 (2)
- October 2020 (6)
- September 2020 (1)
- August 2020 (3)
Recent Comments
- Bamdeb on Details on CWmin and CWmax (Contention Window Minimum and Maximum)
- Siva on Details on CWmin and CWmax (Contention Window Minimum and Maximum)
- My Homepage on WLAN SCANNING (Active vs Passive)
- Bss что это в роутере — Все о Windows простым языком on 802.11ax BBS Color or BSS coloring or Spatial Reuse
- Bamdeb on What are the scenarios for STA to wake up from sleep?
Recent Posts
- Short Quiz on Wi-Fi7/802.11be June 7, 2023
- 802.11ax BBS Color or BSS coloring or Spatial Reuse June 4, 2023
- Basic Understanding of Wi-Fi 6E (802.11ax in 6GHz) April 11, 2023
- WLAN connection(open,wep-open,wep-shared,wpa-tkip,wpa2-aes) March 22, 2023
- Beacon vs Probe Response frame May 15, 2022
External Links
Wi-Fi Testing APP Demo
Search
Categories
- Common (2)
- Capture Download (1)
- Non-WLAN (1)
- Wireshark (2)
- WLAN (26)
- 6E (1)
- 802.11 Frames (3)
- 802.11ac (1)
- 802.11ax (1)
- 802.11be (1)
- 802.11n (1)
- General (1)
- InterviewQuestions (1)
- MCQ (3)
- PowerSave (6)
- Throughput (1)
- WLAN Basic (6)
- CSMA/CA (2)
- Interframe Space(IFS) (1)
- Network Allocation Vector (NAV) (1)
- Scanning (1)
All Posts
- June 2023 (2)
- April 2023 (1)
- March 2023 (1)
- May 2022 (1)
- July 2021 (1)
- March 2021 (1)
- February 2021 (5)
- January 2021 (4)
- December 2020 (2)
- November 2020 (2)
- October 2020 (6)
- September 2020 (1)
- August 2020 (3)
Recent Comments
- Bamdeb on Details on CWmin and CWmax (Contention Window Minimum and Maximum)
- Siva on Details on CWmin and CWmax (Contention Window Minimum and Maximum)
- My Homepage on WLAN SCANNING (Active vs Passive)
- Bss что это в роутере — Все о Windows простым языком on 802.11ax BBS Color or BSS coloring or Spatial Reuse
- Bamdeb on What are the scenarios for STA to wake up from sleep?
Recent Posts
- Short Quiz on Wi-Fi7/802.11be June 7, 2023
- 802.11ax BBS Color or BSS coloring or Spatial Reuse June 4, 2023
- Basic Understanding of Wi-Fi 6E (802.11ax in 6GHz) April 11, 2023
- WLAN connection(open,wep-open,wep-shared,wpa-tkip,wpa2-aes) March 22, 2023
- Beacon vs Probe Response frame May 15, 2022
Fred
I have a question. What happens if an 802.11ac/ax client tries to use/sends a-mpdu but It’s not enabled on the AP radio? Will the client keep trying to send the same a-mpdu packets? Will the AP refused the packets until client tries to use a different phy or will the client try to send mpdu and expect acknowledgment from each mpdu? I hope my question makes sense.
Back story: we have multiple APs with 802.11ax enabled. One of the APs didn’t have a-mpdu enabled for some reason (I enabled it) and we noticed the clients were experiencing high latency when associated to this AP. It wouldn’t happen immediately but over time.
I think this is the issue but I want to know how I can tell a-mpdu was the issue?
Bamdeb
Hi Fred,
If i understand your question/scenario correctly, then here is my explanation.
Upto association response or 4way handshake CLIENT or AP does not know if A-MPDU is enabled on the other side.
Thats why, if client wants to use A-MPDU then [after assoc respknse or 4 way handshake..] client sends ADDBA request ACTION frame [for one TID] to AP and if AP sends ADDBA response with success then client is allowed to send A-MPDU frames to AP.
Same way AP also sends ADDBA request to client so that AP can A-MPDU frames to client.
So in you case, if A-MPDU is not enabled in any AP then that AP should reject the ADDBA request ent by client prior sending A-MPDU data. Client can not send A-MPDU data directly without negocoation.
I hope this clarifies some doubt.
Thanks.
Bhanu
Hi,
I have one doubt. Could you please respond with answer. Thanks in advance.
> When STA1 [Tx] > STA2 [Rx]
I’m seeing that block ack beeing sent at different pkt intervals i mean
1. After RTS/CTS first 9 MSDU pkts are transmitted and STA2 sent block ACk.
2. Again in subsequent i’m seeing sta1 sending 12 pkts and sta2 sending ACk.
Question is how sta2 knows when to send block ack and where is is negotiated
Bamdeb
Hi Bhanu,
I think this question is based on some sniffer analysis.
I can understand partially but not completely. If i can see sniffer capture, it would very easy to answer it.
Could you share the sniffer capture either from your gdrive share or mail me at feedback@wifisharks.com ?
And then mention the packet numbers for your observation.