基于异步竞争的无线传感器网络MAC层协议介绍(X-MAC ContikiMAC)

无线传感器网络(wireless sensor networks, WSN)节点由电池供电,其能力非常有限,同时由于工作环境恶劣以及其他各种因素,节点能源一般不可补充。因而降低能耗、延长节点使用寿命是所有无线传感器网络研究的重点。
WSN中的能量能耗主要包括通信能耗、感知能耗和计算能耗,其中通信能耗所占的比重最大,因此,减少通信能耗是延长网络生存时间的有效手段。同时,研究表明节点通信时Radio模块在数据收发和空闲侦听时的能耗几乎相同,所以要想节能就需要最大限度地减少Radio模块的侦听时间(收发时间不能减少),及减小占空比。
传统的无线网络中,主要考虑到问题是高吞吐量、低延时等,不需要考虑能量消耗,Radio模块不需要关闭,所以传统无线网络MAC协议无法直接应用于WSN,各种针对传感器网络特点的MAC协议相继提出。现有的WSN MAC协议按照不同的分类方式可以
分成许多类型,其中根据信道访问策略的不同可以分为:

  1. 竞争协议
    节点通过竞争策略使用无线信道。
  2. 调度协议
    根据一个设定的计划表来协调网络中各节点工作,需要节点之间比较严格的时间同步,而且一般协议实现比较复杂。
  3. 混合MAC协议

其中,基于竞争的MAC协议又可以进一步分为:

  1. 同步竞争类MAC协议
    如:S-MAC T-MAC P-MAC SIFT等,所谓同步就是要求所有节点同步到一个共同点时间,这样网络中所有节点在相同时间唤醒并竞争使用信道,因为节点同时工作,所以该类协议信道效率较高,但随之而来的一个缺点就是竞争和冲突比较严重。该类协议在高负载下冲突较大,而低负载下空闲侦听较多,因而近年来基于此提出的新协议不多。
  2. 异步竞争类MAC协议
    如:B-MAC Wise-MAC X-MAC RI-MAC/RP-MAC等,该类协议中所有节点维持自己独立的工作周期,收发双方不同步,因而发送节点发出数据时接收节点可能正处于睡眠状态,所以需要使用LPL(低功率侦听)前导序列技术唤醒接收节点。
    不需要维持节点同步,但需要二维的唤醒能耗。

B-MAC协议

节点周期性得侦听网络,使用扩展前导和LPL(低功率侦听)技术实现低功耗通信,使用空闲信道评估技术进行信道裁决。协议原来如图1所示:
基于异步竞争的无线传感器网络MAC层协议介绍(X-MAC ContikiMAC)_第1张图片

                     图1 B-MAC协议原理

节点在发送数据分组之前先发送一段长度固定的前导序列,序列长度要大于接收方睡眠时间,以免接收节点睡眠过程错过前导序列。
B-MAC协议无需共享调度信息,可以有效缩短唤醒时间。节点在任意时刻都可以发送,而不用像同步协议中那样必须等待到下一个工作周期。
优点:

  1. 最显著的优点就是低功耗侦听,使得节点每次唤醒后侦听信道的时间非常短,特别当网络流量较小或没有流量时,能显著降低能耗。
  2. 节点不需要保持同步,因而协议实现非常简单。

缺点:
长前导序列使得数据分发的效率非常低,邻居节点的串音非常严重,而且极大地增加了时延。
B-MAC协议定义了WSN中常用的异步占空比的基本结构,Wise-MAC X-MAC等协议都是基于此的改进。

Wise-MAC协议

核心思想:让发送节点知道接收节点何时唤醒,因而发送节点只需要在接收节点醒来之前开始发送极短的前导序列(不需要再像B-MAC那样发送一个大于睡眠时间的长前导序列)就可以发起通信。
Wise-MAC中将接收节点的调度信息嵌入在确认包中,在每次数据发送完毕发回给发送节点。并在前导序列中对时钟漂移进行了补偿,当网络流量较小时需要的补偿量较大,反之亦然。这在一定程度上使得Wise-MAC具有流量自适应性。协议原理如图2所示:
基于异步竞争的无线传感器网络MAC层协议介绍(X-MAC ContikiMAC)_第2张图片

               图2 Wise-MAC协议原理图

由于限制了前导序列的长度,Wise-MAC无论用于数据收发还是侦听的能耗都比B-MAC有了显著改善,平均延时仅需要半个侦听间隔的时间,也缩减为B-MAC的一半。而且前导序列的动态性使得协议在动态网络负载中表现优越。
缺点:

  1. 当网络负载很小时,其前导序列长度几乎等于节点的侦听间隔(第一次发送时没有邻居节点的调度信息,还需要发送长前导序列),这将导致Wise-MAC协议退化到B-MAC。
  2. 广播消息时为了唤醒所有邻居,必须使用完整的长前导序列。

X-MAC协议

