APP下载

PA-MAC:一种被动的异步低占空比无线传感器网络MAC协议*

2011-05-06唐震洲施晓秋金可仲

传感技术学报 2011年3期
关键词:前导信标空闲

唐震洲,施晓秋,金可仲

(温州大学物理与电子信息工程学院,浙江温州325035)

无线传感器网络(Wireless Sensor Networks,WSNs)是由许多传感器节点通过共享无线介质构成的一种特殊的无线自组网络。WSNs具有快速展开、抗毁性强等特点,可广泛应用于军事、工业、交通、环保等领域。由于应用前景广泛,无线传感器网络引起了人们的广泛关注。正如其他共享媒体的网络,无线传感器网络的媒体访问控制协议(Media Access Control Protocol,MAC Protocol)决定无线信道的使用方式,并在节点之间分配有限的无线通信资源。MAC协议对无线传感器网络的性能有着非常大的影响[1-2]。

WSNs中的传感器节点往往由电池供电,因而能量供应有限。能量有效性是衡量一个MAC协议性能优劣的最重要的标准之一。空闲侦听是无线传感器节点最主要的能耗源之一。为了减少空闲侦听而造成的无谓能耗,研究人员提出了很多基于占空比机制的解决方案。所谓占空比机制,就是让传感器节点在工作与睡眠两种状态之间进行周期性的切换,以减少空闲侦听,达到节能的目的。节点只能在工作状态才能与其他节点进行通信,而处于睡眠状态时,节点将关闭无线收发机,处于低能耗状态。我们将工作时间与睡眠时间之和称为周期时间。

这些基于占空比机制的协议可以分为两大类:同步的协议[3-7]与异步的协议[8-13]。为了能顺利地进行数据传输,同步的协议要求通信双方节点的睡眠和工作周期保持严格的一致,对各个节点间时钟同步的要求非常高。这些协议需要大量的控制帧来建立与维持这种节点之间精确的同步关系,占用了大量资源。特别是对于大规模的无线传感器网络,实现精确的同步是非常困难的。而异步的协议,则允许节点独立地制定自己工作与休眠的时序。这些异步协议通常采用低功耗侦听技术(Low Power Listening,LPL),即在发送数据之前,发送方需要持续的发送一段前导。当接收方从休眠状态醒来并检测到这个前导之后,就保持工作状态并开始接收数据。基于LPL的异步MAC协议具有很高的能量有效性,并避免了因为同步而产生的大量控制开销。但是由于发送前导需要长时间占用信道,当网络负载较大时,这些协议的性能就会大幅降低。

为了消除基于LPL技术的异步MAC协议的这些缺陷,Sun Yanjun等学者提出了一种新的异步MAC 协议——RI-MAC[8](Receiver-Initiated MAC)。RI-MAC以空闲侦听与接收方发送信标帧相结合的方式取代了LPL中长时间发送前导的方式,释放了大量被占用的信道时间,因此能够提供更高的网络吞吐量与更高的数据交付率,并达到更好的能量有效性。但是,在RI-MAC中,从封装了协议栈上层数据的逻辑链路控制帧(Logic Link Control Frame,LLC Frame)到达MAC层开始,直到收到接收节点信标帧,发送节点始终工作在空闲侦听状态,这无疑造成大量无谓的能耗。当网络负载增加,而节点的睡眠时间很长的情况下,由空闲侦听引入的能耗将非常严重。

本文在 RI-MAC的基础上,提出了 PA-MAC(Passive-Asynchronous MAC)。与 RI-MAC相同,PA-MAC中的数据传输是由接收方发起的。同时,PA-MAC包含了接收节点唤醒时间估计算法。利用该算法,发送节点能够在通信双方存在时钟偏差的情况下,估计接收节点下一次被唤醒的时间,使得发送节点仅仅在接收节点唤醒之前才从休眠状态醒来,从而提高了PA-MAC的能量有效性。本文在NS2[14]网络仿真平台上对 PA-MAC的性能进行了仿真评估,并与RI-MAC协议进行了性能对比。结果表明,与RI-MAC相比,PA-MAC在保持相当的吞吐量、包交付率以及端到端延迟的基础上,进一步降低了节点的占空比,并节省了大量的能量。

本文余下的章节安排如下:第1章,我们讨论各种现有的基于占空比机制的异步MAC协议;我们将在第2章对PA-MAC做详细深入的介绍;第3章,我们在NS2网络仿真平台上对PA-MAC的性能进行了仿真;第4章是对本文的总结;最后是致谢。

1 相关工作

