一种低延时的无线传感器网络MAC 协议*

2015-03-27 07:54祝家钰龙昭华马永建
传感器与微系统 2015年6期
关键词:前导能量消耗时延

祝家钰,龙昭华,马永建

(重庆邮电大学 计算机网络与通信技术市级重点实验室,重庆400065)

0 引 言

媒体访问控制(medium access control,MAC)层协议决定无线传感器网络(wireless sensor networks,WSNs)信道的使用方式并分配有限的无线信道资源。可拓展性和能量利用率是MAC 协议主要考虑的因素[1],而传输延迟和公平原则是其次考虑的性能指标[2]。在现有无线传感器网络MAC 协议中,X-MAC 是一种较典型的基于竞争机制的协议,其算法减少了不必要的控制开销和能量浪费,但它在网络负载比较大或者多跳的应用场景下,端到端的延迟较大。为了降低X-MAC 协议的传输延时,改进设计了一种扩展的X-MAC 协议Ex-MAC(extensible X-MAC),它在X-MAC 协议中增加了NDC(neighbor’s duty cycle)和虚拟通道(virtual channel,VC)控制算法,使节点之间不需要交换同步控制帧,却可以近似于同步,从而减小数据传输延迟。

1 X-MAC 协议分析

在X-MAC 协议中[3],长前导码被划分成连续的短前导码,每个短前导码包含目标节点的ID 号。当一个接收节点周期性醒来并且检测到短前导码的时候,若发现前导码并不是发送给自己的,这个节点将立即进入睡眠状态,仍然继续按照自己的工作周期进行调度。如果自己是目标节点,它将一直保持监听状态来等待发送节点传输实际的数据。在X-MAC 协议中,非目标节点将很快进入睡眠状态,避免了长时间的串听,能量消耗受到网络密度的影响显著减小了[4]。当发送节点的邻居节点数目增加的时候,网络整体的能量消耗并没有明显增加。X-MAC 协议还在连续的短前导码之间插入一个小的时间片,以便发送节点用来监听信道。当然,接收前导码的节点就尽可能地利用这个小时间片向发送节点发送和早确认(early acknowledgment,EACK)帧[5]。当发送节点从接收节点那儿收到EACK 帧的时候,它立即停止发送前导码,紧接着发送数据包。接收节点通过“主动”的方式减小了发送短前导码的次数,减少了一跳之间的数据延迟和不必要的能量消耗[6]。发送节点发送完数据,很快地进入睡眠状态。另外,X-MAC 采用了周期信道采样和低功耗侦听(low power listening,LPL)机制,不需要交换同步控制帧[7]。

在星型网络中,X-MAC 协议大大减少了数据的延迟和提高了能量的利用率,但是在网络的节点和跳数比较多的应用场景,它的效果并不理想,端到端会产生很长的延迟时间。因为每个相邻节点的唤醒时间与产生前导码的时间肯定不能够完全匹配。单独一跳的时延可能可以满足要求,如果跳数多了,且每一跳都必须等待下一个节点唤醒之后才可以转发数据,那么传输时延就会累积很多。另外,许多节点同时发送前导码,导致前导码冲突,节点必须重新传输短前导码也造成时延。

2 Ex-MAC 协议的设计

在能量消耗不会增加的情况下,为了减少X-MAC 协议端到端的延迟,本文提出了扩展X-MAC 协议Ex-MAC,该协议让虚通道的所有节点之间获得近似于同步的工作周期,而且仍然使用X-MAC 的短前导码协议算法,但增加了NDC 和VC 控制算法,通过估算特定路由的上一跳节点发送前导码的时间,让传输路径上的节点获得近似同步的工作周期[8]。

2.1 基于单跳节点的NDC 算法

无线传感器网络的每个节点将会一直管理自己邻居节点的信息[8]。基于此设计了NDC 算法,该算法中每个节点的路由信息表里面有所有其它邻居节点的唤醒时间和工作周期的信息,这些信息将会被周期性传输的数据及时更新。通过NDC 算法,发送节点不需要发送多次短前导码之后才可以收到EACK 帧了。相邻节点的工作周期近似于同步,并且不需要任何周期性控制帧。NDC 控制算法有以下步骤:

1)为了知道邻居节点部分信息,发送节点在第一次传输前导码的时候必须包括以下信息:重新传输间隔时间(retransmission interval time,RIT)、重新传输的次数(retransmission count,RC)、持续的工作周期(duty cycle duration,DD)。

2)当接收节点唤醒的时候,收到任何一个前导码之后,都能通过RIT 和RC 计算发送节点的第一个前导码的发送时间,还可以通过以上的一些字段和DD 计算发送节点的唤醒时间。

