我正在Ubuntu 16.04(4.4内核)上使用scapy收集802.11数据包。我的数据包的RadioTap标头有以下现有标志:
present=TSFT+Flags+Rate+Channel+dBm_AntSignal+b14+b29+Ext
鉴于RadioTap的描述,我希望Channel在头部和前面的字段之后的第10个字节处开始(对于标志和速率,每个TSFT + 1为8)。通道的对齐为2,因此不需要填充。然而,这就是数据包未解码部分的内容:
notdecoded=' \x08\x00\x00\x00\x00\x00\x00f\xc0 \x02\x00\x00\x00\x00\x10\x02l\t\xa0\x00\xa9\x00\x00\x00\xa9\x00'
在这种情况下,通道号实际上出现在字节18-19('l \ t'= 2412),并且我不确定哪个字节包含dBm信号强度。
任何人都知道我错过了什么?
答案 0 :(得分:2)
在深入挖掘规范之后找到答案:
Scapy无法解析 bit-32 所指示的扩展标头(虽然它确实通过声明 + Ext 上面)。这些额外的标题填写在“未解码”的前面。包的一部分。我认为scapy至少应该从未解码中删除那些扩展的标题,以避免将来混淆。
在这种特殊情况下,有两个额外的32位扩展位图头,占额外的8个字节。
如果有人想要更详细地写一个答案,请接受它,否则我会清理这个答案并永久接受它。