Four exchanges, drawn frame by frame and paced to the real capture timestamps from Frame Challenge. Scrub the timeline, or click any row in the list to jump there.
Playback is slowed so it is watchable. The clock always shows the real elapsed capture time, and the strip below compares the four exchanges at true relative scale.
// real duration, all four to the same scale
EAP-TLS
442.0 ms
FT Roam
76.0 ms
Wi-Fi 7 MLO
39.2 ms
Failed handshake
off scale
4029.0 ms
An FT roam completes in 76 ms. A full EAP-TLS association takes 442 ms, 5.8 times longer, and almost all of that is the certificate exchange. That gap is the entire argument for 802.11r on a voice network. The failed handshake is scaled off the end at 4029 ms, because four one-second retry timeouts are not a duration you compare against a working association.
Full 802.1X association
WPA3-Enterprise, 5 GHz. Three lanes, because two lanes tell a lie: most of this association is not happening on the air at all. The dashed legs to RADIUS are inferred from the gaps, not captured, since a wireless sniffer never sees the wired side.
0.000 s
// where the 442 ms actually goes
802.11 over the air20.6 ms4.7%
RADIUS round trips237.3 ms53.7%
Client-side crypto169.9 ms38.4%
AP starting EAP14.2 ms3.2%
Only 4.7% of this association is 802.11 exchange. Over half is the AP waiting on RADIUS, and
38.4% is the client doing TLS crypto. When someone reports slow onboarding, the capture says
the air was idle for most of it. Check the RADIUS path and the client, not the RF.
Vertical position is proportional to capture time.
Frames closer than 3.7 ms are nudged apart so they stay clickable, a maximum error of 0.63% of the axis. 9 of 15 labels fit; the full list is on the right.
// medium occupancy, true scale
The whole exchange as one channel. Blocks are drawn at a 1 px minimum so they are visible at all, which flatters them. The real figure is the number below.
0 ms442 ms
Medium busy
4.479 ms
Occupancy
1.01%
Channel idle
437.5 ms
Overhead share
39.4%
// per frame, magnified
DIFS + backoff + SIFSframeACK
0454 B
257.5 us
0554 B
257.5 us
06221 B
481.5 us
07198 B
449.5 us
08138 B
213.5 us
09146 B
217.5 us
10152 B
217.5 us
11301 B
269.5 us
121188 B
565.5 us
13144 B
217.5 us
14142 B
217.5 us
15255 B
253.5 us
16376 B
293.5 us
17457 B
321.5 us
18233 B
245.5 us
Every frame pays a fixed 117.5 us of DIFS, average backoff and SIFS before and after it, regardless of size.
Raise the data rate and the frame shrinks while that overhead does not, so the overhead share climbs.
Drop it and watch total airtime grow: that is precisely why one legacy client at a low rate costs everyone else on the channel.
802.11r fast transition
Over the air, capture on the target AP. No EAPOL anywhere: the keys arrive inside the Reassociation Response. Compare its real span against EAP-TLS on the strip above.
0.000 s
Vertical position is proportional to capture time.
No frames needed nudging, so every arrow sits at its exact timestamp.
// medium occupancy, true scale
The whole exchange as one channel. Blocks are drawn at a 1 px minimum so they are visible at all, which flatters them. The real figure is the number below.
0 ms76 ms
Medium busy
4.16 ms
Occupancy
5.47%
Channel idle
71.8 ms
Overhead share
22.6%
// per frame, magnified
DIFS + backoff + SIFSframeACK
01166 B
409.5 us
02335 B
633.5 us
03231 B
493.5 us
04243 B
509.5 us
05413 B
737.5 us
06409 B
733.5 us
07102 B
321.5 us
08102 B
321.5 us
Every frame pays a fixed 117.5 us of DIFS, average backoff and SIFS before and after it, regardless of size.
Raise the data rate and the frame shrinks while that overhead does not, so the overhead share climbs.
Drop it and watch total airtime grow: that is precisely why one legacy client at a low rate costs everyone else on the channel.
WPA3-Personal MLO association
SAE runs in Authentication frames before association, then the 4-way handshake still follows. Four Auth frames, an Assoc exchange, four EAPOL frames.
0.000 s
Vertical position is proportional to capture time.
No frames needed nudging, so every arrow sits at its exact timestamp.
// medium occupancy, true scale
The whole exchange as one channel. Blocks are drawn at a 1 px minimum so they are visible at all, which flatters them. The real figure is the number below.
0 ms39 ms
Medium busy
4.659 ms
Occupancy
11.89%
Channel idle
34.5 ms
Overhead share
25.2%
// per frame, magnified
DIFS + backoff + SIFSframeACK
02214 B
473.5 us
03214 B
473.5 us
04118 B
345.5 us
05118 B
345.5 us
06588 B
969.5 us
07552 B
921.5 us
08261 B
253.5 us
09382 B
297.5 us
10479 B
329.5 us
11239 B
249.5 us
Every frame pays a fixed 117.5 us of DIFS, average backoff and SIFS before and after it, regardless of size.
Raise the data rate and the frame shrinks while that overhead does not, so the overhead share climbs.
Drop it and watch total airtime grow: that is precisely why one legacy client at a low rate costs everyone else on the channel.
PMK mismatch, four retries then deauth
M3 never arrives. The AP cannot validate the MIC on M2, so it discards it and retransmits M1 on a one second timeout. Four attempts, then reason 15.
0.000 s
Vertical position is proportional to capture time.
Frames closer than 33.6 ms are nudged apart so they stay clickable, a maximum error of 1.23% of the axis. 5 of 10 labels fit; the full list is on the right.
// medium occupancy, true scale
The whole exchange as one channel. Blocks are drawn at a 1 px minimum so they are visible at all, which flatters them. The real figure is the number below.
0 ms4029 ms
Medium busy
2.871 ms
Occupancy
0.07%
Channel idle
4026.1 ms
Overhead share
40.9%
// per frame, magnified
DIFS + backoff + SIFSframeACK
04164 B
405.5 us
05255 B
253.5 us
06376 B
293.5 us
07255 B
253.5 us
08376 B
293.5 us
09255 B
253.5 us
10376 B
293.5 us
11255 B
253.5 us
12376 B
293.5 us
1368 B
277.5 us
Every frame pays a fixed 117.5 us of DIFS, average backoff and SIFS before and after it, regardless of size.
Raise the data rate and the frame shrinks while that overhead does not, so the overhead share climbs.
Drop it and watch total airtime grow: that is precisely why one legacy client at a low rate costs everyone else on the channel.