为什么有些 Beacon 帧会掉线

Why are some Beacon Frames dropped

为什么我没有捕捉到所有的信标帧?他们被 AP 丢弃了吗?

我在 Linux 中使用 libpcap 来捕获信标帧并解析时间戳。我使用时间戳来计算捕获的 Beacon 帧之间的间隔。

大部分时间间隔是应该的,即102.4ms。但是,每5-6个数据包显示的间隔是102.4ms的倍数,可以是204、306,最多800ms。

我不知道这是因为 AP 没有发送那些 Beacon 帧还是我的 pcap 没有捕获包。

我还没有深入研究 IEEE802.11 规范,但一些第 3 方文档(例如 [1])明确指出

"The beacon may be delayed beyond the target beacon transmission time due to other traffic occupying the medium and backoff delays. The beacon is not retransmitted in case of a collision since the beacon frame is sent to broadcast address. Synchronization function is very simple"

是的,很简单!

如果我使用没有其他 wifi 流量的专用 AP(我的三星 S6 Edge)或 public 路由器也没关系。

有人可以解释一下吗?

[1] https://books.google.se/books?id=RZ_6hPSjwfQC&pg=PA59&lpg=PA59&dq=delayed+beacon+not+retransmitted&source=bl&ots=B-HofLMubj&sig=lgEMnUlZvm2HjLqqr4DkwJ5VPtY&hl=sv&sa=X&ved=0ahUKEwjC-JrpranJAhVIhSwKHW2CCSkQ6AEIHDAA#v=onepage&q=delayed%20beacon%20not%20retransmitted&f=false

似乎信标 不是 由 AP 丢弃。

当我 运行 我的代码时,在终端模式下启动 Raspberry Pi 后(与通常的 GUI 模式不同),我捕获了几乎所有的信标,除了 30 个中的 1 个。

这清楚地表明丢弃的信标是由于客户端 CPU 负载造成的。

希望这对遇到同样问题的人有所帮助。