// reference · channel access · cwna ch.8
802.11 Channel Access Methods
Wi-Fi is a half-duplex shared medium. Every device on a channel must take turns. The rules that govern who transmits when - and how priority traffic gets preferential access - are defined in IEEE 802.11-2020 §10. Source: IEEE 802.11e-2005, 802.11-2020 §10.22 (EDCA).
// dcf - the foundation of all 802.11 access
DCF (Distributed Coordination Function) is the base access mechanism. Every 802.11 device uses it. It implements CSMA/CA - Carrier Sense Multiple Access with Collision Avoidance.
CSMA/CA procedure:
1. Listen (carrier sense)
Is the medium busy? If someone else is transmitting, wait.
2. Wait DIFS
After medium goes idle, wait DIFS (34 μs at 9 μs slot time). Still listening.
3. Random backoff
Pick a random number in [0, CWmin]. Count down - pause if medium goes busy, resume when idle again.
4. Transmit
When backoff reaches 0, transmit. If collision occurs, double CW and retry.
5. Wait ACK
Receiver sends ACK after SIFS. No ACK = collision assumed → retry with larger CW.
6. Post-backoff
After every successful transmission, perform one more backoff before the next frame. Ensures fairness.
Why "Avoidance" not "Detection"?
Wi-Fi cannot detect collisions while transmitting (unlike Ethernet CSMA/CD). A transmitting 802.11 radio can't hear what's happening on the medium - it's only listening before and waiting for an ACK after. This is why avoidance (backoff before transmitting) replaces detection.
Contention Window growth:
Start: CW = CWmin (e.g. 15 slots for AC_BE)
Miss: CW = (CW × 2) + 1
15 → 31 → 63 → 127 → 255 → ... → CWmax
Success: CW resets to CWmin
IEEE 802.11-2020 §10.3.5 - binary exponential backoff
Miss: CW = (CW × 2) + 1
15 → 31 → 63 → 127 → 255 → ... → CWmax
Success: CW resets to CWmin
IEEE 802.11-2020 §10.3.5 - binary exponential backoff
// edca - 4 access categories with different priorities
| Access Category | AIFSN | CWmin | CWmax | TXOP (ms) | Traffic type |
|---|---|---|---|---|---|
| AC_VO Voice | 2 | 3 (aCWmin/4-1) | 7 (aCWmin/2-1) | 1.504 | 802.11 voice calls, VoWLAN, Zoom audio |
| AC_VI Video | 2 | 7 (aCWmin/2-1) | 15 (aCWmin-1) | 3.008 | Video streams, Zoom video, screen sharing |
| AC_BE Best Effort | 3 | 15 (aCWmin) | 1023 (aCWmax) | 0 | Web browsing, file transfers, general data |
| AC_BK Background | 7 | 15 (aCWmin) | 1023 (aCWmax) | 0 | Backups, software updates, print jobs |
AIFS[AC] = SIFS + AIFSN × SlotTime · At 9 μs slot: AC_VO = 16 + 2×9 = 34 μs · AC_BK = 16 + 7×9 = 79 μs
Lower AIFSN + smaller CW = statistically more channel access = higher priority. WMM ≠ guaranteed QoS - it's statistical priority.
Lower AIFSN + smaller CW = statistically more channel access = higher priority. WMM ≠ guaranteed QoS - it's statistical priority.
// txop - transmission opportunity
TXOP is a bounded time interval during which a station can transmit as many frames as possible without re-contending for the medium. Once a station wins a TXOP, it owns the medium for that duration.
TXOP = 0
Limited to single MSDU or MMPDU per channel access. No burst.
TXOP > 0
Station can send multiple frames back-to-back within the TXOP window. Each frame separated by SIFS.
AC_VO TXOP = 1.504 ms
Voice frames are short - TXOP allows bursting several voice packets in one channel access, reducing contention overhead.
AC_BE/BK TXOP = 0
No burst. One frame per contention win. Voice always gets channel before BE can burst.
// wmm vs edca
WMM (Wi-Fi Multimedia) is the Wi-Fi Alliance certification that implements a subset of IEEE 802.11e EDCA. If a device is WMM-certified, it supports the 4 AC queues with the standard EDCA parameters.
WMM = EDCA subset
WMM mandates AC_VO/VI/BE/BK with standard parameters. EDCA allows per-AP customisation of all parameters.
WMM mandatory
Required for 802.11n (Wi-Fi 4) and later Wi-Fi Alliance certification. All modern APs and clients support WMM.
HCCA: rarely deployed
HCF Controlled Channel Access - the polled, deterministic alternative to EDCA. Theoretically better for voice. Almost never deployed. Know it exists for the exam.
Wireshark
wlan.qos.priority shows the AC. EDCA parameters in EDCA Parameter Set IE (wlan_mgt.tag.number == 12) in beacons.
// rts/cts - hidden node problem
Hidden node: two clients can both hear the AP but cannot hear each other. Both transmit simultaneously, causing a collision at the AP. RTS/CTS solves this.
RTS (Request to Send)
Client sends a short RTS frame to the AP before the data frame. All stations that hear it set their NAV timer.
CTS (Clear to Send)
AP broadcasts CTS. All stations that hear it set NAV - even the ones who could not hear the original RTS.
NAV (Network Allocation Vector)
A timer each station maintains. While NAV > 0, the station defers transmission. Prevents the hidden node from transmitting.
RTS threshold
Only used for frames larger than the threshold (default often 2347 bytes = disabled). Adds overhead for small frames.
Wireshark
wlan.fc.type_subtype == 0x0b (RTS), 0x0c (CTS). Duration field sets NAV.
// block ack - aggregation acknowledgement
Block ACK enables frame aggregation (A-MPDU). Instead of ACKing each frame individually (with one ACK per frame, each consuming SIFS), the receiver acknowledges a burst of frames with one Block ACK. Critical for 802.11n/ac/ax throughput.
A-MPDU aggregation
Multiple MAC frames bundled into one PHY transmission. 802.11n: up to 64KB. 802.11ac: up to 1MB. Reduces per-frame overhead dramatically.
Block ACK Request
Sender explicitly requests a Block ACK. Receiver replies with bitmap showing which sub-frames were received.
Immediate Block ACK
ACK sent after SIFS, like normal ACK - but covers many frames.
Delayed Block ACK
ACK deferred - receiver buffers the request and responds later. Rarely used.
Wireshark
wlan.fc.type_subtype == 0x18 (Block ACK) shows the bitmap. Look for missing bits = retransmit needed.
// cwna exam field notes
01 AC_VO has AIFSN=2 (same as DIFS) and tiny CWmin=3. It wins channel access nearly every time it has data. Voice latency is 95% a MAC access issue, not bandwidth.
02 WMM does NOT guarantee voice quality. It gives voice statistical priority. If a background transfer is using the channel and voice arrives, voice still waits for the current frame to finish. HCCA would guarantee it - but nobody deploys HCCA.
03 TXOP=0 for AC_BE and AC_BK means no bursting. One MSDU per channel win. This is why bulk file transfers that generate many small frames are slower than expected - each frame must individually win contention.
04 The "virtual carrier sense" (NAV) is what makes RTS/CTS work for hidden nodes. The CTS is heard by all stations - even those that couldn't hear the original RTS - so everyone defers.
05 Block ACK + A-MPDU is why 802.11n was 10x faster than 802.11g in practice, not just on paper. The overhead reduction from aggregating 64 frames into one PHY burst vs 64 individual SIFS/ACK cycles is enormous.
See QoS and access category in your PCAP
WiFi Analyser reads wlan.qos.priority on every data frame and surfaces EDCA violations, retry storm patterns, and A-MPDU aggregation efficiency.