从事WiFi嵌入式软件开发的同学,802.11协议层抓包分析是一个需要熟练掌握的一个技能,需要通过分析WiFi底层802.11协议层的数据包来定位问题。同时从学习802.11协议的角度而言,最有效的学习方法就是通过抓包来学习,从抓到的数据包中,可以验证之前理论学习部分的知识,通过对数据包的理解,不仅可以加深对802.11协议的理解,还能提高自己在实际使用中问题分析、解决能力。
由于要抓到802.11协议层的数据包需要无线网络进入混杂模式,在不同的操作系统下需要不同的软硬件配合才能实现,本文分3部分依次介绍:
在不同操作系统下实现802.11数据包捕获分析。
嵌入式开发工程师开发环境通用使用Windows,由于Windows下很多专业的抓包工具都需要特定的无线网卡和驱动支持才可实现混杂模式802.11数据捕获。在某些场景下,这些专业的抓包工具不一定会随身携带。所以先介绍一个Windows下Microsoft官方提供的轻量型的抓包工具Microsoft Network Monitor。
Microsoft Network Monitor是Microsoft官方提供的一款免费网络协议数据分析工具,不仅可以抓包,而且可以基于抓包结果做一些简单的数据分析。Microsoft Network Monitor当前最新版本为3.4,同时支持32位和64位系统,可在Microsoft官方免费下载,下载地址为:https://www.microsoft.com/en-us/download/details.aspx?id=4865。我使用的系统是Win1064位系统,电脑自带的网卡驱动不支持混杂模式,测试发现外接了360USBWiFi可实现混杂模式。
软件安装过程较简单,没有需要特别注意的地方。需要注意的是,安装完成后需要重新启动一下电脑,否则软件可能无法正确显示当前网络列表。
以管理员身份运行Microsoft Network Monitor 3.4,在“Select Networks”中会正确显示当前全部网卡,可以通过Friendly Name和Description找到我们要抓包的网卡。
Microsoft Network Monitor 默认是“Local Mode”,该模式下软件只能捕获当前选中的网卡收发的数据,是无法捕获到没有经过该网卡的数据的。
我们在WiFi开发过程中定位问题通常需要通过无线网卡,捕获路由器与其他WiFi设备之间通讯的数据,普通模式下软件并没有捕获到。Microsoft Network Monitor支持无线网卡进入“Monitor Mode”,该模式即为混杂模式,此时可捕获路由器与其他WiFi设备之间的通讯数据包。
- 双击需要设置“Monitor Mode”的无线网卡,点击“Scanning Options”
从实际使用中发现,Microsoft Network Monitor功能无法与“wireshark”、“Omnipeek”等专业抓包软件相媲美,但是能满足日常基本的802.11数据包捕获、802.11协议学习。上手快,受限也较少,更多功能也需要在使用在不断发掘。
领取专属 10元无门槛券
私享最新 技术干货