无线传感器网络MAC协议(上)

来源:互联网 发布:企业大数据架构设计 编辑:程序博客网 时间:2024/05/16 16:17

无线频谱是无线移动通信的通信介质,是一种广播介质,属于稀缺资源。在无线传感器网络中,可能会有多个节点设备同时接入信道,导致分组之间相互冲突,使接收方无法分辨出接收到的数据,浪费信道资源,吞吐量显著下降。为了解决这些问题,就需要MAC(介质接入控制)协议。所谓MAC协议,就是通过一组规则和过程来更有效、有序和公平地使用共享介质。

 

在无线传感器网络中,为了实现多点通信,由MAC(Medium Access Control)介 质访问控制层协议决定了局部范围无线信道的使用方式,以及多跳自组织无线传感器网络节点之间的通信资源分配,也就是说必须实现两大基本功能目标:在密集散 布的传感器现场能够有助于建立起一个基本网络基础设施所需的数据通信链路;协调共享介质的访问,以便传感器网络节点能够公平有效地分享通信资源。由于传感 器网络独特的资源限制和应用需求,传统的MAC协议不再适合于无线传感器网络应用范例,如对于一个基于基础设施的蜂窝系统,其MAC协议的设计基本目标是提供高质量的服务质量(QoS)和带宽效率,且主要致力于资源分配策略。而无线传感器网络没有像基站一样的中央控制机构,况且网络节点的有效节能直接影响无线传感器网络的使用寿命,因此在设计无线传感器网络的MAC协议时,有几个方面问题值得重点关注:能量感知和节省;网络效率(包括公平性、实时性、网络吞吐率和带宽利用率等);可扩展性。尽管蓝牙(Bluetooth)、移动自组织网络(MANET)和无线传感器网络在通信基础设施上有相似的地方,但由于网络寿命的制约,没有哪个现存的蓝牙或移动自组织网络MAC协议可以直接用在无线传感器网络。相比之下,除了节能和有效节能外,移动性管理和故障恢复策略也是无线传感器网络MAC协议首要关注的问题之一。尽管移动蜂窝网络、Ad-hoc和蓝牙技术是当前主流的无线网络技术,但它们各自的MAC协议不适合无线传感器网络。GSMCDMA中的介质访问控制主要关心如何满足用户的QoS要求和节省带宽资源,能耗是第二位的;Ad-Hoc网络则考虑如何在节点具有高度移动性的环境中建立彼此间的链接,同时兼顾一定的QoS要求,能耗也不是其首要关心的;而蓝牙采用了主从式的星型拓扑结构,这本身就不适合传感器网络自组织的特点。

 

目前,由于研究人员针对不同的无线传感器网络应用,没有采用统一的MAC协议分类方式,但是大体依据标准分为三种,如根据网络拓扑结构方式(分布式和集中式控制);使用单一或多信道方式;采用固定分配信道还是随机访问信道方式。已有参考文献也将无线传感器网络MAC协议分为三类:确定性分配、竞争占用和随机访问。前两者不是传感器网络的理想选择。因为TDMA固定时隙的发送模式功耗过大,为了节省功耗,空闲状态应关闭发射机。竞争占用方案需要实时监测信道状态也不是一种合理的选择。随机介质访问模式比较适合于无线传感网络的节能要求。本书采用的是根据信道分配使用方式将无线传感器网络MAC协议分为基于无线信道随机竞争方式和时分复用方式及基于时分和频分复用等其他混合方式三种。

 

    1) 无线信道随机竞争接入方式(CSMA)

 

节点需要发送数据时采用随机方式使用无线信道,典型的如采用载波监听多路访问(CSMA)MAC协议,需要注意隐藏终端和暴露终端问题,尽量减少节点间的干扰。

 

2) 无线信道时分复用无竞争接入方式(TDMA)

 

采用时分复用(TDMA)方式给每个节点分配了一个固定的无线信道使用时段,可以有效避免节点间的干扰。

 

3) 无线信道时分/频分/码分等混合复用接入方式(TDMAFDMACDMA)

 

通过混合采用时分和频分或码分等复用方式,实现节点间的无冲突信道分配策略。

 

1  基于竞争的MAC协议

 

