站点等待以感知通道是否空闲DIFS,然后开始传输。我的问题是为什么要等待DIFS而不是仅等待SIFS。 如果感知SIFS而不是DIFS会引起什么问题和影响?
站点等待以感知通道是否空闲DIFS,然后开始传输。我的问题是为什么要等待DIFS而不是仅等待SIFS。 如果感知SIFS而不是DIFS会引起什么问题和影响?
SIFS
时间过短。仅等待 SIFS
而非 DIFS
的影响是,MAC协议将无法检测忙碌的信道,从而导致碰撞频繁发生,信道效率低下。SIFS
是什么?根据标准,SIFS(短间隔)用于分离DATA
和ACK
帧。接收DATA
的站点(STA)将在发送ACK
之前等待SIFS
。它应尽可能地短,基本上只需解码帧、MAC处理和准备时间以发送ACK
。对于802.11n/ac,SIFS
= 16 微秒。DIFS
是什么?DIFS
= SIFS + 2*slot_time
。类似于SIFS
,slot_time
取决于PHY。对于802.11n/ac,slot_time
= 9 微秒。定义slot_time
足够长,以考虑传播延迟等因素,从而使相邻STA能够检测到传输STA的前导码。即便如此,如果一个STA仅在发送前等待SIFS
,则无法检测到可能在同一时间由相邻STA发送的ACK
帧,这将导致碰撞频繁发生,信道效率低下。
slot_time
足够长以检测到传输STA的前导码,为什么不等待SIFS + slot_time
?这样做也可以,但实际上通常只有AP使用PIFS
(比普通STA具有更高的访问优先级)。DIFS
?既然DIFS
足以确定信道是否繁忙,为什么不直接等待DIFS
?这是因为可能有多个STA同时发送信道。如果每个STA都只等待DIFS
然后立即发送 - 那就会发生另一个冲突。这就是为什么标准规定,如果STA发送信道空闲了DIFS
,它可以立即传输。但是如果STA发送信道忙碌,则必须等待DIFS
加上一个随机的退避时间以避免冲突。什么是随机的退避时间?那就去搜索802.11 CSMD/CA吧。SIFS
以及其他信道访问时间的一些内容。假设三个站点正在感知繁忙的媒介。如果在t时刻媒介变为空闲状态,那么所有三个站点都无法意识到媒介在t时刻变为空闲状态。他们只有在时间(t+ DIFS)之后才会意识到。
这意味着当媒介变为空闲时,所有站点都需要等待DIFS持续时间才能意识到它。这是一种滞后,而不是等待期。
一个站点用于感知信道并发送RTS到另一个站点所需的时间。这个总时间被称为DIFS(DCF,帧间隔)。该站点首先感知到信道是否被其他站点使用,然后发送RTS(请求发送)。 如果信道空闲,则信道从省电模式唤醒以接受来自站点的RTS,因此在此过程中也会花费一些时间。