欢迎大家一起学习探讨通信之WLAN。在前期讨论过程中,经常谈到抓取WiFi MAC层的交互协议帧,本节探讨基于Omnipeek实例,分享抓取WiFi MAC层协议帧和初步分析方法。
关于Omnipeek的安装我们已经介绍,可参考【WiFi基础学习到实战(四)】,接下来重点看下Omnipeek的设置和使用。
[1]新建capture,并配置抓取保持包文件的大小,保存路径和个数。
![](https://i-blog.csdnimg.cn/blog_migrate/05cb8806e8241dc4aa4d9348d20b00a4.png)
[2]选择抓包网卡,确认网卡驱动是否正常。
![](https://i-blog.csdnimg.cn/blog_migrate/f4eac93438bfe46dfdc2250dc6e387e7.png)
[3]选择802.11协议,配置抓包信道。关于信道参数n40l,an等介绍可参考【第七节:通信之WLAN(信道)】。
![](https://i-blog.csdnimg.cn/blog_migrate/6d99da85b59e059baeadbeca238403c3.png)
[4]如WiFi网络是加密模式,则抓的包只能看到mac header,ip层以上都为加密。可通过设置key,omnipeek将自动解析加密包。
![](https://i-blog.csdnimg.cn/blog_migrate/e08c774e635d06102b0ca15583d7974e.png)
注:
(1)解析加密包的条件,必须抓到设备连接WiFi网络过程的交互包,即4次握手包等。
(2)无线网络复杂,每次要抓到WiFi连接过程的包,比较困难。后续给分析如何每次都可以获取到4次握手的包,用于解析加密包。
[5]如下是omnipeek抓包显示界面,可设置显示包的信号强度,时间,flag等。
![](https://i-blog.csdnimg.cn/blog_migrate/f31277fce3895efeeb1fa33019f7f027.png)
注:
标有crc错误flag的包,无参考意义,但连续的crc错误报文,我们可利用其判断是否存在无线干扰。
[6]软件会将当前信道所有包都抓取到,非常多,实际分析过程中,我们只想选择目标WiFi网络设备的包,可通过设置过滤器,添加过滤条件,过滤到想要的包。过滤器分为simple和advance。
![](https://i-blog.csdnimg.cn/blog_migrate/66994726f8c81de39d69ddff02af7a6f.png)
[7]filter advance设置如下。
![](https://i-blog.csdnimg.cn/blog_migrate/0fe8e263d1d6ca0a50a29df6f2822c1c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6ecd3d461469b8d765499b3c2a67140f.png)
[8]软件支持统计不同类型的数据包信息,如note,可显示每个note的收包个数,字节占比等。
![](https://i-blog.csdnimg.cn/blog_migrate/03ca2f92392c30cd06e43227affb509d.png)
[9]根据协议显示当前捕获包的协议类型包占比,可选择某个协议包类型进行过滤。
![](https://i-blog.csdnimg.cn/blog_migrate/8e1e268afc0b24304334c49d80c33992.png)
[10]经常用到的summary统计信息,查看当前收发包个数,重传个数。不同协议类型包的状态。
![](https://i-blog.csdnimg.cn/blog_migrate/cb5b1457643d9347793495155b948eba.png)
[11]对于WiFi网络来说,Beacon帧非常重要,从周期的Beacon帧中,可以获得当前WiFi网络的能力,支持速率等信息。如下Beacon抓包实例。这里重点看下经常需要分析的几个字段。
![](https://i-blog.csdnimg.cn/blog_migrate/629006ee843388a5371a332e154d0dea.png)
HT能力信息字段,表明当前支持802.11n协议,A-MSDU最大长度,最小MPDU start spacing等,如下图所示。其各个字段含义后续章节介绍。
![](https://i-blog.csdnimg.cn/blog_migrate/319615f77f1817ba5e9ac70c221daa5f.png)
HE能力信息字段,表明当前支持802.11ax协议,bss color,mac和phy能力信息等。其各个字段含义后续章节介绍。
![](https://i-blog.csdnimg.cn/blog_migrate/2360a362128261fd6fa6b15514c190a6.png)
[12]WiFi网络抓包的目的,分析当前包交互情况,如下抓取data包,从其中我们经常需要确认的信息内容如下。
![](https://i-blog.csdnimg.cn/blog_migrate/9b096b25672bd40e7f0a49dcb8505b1e.png)
[13]数据包交互,需要BA或ACK确认。如下抓取BA和ACK包,信息如下。
![](https://i-blog.csdnimg.cn/blog_migrate/174653b8aa6b8cbc7ef41a907fb27a88.png)
![](https://i-blog.csdnimg.cn/blog_migrate/782c9d8d1dae5e4c32b40d909a378d8d.png)
好。到这里我们将omnipeek抓包的分析选项和经常检查包的信息字段做了说明,下面实例分析下,从抓包我们可以看出哪些可能存在的问题呢?
当拿到WiFi网络抓包报文,首先要确认的是这份报文是否正常(即是否有效),这要如何判断呢?
答:
基于CRC Flag,如大多都是CRC error,且无规律的出现CRC error,则该抓包报文无分析意义。
抓包报文中,Beacon周期不明显,发包后无BA/ACK,但包的序列号SN一直增加,则抓包有漏抓,分析时需要注意。
[场景1]:发送方数据包发送完成后,接收方回复BA,但发送方又重传,实例如下所示。
![](https://i-blog.csdnimg.cn/blog_migrate/5c8566dbf91069bd7bedb1e0a8e7d84e.png)
针对该场景首先需要检查确认以下几点:
发送BA包速率。
接收方发送BA的TX power状态,回BA包时间。
BA的内容,如地址信息。
BA的bitmap信息,如是否正确表示整个AMPDU。
发送方接收能力。
[场景2]:发送方数据包发送完成后,接收方未回BA,导致发送方重传,实例如下所示。
![](https://i-blog.csdnimg.cn/blog_migrate/ca7c88781b151b94bda5b88c321ffd75.png)
针对该场景首先需要检查确认以下几点:
发送方发数据包的power,如power是否过大导致接收方饱和,或过小收不到。发送方TXAGC状态等。
发送方发包速率。
确认发送方加密和不加密包有无差异。
发送方发包格式,如接收方不支持LDPC,而发送方发数据包使用了LDPC编码,不支持的速率。
确认前后信道资源状态。
接收方接收能力。
[场景3]:发送方数据包发送完成后,接收方只收下部分A-MPDU的包。
![](https://i-blog.csdnimg.cn/blog_migrate/1eb99a6c5632e9244c7aefb81db81d55.png)
针对该场景首先需要检查确认以下几点:
确定发包速率,如用1M发包速率是否可以改善。
确认接收方rx状态,如:增大接收方rx buff,或减小聚合包个数。
检查BA的start number和bitmap。
未收成功MPDU状态,如在聚合开始或聚合最后,是否有规律。如在聚合包第一包开始,可能因干扰导致,在聚合包最后可能rx buff不足导致。
在使用抓包网卡时,有一个特别注意事项,该抓取的WiFi网络帧,仅表明当前抓包网卡接收到的状态信息,并不代表WiFi网络设备接收到的信息,可协助分析WiFi设备接收状态。因此,抓包时,根据实际情况,需要调整抓包网卡,路由器和WiFi设备的位置。
本节分享了Omnipeek使用,简单分享了几个场景数据包交互异常的分析方法。但真实WiFi网络环境中遇到速率低,连不上网等问题,导致其因素很多,需要有一定的WiFi专业基础,后续再根据探讨知识点,进行实例分析说明。第二十三节探讨就到此,后续期待共同继续探讨学习。
注:
对以上所述专业知识有修正意见或建议,可随时留言反馈。如感兴趣更多通信知识,可关注“通信之WLAN” for WeChat 公众号。
谢谢大家支持~