为什么我的 ath9k 生成的 RadioTap headers 看起来格式不正确?

Why do my ath9k generated RadioTap headers seems malformed?

我正在 Ubuntu 16.04(4.4 内核)上使用 scapy 收集 802.11 数据包。我的数据包的 RadioTap headers 具有以下当前标志:

present=TSFT+Flags+Rate+Channel+dBm_AntSignal+b14+b29+Ext

鉴于 RadioTap 的描述,我希望通道从 header 和前面的字段之后的第 10 个字节开始(8 个用于 TSFT + 1 个用于标志和速率)。 Channel 的对齐方式为 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 信号强度。

有人知道我遗漏了什么吗?

深入研究规范后找到答案:

Scapy 不解析 extended headersbit-32 表示(尽管它确实告诉了我它们通过在上面说明 +Ext)。那些额外的 headers 被塞在数据包的 'notdecoded' 部分的前面。我认为 scapy 至少应该从 not-decoded 中删除那些扩展的 headers 以避免将来混淆。

在这种特殊情况下,有两个额外的 32 位扩展位图 headers,占额外的 8 个字节。

如果有人想写一个更详细的答案,我会接受,否则我会清理这个答案并永久接受它。