Block ACK流程
ADDBA
会话属性:强调Block ACK Policy
Number of Buffers:一般是64,然后在11ax上面,可以支持到256(MSDU个数)
ADDBA req
ADDBA resp
BAR
TID:代表了这个BAR帧是针对哪一个AC,也就是优先级类型进行请求的;
Satrting Aequence Number:首个MSDU其对应的sequence号是多少,节点就依照这个sequence号进行反馈
wlan.fc.type_subtype == 0x18
BA
起始序列号为1023。
这里的64个bit都是1,则表示对方收到了1023—1086的报文都被收到了。
Satrting seq number:代表该BA确认的数据报文的序列号开始的。
BlockACK Bitmap: 。该字段每个bit都表示一个序列号。1表示收到,0表示没有收到。从左边开始。
wlan.fc.type_subtype == 0x19
字段
A-MPDU
56726-56739对应同一个A-MPDU 504055
BACK接收SN序号2166,64个全部接收成功 SN号 2166-2229
案例
iperf吞吐特别低仅4Mbits
查看空口日志,发现发送端一直在发送ADDBA req,对端未回复ADDBA resp;没有建立BA流程,导致后面每一包TCP数据,回复一个ACK;
查看对端日志,发现接收到的ADDBA req被fw丢掉了,原因是发送的比标准33字节多3个字节的tag,对端兼容性不好导致丢弃。
解决方法:提高兼容性,addba req除了标准的Block Ack Parameters、Time out、Starting Sequence还可以解析额外ie