DCF: triggering the Back-Off timer

I’m writing this post as I can see some confusion around the Back-Off timer in DCF, and not much information available on this topic.

The 802.11 standard states that a Back-Off must always be followed for any transmissions. But it also says that a transmission over the medium can proceed immediately after the DIFS.

To reconcile these apparently contradicting statements, let’s take a look at the following diagram, with two stations (STA1, STA2) accessing the medium for transmission:

Both stations sense the medium during DIFS. STA1 doesn’t have any data frame ready at the MAC sublayer to transmit for the duration of DIFS + some more time, so it keeps sensing the medium until DATA1 is ready. Since the medium is still clear when DATA 1 is ready, it transmits the frame immediately.

On the other hand, STA2 has a data frame ready before the end of DIFS. Due to this circumstance, it must wait the remaining DIFS and then add the Back-Off timer.

As we can see, the key here is WHEN data is ready for transmission. STA1 is ready for transmission AFTER DIFS has elapsed, so it can send its frame immediately – no Back-Off required! However, STA2 is ready for transmission DURING DIFS, so the Back-Off timer is triggered. The same would happen if STA2 was ready for transmission BEFORE DIFS.

This mechanism might seem odd, since STA2 is ready to transmit before STA1 – however STA2 manages to transmit only after STA1 does, which seems a bit unfair.

But let’s look at it from another point of view – when there are many stations ready to transmit during or before DIFS, it makes all the sense to have the Back-Off arbitration mechanism triggered (like STA2), as contention in the medium is imminent. The only case where contention is not happening is when DIFS elapses and the medium is still idle (like STA1). In that case it makes no sense to use the Back-Off arbitration, as there is nothing to arbitrate.

At the end of the day, the latter case (immediate transmission) is very unlikely to happen. A medium where an Access Point and several stations concur is not likely to be idle for the whole duration of DIFS, and if it is, then any given station must still have a data frame ready to transmit only after DIFS (not during or before) to be able to skip the Back-Off timer. Possible yes, but statistically negligible.