我的 Linux 重新发送了 802.11 帧

我的 Linux 重新发送了 802.11 帧

我的程序正在发送自定义 802.11 帧以进行 WPA 握手,例如或authentication。然而,操作系统会重新发送相同的数据包,并修改其 radiotapheader 并删除 FCS。来自 wireshark 的屏幕截图:associationacknowledgement

在此处输入图片描述

ack 和 auth 数据包的长度分别为 40 和 60 字节。然而,它们会被 Linux 操作系统自动重新发送。操作系统会修改数据包头,如下所示。这是原始的 radiotap 头标志:

在此处输入图片描述

这是修改后的标题,也是操作系统发送的标题。

在此处输入图片描述

它设置data retriesTX标记...因此,生成的报头大小缩小了 13...此外,它还删除了帧末尾的 4 字节帧校验序列,因此总共删除了 17 个字节,如 wireshark 图片中所示。现在,为什么我的操作系统通过修改其 radiotap 报头并可能将 TX 设置为失败(如下所示)来发送相同的数据包?我该如何防止这种情况?

这也是 wireshark 上重新发送的数据包之一。这是一个确认数据包,显示如下。我从发送数据包的同一适配器捕获这些数据包。

Frame 552: 23 bytes on wire (184 bits), 23 bytes captured (184 bits) on interface wlan1, id 0
Radiotap Header v0, Length 13
    Header revision: 0
    Header pad: 0
    Header length: 13
    Present flags
        Present flags word: 0x00028004
    Data Rate: 1.0 Mb/s
    TX flags: 0x0001, Fail
    data retries: 0
802.11 radio information
    PHY type: 802.11b (HR/DSSS) (4)
    Data rate: 1.0 Mb/s
    [Duration: 176µs]
        [Expert Info (Warning/Assumption): No preamble length information was available, assuming short preamble.]
        [Preamble: 96µs]
IEEE 802.11 Acknowledgement, Flags: ........

相关内容