基于无线信道随机竞争方式的MAC协议采用按需使用信道的方式,主要思想就是当节点有数据发送请求时,通过竞争方式占用无线信道,当发送数据发生冲突时,按照某种策略(IEEE802.11 MAC协议的分布式协调工作模式DCF采用的是二进制退避重传机制)重发数据,直到数据发送成功或彻底放弃发送数据。由于在IEEE802.11 MAC协议基础上,研究者们提出了多个适合无线传感器网络的基于竞争的MAC协议,故本小节重点介绍IEEE802.11 MAC协议及近期提出改进的无线传感器网络MAC协议。

 

    1IEEE802.11 MAC协议

 

IEEE 802.11 MAC协议是IEEE 802.11无线局域网(WLAN)标准的一部分(另一部分是物理层规范)。其主要功能是信道分配、协议数据单元(PDU)寻址、组帧、纠检错、分组分片和重组等。IEEE 802.11 MAC协议有两种工作方式:一种是分布式协调功能(Distributed Coordination DCF);另一种是中心点协调功能(Point CoordinationPCF)。由于DCF是采用竞争接入信道的方式,而且目前IEEE 802.11 WLAN有比较成熟的标准和产品,所以目前在无线传感器网络研究领域,很多的测试和仿真分析都基于这种方式。由于在无线信道中难以检测到信号的冲突,故只能采用随机退避机制来减小数据冲突的概率。在DCF方式下,节点采用CSMACA机制和随机退避等待时间算法实现无线信道共享。对于单向通信都采用立即主动确认机制(ACK),即当没有收到ACK帧,则发送方会继续重传数据。而PCF方式是基于优先级的无竞争访问,通过访问接入点协调节点的数据收发,通过轮询方式查询当前哪些节点有发送数据请求,并在适当时候给予节点数据发送权。

 

DCF是用于支持异步数据传输的基本接入方式,它以“尽力而为”(Best Effort)方式工作。DCF实际上就是CSMACA(带冲突避免的载波侦听多址接入)协议。为什么不用CSMACD协议呢?因为冲突发生在接收节点,一个移动节点在传输的同时不能听到信道发生了冲突,自己发出的信号淹没了其他的信号,所以冲突检测无法工作。DCF的载波侦听有两种实现方法:第一种实现是在空中接口,称为物理载波侦听;第二种实现是在MAC层,称为虚拟载波侦听。物理载波侦听通过检测来自其他节点的信号强度,判别信道的忙闲状况。

 

节点通过将MAC层协议数据单元(MPDU)的持续时间放到RTSCTSDATA帧头部来实现虚拟载波侦听。MPDU是指从MAC层传到物理层的一个完整的数据单元,它包含头部、净荷和32bitCRC(循环冗余校验)码。持续期字段表示目前的帧结束以后,信道用来成功完成数据发送的时间。移动节点通过这个字段调节网络分配矢量(NetworkAllocation VectorNAV)NAV表示目前发送完成需要的时间。无论是物理载波侦听还是虚拟载波侦听,只要其中一种方式表明信道忙,就将信道标注为“忙”。

 

接入无线信道优先级用帧之间的间隔表示,称做IFS(Inter Space),它是传输信道强制的空闲时段。DCF方式中的IFS有两种:其一为SIFS(Short IFS);另一个为DIFS(DCF-IFS)DIFS大于SIFS。一个移动节点如果只需要等待SIFS时间,就会比等待DIFS时间的节点优先接入信道,因为前者等待的时间更短。对于DCF基本接入方式(没有使用RTSCTS交互),如果移动节点侦听到信道空闲,它还需要等待DIFS时间,然后继续侦听信道。如果此时信道继续空闲,那么移动节点就可以开始MPDU的发送。接收节点计算校验和确定收到的分组是否正确无误。一旦接收节点正确地接收到了分组,将等待SIFS时间后回复一个确认帧(ACK)给发送节点,以此表明已经成功接收到数据帧。如图3-1所示表明在DCF基本接入方式中,成功发送一个数据帧的时序图。当一个数据帧发送出去的时候,其持续期字段让听到这个帧的节点(目的节点除外)知道信道的忙时间,然后调整各自的网络分配矢量NAV。这个NAV里也包含了一个SIFS时间和后续的ACK持续期。 
 

