邹昀辛,沈 崧
(中国航天科工集团第二研究院 七〇六所,北京100854)
传感器网络具有很强的感知能力和高可扩展性,一般采用无线通信方式,从而形成了节点间可自组织拓扑的无线传感器网络[1]。数据链路层MAC协议是保证无线传感器网络高效通信的关键网络协议之一,为了提高传输效率,通常采用 “侦听/睡眠”交替的无线信道使用策略[2]。经典的 协 议 如 S-MAC (sensor-MAC)[3]、T-MAC (timeout-MAC)[3]等。
无线传感器网络采用无线多跳的Mesh网络结构,在不牺牲信道容量的基础上扩展现有无线网络的覆盖方位,提供非视距距离[4]。虽然S-MAC和T-MAC协议也具有多跳感知能力,但是由于采用了 “侦听/睡眠”的策略,存在早睡问题,因而跳跃次数受到很大的限制。
本文作者提出了一种根据无线传感网络拓扑自动调整一个周期内侦听次数的AM-MAC协议。该协议是建立在S-MAC和T-MAC协议的基础之上,它采用了同步入网、限制MAC包长和自适应侦听次数的方法,确定了一种可调的固定占空比模式,具有较强的多跳能力,在高流量多跳网络中的能耗和延迟方面的效果比较明显。
S-MAC协议的基本思想是通过SYNC[5](同步信标,其中包含时间调度信息,用以同步整个网络)构建可以同时休眠和唤醒的虚拟节点簇,如图1所示。图1中的同步节点A、B、C都是网络随机选取的,每个同步节点都会每隔一段时间向周边节点广播SYNC。收到SYNC的节点就成了跟随节点,如节点D,它也会定期向外广播收到的SYNC。而收到多个SYNC信息的节点就成了协调节点,如节点E,它不得不遵循多个时间调度表,用以维持多节点间数据跳跃。S-MAC将时间划分为多帧,每个帧由两部分组成:侦听时间 (listen time)和睡眠时间 (sleep time),如图2所示。如果我们将侦听时间与帧时间的比值称为占空比η,设侦听时间与睡眠时间为Tl,Ts,则
图1 S-MAC协议的虚拟节点簇
S-MAC协议具有多跳感知能力,但是它的局限性也很大。如图2所示,假设AB、BC、CD、DE是三对邻居节点,可以相互通信,数据传输方向为A→B→C→D→E,我们从图中可以看出,无论帧的周期有多长,由于受到侦听时间 (listen time)的限制,在一个帧内,数据只能跳跃两个节点到达C(D、E提前睡眠)。当然,我们可以延长每个帧周期内的侦听时间,但是会增加节点的能量消耗。
图2 S-MAC协议的数据传递过程
通过上述分析,S-MAC协议具有以下几个特点:
(1)多个虚拟节点簇,需要维护多个时间调度表,增加了不必要的能耗。
(2)固定占空比,不适用流量变化的网络。
(3)存在早睡问题,跳跃次数受限于侦听时间。
T-MAC是在S-MAC的基础上提出了一种自适应调整激活期长度的算法,它根据一种自适应占空比的原理[6],通过动态地调整侦听与睡眠时间的比值,从而实现节省能耗的目的,使之更适用于流量变化的网络。
T-MAC协议规定:在每个帧周期开始或休眠状态结束时,有数据节点 (如图3中节点A所示)按突发方式发送数据,而空闲节点 (如图3中节点B、C、D、E所示)则激活一个长度为TA(time active)的侦听间隔。协议要求TA必须要足够大,以保证节点能够监测到串扰的CTS,TMAC协议规定TA取值约束为
式中:C、R和T的定义可参考文献 [2]。TA决定每个周期最小的空闲侦听时间,它的取值大小对于T-MAC协议至关重要。该协议在空闲侦听下的占空比为
在T-MAC协议中,数据传递仍采用RTS/CTS/DATA/ACK的通信过程,它也具有多跳感知能力[6-8],并且通过 FRTS (future request-to-send)防止节点早睡来增加跳数,如图2所示。假设AB、BC、CD、DE是四对邻居节点,可以相互通信,数据传输方向为A→B→C→D→E,因为接收到CTS分组的节点都会发送一个FRTS分组包,所以可以让数据在一帧内增加一跳,但是这种处理方式带来的功耗也很大。由图中可以看出,节点A、B相互传输时,与它们相邻的节点C由于侦听到信道的活动而处于激活状态,并且迫使C的邻节点D也处于激活状态。简而言之,当两节点相互通信时,会迫使邻居节点和邻居节点的邻居节点都处于激活状态,这样就增加了许多不必要的能耗,并且在跳数上相对于S-MAC也只是多了一跳而已。
图3 T-MAC协议的数据传递过程
通过上述分析,T-MAC协议具有以下几个特点:
(1)多个虚拟节点簇,需要维护多个时间调度表,增加了不必要的能耗。
(2)自适应占空比,相对于S-MAC减少了空闲侦听能耗。
(3)加强了多跳感知,但增加了邻居节点的能耗。
(4)存在早睡问题,数据一帧内最多跳跃3次。
AM-MAC协议也是一个基于竞争的MAC协议,它是在S-MAC和T-MAC协议的基础上改进的。在保证低能耗的基础上,AM-MAC加强了网络的多跳能力,尽可能地降低了网络的数据时延。它具体有3个特点:同步入网机制、跨层数据限长、自适应侦听次数。
S-MAC和T-MAC都采用虚拟节点簇的同步机制,网络中的许多节点不得不维护多个时间调度表,这样不仅增加了协议的复杂性,还增加了传输失败的概率和碰撞的能耗。究其原因,在于网络随机选用了多个同步节点。
基于竞争的MAC协议必须在网络同步的前提下才能进行数据传输。与S-MAC和T-MAC协议不同的是,AM-MAC协议采用一个统一的时间调度表,这得依赖于网络中的汇聚节点 (sink node)[9]。汇聚节点不同于一般的传感器节点,它的能量和发射功率比较大,用于网络中的数据收集,并将数据发送至Internet或管理节点。通常,每个Mesh子网有且仅对应一个汇聚节点,如图4所示。
图4 AM-MAC的同步入网效果
在无线传感器网络建立同步机制之前,网络中所有的节点都处于持续侦听状态,这时汇聚节点 (如图4中的A节点所示)会建立自己的时间调度表,并在网络中随机选择一个节点,作为同步节点 (如图4中的节点B所示),然后B开始遵循A的时间调度表,并每隔一段随机的时延对外广播SYNC信息。网络中收到SYNC信息的节点为跟随节点 (如图4中的节点C、D所示),然后它们开始遵循SYNC中的时间调度,并也每隔一段随机的时延对外广播SYNC信息。这样,SYNC信息就会沿着节点树一步步向外扩散,直至整个网络。
网络中只有收到SYNC信息的节点才算是真正入网,才能与周边节点进行数据交流。采用同步入网机制可以极大地减少MAC层数据冲突的可能,方便了调度,加快了数据响应。
无线传感器网络除了采用互联网的五层协议外,还利用了一个管理平台进行跨层设计,各层之间能够通过共享一些信息来共同调节网络的性能。例如,MAC层协议可以利用应用层确定的节点数来调节侦听时间,从而提高网络性能[10]。
无线传感器网络的一个很大的特点就是传输的数据都是传感值,比如温度、电压、湿度等。这些数据都有一个共同的特性:固定的数据格式和长度。因此,只要在网络建立同步之前,由应用层向下传递数据的长度信息,这样MAC层就能预先估计每次信道交流的最长时间。这样就为MAC层周期性的睡眠/侦听调度提供了便利,减少了出错的可能。在数据的最大长度确定的情况下,我们可以用下述公式计算每次侦听周期的长度
式中:Tl——一次侦听周期的长度,Tc——竞争的时间长度,ftr()——传输数据的时间与数据长度的关系函数,Tdelay指数据在信道中传播的时延。
在数据长度预知和全网同步的情况下,我们就可以大胆地将信道按时间分片,就是接下来要详述的自适应侦听次数。
一个帧周期内的侦听周期次数的动态调节是该协议的关键,根据无线Mesh网络的节点流量分布不均的特点,AM-MAC协议能够自适应调节每个节点在每个帧内的侦听次数。调节方式为:
如果节点在最后一个侦听周期内接收到了信道中传递给它的数据,那么该节点的侦听次数加一次。
图5所示的网络是一个4个节点的线形网络,图中显示了该网络在AM-MAC协议下的节点侦听次数的调整过程。在无线传感网络建立的初始阶段,每个节点在每个帧周期内的侦听次数都为2。图5中的A、B和C节点属于普通的传感器节点,它们都有一些数据需要定期传送给汇聚节点D。以A节点的数据传递为例,A首先在第一个侦听周期内将数据传递给B,B节点收到数据后在第2个侦听周期内将A的数据转发给C,由于C在最后一个侦听周期内收到了信道中的数据,那么它的侦听次数就增加了一次(侦听次数会在下个帧周期内调整为3)。经过多次的数据传输,该网络的节点侦听次数就会稳定,A、B为2次,C为3次,D为4次。
在简单的线形网络中,该协议相对于T-MAC可能会有更多的能量消耗,因为在网络流量较少的情况下,靠近汇聚节点的节点会因为较多的侦听次数而导致不必要的能量消耗。但是在节点密度较高的Mesh网络中,该协议的性能确是很可观的。Mesh网络的边缘节点,会因为流量较小而具有较少的侦听次数,减少不必要的能量消耗。Mesh网络的靠中心的节点,会因为流量较大而具有较多的侦听次数,这样就能够处理并转发更多的数据包,增大网络的吞吐量。
图5 在AM-MAC协议下的网络自适应过程
至于数据时延,由图5可以看出,只要网络趋于稳定,无论是Mesh网络还是线形网络中的节点,无论是边缘节点还是中心节点,它们的数据基本上都能够在一帧内传递到汇聚节点,网络的总时延似乎趋于一个稳定值,在仿真结果中可以证明此结论。
图6显示了AM-MAC协议的数据交换过程。TL指每个侦听周期的信道监听时间,为了使每次侦听都能监测到信道中的RTS信号,对TL的取值要求如下
Active指该节点处于数据收发的活动状态。AM-MAC协议将一个帧周期分为若干个侦听周期和一个睡眠周期,在每个侦听周期内采用固定占空比方式,但是每帧内的Nlisten侦听周期次数却是可调节的,这就使得每个帧内的活动时间与睡眠时间的比值动态变化。由图可知,数据在一个帧周期的跳跃次数是动态变化的,它随着侦听周期次数的变化而变化。该协议的占空比计算公式为(TF指一帧的时间长度)
图6显示的是网络稳定状态下数据的交流过程,为了减少数据冲突和串扰,该协议仍采用RTS/CTS/DATA/ACK的通信过程,只是交流的数据中不需要附带任何调度信息。AM-MAC协议要求每个侦听周期内最多只能进行一次数据交流。由于应用层对数据长度进行了限定 (在2.2节中已经详述过),因此我们可以尽可能地压缩侦听周期的长度,达到低能耗、低延迟的目的。
通过上述分析,AM-MAC协议具有以下几个特点:
(1)统一的时间调度表,降低了协议的复杂性。
(2)可调的固定占空比模式,通过改变侦听次数来来调节帧内的占空比。
(3)较强的多跳能力,节点数据基本上都能在一帧内到达汇聚节点。
图6 AM-MAC协议的数据传递过程
(4)不存在早睡问题,前提是网络自适应到达稳定。
用仿真的方法从能量消耗、数据传输时延两个方面对文章中涉及的3种协议进行仿真比较。仿真平台采用OMNet++[11],该平台具有仿真的可视化界面,便于操作,并且支持多种MAC协议的网络仿真,代码开源,可用于多种协议的分析和对比。
网络模型采用经典的Mesh网格,如图7所示。只要改变该网络的横向和纵向的节点个数,就能成倍改变网络节点个数。图7中黑点为网络的汇聚节点,其它白色节点都为网络中普通的传感节点。传感节点每隔一段时间会向汇聚节点发送传感信息,汇聚节点只是收集信息,并不对外发送数据。
图7 无线Mesh网络拓扑模型
实验中通过改变每个节点是数据发送间隔来改变网络流量,改变网络的节点数量来改变网络跳数。网络初始状态时,仿真中设置各协议在空闲侦听下的占空比,S-MAC协议为30%,T-MAC为5%,AM-MAC为10%。仿真中不需要改变的数据都采用默认值,如表1中的节点个数和数据发送间隔,其它主要涉及到的仿真参数见表1。
表1 仿真参数
WSN (wireless sensor networks)中功耗主要来源于侦听、处理和无线传输这3个方面。相比于传输和侦听的功耗,处理的功耗几乎可以忽略。因此,需要尽可能地实现协作通信以获得高能效。MAC协议构成协作通信的核心,在通信过程中的功耗主要来源于:空闲侦听、冲突、协议开销、收发功耗[2,3]。在这次仿真中,采用下述公式计算MAC层的能量消耗
式中:Pl、Ps、Pr和Pt——节点的侦听功率、睡眠功率、接收功率和传输功率,Tl、Ts、Tr和Tt——仿真结束时每个节点总共的侦听时间、睡眠时间、接收时间和传输时间,N——网络的节点总数。仿真的效果如图8所示。
图8 能量消耗与流量、节点个数关系
由图8中数据,我们可以得出以下结论:在网络流量较大的时候,AM-MAC协议的能量消耗最少;在网络节点密度比较大的时候,AM-MAC协议的能量消耗最少。可见M-MAC协议适用于高流量、高密度的无线Mesh网络。
虽然功耗在WSN中是最重要的指标,但并不是唯一的。尤其对包括多媒体通信在内的一些新的应用而言就必须考虑其他指标,这些指标包括数据吞吐量、时延以及抖动等。此外,某些应用中时延也许会比功耗更重要。下面对传输时延进行仿真,仿真中的时延计算公式如下
式中:Tsend——数据从路由层向 MAC层发送的时间,Trecieved——汇聚节点的路由层收到数据包的时间。N——汇聚节点成功收到的数据包总数。之所以这么计算,因为不同协议的数据处理方式也会对包的延迟产生影响。协议的仿真效果图如图8和图9所示。
图9 数据时延与流量、节点个数关系
由图9中数据,我们可以得出以下结论:在网络流量较大的时候,AM-MAC协议的由于自适应侦听次数的特点,会自动调节一个帧周期内的处理时间,从而加快了网络处理,减少了数据延迟;在网络节点密度比较大的时候,AM-MAC协议的也是由于本身的多跳特性,可以让数据在一帧内完成传输,保证了服务质量。可见AM-MAC协议适用于对数据延迟要求较高的无线Mesh网络。
针对无线Mesh网络多跳性的特点和传感器网络能耗的要求,本文在S-MAC和T-MAC协议的基础上,提出了一个自适应多跳的MAC协议——AM-MAC,从仿真结果中可以看出,该协议具有低能耗、低延迟的特点,特别是在延迟方面,比T-MAC协议优化了将近一倍,并且不会随着流量和节点密度发生较大的变化。但是在低流量和网络节点数较少的情况下,该协议的优势并不是那么明显。因此该协议适用于高流量、高密度的Mesh网络。
此外,该协议也有两点不足:第一,没有引入数据冲突的避免机制,而是采用统一大小的竞争窗口,这样在流量大的时候会额外增加冲突能耗;第二,该协议的自适应多跳需要较长的调整时间,在流量变化频率较快的网络中,该协议可能不太适用。因此,该论文下一步的工作就是在该协议的上述问题上做进一步改进。
[1]SUN Limin,LI Jianzhong,CHEN Yu,et al.Wireless sensor networks [M].Beijing:Tsinghua University Press,2012:59-88(in Chinese).[孙利民,李建中,陈渝,等.无线传感器网络 [M].北京:清华大学出版社,2012:59-88.]
[2]LIU Weirong,HE Yun.Internet of things and wireless sensor networks [M].Beijing:Publishing House of Electronics Industry,2013:29-56 (in Chinese).[刘伟荣,何云.物联网与无线传感器网络 [M].北京:电子工业出版社,2013:29-56.]
[3]Steven Methley.Essentials of wireless mesh networking [M].Xi’an:Xi’an Jiaotong University Press,2012:163-195 (in Chinese).[史蒂夫·梅思利.无线Mesh网络基础 [M].西安:西安交通大学出版社,2012:163-195.]
[4]Vir D,Agarwal SK,Imam SA.Traffic based energy consumption analysis and improve the lifetime and performance of MAC protocols in ad hoc wireless sensor networks [J].Traffic,2013,3 (3):335-340.
[5]Law YW,Palaniswami M,Hoesel LV,et al.Energy-efficient link-layer jamming attacks against WSN MAC protocols [J].ACM Trans Sensor Networks,2009,5 (1):1-38.
[6]Ian F Akyildiz,Mehmet Can Vuran.Wireless sensor networks[M].Beijing:Publishing House of Electronics Industry,2013:66-101 (in Chinese).[阿基迪兹,沃安.无线传感器网络 [M].北京:电子工业出版社,2013:66-101.]
[7]SU Yu,QU Yugui,LIN Zhiting.HMAC:An energy efficient MAC protocol for wireless sensor networks [J].Journal of University of Science and Technology of China,2010,40(10):1054-1064.
[8]FAN Qingfeng,ZHANG Ruihua.Adaptive MAC protocol for wireless sensor networks [J].Computer Engineering and Applications,2010,46 (3):76-78 (in Chinese).[范清峰,张瑞华.无线传感器网络自适应 MAC协议 [J].计算机工程与应用,2010,46 (3):76-78.]
[9]Gong Haigang,Yu Changyuan.A self-adaptive,energy-efficient low latency MAC protocol for wireless sensor network[J].Journal of Computer Research and Development,2007,44 (11):1866-1872.
[10]Halkes GP,Langendoen KG.Experimental evaluation of simulation abstractions for wireless sensor network Mac protocols [J].EURASIP Journal on Wireless Communications and Networking,2010.
[11]ZHAO Yongli,ZHANG Jie.OMNet++and network simulation [M].Beijng:Posts & Telecom press,2012 (in Chinese).[赵永利,张杰.OMNet++与网络仿真 [M].北京:人民邮电出版社,2012.]