在应用于无线传感器网络的异步MAC协议中,B-MAC和X-MAC是最具代表性的两个协议。BMAC[11](Berkeley-MAC)协议使用扩展前导和 LPL技术实现低功耗通信。发送方在发送数据帧之前先要发送一段持续时间不少于接收方睡眠周期的前导。当接收方按照自己的调度信息从休眠状态进入工作状态之后,就会对无线信道进行探测,以确定是否存在前导。由于前导的持续时间不少于接收方睡眠周期,因此能保证接收方在前导持续时间内至少能够醒来一次。接收方在探测到信道中存在前导后,将保持活动状态直到数据帧接收完毕,并重新进入休眠状态。在网络负载较轻的情况下,由于节点工作状态持续的时间仅仅是极短的探测信道中是否存在前导的时间,因此B-MAC是非常节能的。然而,B-MAC中的节点在探测到信道中的前导之后,无论其是否是发送方的目的地,都会保持工作状态直到数据传输完毕。对除接收方之外的其他节点而言,无谓的消耗了能量。

X-MAC[12]对前导进行了改造。X-MAC的前导由若干较小的频闪前导(Strobed Preamble)组成,并在其中加入了目的节点的地址。目的节点探测到前导,并确认了其中的目的地址之后,就会在两个频闪前导之间反馈一个确认信息。发送方收到确认信息之后停止发送前导,而开始发送数据帧。而非目的节点则在接收一个频闪前导之后就会忽略随后的信号而转入休眠状态。X-MAC通过在频闪前导中加入目的地址,以及接收方提早确认机制,避免了发送节点过度前导和接收节点过度侦听的现象。XMAC还设计了一种根据网络流量变化动态调整节点的占空比的自适应算法,减少了单跳延时,即:每个节点通过统计一定时间内接收到的报文数量,动态调整占空比。

Wise-MAC[13](Wireless Sensor MAC)也是一种采用前导唤醒技术的协议。Wise-MAC在非坚持CSMA的基础上,采用前导码采样技术控制节点处于空闲侦听状态时的能量消耗。WiseMAC协议的ACK帧捎带了接收方下次唤醒时间,用于通知其他邻居节点到下一次采样的剩余时间。通过这种方式,每个节点不断更新相邻节点的采样时间偏移表。利用这些信息,每个节点可以选择恰当的时间,使用最小长度的唤醒前导码向目的节点发送数据。Wise-MAC协议可以很好地适应网络流量变化。但是,Wise-MAC协议的采样同步机制会带来数据包冲突的问题。

B-MAC和X-MAC协议能够在网络负载较低的情况下,能够达到较高的能量有效性。但是在前导的传输过程中需要长时间的占用信道,因此,当网络负载增加时,效率就会大幅下降。事实上,采用LPL技术时,完成一次数据帧的传输所需要占用的信道时间远远大于实际的数据传输时间,这将造成一些负面影响。首先,某个发送节点长时间占用信道,会迫使其邻居节点推迟数据的发送,从而造成较大的延迟;其次,某个发送节点长时间占用信道也会增加其邻居节点冲突的概率,网络负载较大时这种现象将更加严重。

为了解决这个问题,Sun Yanjun等学者提出了由接收方发起数据传输的RI-MAC[8]协议(Receiver Initiated MAC)。RI-MAC与基于LPL技术的异步MAC之间最显著的不同之处在于发送方与接收方如何统一数据传输时间。在RI-MAC中,数据传输是由接收方发起的。RI-MAC的工作过程如图1所示。每个节点从睡眠状态醒来之后就会广播一个信标帧来宣告工作状态的开始。当LLC帧到达发送方的MAC层时,发送节点就会被唤醒,并以空闲侦听的方式等待接收方信标帧的到来。在接收到接收方发送的信标帧之后,发送方就开始数据传输。RI-MAC还提出了一种简单的自适应退避算法,以尽量减少多个发送节点在收到信标帧之后同时向同一个目的节点发送数据帧而发生的冲突。RI-MAC的信标帧包含了BW字段,用于指定发送方的最大退避窗口。当接收节点醒来后,就会发送一个BW字段为0的信标帧,即发送方在收到这个信标帧之后应立即发送数据帧。此时,如果有多个节点都在等待发送数据帧,则必定会产生冲突。于是,在检测到冲突之后,接收方就会通过二进制指数退避算法,增加BW的值,使得发送方在下一次重传时进行必要的随机退避。如图2所示。与X-MAC相比,RI-MAC能够提供更高的网络吞吐量与更高的数据交付率,并达到更好的能量有效性。但是,在RI-MAC中,发送节点以空闲侦听的方式等待信标帧的到来,这将造成大量无谓的能耗。

