为了更好地了解802.11的退避机制下面用个例子来说明(图9-7)。
图9-7表示当A正在发送数据时,B,C和D都有数据要发送(用向上的箭头表示)。G8P-1A4P-12V由于这三个站都检测到信道忙,因此都要执行退避算法,各自随机退避一段时间再发送数据。
标准规定,退避时间必须是整数倍的时隙时间。
前面已经讲过,第i退避是在时隙中随机地选择一个。这样做是为了使不同站点选择相同退避时间的概率减少。因此,第1次退避(莎=D要推迟发送的时间是在时隙(0,1,¨”7)中(共8个时隙)随机选择一个,而第2次退避是在时隙(0,1,¨”15)中(共16个时隙)随机选择一个。当时隙编号达到255时(这对应于第6次退避)就不再增加了。这里决定退避时间的变量F称为退避变量。退避时间选定后,就相当于设置了一个退避计时器(baGkoff timer)。站点每经历一个时隙的时间就检测一次信道。这可能发生两种情况:若检测到信道空闲,退避计时器就继续倒 计时;若检测到信道忙,就冻结退避计时器的剩余时间,重新等待信道变为空闲并再经过时间DIFS后,从剩余时间开始继续倒计时。如果退避计时器的时间减小到零时,就开始发送整个数据帧。
从图9-7可以看出,C的退避计时器最先减到零,于是C立即把整个数据帧发送出去。请注意,A发送完数据后信道就变为空闲。C的退避计时器一直在倒计时。当C在发送数据的过程中,B和D检测到信道忙,就冻结各自的退避计时器的数值,重新期待信道变为空闲。正在这时E也想发送数据。由于E检测到信道忙,因此E就执行退避算法和设置退避计时器。
当C发送完数据并经过了时间DIFS后,B和D的退避计时器又从各自的剩余时间开始倒计时。现在争用信道的除B和D外,还有E。D的退避计时器最先减到零,于是D得到了发送权。在D发送数据时,B和E都冻结其退避计时器。
以后E的退避计时器比B先减少到零。当E发送数据时,B再次冻结其退避计时器。等到E发送完数据并经过时间DIFs后,B的退避计时器才继续工作,一直到把最后剩余的时间用完,然后就发送数据。