前面已经提到一个节点无法知道自己的发送产生了冲突,所以即使冲突产生,也会将MPDU发送完。假如MPDU很大,就会浪费宝贵的信道带宽资源。解决的办法是在MPDU发送之前,采用RTSCTS控制帧实现信道带宽的预留,减少冲突造成的带宽浪费。因为RTS20字节,CTS14字节,而数据帧的最大为2346字节,所以RTSCTS相对较小。如果源节点要竞争信道,则首先发送RTS帧,周围听到RTS的节点从中解读出等待的持续时间字段,相应地设置这些节点的网络分配矢量NAV。经过SIFS时间以后,目的节点发送CTS帧。周围听到CTS的节点从中解读出等待的持续时间字段,相应地更新它们的网络分配矢量NAV。一旦成功地收到CTS,经过SIFS时间,源节点就会发送MPDU。周围节点通过RTSCTS头部中的持续期字段更新自己的NAV,可以缓解“隐藏终端”问题。如图3-2所示表示了 RTSCTS交互,然后发送MPDU的时序图。移动节点可以选择不使用RTSCTS,也可以要求只有在MPDU超过一定的大小时才使用RTSCTS,或者不管什么情况下均使用RTSCTS。一旦冲突发生在RTS或者CTS,带宽的损失也是很小的。然而,对于低负荷的信道,RTSCTS的开销会增加时延。



在大的MPDU从逻辑链路层传到MAC层以后,为了增加传输的可靠性,会将其分片(Fragment)发送。那么怎样确定是否进行分片呢?用户可以设定一个分片阈值(Fragment_Threshold),一旦MPDU超过这个阈值就将其分成多个片段,片段的大小和分片阈值相等,其中最后一个片段是变长的,一般小于分片阈值。当一个MPDU被分片以后,所有的片段按顺序发送,如图3-3所示。信道只有在所有的片段传送完毕或者目的节点没有收到其中一个片段的确认(ACK)的时候才被释放。目的节点每接收到一个片段都向源节点回送一个ACK。源节点每收到一个ACK,经过SIFS时间,再发送另外一个数据帧片段。所以,在整个数据帧的传输过程中,源节点一直通过间隔SIFS时间产生的优先级来维持信道的控制。如果已经发送的数据帧片段没有得到确认,源节点就停止发送过程,重新开始竞争接入信道。一旦接入信道,源节点就从最后未得到确认的数据片段开始发送。如果分片发送数据的时候使用RTSCTS交互,那么只有在第一个数据片段发送的时候才进行。RTSCTS头部中的持续期只到第一个片段的ACK被接收到为止。此后其他周围的节点从后续的片段中提取持续期,来更新自己的网络分配矢量NAV



 

CSMACA的冲突避免的功能由随机指数退避过程实现。如果一个移动节点准备发送一个数据帧,并且侦听到信道忙,节点就一直等待,直到信道空闲了DIFS时间为止,接着计算随机退避时间。在IEEE 802.11标准中,时间用划分的时隙表示。在时隙ALOHA中,时隙和一个完整分组的传输时间相同。但是在IEEE 802.11中,时隙远比MPDU要小得多,与SIF时间相同,被用来定义退避时间。需要注意的是,时隙的大小和具体的硬件实现有关,通常包括发射启动时间、介质传播时间及检测信道的响应时间等。这里将随机退避时间定义为时隙的整数倍。开始时,在[07]范围内选择一个整数,当信道空闲了DIFS时 间以后,节点用定时器记录消耗的退避时间,一直到信道重新忙或者退避时间定时器超时为止。如果信道重新忙,并且退避时间定时器没有超时,节点就将冻结定时 器。当定时器时间减到零时,节点就开始发送数据信息帧。假如两个邻近或者更多个邻近节点的定时器时间同时减到零,就会发生冲突。每个节点必须在[O15]范围里面,随机选择一个整数作为退避时间。对于每一次重传,退避时间按22+irandom()增长,其中i是节点连续尝试发送一个MPDU的次数。经过DIFS空闲时间以后的退避时间称为竞争窗口(ContentionWindowsCW)CW是处于标准规定的aCWminaCWmax之间的整数随机数。这种竞争信道的方式的优点是提高了节点之间的公平性。一个节点每当发送MPDU的时候,都需要重新竞争信道。经过DIFS时间之后,每个节点都有同样的概率接入信道。当多个节点推迟且进入随机退避时,利用随机函数选择最小退避时间的节点作为竞争优胜者,从而占用共享信道资源发送数据。

 
原创粉丝点击