我有一个Wi捕获(.pcap),我正在分析,并遇到了在我看来是前后矛盾的802.11规范和Wireshark对数据的解释。具体来说,我想拆开的是2字节的802.11帧控制字段.
来自http://www4.ncsu.edu/~aliu3/802.bmp的Frame字段子字段的格式如下:

下面是一个让我困惑的包的Wireshark屏幕盖:

因此,根据Wireshark截图,Frame字段的标志部分(最后8位)是0x22,这很好。0x08的版本/类型/子类型如何与Wireshark对框架的描述匹配,这让我感到困惑。
0x08 = 0000 1000b,我认为它将转换为Version = 00,Type = 00 (我认为它指的是管理而不是数据框架)和Subtype = 1000 (我认为它将是一个信标框架)。因此,我希望这个框架是一个管理框架,更具体地说,是一个信标框架。然而,Wireshark将其报告为数据框架。让我困惑的第二件事是,Wireshark将0x20从Type/Subtype: Data (0x20)行中拉出来的地方。
有人能为我澄清我对802.11规范/Wireshark捕获的解释吗?为什么两者不一致?
发布于 2012-10-04 01:04:43
您的示例中的数据帧是0x08,因为帧控件(FC)的字节的布局。0x08 = 00001000 -前4位(0000)是子类型。0000是此帧的子类型-下一个2位(10)是类型,它是2小数位,因此是数据类型帧,最后2位(00)是版本,为0。
下表为几个框架类型转换FC的子类型类型版本字节的十六进制值。将QoS数据与普通数据帧进行比较可能确实有助于降低这一性能。请注意,这张桌子可能有一两个错误,因为我刚刚把它收拾好了。
你是对的,1000是一个灯塔的框架,你只是看错了位。

您有一个无线电头,您可以从pcap获得类似于以下类型的dec表示:
int type = pkt_data[20] >> 2;发布于 2013-01-13 08:55:06
这是一个常见的错误,肯定已经咬了我好几次了。
这取决于拜德的命令。
当您有一个要表示的多字节数时,就会出现一个问题:您首先放置/发送的是哪个字节?
自然(人类)字节顺序是把大段放在第一位,然后是后面的较小部分,从左到右,也就是大端点。请注意,从程序员的角度来看,每个字节中的位从不是错误的。
例如,1234小数点需要2个字节,04D2十六进制。您是写/发送04 D2,还是D2 04?第一个是大端,第二个是小端。
为了使其更加混乱,所涉及的机制可能使用不同的字节顺序。
有Network顺序,在本例中为Little-endian,体系结构字节顺序(对于每个CPU体系结构可以不同),数据可能位于一个缓冲区中,因此它将根据您是从上到下还是从下到顶读取缓冲区而有所不同。
解释哪些位也可以是“向后”也是没有帮助的,就像您在最初的文章中所做的那样。
发布于 2018-03-30 14:23:45
我正在windows上使用wireshark version-2.4.3。我的数据采集文件如下所示。
Frame control field = 0x0842 i.e., in binary format 0000 1000 0100 0010
Framecontrol flag field = 0x42.i.e., in binary format 0100 0010因此,根据我的理解,框架控制字段中的LSB 8bits将对应于标志。
MSB 8位将对应于子类型、类型、版本,例如,在我的例子中,0000-subtype & 10-type & 00-version。
它是子类型0的数据帧。
在您的情况下,这可能是wireshark的错误。它应该将帧控制字段取消为0x0822,而不是0x2208。
标志字段正确显示为0x22。
在我的例子中,我使用的是wireshark-2.4.3,框架控制字段的显示是正确的,0x0842中的标志是0x42。
My_capture_file:

https://stackoverflow.com/questions/12407145
复制相似问题