4.1 DCF协议简介
IEEE 802.11标准给出了MAC层和物理层协议的详细定义。MAC层有两种协议:DCF和PCF。其中DCF是现在无线网络使用的主流协议,PCF是一种可选协议。目前基于IEEE 802.11无线网络产品中,基本上只是实现了DCF协议,而没有实现PCF协议。因而本章只关注DCF协议下Wi-Fi网络性能的研究。
当一个节点需要发送数据时,需要调用载波侦听机制来确定信道的忙/闲状态。如果信道忙,它将继续侦听信道;如果信道空闲,并且连续空闲时间达到DIF帧间的空间(DIF Interframe Space,DIFS)长度,节点就认为信道现在处于空闲状态,可以向目的节点发送数据。为了避免发送冲突,该节点并不是立即发送数据,而是在发送数据前增加了一个退避过程。首先产生一个随机的退避时间(Backoff Time),并存入退避计数器。如果退避计数器中已经包含有一个非零的值,那么就不再执行产生随机退避时间的过程。退避时间的产生方法如下:
式(4-1)中,Random()是均匀分布在[0,CW]范围内的随机整数,CW是介于由物理层特征决定的最小竞争窗口CWmin和最大竞争窗口CWmax之间的一个整数值,即CWmin≤CW≤CWmax。例如对于IEEE 802.11b直接序列扩频(Direct Sequence Spread Specturm,DSSS),CWmin和CWmax分别为31和1023。aSlotTime是由物理层特性决定的一个时隙的实际长度值,对于IEEE 802.11b DSSS,一个时隙的长度是20μs;对于IEEE 802.11a标准,CWmin和CWmax分别为15和1 023,一个时隙的长度是9 μs。
一个节点执行退避过程时,如果侦听到信道空闲时间达到一个时隙,则将退避时间计数器减1;如果信道忙,则暂停退避过程,退避时间计数器被冻结,直到信道再次变为空闲状态,退避过程重新被激活,继续递减。当退避计数器递减到0时,节点就可以发送数据。
每个节点都要维护一个CW参数,CW的初始值为CWmin。当一个节点发送失败时,说明当前的网络负载较大或者链路状况不好,该节点的CW就会增加一倍,以后该节点每次因发送失败而重传时,CW都会增加一倍,即CW=2m(CWmin+1)-1,其中m为重传次数。当CW的值增加到CWmax,即2m(CWmin+1)=(CWmax+1),再连续重传时,CW的值将保持为CWmax不变,直到该节点发送成功,或者达到了最大重传次数限制,CW将被重新置为CWmin。
DCF包括两种介质访问模式:基本访问模式和可选的RTS/CTS访问模式。
图4-1为基本访问模式。发送节点侦听到无线信道连续空闲时间达到DIFS后,发送数据帧。为了增强异步业务传输的可靠性,IEEE 802.11 DCF使用MAC层确认机制,接收节点检验所收到的数据帧的循环冗余校验码(Cyclic Redundancy Code,CRC),如果正确,则在等待短帧空间(Short Interframe Space,SIFS)间隔后向发送节点发送一个ACK,以表明已经成功地接收到该数据帧。如果在一定的时间内,没有收到返回ACK,发送节点就认为本次传输失败,需要重传该数据帧。
图4-1 DCF的基本访问模式
在无线局域网中,经常会出现“隐藏终端”(Hidden Terminal)问题,即当一个节点在接收数据的时候,在它传输范围内的有些邻居节点有可能不知道。如果这些邻居节点在它接收数据的过程中发送数据,就会产生冲突,从而导致该节点接收数据失败。
为了解决这个问题,DCF利用RTS和CTS两个控制帧进行信道的预留。图4-2阐明了如何使用RTS/CTS访问模式。在等待了DIFS(再加上随机退避时间)后,发送节点首先发送RTS控制帧。RTS帧和其他数据帧的优先级是相同的。RTS帧包括数据传送的接收节点地址和整个数据传输的持续时间。这个持续时间指的是传输整个数据帧和其ACK所需要的所有时间。收到这个RTS的每个节点都根据持续时间域(Duration Field)来设置它的网络分配向量(Network Allocation Vector,NAV)。NAV指定了节点可以试图访问介质的最早时间点。
如果传输数据的接收节点收到RTS,在等待SIFS间隔后,它用一个CTS帧进行应答。CTS帧也包括持续时间域(Duration Field),而且所有接到这个CTS的节点必须再次调整它们的NAV。收到CTS的节点集合和收到RTS的节点集合不一定相同。那么,在发送节点和接收节点的接收范围内的所有节点都得到通知,它们在访问介质之前必须等待一定的时间。也就是说,这个机制为一个发送节点预留了信道(这也就是这种机制有时也被称为虚拟预留机制的原因)。
最后,在SIFS间隔后,发送节点可以发送数据帧。接收节点在接收到数据帧之后再等待SIFS间隔,用ACK进行确认。现在传输过程完成,这时每个节点的NAV为0,表明介质空闲,并开始下一个传输周期。
图4-2 DCF的RTS/CTS访问模式
RTS/CTS访问方式是针对无线网络中隐藏终端问题提出的,同基本访问方式相比,有很多优越性,如协助无线节点尽快地预留信道,减少冲突概率,以及减少一次冲突所浪费的时间等。但是RTS/CTS访问机制在解决问题的同时也给无线网络带来了额外的开销,RTS/CTS访问机制要求无线节点在发送数据包之前要先发送两个较短的控制帧(RTS和CTS)来预留信道,这样发送的控制帧就成了网络的额外开销。在节点数比较少、数据帧比较短、冲突概率比较小等情况下,RTS/CTS访问方式就会降低无线网络的整体性能。所以标准的DCF协议又定义了一个RTS阈值,来控制这两种访问方式的切换,当数据帧长度大于RTS阈值时,就采用RTS/CTS访问方式,相反就用基本访问方式。但是标准DCF协议并没有给出RTS阈值的最优解,而是把该参数的设置留给了用户。本章将通过建立数学模型(简称建模)分析结合仿真验证,给出IEEE 802.11协议下,基本访问方式与RTS/CTS访问方式最佳切换门限值。