Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why wait DIFS in order to sense if the channel is idle

Station waits in order to sense if the channel is idle DIFS and then starts transmission. My question is why wait DIFS and not SIFS only. What problems, issues it may cause (sense for SIFS instead of DIFS)?

like image 305
user2176346 Avatar asked Jul 21 '13 19:07

user2176346


1 Answers

Short answer: SIFS is not long enough to detect if the channel is indeed idle. The implication of waiting just SIFS instead of DIFS is that the MAC protocol shall no longer be able to detect busy channel, thus collisions may happen all the time, and thus poor channel efficiency.

Long answer:

  • What is SIFS? The standard defines that SIFS (Short Inter-Frame Space) is used to separate a DATA and ACK frames. A station (STA) receiving DATA will wait for SIFS before sending ACK. It should be as short as possible, basically just enough to decode the frame, MAC processing, and preparation time to send ACK. For 802.11n/ac, SIFS = 16 microseconds.
  • What is DIFS? DIFS = SIFS + 2*slot_time. Similar to SIFS, slot_time is PHY-dependent. For 802.11n/ac, slot_time = 9 microseconds. slot_time is defined to be long enough to account for, among others, propogation delays, thus enable neighbouring STAs to detect transmitting STA's preamble.

Having said that, if a STA just waits for SIFS before transmitting, there is no way it can detect possible ACK frame being sent by a neighbouring STA at the exact same time - that leads to collisions and poor channel efficiency.

Others:

  • If one slot_time is long enough to detect transmitting STA's preamble, why just not wait for SIFS + slot_time ? Well can be, but it is actually PIFS that is normally used by the AP only (to have higher access priority than normal STAs).
  • Why wait at least DIFS before sending ? Given that DIFS is enough to determine whether the channel is busy or not, why not just wait for DIFS ? That's because there can be multiple STAs that are possibly sending the channel at the same time. If every STA just waits for DIFS then send immediately - well then that's another collision. That's why the standard mandates that if a STA sending the channel idle for DIFS, it can transmit immediately. But if a STA sending channel busy, it must wait for DIFS plus a random backoff time to avoid collisions. What is random backoff time ?? Time to google on 802.11 CSMD/CA then..
  • For reference, there is a similar Q that deals with SIFS and touched a bit on other channel access timing.
like image 193
artm Avatar answered Oct 16 '22 13:10

artm