物联网与无线传感器网络(第2版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

6.3.3 IEEE 802.11协议栈

IEEE 802.11协议主要由物理层和数据链路层的MAC层组成,其中物理层又可分为物理层汇聚(PLCP)子层和物理层媒质依赖(PMD)子层。IEEE 802.11协议参考模型如图6.11所示。参考模型中各层之间、管理实体之间以及层与管理实体之间主要通过服务访问点进行访问,利用服务原语彼此建立联系。LLC层通过MAC层服务访问点与对等的LLC实体进行数据交换。本地MAC层利用下层的服务将一个MSDU传给一个对等的MAC实体,然后由该对等MAC实体将数据传给对等的LLC实体。

图6.11 IEEE 802.11协议参考模型

IEEE 802.11规定在MAC层采用两种介质控制方式:分布式控制方式(Distributed Coordination Function,DCF)和中心控制方式(Point Coordination Function,PCF)。其中,DCT工作在竞争期(CP),PCF工作在非竞争期(CFP),如果没有特别说明,本书中后面研究的无线局域网均采用分布式控制方式。

1. 分布式控制方式

分布式控制方式(DCF)是与物理层兼容的工作站和无线接入点(AP)之间自动共享无线介质的访问协议,是IEEE 802.11 MAC层主要采用的访问协议。IEEE 802.11 DCF采用具有冲突避免的载波监听多路访问(CSMA/CA)协议进行无线介质共享。

物理层和虚拟载波监听机制可以让MAC层监听介质处于繁忙或者空闲状态,CSMA/CA流程图如图6.12所示。物理层控制机制将物理信道评估结果发送到MAC层,作为确定信道状态信息的一个因素。

图6.12 CSMA/CA流程图

MAC层控制机制利用帧中持续时间字段的保留信息实现虚拟监测机制,这一保留信息向所有站发布本站将使用介质的消息。MAC层将监听所有MAC帧的持续时间字段,如果监听到的值大于当前的网络分配矢量(NAV)值,就用这一信息更新该工作站的NAV,NAV就像一个计数器,开始值是最后一次发送的帧的持续时间字段值,然后开始倒计时,当NAV的值为0,且物理层控制机制表明有空闲信道时,这个工作站就可以发送帧了。

物理信道评估和NAV的内容为MAC层判断信道状态提供了足够的信息。

当一个节点需要发送帧时,首先调用载波侦听机制来确定信道的忙/闲状态,如果信道忙,它将推迟发送,直到信道处于空闲状态的时间达到一个DIFS长度为止。为了避免发送冲突,该节点在发送前必须经过一个附加的退避周期,将产生一个随机的退避时间(Back off Time),并存入退避计数器。如果退避计数器中已经包含一个非0的值,那么就不再执行产生随机退避时间的过程。退避时间的产生方法为

BackoffTime=Random()×aslotTime

式中,Random()是均匀分布在[0,CW]范围内的随机整数;竞争窗口(Contention Window,CW)是介于由物理层特征决定的最小竞争窗口CWmin和最大竞争窗口CWmax之间的一个整数值,CWmin<CW<CWmax;aslotTime是由物理层特性决定的一个时隙的实际长度值。退避时间是一个以时隙为单位的随机整数。

当一个节点执行退避过程时,在每一个时隙中侦听信道的状态,如果信道空闲,则将退避时间计数器值减l;如果信道忙,则退避时间计数器被冻结(即不再递减),直到侦听到信道处于连续空闲状态的时间达到DIFS长度,退避过程重新被激活,继续递减。当退避计数器递减到0时,节点就可以发送数据。当多个节点同时竞争信道时,每个节点都必须经过一个随机时间的退避过程,才能占据信道,这样就可大大减少冲突发生的概率。另外,通过采用退避过程中的冻结机制,使得被推迟的节点在下一轮竞争中无须再次产生一个新的随机退避时间,只需继续进行计数器递减即可,等待时间长的节点的优先级高于新加入的节点,可能优先得到信道,从而维护竞争节点之间一定的公平性。

例如,在节点A发送数据时,节点B、C、D都有帧要发送,需要等待信道连续空闲DIFS时间,这时三个节点进入退避阶段。节点B、C、D在CW内随机产生一个退避时间,因为节点C所产生的退避时间最短,其退避计时器最先减至0,从而开始发送帧,同时节点B和节点D的退避计时器被冻结。在节点C的传送过程中,节点E也有帧要发送,进入等待过程。信道空闲时间达到DIFS后,节点B和节点D的退避计时器解冻,节点E产生随机退避时间。因为节点D的退避计时器最先减至0,所以节点D获得发送机会。

每个节点都要维护一个CW参数,CW的初始值为CWmin。当一个节点发送失败时,该节点的CW参数值就会增加1倍。以后,该节点每次因发送失败而重传时,CW参数值都会增加1倍,即CW=2m(CWmin+1)-1,其中m为重传次数。当CW参数值增加到CWmax时,再连续重传时CW参数值将保持为CWmax不变,当该节点发送成功或者达到了最大重传次数限制,CW将被重新置为CWmin

这样就带来了一个公平性问题:对于一个发送成功的节点来说,当它要继续发送新的帧时,它的退避计数器是从最小范围内选取的,这使得它选取一个小退避值的概率远远大于其他节点,尤其是当其他节点因多次发送失败而使得退避窗口很大,从而使退避值的选择范围很大时。所以,一个发送成功的节点发送新的帧很可能要优于发送失败节点对帧的重传。

2. 中心控制方式

中心控制方式(PCF)是优先级高于分布式控制方式(DCF)的访问方式,提供对无线媒质的无竞争访问。在这种工作模式下,置于无线接入点(AP)中的中心控制器(PC)控制来自工作站的帧的传送。工作站均在PC的控制下获得对媒质的优先访问权。中心控制器在其发出的查询帧中使用PIFS,因为PIFS小于DIFS,因而中心控制器总是能获得对介质的访问权,并且在其发送查询帧、接收响应时,把异步通信全部都锁住。PC在每一个无竞争期开始,都对介质进行监测。如果介质在PIFS间隔之后仍然空闲,PC就发送一个包含无竞争期各项参数的信标(Beacon)帧。在含有AP的BSS中,信标帧用于保证相同物理网络中工作站的同步,它包含时间戳(Time Stamp),所有工作站都利用时间戳来更新计时器,IEEE 802.11定义其为时间同步功能(Timing Synchronization Function,TSF)计时器。工作站接收到信标帧后,利用CF参数设置中的CFPMaxDuration值更新NAV,该值向所有工作站通知无竞争期的长度,直到无竞争期结束才允许工作站获得对介质的控制权。

发送信标帧后,PC等待至少一个DIFS间隔,然后发送下列帧。

(1)数据帧:该帧直接从PC发往某个特定的工作站,如果PC没有收到接收端返回的确认帧(ACK),它就会在无竞争期内的DIFS间隔后重发该帧。除了这种单点传输的数据帧,PC还可以向所有的终端(包括处于节能模式下的终端)发送广播帧,因为所有处于节能模式下的终端每隔TIM(Traffic Indication Map,业务指示表)时间都要转入活动状态接收PC发出的信标帧。

(2)无竞争轮询帧:PC向某个工作站发送无竞争轮询帧,授权该工作站可以向任何其他目的终端发送数据。如果被轮询的工作站没有数据要发送,就发送一个空的数据帧。如果该站没有收到已发送数据的确认帧,则必须在被PC再次轮询时重发未被确认的帧。

(3)数据帧+无竞争轮询帧:PC向某个工作站发送数据,并轮询其是否有数据发送,这样可以减少因分两次发送和确认带来的系统开销。

(4)无竞争结束帧:该帧用于确定竞争期的结束。

工作站可以选择是否被PC轮询,它在Association Request(连接请求)帧的功能信息字段的CF-Pollable(可轮询CF)和CF-Poll_Request中表明自己能否被轮询和是否要求被轮询。工作站可以通过重新连接请求来改变现有的连接属性,表达是否愿意加入轮询队列。PC维护着一个轮询队列,在每个非竞争期PC至少会发送一次CF-Pollable,从而使队列中的工作站都有可能被PC轮询到。