问题
Why am I not capturing all Beacon Frames? Are they being dropped by AP?
I'm using libpcap in Linux for capturing Beacon Frames and parsing the timestamp. I use the timestamps to compute the interval between captured Beacon Frames.
Most of the time the interval is what it should be, namely 102.4ms. However, every 5-6 packets show an interval of a multiple of 102.4ms, this can be 204, 306 and up to 800ms.
I don't know if this is due to AP not sending those Beacon Frames or my pcap not capturing the package.
I haven't dug myself through IEEE802.11 specs but several 3rd party documentations (e.g [1]) vagely state that
"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"
Yes, very simple!
And it doesn't matter if I use a dedicated AP (My Samsung S6 Edge) with no other wifi traffic or a public router.
Can someone shed some light on this?
[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
回答1:
Seems as if the beacons are NOT dropped by AP.
When I ran my code, after booting the Raspberry Pi in terminal mode (unlike the usual GUI mode), I caught nearly ALL beacons, except for 1 in 30 maybe.
This is a clear indication that the dropped beacons are due to client CPU load.
Hope this helps people encountering same issue.
来源:https://stackoverflow.com/questions/33897856/why-are-some-beacon-frames-dropped