- DCF: Legacy Data Access
- EDCA: QoS Data Access
where AIFS[AC] = SIFS + AIFSN[AC] * Slot time
Scenario:Lets say, a node has packets to transmit in all of the four access categories then four different instances of EDCA access function will be competing. If two (or more) instances of the EDCA access function gains access simultaneously then internal collision is resolved by the highest priority gaining the access of the medium and other AC behaving as if external collision occurred by doubling its contention window.
Points to Note:
- DIFS = SIFS + 2*slot time
- Every access category waits different amount of time for which channel is free before kicking of back off timer. Voice, Video & legacy clients waits for DIFS while BE & BK waits for more time (SIFS + 3*slot time & SIFS + 7*slot time respectively).
- Working of back off timer:
- After picking a random slot count from contention window the timer checks every slot time (9us) for the channel to be free. If it is free then the slot count decrements otherwise (if busy) the backoff timer freezes. To unfreeze the timer, the channel needs to be free for AIFS( for that given access category). After unfreeze, the counter resumes. Once counter reaches zero, the medium can be acquired.
- Next Step after channel acquisition:
- TXOP begins with a short frame exchange which could be RTS/CTS or Data/ACK. (refer here)
- Send RTS/CTS frame declaring the duration [usec] for which the node will be acquiring the channel. Sending RTS/CTS step is very important step.
- In Block ACK sessions, presence of RTS/CTS indicates channel acquisition by the node.
- Duration is a 16 bit field but for duration only 15 bits are used which means channel can be acquired for max 32 msec. Noticed, 27 msec time in RTS frame in Block ACK session even for normal/BE packets.
Transmit Opportunity [TXOP]:Its a duration during which a node has full channel access for sending and receiving frames of a particular TID after acquiring the channel. It means the node can send multiple packets after SIFS gap and all it needs is acquiring channel only once. A TXOP of zero means that node can send one Management packet or MSDU after acquiring channel.
Without Aggregation, it promotes resource fairness as it allow BE/BK traffic to send at least one packet while keeping other time for video & voice. If you think through then you will realize if the client with BE/BK traffic is having low data rates then sending one such packet will consume more time than TXOP recommended for video & voice but that is understandable as nodes with BE/BK traffic are sending just one packet.
However, this concept is seriously flawed when applied with AMPDU. Since, every node can send one AMPDU after channel acquisition but number of MPDUs in an AMPDU can be 64 for the BE/BK traffic (which can take upto 27msec time to go out). This will be lethal for voice and video if constrained to use TXOP of 1.5 / 3 msec respectively. (backing).