【发布时间】:2012-09-06 14:14:07
【问题描述】:
我正在分析一个 Wi-Fi 捕获 (.pcap),发现在我看来,802.11 规范与 Wireshark 对数据的解释之间存在不一致。具体来说,我要分解的是 2 字节 802.11 Frame Control 字段。
取自http://www4.ncsu.edu/~aliu3/802.bmp,Frame Control字段的子字段格式如下:
下面是让我困惑的数据包的 Wireshark 屏幕截图:
因此,根据 Wireshark 屏幕截图,帧控制字段的标志部分(最后 8 位)是 0x22,这很好。 0x08 的版本/类型/子类型如何与 Wireshark 对框架的描述相匹配,这让我感到困惑。
0x08 = 0000 1000b,我认为这将转换为 Version = 00,Type = 00(我认为是 management 而不是 data帧)和子类型=1000(我认为这将是一个信标帧)。所以我希望这个帧是一个管理帧,更具体地说,是一个信标帧。然而,Wireshark 将其报告为数据框。令我困惑的第二件事是 Wireshark 甚至从 Type/Subtype: Data (0x20) 行中拉出 0x20。
谁能为我澄清我对 802.11 规范/Wireshark 捕获的解释以及为什么两者不一致?
【问题讨论】:
-
我最好的猜测是这个字节被反向解释,就像以太网帧首先传输 LSB。因此你会得到:subtype =
0000b, type =10b/0x2, version =00b,而将类型和子类型一起表示的合理方法是type << 4 & subtype,即0x20案子。不过,我很乐意让知识渊博的人确认或否认这一点。