3)最后,接收节点将计算出来的唤醒时间和DD 保存在节点表里面。

NDC 算法已经大大减少了前导码重新传输的次数,也同时减少数据传输的延迟。

2.2 基于多跳网络的VC 算法

VC 算法中的虚通道是基于逻辑层面上的,它将会在第一次数据交换之后建立起来,可以保证多跳环境下的实时性传输[9]。具体地说,当一个事件发生,VC 将会被建立起来,当传输结束后,VC 被撤销。

图1 描述了VC 的形成过程,在开始阶段,VC 并没有形成。当一个突发性事情发生时,节点A 发现异常情况,将现场的信息采集起来,然后将数据转发到最终目标节点E。由于节点A 与节点E 不在同一个通信范围内,所以,节点A首先必须将数据发送中间节点B,这个过程并不是为了将数据通过多跳节点传输到最终节点E,而是为了建立VC。当节点B 收到A 的数据包之后,立即给节点A 发送一个EACK 帧(与前导码采样算法一样),EACK 帧里面有TA(tunnel acknowledge)字段,当节点A 收到EACK 帧,并且解析这个帧里面有TA 这个字段,节点A 将不再改变拓扑结构,从而与节点B 形成一个VC。在到达最终目标节点之前,所有的中间节点将不断地交换数据包和EACK 帧。最后,VC 通过一连串节点建立起来。在建立过程中,只有数据和EACK 帧,并不需要其它多余的数据包。

图1 VC 的建立过程Fig 1 Creation process of VC

VC 建立的主要目的是与NDC 算法相结合,在多跳网络中减少数据传输的时延。

2.3 NDC 算法在VC 环境下的描述

当一个突发性的事情发生的时候,现场的节点需要采集数据,并将它发送到目的节点,可以完全不用考虑整体的网络拓扑结构[10],转发的拓扑结构临时地被认为线性结构,数据帧通过这种线性拓扑进行转发。其中,所有转发节点都是VC 的成员。该算法将前导码直接改成了数据帧,用来与唤醒接收节点。算法分为两个步骤:

1)基于NDC 算法的VC 建立

若现场有事故发生了,如图2 非阴影部分,现场节点A将采集到的数据连续发送给目的节点D,假设节点A,B,C,D 在同一个线性结构上,A 节点与D 节点不在同一个通信范围内,在初始化通道阶段,所有节点不知道其它邻居节点的唤醒时间,按照自己的工作周期在监听和睡眠之间交替。首先,节点D 每隔RIT 时间向节点C 发送数据,每重发一次,RC 自增1,直到节点D 收到节点C 的EACK 确认。其中,EACK 里面有CA 字段,此时节点C、节点D 之间VC 就建立了,紧接着节点C 根据刚才收到的数据中的RC 值,继续向下一跳节点B 发送数据帧,每重发一次,RC 值不断加1,直到其收到EACK 确认帧。中间节点不断交换着数据帧和EACK 帧,直到最终目的节点才结束,这样,节点D 到节点A 的VC 就建立起来了。

图2 VC 中的NDC 算法Fig 2 NDC algorithm in VC

2)基于NDC 算法的VC 传输

建立VC 之后,如图2,中间的转发节点将根据计算出来的Wn+1值自动唤醒,其中,Wn+1表示第n+1 次唤醒时间。当Wn+1时间到了,C 节点在第n+1 次自动唤醒,监听节点D 发送的第n+1 次数据。同理,当B 节点的Wn+1时间到了,中间节点B 将唤醒,监听C 节点发送的数据,并且更新RC 的值。最后,A 节点收到数据,同时更新,RC 的值。尽管节点A 与节点D 不在同一个通信范围内,也完全可以实现两个节点的同步。

将NDC 和VC 算法结合在一起形成了Ex-MAC 协议,实现了通道内的所有节点同步。

3 仿真与实验分析

本文采用的是NS 2[11]的2.34 版本作为实验平台。测试性能指标为算法的吞吐量、工作负载和端到端的平均时延,同时实现了X-MAC 和Ex-MAC 协议。图3 是多跳传输环境下的端到端平均传输时延。在跳数比较少的情况下,X-MAC 与Ex-MAC 传输延迟大体相等。这是因为在Ex-MAC 协议中,虽然通过VC 和NDC 算法可以减少端到端的延迟,但是建立VC 需要一定的时间,而且在跳数比较少的情况下,X-MAC 协议延迟较小。但在跳数越来越多的情况下,X-MAC 协议延迟大大增加,而Ex-MAC 协议的延迟与之前相比比较平稳,因为NDC 算法在多跳环境中减少了延迟,多跳路径的每个节点几乎同步。