图1 RI-MAC的工作示意图

图2 RI-MAC中的自适应退避算法

2 PA-MAC协议

PA-MAC协议是在RI-MAC的基础上提出的。PA-MAC同样采用了RI-MAC中接收方发起数据传输的方式,并借鉴了RI-MAC的动态自适应退避算法。与RI-MAC不同的是,PA-MAC通过在信标帧中携带节点自身下一唤醒时刻信息,使得发送节点能够仅在接收节点唤醒之前才从休眠状态醒来,进一步降低了能耗。

2.1 PA-MAC的基本原理

PA-MAC中,数据的接收方是通过信标帧来控制数据帧的传输的。PA-MAC信标帧的格式如图3所示。其中,Src字段为发送该信标帧的节点地址;Dst字段为信标帧的目的节点地址;BW字段为信标帧规定的退避窗口;而Nxt字段为从信标帧源节点发送前导码第一个比特的时刻开始到该节点下一次醒来时的时间间隔TNxt。

图3 PA-MAC帧结构

当一个节点R根据自己的状态调度周期醒来以后,首先需要确定下一次醒来的时刻tw:

式中,Tduty是常数,是一个原始周期的持续时间;Tnow表示当前时刻。式中取随机数,是为了避免出现信标帧重复冲突的情况。因为如果周期长度都相等的话,两个同时醒来的相邻节点所发送的信标帧将必然性的发送冲突,而且每个周期都会发生冲突。

然后,如果信道空闲,R就会广播一个Dst字段为-1的信标帧,表示是广播帧。值得注意的是,为了尽量减少误差,信标帧中Nxt字段的值应该在R发送信标帧前导的第一个比特之前设置。而若信道繁忙,则R在退避一个随机的时间之后再试图广播信标帧。此时,信标帧中的Nxt字段也需要在重发时相应的更新。发送完信标帧之后,R会持续监听信道一段时间Tbt,如果有数据帧过来,则接收数据帧,否则,转入睡眠状态。Tbt可以表示为:

其中,TMax_tr为R最大传输范围之内的最大传输延迟;TSIFS为短帧间间隔的持续时间。

任何节点收到节点R的信标帧之后,就会根据信标帧中的Nxt字段来估算R下一次被唤醒的时间t'w,并在自己的邻居列表里搜索R的匹配项。有关t'w的估算,将在下一小节详细描述。如果相应的记录已经存在,则需要更新相应的t'w;否则,就在邻居列表中相应的增加R的记录。

现假设节点S要给邻居节点R发送数据。S首先在自己的邻居列表中查找R的匹配项。如果存在R的匹配项,则从对应的邻居节点记录中获得R下一次唤醒的时间t'w。若t'w大于当前时间,即R下一次被唤醒的时间还没到,则S保持睡眠状态,并在t'w时刻醒来进入空闲侦听状态,等待R的信标帧;而当当前时间超过了t'w,则表明R对应的记录已经过时,则S必须马上醒来并进入空闲侦听状态以等待R的下一个信标帧。如果S在邻居列表中找不到R的匹配项,说明S目前没有任何有关R的信息,因此,S也必须马上醒来并进入空闲侦听状态以等待R的信标帧。

R在收到S的数据帧之后,会响应一个Dst字段为S的信标帧。该信标帧具有两个作用:首先是对刚刚接收到的数据帧的确认,其次是对下一次数据传输的请求。信标帧的Dst字段仅对于S是有意义的,是对刚才S发送的数据帧的确认;而R的其余邻居节点都会忽略Dst字段,而将该确认信标帧视为普通的数据请求信标帧。如图4所示。

图4 捎带确认的信标帧

2.2 唤醒时间的估算

传感器网络中每个节点的时间信息都是由节点自身的晶体振荡器产生的本地时钟维护的。由于不同的晶体振荡器之间或多或少会存在着频率偏差,因此,传感器网络中各个节点的时钟之间都存在着漂移。接收到信标帧的节点必须根据信标帧的Nxt字段,来估算在自己的时钟频率下,信标帧源节点下一次被唤醒的时间t'w。

假设节点S收到了来自节点R的信标帧。令ttr为R发送前导码第一个比特时的时间戳。为了尽量缩短关键路径的长度,ttr已经去除了信标帧在节点R的处理延迟和MAC层的访问延迟,如图5所示。而tr是S接收完整个信标帧后的时间戳。在忽略信标帧传播延迟Tt的情况下(假设两个节点相距200 m,由此而产生的传播延迟仅为0.67 μs。若每个节点的最大频率偏差θ为0.03‰,则两个节点每秒钟产生的最大时钟漂移为60 μs,远大于传播延迟。所以,忽略传播延迟是可行的。),节点S与节点R之间的时间偏差TΔ为:

图5 唤醒时间的估算

其中,n为整个信标帧的长度;Tb为无线接口发送一个比特所需的时间。由此,节点S就可以估算出节点R下一次被唤醒的时间t'w:

式中,我们已经考虑了由于频偏而引入的R相对于S的最大时间提前量2θTNxt。之所以考虑提前量,而不考虑滞后,是为了确保S能够在R被唤醒之前已经进入空闲侦听状态。

3 仿真结果

为了验证PA-MAC的性能,我们通过网络仿真对PA-MAC以及RI-MAC进行了比较。仿真平台采用了2.29版的NS2,仿真参数见表1。无线信道传播模型则结合了自由空间传播模型与双线地面反射模型。仿真的网络场景如图6所示。这是一个包含了25个节点的二维网络,其中的节点表示为Ni(i=0,1,2,…,24)。节点被规则地布放成一个 5×5的方阵,同行或同列相邻的节点之间间距设置为150 m。所有节点的调度信息都是随机产生的,并在网络运行期间动态的进行维护。网络从第10 s开始产生3个CBR业务:从N0到N24,从N2到N15,以及从N4到N20。网络持续运行1 000 s。由于仿真的目的在于验证PA-MAC的性能,因此,为了减少其他因素的干扰,我们采用了NOAH[15]作为路由协议,并人为规定了相应的路由。

图6 5×5的二维网络;箭头线表示数据报的传输路径

表1 仿真参数

第一组实验中,每个节点的原始周期持续时间Tduty都为10 s,而CBR业务的包到达间隔从1 s开始以1 s的幅度递增,直到10 s为止。对于每种包到达间隔,分别使用10个不同的种子运行仿真,取其平均值作为观察数据。图7则给出了在不同包到达间隔下,整个网络的平均能耗、CBR数据报平均端到端延迟、成功接收的CBR数据包数量以及网络平均占空比。从图7(a)中可以看到,当包到达间隔越大,即网络越空闲,节点的能耗与网络的平均能耗越小。这是因为要发送的数据越少,则处于休眠状态的时间也越长,即节点的占空比越低,如图7(d)所示。实验结果表明,采用PA-MAC,整个网络的平均能耗能节省10%以上,占空比降低18%左右,而CBR数据报的端到端延迟与成功接收的CBR数据包数量则基本保持不变。另外,实验结果也反映出了PA-MAC的低占空比特性。对于参与数据传输次数少,或者几乎不参与数据传输的节点,由于其工作状态持续的时间仅仅是极短的发送一个信标帧,等待Tbt并转入睡眠的时间,因此它们的占空比仅为大约0.1%甚至更小。图8所示的是当包到达间隔为10 s,节点周期持续时间为10 s时,25个节点的占空比。

图7 不同包到达间隔下,PA-MAC与RI-MAC的性能比较

图8 包到达间隔为10 s,节点周期持续时间为10 s时,25个节点的占空比

第二组实验,我们将CBR业务的包到达间隔设置为常数,即10 s。而每个节点的原始周期持续时间Tduty从1 s开始以1 s的幅度递增,直到10 s为止。其余设置与第一组实验相同。图9给出了在不同的原始周期长度下,整个网络的平均能耗、CBR数据报平均端到端延迟、成功接收的CBR数据包数量以及网络平均占空比。从图9可以看到,节点的周期长度越大,则节点被唤醒的频率越低,因此占空比也越小,能耗越小;但代价是数据报的端到端延迟越大。实验结果表明,采用PA-MAC,当周期长度大于2 s时,整个网络的平均能耗也能节省10%以上,占空比降低18%左右,而CBR数据报的端到端延迟与成功接收的CBR数据包数量则基本保持不变。

图9 不同周期长度下,PA-MAC与RI-MAC的性能比较

4 结论

本文在 RI-MAC的基础上,提出了 PA-MAC。PA-MAC通过在信标帧中携带节点下一唤醒时刻信息,使得数据帧的发送节点能够在接收节点被唤醒时及时地从休眠状态醒来,等待信标帧的到来。仿真结果表明,在保持网络性能的前提下,PA-MAC能够降低节点工作的占空比,进而减少节点的能耗。在下一步工作中,我们将在 TinyOS上实现 PAMAC,并用于实际网络的测试。PA-MAC的广播性能也使我们下一阶段工作的关注重点。

