CWmin (Minimum Contention Window)
How CWmin Governs Random Backoff in 802.11
When a Wi-Fi station has a frame to send and senses the medium busy, or when it must wait after a prior transmission, it enters the backoff procedure that is the heart of CSMA/CA collision avoidance. The station initializes its contention window CW to CWmin and selects a random integer backoff counter uniformly from the interval [0, CW]. After the medium has been idle for the appropriate inter-frame space (DIFS in legacy DCF, or AIFS per access category in EDCA), the counter decrements by one for every idle slot time and freezes whenever the medium becomes busy. When the counter reaches zero, the station transmits. CWmin therefore sets how aggressively a station competes for the channel on its first attempt: a small window means short average waits and fast access, while a larger window spreads stations out in time to reduce the chance that two pick the same slot.
The contention window is not static. If a transmission fails, indicated by a missing acknowledgment, the station assumes a collision and applies binary exponential backoff, doubling the window to (2 times (CW+1)) minus 1 up to the hard ceiling of CWmax. After a successful exchange or after exhausting the retry limit, CW snaps back to CWmin and the cycle repeats. This reset behavior is why CWmin so strongly shapes latency: every fresh frame and every recovered flow starts its backoff from the CWmin floor, so the value chosen for an access category directly determines the typical head-of-line delay for that traffic class.
Because all 802.11 timing is quantized into slot times, the absolute delay implied by CWmin depends on the PHY. An OFDM slot is 9 microseconds (20 microseconds for the older 802.11b DSSS PHY), so the mean initial backoff of CWmin/2 slots translates to roughly 67.5 microseconds for best-effort traffic at aCWmin = 15 and only about 13.5 microseconds for voice at CWmin = 3. These differences, multiplied across millions of frames, are what let EDCA deliver prioritized service to delay-sensitive applications without any explicit reservation.
Backoff and Window-Growth Equations
Backoff = Random[0, CW] × aSlotTime, with CW initialized to CWmin
Mean initial backoff delay:
Tbackoff ≈ (CWmin / 2) × aSlotTime
Binary exponential backoff (on collision):
CW ← min( 2 × (CW + 1) − 1, CWmax )
EDCA per-access-category CWmin:
AC_VO: (aCWmin + 1)/4 − 1 | AC_VI: (aCWmin + 1)/2 − 1 | AC_BE, AC_BK: aCWmin
Where CW is the current contention window in slots, aSlotTime ≈ 9 μs for OFDM PHYs, aCWmin = 15 (OFDM) or 31 (DSSS), and CWmax = 1023. Example: AC_BE with aCWmin = 15 → mean initial backoff ≈ 7.5 × 9 μs ≈ 67.5 μs.
CWmin and CWmax Across Access Categories
| Access Category | Traffic Type | CWmin (slots) | CWmax (slots) | AIFSN | Mean Initial Backoff |
|---|---|---|---|---|---|
| AC_VO | Voice | 3 | 7 | 2 | ~13.5 μs |
| AC_VI | Video | 7 | 15 | 2 | ~31.5 μs |
| AC_BE | Best Effort | 15 | 1023 | 3 | ~67.5 μs |
| AC_BK | Background | 15 | 1023 | 7 | ~67.5 μs |
| Legacy DCF | All (no QoS) | 15 (OFDM) / 31 (DSSS) | 1023 | DIFS | ~67.5 μs / 310 μs |
Frequently Asked Questions
What are the default CWmin values for the four 802.11 EDCA access categories?
For OFDM PHYs the default aCWmin is 15 slots. EDCA derives the per-category values from it: Voice (AC_VO) uses (aCWmin+1)/4 − 1 = 3, Video (AC_VI) uses (aCWmin+1)/2 − 1 = 7, and both Best Effort (AC_BE) and Background (AC_BK) use 15. Smaller CWmin gives voice and video shorter average backoffs (1.5 and 3.5 slots) so latency-sensitive traffic wins access more often. Legacy 802.11b DSSS used aCWmin = 31.
How does CWmin affect average backoff delay and throughput?
A station draws a uniform backoff in [0, CW], so the mean is CW/2 slots. With aCWmin = 15 and a 9 μs OFDM slot the average first backoff is 7.5 slots, about 67.5 μs. A smaller CWmin lowers delay and lifts throughput when few stations contend, but in dense networks it sharply raises collision probability because more stations land on the same slot. The throughput-optimal CWmin grows roughly with the number of active stations.
What is the difference between CWmin and CWmax?
CWmin is the starting window for the first attempt; CWmax is the ceiling it can reach. After each failed frame the window doubles under binary exponential backoff, CW = min(2 × (CW+1) − 1, CWmax), so for OFDM it climbs 15, 31, 63, 127, 255, 511, 1023 and stops at CWmax = 1023. A success or a hit retry limit resets CW back to CWmin. CWmin sets responsiveness; CWmax bounds the worst-case backoff under heavy collisions.