图3 不同跳数的端到端延迟Fig 3 End-to-end latency under different number of hops

从图3 ~图5 中可以看出:在网络中的传输量比较小的情况下,Ex-MAC 协议与X-MAC 协议的延迟和能量消耗相似。因为此时网络负载比较小,碰撞几率都比较低,所以,重新传输的几率也不大,导致数据产生延迟和能量消耗也不是很大。当负载比较大的时候,X-MAC 协议的延迟和能量消耗陡然提高,甚至远远超过Ex-MAC 协议,这是由于X-MAC 协议中每个节点不知道邻居节点的工作周期,均以自己的工作周期工作,数据包之间容易产生碰撞,发送节点可能发送数次短前导码才能收到EACK 帧,网络会消耗更多的能量和产生数据延迟。Ex-MAC 协议中,多跳路径上的所有节点近似于同步,能量消耗不随着网络负载增加而增加。

图4 不同传输节点个数的端到端延迟Fig 4 End-to-end latency with different number of transmission nodes

图5 能量的消耗Fig 5 Energy consumption

综上所述,Ex-MAC 协议通过NDC 算法和VC 算法,让节点之间获得近似于同步的工作周期,但是它仍然使用短前导码协议算法,不需要像同步MAC 协议需要周期性交换自身的信息,减少了网络传输的延迟、提高了网络的健壮性。

4 结 论

本文在X-MAC 协议的基础上提出了Ex-MAC 协议。针对X-MAC 协议在节点密度大和多跳环境端到端的平均延迟比较大的情况,提出了NDC 和VC 算法,使得VC 的所有节点将会有与源节点保持近似同步的工作周期。仿真结果表明:Ex-MAC 保持了与X-MAC 相近的节能效率,却能明显改善X-MAC 端到端的平均延迟。。

[1] 蹇 强,龚正虎,朱培栋,等.无线传感器网络MAC 协议研究进展[J].软件学报,2008,19(2):389-403.

[2] Halkes G P,Langendoen K G.Experimental evaluation of simulation abstractions for wireless sensor networks Mac protocols[J].EURASIP Journal on Wireless Communications and Networking,2010(4):139-145.

[3] Yang O,Heinzelman W B.Modeling and throughput analysis for X-MAC with a finite queue capacity[C]∥2010 IEEE Global Telecommunications Conference,GLOBECOM 2010,IEEE,2010:1-5.

[4] Bachir A,Dohler M,Watteyne T,et al.MAC exsentials for wireless sensor networks[J].Communications Surveys&Tutorials,IEEE,2010,12(2):222-248.

[5] 李洪峻,李 迅,马宏绪.无线传感器网络MAC 协议实时性研究[J].计算机工程,2009,35(23):78-80.

[6] Yang O,Heinzelman W B.Modeling and performance analysis for duty-cycled MAC protocols with applications to S-MAC and XMAC[J].IEEE Transactions on Mobile Computing,2012,11(6):905-921.

[7] Wu Y,Li X Y,Li M,et al.Energy-efficient wake-up scheduling for data collection and aggregation[J].IEEE Transactions on Parallel and Distributed Systems,2010,21(2):275-287.

[8] Noh k,Serpedin E,Qaraqe k.A new approach for time synchronization in wireless sensor networks:Pairwise broadcast synchronization[J].IEEE Transations on Wireless Communications,2008,7(9):3318-3322.

[9] Khan B M,Ali F H.Collision free mobility adaptive(CFMA)MAC for wireless sensor networks[J].Telecommunication Systems,2013,52(4):2459-2474.

[10]Lee M,Kim Y,Cgo C.Period-controlled MAC for high performance in wireless networks[J].IEEE/ACM Transactions on Networking,2011,19(4):1237-1250.

[11]洪 利,黄庭培,邹卫霞,等.基于链路可用性预测的AODV路由协议研究[J].通信学报,2008,29(7):118-123.

[12]石为人,黄 河,鲜晓东,等.OMNET++与NS2 在无线传感器网络仿真中的比较研究[J].计算机科学,2008,35(10):53-57.

猜你喜欢
前导能量消耗时延
太极拳连续“云手”运动强度及其能量消耗探究
中年女性间歇习练太极拳的强度、能量消耗与间歇恢复探究分析
没别的可吃
基于“三思而行”的数学章前导学课设计——以《数的开方》(导学课)为例
基于GCC-nearest时延估计的室内声源定位
一种S模式ADS-B前导脉冲检测方法
第四代移动通信随机接入前导方案优化
FRFT在水声信道时延频移联合估计中的应用
简化的基于时延线性拟合的宽带测向算法
基于分段CEEMD降噪的时延估计研究