无线传感器网络技术原理及应用ppt课件 第3章.ppt
第3章 MAC层协议,3.1 概述3.2 竞争型MAC协议3.3 分配型MAC协议3.4 混合型MAC协议3.5 MAC层与跨层设计小结,本章目标 理解MAC层功能。 掌握MAC层帧结构。 理解竞争型MAC协议。 掌握SMAC、TMAC、PMAC协议。 理解分配型MAC协议。 掌握SMACS、TRAMA、DMAC协议。 理解混合型MAC协议。 掌握ZMAC协议。 了解MAC层跨层设计。,学习导航,无线传感器网络中信号的传输主要依靠无线信道,介质访问控制(MAC)协议决定无线信道的使用方式。MAC协议通过传感器节点之间分配和共享有限的无线信道资源,构建起无线传感器网络通信系统的底层基础结构。,3.1 概述,3.1.1 功能概述IEEE802.15.4标准定义MAC子层具有以下几项功能:采用CSMA/CA机制来访问信道。PAN(Personal Area Network,个域网)的建立和维护。支持PAN网络的关联(加入网络)和解除关联(退出网络)。协调器产生网络信标帧,普通设备根据信标帧与协调器同步。处理和维护保证GTS(Guaranteed Time Slot,同步时隙)。在两个对等MAC实体间提供可靠链路。,MAC层包括MAC层管理实体(MLME),可以提供调用MAC层管理功能的管理服务接口,同时还负责维护MAC-PAN信息库(MAC-PIB)。MAC层参考模型如图3-1所示。,图3-1 MAC层参考模型,MAC层通过MAC公共部分子层(MCPS)的数据SAP(MCPS-SAP)提供MAC数据服务;通过MLME-SAP提供MAC管理服务,这两种服务是通过物理层PD-SAP和物理层(PHY)之间的接口来实现的。除了这些外部接口外,MCPS和MLME之间还隐含了一个内部接口,用于MLME调用MAC管理服务。MAC子层具体实现如下功能。,1. 支持CSMA/CA的工作CSMA/CA(载波侦听多路访问/冲突检测)机制实际是在发送数据帧之前对信道进行预约,以免造成信道碰撞问题。CSMA/CA提供两种方式来对无线信道进行共享访问,工作流程分别如下: 送出数据前,监听信道的使用情况,维持一段时间后,再等待一段随机的时间后信道依然空闲,送出数据。由于每个设备采用的随机时间不同,所以可以减少冲突的机会。 送出数据前,先送一段小小的请求传送RTS报文给目标端,等待目标端回应CTS报文后才开始传送。利用RTS/CTS握手程序,确保传送数据时不会碰撞。,2. PAN的建立和维护在一个新设备上电的时候,如果设备不是协调器,它将通过扫描发现已有的网络,然后选择一个网络进行关联。如果是一个协调器设备,则扫描已有网络,选择空余的信道与合法的PANID(Personal Area Network ID),然后构建一个新网络。当一个设备在通信过程中与其关联的协调器失去同步,也需要通过扫描通知其协调器。为了实现这些功能,802.15.4标准专门定义了四种扫描:ED信道扫描(ED SCAN)、主动信道扫描(Active SCAN)、被动信道扫描(Passive SCAN)和孤立信道扫描(Orphan Channel SCAN)。,相关原语为MLME-SCAN.request和MLME-SCAN.confirm。请求原语参数为扫描类型、扫描信道和扫描时间,确认原语返回扫描结果。,3. 关联和解除关联关联即设备加入一个网络,解除关联即设备从这个网络中退出。一般的设备(路由器或者终端节点)在启动完成扫描后,已经得到附近各个网络的参数,下一步就是选择一个合适的网络与协调器进行关联。在关联前,上层需要设置好相关的PIB参数(调用PIB参数设置原语),如物理信道的选择、PANID、协调器地址等。,4. 信标帧的同步在信标帧使用的网络中(详见3.1.2节),一般设备通过协调器信标帧的同步来得知协调器里是否有发送给自己的数据;另一方面,为了减少设备的功耗,设备需要知道信道何时进入不活跃时段,这样设备可以在不活跃时段关闭射频,而在协调器广播信标帧时打开射频。所有这些操作都需要与信标帧精确同步。,3.1.2 帧结构MAC帧,即MAC协议数据单元(MPDU),是由一系列字段按照特定的顺序排列而成的。其设计目标是在保持低复杂度的前提下实现在噪声信道上的可靠数据传输。MAC层帧结构分为一般格式和特定格式。1. MAC帧的一般格式MAC帧的一般格式,即所有的MAC帧都由以下三部分组成:MAC帧头(MHR)、MAC有效载荷和MAC帧尾,如图3-2所示。,图3-2 MAC帧的一般格式,MAC帧头部分由帧控制字段和帧序号字段组成;MAC有效载荷部分的长度与帧类型相关,确认帧的有效载荷部分长度为0;MAC帧尾是校验序列(FCS)。1) 帧控制字段帧控制字段的长度为16位,共分为9个子域。帧控制字段格式如图3-3所示。,图3-3 帧控制字段的格式,各子域内容说明如下:帧类型子域:占3位,000表示信标帧,001表示数据帧,010表示确认帧,011表示MAC命令帧,其他取值预留。安全使能子域:占1位,0表示MAC层没有对该帧做加密处理;1表示该帧使用了MACPIB中的密钥进行保护。数据待传指示:1表示在当前帧之后,发送设备还有数据要传送给接收设备,接收设备需要再发送数据请求命令来索取数据;0表示发送数据帧的设备没有更多的数据要传送给接收设备。,确认请求:占1位,1表示接收设备在接收到该数据帧或命令帧后,如果判断其为有效帧就要向发送设备反馈一个确认帧;0表示接收设备不需要反馈确认帧。网内/网际子域:占1位,表示该数据帧是否在同一PAN内传输,如果该指示位为1且存在源地址和目的地址,则MAC帧中将不包含源PAN标识码字段;如果该指示位为0且存在源地址和目的地址,则MAC帧中将包含PAN标识码和目的PAN标识码。,目的地址模式子域:占2位,00表示没有目的PAN标识码和目的地址,01预留,10表示目的地址是16位短地址,11表示目的地址是64位扩展地址。如果目的地址模式为00且帧类型域指示该帧不是确认帧或信标帧,则源地址模式应非零,暗指该帧是发送给PAN协调器的,PAN协调器的PAN标识码与源PAN标识码一致。源地址模式子域:占2位,00表示没有源PAN标识码和源地址,01预留,10表示源地址是16位短地址,11表示源地址是64位扩展地址。如果源地址模式为00且帧类型域指示该帧不是确认帧,则目的地址模式应非零,暗指该帧是由与目的PAN标识码一致的PAN协调器发出的。,2) 帧序号字段帧序号是MAC层为每帧制定的唯一顺序标识码,帧序号字段长度为8位。其中信标帧的序号是信标序号(BSN)。数据帧、确认帧或MAC命令帧的序号是数据信号(DSN)。3) 目的PAN标识码字段目的PAN标识码字段长度为16位,它指定了帧的期望接收设备所在PAN的标识。只有帧控制字段中目的地址模式不为0时,帧结构中才存在目的PAN标识码字段。,4) 目的地址字段目的地址是帧的期望接收设备的地址。只有帧控制字段中目的地址模式非00时,帧结构中才存在目的地址字段。5) 源PAN标识码字段源PAN标识码字段长度为16位,它制定了帧发送设备的PAN标识码。只有当帧控制字段中源地址模式值不为0,并且网内/网际指示位等于0时,帧结构中才包含有源PAN标识字段。一个设备的PAN标识码是初始关联到PAN时获得的,但是在解决PAN标识码冲突时可能会改变。,6) 源地址字段源地址是帧发送设备的地址。只有帧控制字段中的源地址模式非00时,帧结构中才存在源地址字段。7) 帧有效载荷字段帧有效载荷字段的长度是可变的,因帧类型的不同而不同。如果帧控制字段中的安全使能位为1,则有效载荷长度是受到安全机制保护的数据。,8) FCS字段FCS字段是对MAC帧头和有效载荷进行计算得到的16位CRC校验码。,2. MAC帧特定格式MAC帧特定格式包括信标帧、数据帧、确认帧和命令帧。1) 信标帧信标帧实现网络中设备的同步工作和休眠,建立PAN主协调器。信标帧格式如图3-4所示。,图3-4 信标帧格式,信标帧包括MAC帧头、有效载荷和帧尾。其中帧头由帧控制字段、序号和地址信息字段组成,信标帧中的地址信息只包含源设备的PANID和地址。负载数据单元由四部分组成,即超帧、GTS、待处理地址和信标有效载荷。超帧:指定发送信标的时间间隔、是否发送信标以及是否允许关联。信标帧中的超帧描述字段规定了这个超帧的持续时间、活跃部分持续时间以及竞争访问时段持续时间等信息。超帧是根据MAC协议的需求来定义的,不同的MAC协议其超帧结构也不同。,GTS分配字段:GTS分配字段长度是8位,其中位02是GTS描述计数器子域,位36预留,位7是GTS子域。GTS分配字段将无竞争时段划分为若干个GTS,并把每个GTS具体分配给每个设备。待处理地址:列出了与协调者保存的数据相对应的设备地址。一个设备如果发现自己的地址出现在待转发数据目标地址字段里,则意味着协调器存有属于它的数据,所以它就会向协调器发出请求传送数据的MAC帧。信标帧有效载荷:信标帧载荷数据为上层协议提供数据传输接口。,2) 数据帧数据帧用于传输上层发到MAC子层的数据。数据帧的格式如图3-5所示。,图3-5 数据帧的格式,它的负载字段包含了上层需要传送的数据。数据负载传送至MAC子层时,被称为MAC服务数据单元。它的首尾被分别附加了MHR头信息和MFR尾信息。3) 确认帧确认帧的格式如图3-6所示,由帧头(MHR)和帧尾(MFR)组成。其中,确认帧的序列号应该与被确认帧的序列号相同,并且负载长度为0。,图3-6 确认帧的格式,4) 命令帧命令帧用于组建PAN网络,并传输同步数据,命令帧的格式如图3-7所示。其中,命令帧标识字段指示所使用的MAC命令,其取值范围为0 x010 x09。,图3-7 命令帧的格式,MAC命令帧的帧头部分包括帧控制字段、帧序号字段和地址信息字段。命令帧标识字段指示所使用的MAC命令,标识的命令名称如所示。,表3-1 命令帧的标识及其对应的命令名称,3.1.3 分类目前无线传感器网络研究领域出现大量关于MAC协议的研究成果。从不同的角度,MAC协议的分类有多种方法:根据MAC使用信道数目可分为基于单信道、基于双信道和基于多信道。根据MAC协议分配信道的方式可以分为竞争型、分配型和混合型。根据网络类型是同步网络或异步网络可以将MAC协议分为同步和异步。,本书采用根据MAC协议分配信道的方式来进行分类,分别介绍竞争型、分配型及混合型MAC协议。对每一种类型具有代表性的MAC协议将详细讲解其基本思想、关键技术和核心算法。,竞争型MAC协议中,一般所有节点共享一个信道。基于竞争型MAC协议的基本思想是:当无线节点需要发送数据时,主动抢占无线信道,当在其通信范围内的其他无线节点需要发送数据时,也会发起对无线信道的抢占,这就需要相应的机制来保证任一时刻在通信区域内只有一个无线节点获得信道的使用权。基于竞争的MAC协议具有以下优点:,3.2 竞争型MAC协议,可根据需要分配信道,所以这种协议能较好地满足节点数量和网络负载的变化。能较好地适应网络拓扑的变化。不需要复杂的时间同步或控制调度算法。比较有代表性的竞争型MAC协议有SMAC协议、TMAC协议和PMAC协议。,3.2.1 SMAC协议SMAC(Sensor MAC)协议是较早提出的一种基于竞争的无线传感器网络MAC协议。该协议继承了802.11MAC协议的基本思想,并在此基础上加以改进,以无线传感器网络的能量效率为设计目标,较好地解决了能量问题,同时兼顾网络的可扩展性。,1. 基本思想对于如何减小无线传感器网络节点的能量消耗,不少MAC协议提出了相应的解决办法。其中最基本的思想就是:当节点不需要发送数据时,尽可能地让它处于功耗较低的睡眠状态。SMAC协议提出了“适合于多跳无线传感器网络的竞争型MAC协议的节能方法”,其节能方法如下:采用周期性睡眠和监听方法可减少空闲监听带来的能量消耗。对周期性睡眠和监听的调度进行同步。同步节点采用相同的调度形成虚拟簇,可同时进行周期性睡眠和监听,因而适用于多跳网络。,当节点正在发送数据时,根据数据帧特殊字段让每个与此通信无关的邻居节点进入睡眠状态,以减少串扰带来的能量消耗。采用消息传递机制,减少控制数据带来的能量损耗。,2. 关键技术1) 周期性监听与睡眠SMAC协议中,节点协同进行周期性监听和睡眠的状态切换,确保节点能同步进行监听和睡眠调度,而不是各个节点各自发行随机的睡眠和监听,周期性监听和睡眠的时间之和为一个调度周期。节点之间协同进行周期性监听和睡眠调度、保持同步监听和睡眠的基本原理是:每个传感器节点开始工作时,需要先选择一种调度方式。调度方式是指节点进行监听和睡眠的时间表,如图3-8所示。,图3-8 周期性监听和睡眠时间表,节点根据此时间表进行周期性监听和睡眠调度,其步骤如下: 节点首先监听一个固定的时间段,其长度至少是一个调度周期。如果在该时间段内节点没有收到邻居节点发来用于同步的SYNC数据包(即同步数据包),节点马上就选择一个本地默认的调度方式。同时,节点将自己的调度方式以AYNC数据包的形式进行广播,SYNC数据包的发送采用CSMA/CA机制。, 节点在开始监听的固定时间段内接收到邻居发来的SYNC数据包,节点存储该调度方式信息,并采用此调度方式进行周期性监听和睡眠,在以后的调度周期中也将广播自己采用的调度方式。 节点在开始周期性调度后接收不到不同的调度方式的SYNC数据包,有两种情形:如果节点只有一个邻居节点,那么节点放弃自己当前的调度方式,即保持更大长度的监听时间;如果节点还有其他邻居节点,那么节点将融合这两种调度方式,即保持更大长度的监听时间。,图3-9 SMAC协议虚拟簇,调度方式相同的节点组成虚拟簇,融合有两种调度方式的节点位于簇与簇的交界处,是簇的边界节点,边界节点记录两个或者多个调度。在部署区域广阔的传感器网络中,能够形成众多不同的虚拟簇,可使得SMAC协议具有良好的扩展性。为了适应新加入的节点,每个节点都要定期广播自己的调度,使新节点可以与已经存在的相邻节点保持同步。如果一个节点同时收到两种不同的调度,即处于两个不同调度区域重合部分的节点,那么这个节点可以选择先收到其中的一个调度,并记录另一个调度信息。SMAC协议虚拟簇如图3-9所示。,2) 自适应监听传感器网络往往采用多跳信道,而节点的周期性睡眠会导致通信延迟的累加,为了减少通信延迟的累加效应,SMAC采用了一种流量自适应监听机制。其基本思想是在一次通信过程中,通信节点的邻居节点在此次通信结束后唤醒并保持监听一段时间。如果节点在这段时间接收到RTS帧,则可以立即接收数据,而不需要等到下一个监听周期,从而减少了数据传输的延迟。,3) 串扰避免为了减少碰撞和避免串音,SMAC协议采用RTS/CTS的通告机制。在RTS/CTS帧中都带有目的地址和本次通信的持续时间信息,接收到该帧后,如果发现目的地址不是本地地址,节点马上进入睡眠状态,并将此次通信的持续时间存储到本地网络分配向量(Network Allocation Vector,NAV)中,NAV会随着本地时钟的运行递减。在NAV值非零期间,节点都处于睡眠转态,这就很大程度避免了串扰数据包的接收。,4) 消息传递在发送比较长的消息时,由于几个比特错误造成重传,则会造成较大的延时和能量损耗。但如果简单地将长包分段,又会由于RTS/CTS的使用形成过多的控制开销,SMAC提出了“消息传递”机制:将长的信息分成若干个DATA,每段DATA都有一个ACK,并将它们一次传递,但是只使用一个RTS/CTS控制。在该机制中,节点为整个传输预留信道,当一个分段没有收到ACK响应时,节点便自动将信道预留向后延长一个分段传输时间,并重传该分段,整个传输过程中的DATA和ACK都带有通信剩余时间信息,邻居节点可以根据此时间信息避免串扰。,3.2.2 TMAC协议TMAC(Timeout MAC)协议是在SMAC协议的基础上提出的。无线传感器网络MAC协议最重要的设计目标就是减少能量的消耗,在空闲监听、碰撞和串音等浪费能量的因素中,空闲监听的能量占绝对大的比例,特别是在消息传输频率较低的情况下。TMAC协议与SMAC协议相比解决了空闲监听所带来的能量消耗。1. 基本思想SMAC协议通过采用周期性监听/睡眠工作方式来减少空闲监听,周期长度是固定不变的,节点监听活动时间也是固定的;,而TMAC协议在周期长度不变的基础上,根据通信流量动态地调整活动时间,用突发的方式发送消息,减少空闲监听时间。SMAC和TMAC协议机制对比如图3-10所示。,图3-10 SMAC和TMAC协议机制对比,图3-10中,向上的箭头表示发送消息,向下的箭头表示接收消息。上面部分的消息流表示节点一直处于监听方式下的消息收发序列,TA表示监听时间。下面部分的消息流表示采用SMAC协议或者TMAC协议时的收发序列。从图中可以看出,TMAC协议采用突发传输,比SMAC协议减少了空闲监听的时间,从而减少了功耗。,TMAC协议中每个节点都周期性地唤醒,进入活跃状态,和邻居节点进行通信,然后进入睡眠状态,直到下一周期的开始。节点之间进行单播通信,使用RTS/CTS/DATA/ACK交互的方法,以确保避免冲突和可靠传输。在活跃状态下,节点可能保持监听,也可能发送数据。当在一个时间段TA内没有发生激活事件时,活跃状态结束,节点进入睡眠状态。节点激活时间是下列情况之一:周期时间定时器溢出。,物理层从无线信道接收到数据包。通过接收信号强度(RSSI)指示物理层当前无线信道的使用情况。节点DATA帧或ACK帧发送完成。通过监听RTS/CTS帧,确认邻居的数据交换已经结束。,2. 关键技术1) 周期性监听同步在TMAC协议中,每个节点进行周期性监听时,也需要同SMAC协议一样通过调度的方式进行同步,TAMC协议采用了与SMAC协议相同的机制,通过周期性发送同步帧来保持节点之间的同步,具体过程如下: 节点上电启动后,首先进行一段时间的监听,如果该时间段内节点没有接收到同步帧,则节点选择一个默认的调度方式,并通过同步帧广播该调度方式。 TMAC协议中的同步帧包含发送节点地址信息和下一次进入活跃状态需要等待的时间信息。, 如果该时间段内节点接收到同步帧,则节点采用该调度方式,设置下一次进入活跃状态的时间为同步帧中的时间值减去接收到同步帧需要的时间值。 如果节点接收到不同的调度方式,则节点融合两种调度方式,在最短的时间内进入监听状态。为了保证网络的可扩展性,同SMAC协议一样,节点在进行周期性调度的过程中,必须保证经过一定次数的调度后,节点在一个调度周期内始终保持在监听状态,确保节点可以发现调度方式不同的邻居节点。,2) RTS操作和TA的选择当节点发送RTS帧后,如果没有接收到相应的CTS帧,可能有以下三种情况:接收节点处发生碰撞,没能正确接收RTS帧。接收节点在此之前已经接收到串扰数据。接收节点处于睡眠状态。如果发送节点没有在监听时间TA内接收到CTS帧,节点会进入睡眠状态,如果是前两种情况下导致发送节点没有收到CTS帧,那么它将进入睡眠状态,但是它的接收节点还处于监听状态,发送节点此时进行睡眠会增加睡眠的延迟。,因此节点在第一次发送RTS未能建立连接后,应该再重复发送一次RTS。如果仍然没有接收到CTS帧,则转入睡眠状态。TMAC协议中,当邻居节点还处于通信状态时,节点不应该进行睡眠,因为节点可能是接下来数据的接收者。节点发现串扰的RTS或CTS都能够触发一个新的监听间隔TA。为了确保节点能够发现邻居节点的串扰,TA的取值必须保证节点能够发现串扰的CTS,所以TMAC协议规定TA的取值范围如下:TA C + R + T (3-1),式中,C为信道竞争的时间,R为发送RTS所需要的时间,T为RTS发送结束到开始发送CTS的时间,所以TA的取值范围如图3-11所示。,图3-11 TMAC协议的基本数据交换,节点A向节点B发送数据,首先节点A向节点B发送RTS,然后节点B向节点A和节点C发送CTS帧,节点A收到CTS帧后开始向节点B发送数据。由于节点C收到节点B发送的CTS,节点C会触发一个新的监听时间TA。,3. 早睡问题及解决方法在采用周期性调度的MAC协议中,如果一个节点在邻居节点准备向其发送数据时进入了睡眠状态,这种现象称为“早睡”,如图3-12所示。,图3-12 早睡问题,数据的传输方向为ABCD,节点A通过竞争的方式获得了与节点B通信的机会,节点A向节点B发送数据,首先节点A向节点B发送RTS,然后节点B向节点A和节点C发送CTS帧,当C收到节点B发送的CTS时,会触发一个新的监听时间段TA,使节点C保持监听状态。而节点D没有发现节点A和节点B之间的通信,由于无法触发新的TA,节点D会进行睡眠。但节点A和节点B之间的通信结束后,节点C获得信道,但由于节点D此时已经睡眠,所以必须等到节点D在下一次调度唤醒时才能进行RTS/CTS交互。,为了解决早睡问题,TMAC协议提出了相应的解决方法:未来请求发送(Future Request-To-Send,FRTS),如图3-13所示。,图3-13 FRTS帧交换,当节点C收到节点B发送的CTS后,立即向节点D发送一个FRTS帧,FRTS帧包含节点D接收数据前需要等待的时间长度,节点D在此时间内必须保持在监听状态。此外,由于节点C发送的FRTS可以干扰节点A和B之间的通信,所以节点A需要将发送的数据延迟相应的时间,节点A在接收到CTS帧之后发送一个和FRTS长度相同的DS帧,该帧不包含有用的信息,只为了保持节点A和B对信道的占用。,节点A在发送完DS帧之后立即向节点B发送数据信息。由于采用了FRTS机制,TA需要增加一个CTS时间。FRTS方法可以提高吞吐量,减少延迟,但是增加了控制开销,会降低TMAC协议的能量效率。TMAC协议较好地解决了空闲监听带来的能量损耗问题,基于SMAC协议的基本思想,通过采用自适应调度方法,TMAC协议能较好地适应网络流量的变化。对于自适应调度方法带来的早睡问题,给出的解决方法都有其局限性。,3.2.3 PMAC协议SMAC协议和TMAC协议都在提高能量效率方面具有较好的性能,由于采用了占空比适应调整的调度方式,TMAC协议在经常变化的网络中有更高的能量效率。但是TMAC协议引入了“早睡”问题,在延迟和带宽利用方面性能不好。PMAC(Pattern-MAC)协议可以根据节点自身的数据流量和其邻居节点的流量模式自适应地调整周期性调度方式的占空比,从而提高能量效率。其基本思想如下:在网络数据流量很小的情况下,节点最主要的能量损耗是空闲监听,,采用周期性调度方式的MAC协议都采取措施尽可能地减少这种能量损耗。PMAC协议引入了模式信息,即一种包含“睡眠-唤醒”信息的二进制串,节点能够通过模式信息提前获知邻居节点的下一步活动。基于这些模式信息,网络中没有数据传输时,节点能够在几个预知的调度周期内减少监听时间,而当邻居节点将要发生通信时,则进入监听状态,从而减少节点的空闲监听带来的能量损耗。,带有“睡眠-唤醒”信息的模式信息由一个二进制位串组成。位串中的每一位都表示在一个固定的时间段内节点应处于何种状态:1为监听状态,0为睡眠状态。在PMAC协议中,节点的监听和睡眠调度都根据模式信息来进行,节点根据自身的活动生成本地模式信息,调度时还需要结合邻居节点的模式信息。图3-14所示为SMAC、TMAC和PMAC协议空闲监听周期长度的比较。,图3-14 SMAC、TMAC和PMAC空闲监听周期长度的比较,由于PMAC协议采用“睡眠-唤醒”信息模式对信道进行监听,节点的睡眠时间比SMAC和TMAC协议的睡眠时间短,因而有效地提高了能量效率。SMAC和TMAC协议在网络数据量较小的情况下适用,当网络数据流量较大时,PMAC协议具有更小的时延,可提高系统的吞吐量。,3.3 分配型MAC协议在竞争型MAC协议中,随着网络通信流量的增加,控制包和数据包发生冲突的可能性都会增加,降低了网络的带宽利用率,同时数据信息的重传也会降低能量效率。分配型MAC协议通常采用TDMA(时分多址)、CDMA(码分多址)、FDMA(频分多址)等技术将一个物理信道分为多个子信道,并将子信道静态或动态地分配给需要通信的节点,避免冲突。基于分配式的无线传感器网络MAC协议具有如下优点无冲突。,无隐蔽终端问题。易于休眠,适合于低功耗网络。目前提出的基于分配的MAC协议较多,以下对比较有代表性的SMACS、TRAMA、DMAC协议进行介绍。,3.3.1 SMACS协议SMACS(Self-organizing Medium Access Control for Sensor Networks)协议是一种分配型MAC协议,是结合TDMA和FDMA的基于固定信道分配的MAC协议,可以完成网络的建立和通信链路的组织分配。,1. 基本思想SMACS协议的基本思想是为每一对邻居节点分配一个特有频率进行数据传输,不同节点之间的频率互不干扰,从而避免节点同时传输数据之间产生的碰撞。SMACS协议假设传感器节点静止,当节点启动时通过共享信道广播一个“邀请”消息,通知邻居节点与其建立连接,接收到“邀请”消息的邻居节点与发出“邀请”消息的节点互换信息,协商两者之间的通信频率和时槽。,如果节点收到多个邻居节点对其“邀请”消息的应答,则选择最先应答的邻居节点建立无线链路。为了与更多邻居节点建立链路,节点需要定时地发送“邀请”消息。,2. 关键技术SMACS协议节点链路建立主要用于静止节点之间的无线链路。图3-15显示了AD、BC节点之间的无线链路的建立过程。,图3-15 节点建立过程,首先,节点D向邻居节点广播“邀请”消息,收到消息的节点A发送应答消息,节点A和节点D协商两者之间的一对专用通信时槽和专用通信频率f1。节点B和节点C之间也通过协商建立专用通信时槽和通信频率f2。节点A、D之间的通信时槽和节点B、C之间的通信时槽虽然有重叠,但是由于双方适用的频率不同,因此不会相互干扰。通过同样的过程,经过一段时间之后,节点A与B、节点C与D之间也分别通过协商分配相应的通信时槽和不同的通信频率,从而建立相应的底层链路。,3. 特点SMACS协议是一种TDMA和FDMA结合的信道分配机制,该协议可以建立一种平面结构网络。通过为每对时隙分配随机的载波频率,SMACS减少了全局时间同步,也减少了复杂性。,3.3.2 TRAMA协议TRAMA(Traffic Adaptive Medium Access,流量自适应介质访问)协议是较早提出的基于分配的无线传感器网络的MAC协议,该协议引入了睡眠机制。它的信道分配机制不仅能够保证能量效率,而且对于带宽利用率、延迟和公平性也有很好的支持。,1. 基本思想TRAMA协议将一个物理信道分成多个时隙,通过对这些时隙的复用为数据和控制信息提供信道。图3-16所示为协议信道的时隙分配情况。,图3-16 时隙分配,每个时间帧分为随机接入和分配接入两部分,随机接入时隙也称为信令时隙,分配时隙也称为传输时隙。由于无线传感器网络传输速率普遍比较低,所以对于时隙的划分以毫秒为单位。传输时隙的长度是固定的,可根据物理信道带宽和数据包长度计算得出。由于控制信息量通常比数据信息量要小很多,所以传输时隙通常为信令时隙的整数倍。TRAMA协议由三部分组成:邻居协议(Neighbor Protocol,NP)、分配交换协议(Schedule Exchange Protocol,SEP)和自适应选举算法(Adaptive Election Algorithm,AEA)。其中NP协议和SEP协议允许节点交换两跳内的邻居信息和分配信息。,AEA利用邻居和分配信息选择当前时隙的发送者和接收者,让其他与此无关的节点进入睡眠状态以节省能量。以下详细介绍NP协议和SEP协议。,2. 关键技术1) NP协议无线传感器网络中,由于节点失效或者新节点加入等现象的存在,网络拓扑发生动态变化,TRAMA协议需要适应这种变化。TRAMA协议中,节点启动后处于“随机接入时隙”,在此时隙内节点为接收状态,可以选择一个随机时隙发送信令。“随机接入时隙”的长度选择可根据应用来决定。如果网络移动性不强,拓扑相对比较稳定,则时隙较短;否则就需要适当延长该时隙长度。,但该时隙的延长会增加空闲监听的能量损耗,降低网络的能量效率。节点之间时钟同步信息也是在随机接入时隙中发送的。由于在随机接入时隙中各个节点都可以选择随机接入时隙进行发送,控制信息有可能发生碰撞而丢失,为了减少碰撞,对随机接入时隙的长度和控制信息的重传次数都要进行相应的设置。通过在随机接入时隙中交换控制信息,NP协议实现了邻居信息的交互。图3-17所示为控制信息帧的帧头格式。,图3-17 控制信息帧的帧头格式,控制信息帧的帧头包括信令帧头和数据帧头两部分。信令帧头中携带了“增加邻居”的更新,如果没有更新,信令帧头将作为通知邻居节点自己存在的信标。每个节点发送自己下一跳邻居的增加更新,可以用来保持邻居之间的连通性。如果一个节点在一段时间内没有再收到某个邻居的信标,则该邻居失效。由于节点知道下一跳邻居和这些邻居的下一跳邻居信息,所以网络中每个节点都能交换两跳邻居信息。,2) SEP分配交换协议分配交换协议用于建立和维护发送者和接收者选择时所需要的分配信息。首先每个节点要生成分配信息,然后通过分配信息的广播实现分配信息的交换和维护。分配信息生成的过程如下: 节点根据高层应用产生数据的速率计算出一个分配间隔T,该间隔代表了节点能够广播分配信息给邻居的时隙个数。, 节点计算在两跳邻居范围内具有最高优先级的时隙数,由于这些时隙中的节点可能被选为发送者,节点需要通知这些时隙中数据的接收者。 如果节点没有待发数据,也需要通知邻居节点它将放弃相关时隙,其他需要发送数据的节点可以使用这些空闲时隙。,3. 协议的特点TRAMA协议是一种分配型MAC协议,节点通过NP协议获得邻居信息,通过SEP协议建立和维护分配信息,通过AEA算法分配时隙给发送节点和接收节点。TRAMA协议在冲突避免、延时、带宽利用率等方面都具有较好的性能,但协议需要较大的存储空间来存储多跳邻居信息和分配信息。,3.3.3 DMAC协议SMAC协议和TMAC协议一样,采用周期性的活动、睡眠策略来减少能量消耗,但会出现数据在转发过程中“走走停停”的数据通信停顿问题。例如,通信模块处于睡眠状态的节点,如果检测到事件就必须等到通信模块转换到活动周期才能发送数据:中间节点要转发数据时,下一跳节点可能处于睡眠状态,此时也必须等待它转换到活动周期。这种节点睡眠带来的延迟会随着路径上跳数的增加而成比例增加。,传感器网络中一种重要的通信模式是多个传感器节点向一个汇聚节点发送数据。所有传感器节点转发收到的数据,形成一个以汇聚节点为根节点的树型网络结构,称为“数据采集树”。这种数据采集树结构可以减少节点睡眠所带来的数据延迟和能量消耗。DMAC协议就是针对这种“数据采集树”结构提出的,目标是减少网络的能量消耗和减少数据的传输延迟。,1. 基本思想DMAC协议的核心思想是采用交错调度机制。图3-18所示为DMAC协议的交错调度机制示意图。该机制将节点周期划分为接收时间、发送时间和睡眠时间。其中接收时间和发送时间相等,均为一个数据分组的时间。每个节点的调度具有不同的偏移,下层节点的发送时间对应上层节点的接收时间。这样,数据能够连续地从数据源节点传送到汇聚节点,减少在网络中的传输延迟。DMAC协议采用ACK应答机制,发送节点如果没有收到ACK应答,要在下一个发送时间重发,接收节点正确接收到数据后,立刻发送ACK。,图3-18 DMAC协议的交错调度机制,为了减少发送数据的冲突,每个节点在发送数据之前先退避一个固定时间(Backoff Period,BP),在冲突窗口(Content Window,CW)内随机选择发送等待时间。接收到数据的节点在等待一个短周期(Short Period,SP)后回复一个ACK应答。发送周期和接收周期的长度用表示: (3-2)式中,DATA为数据包的传输时间,ACK为ACK帧的传输时间。,DMAC协议的具体实现是通过自适应占空比机制和数据预测机制来实现的。以下详细介绍自适应占空比机制和数据预测机制。,2. 关键技术1) 自适应占空比机制DMAC协议中,如果节点在一个发送周期内有多个数据包要发送,就需要该节点和树状路径上的上层节点一起加大发送周期占空比。DMAC协议引入了一种新的机制:自适应占空比机制,使占空比能自适应调整。该机制通过在MAC层数据帧的帧头加入一个标记(More Data Flag),设置为1表示发送节点还有数据需要发送;在ACK分组头中增加同样的标志位,设置为1表示接收节点准备好继续接收数据。当收到下一跳节点发来标志设置为1的数据分组时,节点设置它的数据分组中的标志为1。,根据自适应占空比机制的规则,节点决定增加活动周期的条件是:节点发送了标志设置为1的数据分组,或者收到了标志设置为1的ACK分组。自适应占空比机制的优点是,数据在传输路径上逐跳进行预约,从而能够提高网络的数据传输效率。,2) 数据预测机制在数据采集树中,越靠近上层的节点,汇聚的数据越多,所以对数据的底层节点适合的占空比不一定适合中间节点。比如节点A和节点B有共同的父节点C,节点A和节点B在每个发送周期都只有一个数据包要发送。如果节点A通过竞争获得了信道,就向节点C发送数据,节点C在接收到数据后向节点A发送一个ACK,随后进入睡眠状态,这样就给节点B的数据带来了睡眠延迟。,DMAC协议引入了数据预测机制来解决此问题。如果一个节点在接收状态下接收到一个数据包,该节点预测子节点仍有数据等待发送。在发送周期结束后再等待个周期之后,节点重新切换到接收状态。所有接收到该数据包的节点都执行这样一个操作,增加一个接收周期,在这个增加的接收周期中,节点如果没有接收到数据则直接转入睡眠状态,不会进入发送周期。如果接收到数据,那么在个周期之后再增加一个接收周期。在节点发送周期内,如果节点竞争信道失败,,会接收到父节点发给其他节点的ACK,那么节点就知道父节点在个周期后会增加一个接收周期,所以节点在睡眠个周期之后进入发送状态,在这个增加的发送周期内向父节点发送数据。,3. 特点DMAC协议具有如下特点:DMAC协议是一种针对树状数据采集网络提出的能量高效、低延迟的MAC协议。DMAC协议根据节点在数据采集树上的深度为节点分配交错的活动/睡眠周期,在占空比方式下避免了数据多跳传输中的睡眠延迟。通过引入自适应占空比机制,DMAC协议能根据网络数据流量动态地调整占空比。,竞争型MAC协议能很好地适应网络规模和网络数据流量的变化,能灵活地适应网络拓扑的变化,无需精确的时钟同步机制,比较容易实现;但是由于冲突重传、空闲监听、串扰等引起能量损耗,存在能量效率不高的缺点。分配型MAC协议将信道资源按时隙、码型或频段分为多个子信道,各子信道之间无冲突,互不干扰。,3.4 混合型MAC协议,数据包在传输过程中不存在冲突重传,所以能量效率较高。但是分配型MAC协议节点在网络中形成簇,不能灵活地适应网络拓扑结构变化。因此,研究人员提出了混合型MAC协议。本节介绍比较有代表性的混合型MAC协议:ZMAC协议。,3.4.1 ZMAC协议概述ZMAC协议是一种混合型MAC协议,此协议对竞争方式和分配方式进行了组合。采用CSMA机制作为基本方法,在竞争加剧时使用TDMA机制来解决信道冲突问题。,3.4.2 基本思想ZMAC引入了时间帧的概念,每个时间帧又分为若干个时隙。在ZMAC中,网络部署时每个节点都执行时隙分配的DRAND算法。时隙分配结束后,每个节点都会在时间帧中拥有一个时隙。分配时隙的节点称为该时隙的所有者,时隙所有者在对应的时隙中发送数据的优先级更高。在ZMAC协议中,节点可以选择在任何时隙发送数据。节点在某个时隙发送数据需要先监听信道状态,但是该时隙的所有者拥有更高的发送优先级。,发送优先级的设置通过设定退避时间窗口的大小来实现。时隙的所有者被赋予一个较小的时间窗口,所以能够抢占信道。通过这