X-MAC协议也基于B-MAC协议的改进,改进了其前导序列过长的问题,将前导序列分割成许多频闪前导(strobed preamble),在每个频闪前导中嵌入目的地址信息,非接收节点尽早丢弃分组并睡眠。
X-MAC在发送两个相邻的频闪序列之间插入一个侦听信道间隔,用以侦听接收节点的唤醒标识。接收节点利用频闪前导之间的时间间隔,向发送节点发送早期确认,发送节点收到早期确认后立即发送数据分组,避免发送节点过度前导和接收节点过度侦听。
X-MAC还设计了一种自适应算法,根据网络流量变化动态调整节点的占空比,以减少单跳延时。
优点:
X-MAC最大的优点是不再需要发送一个完整长度的前导序列来唤醒接收节点,因而发送延时和收发能耗都比较小;节点只需监听一个频闪前导就能转入睡眠。
缺点:
节点每次醒来探测信道的时间有所增加,这使得协议在低负载网络中能耗性比较差。而且分组长度、数据发送速率等协议参数还需进一步确定
X-MAC原理图如图3所示:
基于异步竞争的无线传感器网络MAC层协议介绍(X-MAC ContikiMAC)_第3张图片

                    图3 X-MAC协议原理图

关于x-mac详细资料可以看其论文:

Buettner M, Yee G V, Anderson E, et al. X-MAC: a short preamble MAC protocol for duty-cycled wireless sensor networks[J]. Sensys, 2006, 14(4):307-320.

ContikiMAC协议

Contiki系统中专门从MAC层分离出RDC(Radiio Duty Cycing)层来负责控制无线收发器的开启和关闭来降低功耗。
ContikiMAC为contiki默认的RDC层协议。
基于异步竞争的无线传感器网络MAC层协议介绍(X-MAC ContikiMAC)_第4张图片

ContikiMAC协议中使用的主要机制:

  1. 时间划分
  2. 快速睡眠
  3. 锁时优化

ContikiMAC只使用了异步的机制,没有标识信息也没有附加的消息头,它的数据也都是普通的链路层消息。

时间划分:
ContikiMAC协议具有一个基于传输过程中精确时间度量的、能量高效的唤醒技术。的唤醒技术利用一种价格低廉的CCA(空闲信道检测)机制来实现这种机制使用无线电收发器的RSSI(接收信号强度指示值)来判断指定信道的状态。
ContikiMAC中的时间划分必须满足一系列的限制。如图4:
基于异步竞争的无线传感器网络MAC层协议介绍(X-MAC ContikiMAC)_第5张图片

                 图4 ContikiMAC中的时间划分

要求:ta+td< ti< tc< tc+2tr< ts
ti:每次数据传输之间的时间间隔
tr:进行一次稳定的RSSI指示所需要的时间
tc:两次CCA检测之间的时间间隔
ta:手段数据包和发送ACK消息的时间间隔
td:从接收节点那里成功检测到一个ACK消息所需的时间
在IEEE 802.15.4标准下,不等式中一些变量被固化,如IEEE802.15.4标准定义的ta值为12个时间点我,在802.15.4中,一个时间单位是4/250ms.然后td=40/250,tr是由cc2420无线收发器的特性决定的,tr=0.192ms,不等式变为:
0.352< ti< tc< tc+0.384 < ts
给出了ts的下限,0.736ms(0.352+0.384),这也为我们的能传输的最小报文长度设了限制。对其它参数,contiki系统中使用时间参数配置为:
ti=0.4ms tc=0.5ms ts=0.884ms

快速睡眠:
contikiMAC中的并不实质性地检测数据传输,而只是检测无线信道的信号强度是否在特定的门限值之上。
如果一个邻居节点在向当前的接收节点发送数据,接收节点应该保持唤醒状态来保证接收到完整的数据包,然后需要发送一个回执。检测到该数据包的其它节点则可以快速切换回睡眠状态。然而,潜在的接收节点并不能立即回去睡眠,因为它们必须保证接收到完整的数据包。在检测之后,最安全的保持唤醒状态的时间是tl+ti+tl这里表示最长数据包所需的传输时间。
当由于检测到错误的无线噪声而唤醒时,的快速睡眠机制使潜在的接收节点可以早些进入休眠状态。这种优化机制利用了中的特定传输模式。

  1. 若CCA检测到活动,但信道活动状态的时间比tl还要长,说明CCA检测到的是噪声,节点返回睡眠
  2. 如果信道活动状态过程之后有一段比ti更长的静止,则返回睡眠。
  3. 若活动状态后有一段正确的静止长度,但接收节点检测不到任何数据报文头,返回睡眠。
    快速睡眠如图5所示:
    基于异步竞争的无线传感器网络MAC层协议介绍(X-MAC ContikiMAC)_第6张图片

                      图5 快速睡眠
    

    锁时优化(phase-lock):
    该机制类似于Wise-MAC,假设传感器网络中的每个接收节点都有一个周期的、稳定的唤醒时间间隔,则发送节点可利用接收节点的唤醒时间来优化传输过程,这就是锁时优化机制。
    当发送节点检测到从接收节点返回的回执消息时,它会记录下检测到的时间,并以此判断出接收节点的唤醒时间。由于接收节点必须保持唤醒状态来保证完整地接收报文,则发送节点可假设收到消息意味着发送节点在接收节点唤醒状态的时间窗内成功向其发送了一个数据包,由此发送节点便可以知道其唤醒时间。在发送节点了解其唤醒时间之后,发送节点便可以在接收节点应该是唤醒状态的时候向其传输数据包。
    基于异步竞争的无线传感器网络MAC层协议介绍(X-MAC ContikiMAC)_第7张图片

                     图6 锁时优化
    

    关于contikimac的论文请阅读:

Dunkels A. The ContikiMAC Radio Duty Cycling Protocol[J]. Swedish Institute of Computer Science, 2012.

你可能感兴趣的:(基于异步竞争的无线传感器网络MAC层协议介绍(X-MAC ContikiMAC))