为什么要等待 DIFS 才能感知通道是否空闲

use*_*346 5 networking protocols wifi

站等待以感测通道是否空闲 DIFS,然后开始传输。我的问题是为什么要等待 DIFS 而不仅仅是 SIFS。它可能会导致什么问题(是指 SIFS 而不是 DIFS)?

art*_*rtm 6

简短回答: SIFS不够长,无法检测通道是否确实空闲。SIFS等待而不是等待的含义DIFS是MAC协议将不再能够检测到繁忙的信道,因此冲突可能一直发生,从而导致信道效率变差。

长答案:

  • 什么是SIFS?该标准定义了SIFS(短帧间空间)用于分隔aDATAACK帧。接收站(STA)在发送之前DATA会等待。它应该尽可能短,基本上只够解码帧、MAC 处理和准备发送的时间。对于 802.11n/ac,= 16 微秒。SIFSACKACKSIFS
  • 什么是DIFSDIFS= SIFS + 2*slot_time。与 类似SIFSslot_time是 PHY 相关的。对于 802.11n/ac,slot_time= 9 微秒。slot_time被定义为足够长以考虑传播延迟等,从而使得相邻STA能够检测发送STA的前导码。

话虽如此,如果 STASIFS在发送之前只是等待,则它无法检测到ACK相邻 STA 在同一时间发送的可能帧 - 这会导致冲突和信道效率差。

其他的:

  • 如果一个slot_time足够长来检测发送STA的前导码,为什么不等待呢SIFS + slot_time?可以,但实际上通常PIFS仅由 AP 使用(比普通 STA 具有更高的访问优先级)。
  • 为什么至少 DIFS在发送之前要等待?鉴于这DIFS足以确定通道是否繁忙,为什么不直接等待呢DIFS?这是因为可能有多个STA 同时发送信道。如果每个 STA 只是等待DIFS然后立即发送 - 那么这又是一次冲突。这就是为什么标准要求如果 STA 发送的信道空闲DIFS,它可以立即传输。如果 STA 发送信道繁忙,则必须等待DIFS 加上随机退避时间以避免冲突。什么是随机退避时间?是时候在 802.11 CSMD/CA 上 google 一下了..
  • 作为参考,有一个类似的 Q处理SIFS并触及了其他通道访问时序。