如果捕获数据包的接口的链路层标头类型是 LINKTYPE_IEEE802_11,则不,您无法获取协议变体。
如果捕获数据包的接口的链路层标头类型是 LINKTYPE_IEEE802_11_RADIOTAP(是的,这是正确的名称;wiretap.org pcap-NG 规范中的链路层标头类型列表已过期,向上-to-date 列表是tcpdump.org Link-Layer Header Types 页面),然后数据包以radiotap 标头开始,提供有关数据包的各种元数据。
如果 radiotap 标头包含Channel字段,那么从那里的信息中,您可以确定有关协议变体的一些信息:
- “5 GHz 频谱信道”+“OFDM 信道”=802.11a;
- “2 GHz 频谱信道”+“CCK 信道”=802.11b;
- “2 GHz 频谱信道”+“OFDM 信道”=802.11g;
- “2 GHz 频谱信道”+“动态 CCK-OFDM 信道”=802.11g;
(两种 802.11g 风格之间的差异表明同一信道上是否也可能存在 802.11b 流量 - 这就是“动态 CCK-OFDM 信道”所表示的)。
但是,如果存在MCS字段,则为 802.11n,而不是任何其他类型,如果存在VHT字段,则为 802.11ac。
可能还有一个XChannel字段,它可以与 Channel 字段类似地解释,尽管它也包含一些 802.11n 的信息。