致谢

本文得到了国家自然科学基金面上项目(项目号:60971008)的资助。同时,非常感谢Sun Yanjun博士及其科研团队为我们提供了非常有价值的论文!

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

[2]Demirkol I,Ersoy C,Alagoz F.MAC Protocols for Wireless Sensor Networks:a Survey[J].IEEE Communications Magazine,2006,44(4):115-121.

[3]Wei Ye,John Heidemann,Deborah Estrin.An Energy-Efficient MAC Protocol for Wireless Sensor Networks[C]//Proceedings of the 21th Annual IEEE Conference on Computer Communications(Infocom 2002),New York,USA,June,2002,23(27):1567 -1576.

[4]Wei Ye,John Heidemann,Deborah Estrin.Medium Access Control With Coordinated Adaptive Sleeping for Wireless Sensor Networks[J],IEEE/Acm Transactions on Networking,2004,12,(3):493-506.

[5]van Dam Tijs,Koen Langendoen.An Adaptive Energy-Efficient MAC Protocol for Wireless Sensor Networks[C]//Proceedings of Conference On Embedded Networked Sensor Systems(Sensys 2003),Los Angeles,California,USA,2003,5(7):171 -180.

[6]Du Shu,Amit Kumar Saha,David B Johnson.RMAC:A Routing-Enhanced Duty-Cycle MAC Protocol for Wireless Sensor Networks[C]//Proceedings of the 26th Annual IEEE Conference on Computer Communications(INFOCOM 2007),Anchorage,Alaska,USA,May,2007,6(12):1478 -1486.

[7]Sun Yanjun,Du Shu,Omer Gurewitz,et al.DW-MAC:A Low Latency,Energy Efficient Demand-Wakeup MAC Protocol for Wireless Sensor Networks[C]//Proceedings of the Ninth ACM International Symposium on Mobile Ad Hoc Networking and Computing(MobiHoc 2008),Hong Kong,SAR,China,May,2008,27(30):53 -62.

[8]Sun Yanjun,Omer Gurewitz,David B Johnson.RI-MAC:A Receiver Initiated Asynchronous Duty Cycle MAC Protocol for Dynamic Traffic Loads in Wireless Sensor Networks[C]//Proceedings of the 6th International Conference on Embedded Networked Sensor Systems(SenSys 2008),Raleigh,NC,USA,2008,5 -7.

[9]胡四泉,王俊峰.无线传感器网络的智能低功耗侦听协议[J].通信学报,2009,30(9):95 -101.

[10]Pak Wooguil,Cho Kyong-Tak,Lee Jeongjoon,et al.W-MAC:Supporting Ultra Low Duty Cycle in Wireless Sensor Networks[C]//Proceeding of Global Telecommunications Conference(GLOBECOM 2008),New Orleans,LA,USA,2008,30(4):1 -5.

[11]Joseph Polastre,Jason Hill,and David Culler.Versatile Low Power Media Access for Wireless Sensor Networks[C]//Proceedings of the Second International Conference on Embedded Networked Sensor Systems(SenSys 2004),Baltimore,Maryland,USA,2004,3(5):95-107.

[12]Michael Buettner,Gary V Yee,Eric Anderson,et al.X-MAC:A Short Preamble MAC Protocol for Duty-Cycled Wireless Sensor Networks[C]//Proceedings of the 4th International Conference on Embedded Networked Sensor Systems(SenSys 2006),Boulder,Colorado,USA,2006,31(3):307 -320.

[13]Amre El-Hoiydi,Jean-Dominique Decotignie.WiseMAC:An Ultra Low Power MAC Protocol for Multi-hop Wireless Sensor Networks[J].Lecture Notes in Computer Science,2004,3121:18 -31.

[14]The ns Manual[EB/OL],http://www.isi.edu/nsnam/ns/doc/index.html,2010,8.

[15]NO Ad-Hoc Routing Agent(NOAH)[EB/OL],http://icapeople.epfl.ch/widmer/uwb/ns-2/noah/,2010,8.

猜你喜欢

前导信标空闲
基于“三思而行”的数学章前导学课设计——以《数的开方》(导学课)为例
“鸟”字谜
西湾村采风
一种S模式ADS-B前导脉冲检测方法
RFID电子信标在车-地联动控制系统中的应用
彪悍的“宠”生,不需要解释
第四代移动通信随机接入前导方案优化
WLAN和LTE交通规则
基于信标的多Agent系统的移动位置研究
基于多波段卫星信标信号接收的射频前端设计仿真