1.3.3 MAC协议
在无线传感器网络中,介质访问控制(Medium Access Control,MAC)协议决定无线信道的使用方式,在传感器节点之间分配有限的无线通信资源,用来构建传感器网络系统的底层基础结构。MAC协议处于传感器网络协议的底层部分,是无线网络节点通信的媒介,对传感器网络的性能有较大影响,是保证无线传感器网络高效通信的关键网络协议之一。无线传感器网络的MAC层对无线信道利用的效率高低决定了整个无线网络的性能,并且要能最大限度地减小能量消耗,同时具有较高的适应网络拓扑变化的能力[7,8,22]。
无线传感器节点的能量、存储、计算和通信带宽等资源有限,单个节点的功能比较弱,而无线传感器网络的强大功能是由众多节点协作实现的。多点通信在局部范围内需要MAC协议协调其间的无线通信分配,在整个网络范围内需要路由协议选择通信途径。在设计无线传感器网络的MAC协议时,需要着重考虑节省能量、可扩展性、网络效率等几个方面[9]。
现有无线传感器网络的MAC协议包括基于竞争冲突的MAC协议和基于固定分配的MAC协议。
1.基于竞争冲突的MAC协议
将基于竞争冲突的MAC协议应用于无线传感器网络,要解决的问题是,减小由于竞争冲突、空闲监听导致的能量损耗。文献[10]和[11]各自独立提出了一种载波检测机制,它在每个无线数据包的前面附加了一个前导载波Preamble,此类小功耗前导载波周期监听(LPL)协议的主要思想是:将接收节点消耗在空闲监听上的能量,转移到发送数据节点在发送前导载波的能量消耗上去,从而使接收节点能周期性地开启无线收发装置、监听是否有发送过来的数据和检测是否有前导载波。如果接收节点在工作状态下检测到前导载波,它就会一直监听信道,直到数据被正确地接收;如果接收节点没有检测到前导载波,节点的无线装置将被置于“待命”状态,直到下一个前导载波检测周期到来。
SMAC协议[12]提出了一种叫“虚拟簇”的机制,这种机制能使所有节点工作于一个共同的“时隙结构”。一个SMAC时隙由同步时段、活动时段、休眠时段组成。SMAC协议减小了空闲监听的能耗,采用冲突避免机制,使节点避免了不必要的“窃听”。SMAC协议的不足之处在于,节点的工作循环周期在SMAC协议开始工作时就已确定下来,不能根据网络中的业务量的变化来进行调整。
T-MAC(Timeout MAC)协议[13]是对SMAC协议的改进。在空闲监听、碰撞、协议开销和串音等浪费能量的因素中,空闲监听的能耗占绝对大的比例,特别是在消息传输频率较低的情况下。SMAC协议采用周期性的监听休眠机制来减小空闲监听的能耗,T-MAC协议在保持周期长度不变的基础上,根据网络流量动态地调整活动时间,用突发方式发送信息,减少空闲监听时间。T-MAC协议的缺点是时延比较大、吞吐量低,尤其是在网络流量大的时候。
LPL协议的Preamble长度和周期监听间隔需要根据应用合理设置,其本身无法根据网络的变化对这两个参数进行自动调整。为此在LPL协议的基础上,文献[14]提出了改进的LPL协议,称为WiseMAC协议。WiseMAC协议在保持网络节点的抽样调度不变的情况下,发送节点可提前知道接收节点的抽样调度,直到接收节点将要监听时,发送节点才发送适当长度的Preamble,这样就减小了Preamble的长度,从而减小能耗。但由于节点需要存储邻居节点的信道监听时间,会占用宝贵的存储空间,增大协议实现复杂度,尤其是在节点密度高的网络内这个问题尤其突出。
B-MAC协议[15]使用信道评估和退避算法分配信道,通过链路层确认保证传输可靠性,利用小功率监听技术减少空闲监听,实现小功率通信。信道评估通过对接收信号强度RSSI采用指数加权滑动平均算法求出信道的平均噪声,再将一小段时间内的最小RSSI值与平均噪声比较,以确定信道状态。退避算法包括初始退避和拥塞退避两种,可由应用程序设置。该协议最主要的贡献是向上层协议提供了一系列双向接口,如setPreambleLength等。通过设置这些接口,MAC协议可应用于多种不同流量类型的网络。
D-MAC协议[16]分析了SMAC协议和T-MAC协议的自适应工作-休眠策略,发现了数据转发中断问题,并提出了摆动唤醒策略(staggered wakeup schedule)来解决这个问题。从传感器节点到Sink节点形成一棵数据汇集树,树中的数据传输是单向的,由孩子节点到父节点,节点采用工作/休眠状态转换,其中工作状态分为发送和接收两个部分。摆动唤醒策略调整树中每层节点的工作周期,使孩子节点的发送时间与父节点的接收时间重合,在最理想情况下,数据转发会一直进行,没有休眠时延。
BMA协议[17]分为两个阶段,在簇建立阶段,节点根据剩余能量大小选择簇头(也称簇首)。所有当选的簇头通过非持续CSMA方式,向其他节点广播当选通告。其余节点根据收到信号的强度,决定加入哪个簇。之后系统进入稳定状态阶段。稳定状态阶段由若干定长会话组成,每个会话由争用周期、数据传输周期和空闲周期组成。对于许多应用,运行能耗远大于待机能耗,故Edgar H.Callaway提出通过减小占空比来获得小能耗和长电池寿命的MD(Mediation Device)协议[18]。MD作为一个不停活动的仲裁者,通过接收由信息传输节点发出的RTS和目标节点的询问信标,协调两个节点暂时同步来传输数据。出于节能的考虑,又提出了分布式MD协议,即节点随机成为MD。这样,每个节点的平均占空比仍可保持很小,整个网络保持小功耗、低成本的异步网络。但是,由于节点必须等待邻近的节点成为MD才能传输,时延将会增大。另外,由于占空比小,没有过多考虑通道访问的问题。
Sift MAC协议[19]是针对基于事件驱动的传感器网络提出的基于竞争的MAC协议。它充分考虑了通常传感器网络的以下三个特性:第一,传感器网络的空间相关性和时间相关性;第二,不是所有节点都需要报告事件;第三,感知事件的节点密度随时间变化。Sift MAC协议充分利用传感器节点的空间相关性和时间相关性,对于同一事件,需要部分节点发送消息;同时考虑扩展性,适应发送竞争节点数量的变化。
2.基于固定分配的MAC协议
原有的固定分配类MAC协议主要有频分多址(FDMA)、时分多址(TDMA)、码分多址(CDMA)三种。FDMA是将频带分成多个信道,不同节点可以同时使用不同的信道。TDMA是将一个时间段内的整个频带分给一个节点使用。相对于FDMA,TDMA通信时间较短,但网络时间同步的开销增大。CDMA是固定分配方式和随机分配方式的结合,具有零信道接入时延、带宽利用率高和统计复用性好的特点,并能减小隐藏终端问题的影响,但其完全集中式的信道分配和基站的高复杂性,使其不适用于全分布的无线传感器网络。
TRAMA(Traffic Adaptive Medium Access)协议[20]将时间划分为连续时槽,根据局部两跳内的邻居节点信息,采用分布式选举机制确定每个时槽的无冲突发送者。TRAMA协议包括邻居协议(Neighbor Protocol,NP)、调度交换协议(Schedule Exchange Protocol,SEP)和自适应时槽选择算法(Adaptive Election Algorithm,AEA)。
LEACH协议[21]由一个TDMA的MAC协议和一个简单的路由协议组成。LEACH协议把节点分簇,簇首负责安排本簇内的时隙分配。簇内节点把数据传给簇首,由簇首负责把数据传到会聚节点。LEACH定义了“轮”(round)的概念,一轮由初始化和稳定工作两个阶段组成,为使能量最小化,稳定工作阶段远远长于初始化阶段。
DE-MAC(Distributed Energy-aware MAC)协议[22]的中心内容是让节点交换能级信息。它执行一个本地选举程序来选择能量最小的节点为“赢者”,使得这个“赢者”比其邻居节点具有更多的休眠时间,以此在节点间平衡能量,延长网络的生命周期。
SMACS(Self-organizing Medium Access Control for Sensor Networks)协议[23]是分布式的协议,无需任何全局或局部主节点,就能发现邻居节点并建立传输-接收调度表。链路由随机选择的时隙和固定的频率组成。在链接阶段使用一个随机唤醒机制,在空闲时关掉无线收发装置,来达到节能的目的。SMACS协议的缺点是从属于不同子网的节点可能永远得不到通信的机会。EAR(Eavesdrop-And-Register)算法[24]用来为静止和移动的节点提供不间断的服务,是SMACS协议的补充,但EAR算法只适用于那些整体上保持静止且个别移动节点周围有多个静止节点的网络。
LMAC协议[25]在时间上把信道分成许多时隙,一个时隙包含业务控制时段和固定长度的数据时段。当一个节点需要发送一个数据包时,它会一直等待,直到属于自己的时隙到来。在时隙的业务控制时段内,节点首先广播消息头,消息头中详细描述了消息的目的地和消息长度,然后马上发送数据。监听到消息头的节点如果发现自己不是此消息的接收者,它会将自己的无线发送装置关闭。LMAC协议的不足之处在于,节点必须监听整个帧结构中的所有控制时段,甚至包括没有被使用的时隙,因为新的节点随时会加入进来。可采用对未占用时隙的控制部分进行抽样判断的方法来减小空闲监听能耗,当检测到未占用时隙上有消息传递时将该时隙标记为占用,并在下一个帧中相应时隙进行监听。