Ap给终端发一些报文,然后终端回复BA,用来确认收到了哪些数据报文。
同样终端ap发一些报文,然后ap回复BA,用来确认ap收到了终端发的哪些报文
空口抓包被我过滤了bssid,这样抓出来的每个报文的序列号就是我们想要的序列号
如上图所示,第二个BA就是确认的32到34之间的数据报文
可以看到32报文对应的序列号是1540
33号对应1541
34对应1542
35行的BA,则是包含了对这三个报文的确认
从上图可以看到
BA Starting Seq Number:1479
BlockAck Bitmap 0xFFFFFFFFFFFFFFFF:每个bit位都对应了一个特定序列号的报文。1表示收到,0表示没有收到。从左边开始。起始序列号为1479。这里的64个bit都是1,则表示对方收到了1479---1542(1479+64-1)的报文都被收到了。确实能和上面的1542对应。
下面是随便找的一个BA,只是为了说明bitmap的作用。
Satrting seq number:2608,代表该BA确认的数据报文的序列号是从2608开始的。
BlockACK Bitmap: 0x0F00000000000000。该字段每个bit都表示一个序列号。1表示收到,0表示没有收到。从左边开始
0x0F(应该是字节序的原因,其实应该是0xF0)对应的二进制是1111 0000
因此这个BA确认的2608,2609,2610,2611这几个数据报文。
空口抓包可以在此处下载https://download.csdn.net/download/qq_42693685/87407010
通过抓包发现,如果BA没有被对方收到,那么对方会认为你没有收到这几个报文。对方就重传这几个数据报文(感觉是这样,但并未找到证据证明,BA丢失了,只是重传数据报文)。
目前不清楚怎么确认BA是否被对方收到,感觉只能通过是否重传报文得知。