无线多媒体传感器网络S-MAC协议的改进与仿真
2015-12-18韩帅帅王宝林张德海
韩帅帅,王宝林,张德海
(西安电子科技大学电子工程学院,陕西西安 710071)
无线传感器网络技术与多媒体新应用需求的结合促使了无线多媒体传感器网络[1](WMSNs)技术的产生[1]。WMSNs通常是异构型网络。WMSNs技术在给人们提供丰富的媒体信息带给感官上的享受的同时也给WMSNs的MAC层带来了挑战,如严格的QoS(Quality of Service)保证和低能耗。
S-MAC协议[2]是一种典型的基于竞争的随机访问MAC协议,它是建立在IEEE802.11协议基础上的,针对传感器网络的节省能量需求而提出的传感器网络MAC协议。该协议具有良好的扩展性,不要求严格的时间同步等诸多优点。由于无线多媒体传感器网络与无线传感器网络不同,由于加入了多媒体信息,如音频数据、视频数据等,这些数据可能引起网络数据量的剧烈变化,多媒体对信息的传输和处理又有着特殊的要求,如对QoS的特殊要求,使SMAC协议应用到无线多媒体传感器网络存在一定的局限性。
1 S-MAC协议
S-MAC协议是一种基于竞争的控制协议,它主要采用“虚拟簇”机制[3]。每个节点在时隙开始时广播含有自己调度信息的同步包,接收到同步数据包的节点按需要调整时钟。这样具有相同调度节点形成一个“虚拟簇”。原则上整个网络应该工作在同一个“时隙结构”,但由于移动性和调度机制,在网络中可能包含许多“虚拟簇”。
S-MAC协议的主要目标是减少能耗,为减少数据冲突造成的能耗,协议利用退避机制来竞争信道,完成数据的接收与发送。为减少串音侦听带来的能耗,协议采用自适应的侦听机制以及RTS/CTS的通告机制。每个节点在传输数据时,都要经历 RTS/CTS/DATA/ACK的通信过程,从而避免串音侦听;为减少空闲侦听的能耗,协议采用周期性睡眠机制,使不参与发送或者接收的节点进入睡眠状态,从而降低能耗。周期睡眠机制如图1所示。
图1 S-MAC的周期性睡眠机制
(1)碰撞避免。由于多个发送节点可能要同时发送数据到同一个接收节点,其需要进行信道资源的竞争,以避免冲突。在S-MAC协议中继承了IEEE 802.11中虚拟载波监听、物理载波侦听和RTS/CTS交换机制。这种方法还可以用在S-MAC中来解决终端隐藏问题。
在传输的每个数据包中有一个持续时间字段,该值指明了剩余传输将持续的时间。所以,如果节点串听到不是发给自己的数据包,通过获取数据包的持续时间字段,就可以得知自己多长时间不能进行数据收发。节点记录该值的变量,称为网络分配向量(NAV),并设置它的计时器。每次当NAV定时器触发,该值减1,直到0。节点进行数据发送之前必须确保NAV值为0,如果其值不为零,则节点确定信道繁忙,即所谓的虚拟载波侦听。其过程如图2所示。
图2 载波监听
如果一个节点无法获得信道,就转入睡眠并等到接收者再次空闲并进行再次聆听时唤醒。广播信息包发送不使用RTS/CTS,在进行单播数据时才会使用RTS/CTS/DATA/ACK机制。
(2)S-MAC协议存在的问题。S-MAC协议采用周期性的活动/休眠调度机制,活动时间通常固定不变,而消息速率是变化的[4]。协议处于活动状态的时间长度不能根据网络中业务量的变化动态调整,不能有效地节省能量。
通信模块处于休眠状态的节点,如果检测到事件,就必须等到通信模块转换到活动周期才能发送数据,中间节点要转发数据时。下一跳节点可能处于休眠状态,此时也必须等到它转换到活动周期,这种由于节点休眠带来的延迟会随着路径上跳数的增加成比例增加。
2 S-MAC协议的改进算法QD-MAC
无线多媒体传感器网络的业务具有特殊性,对QoS有特殊要求、传输效率、传输时延、服务多样化、媒体数据具有流量突发与不均匀性等特点,固定的占空比已经满足不了多媒体业务的需求,若监听状态时间过长,网内流量较小时,会有过多能量浪费在空闲监听上。若监听时间较短,网内负载较大时,缓冲队列中很多数据堆积,引起队列时延,同时还会引起睡眠时延,网络的吞吐量下降,所需要MAC协议实现动态的占空比,占空比能适当地根据网内的负载大小变化,提高网络吞吐量和能量利用率。
文献[5]通过统计一段时间内节点收到数据包的大小,根据数据量的大小与设定的几个吞吐量的阈值进行比较来调整空闲时间的长短及占空比,监听时间不变;文献[6]提出的ADC-SMAC协议通过计算上一次数据包的平均时延,当前占空比来调整占空比;以上文献均通过计算上一时刻的网络负载大小或时延来估计下一时刻网内的数据流量或需要的时延,从而调整占空比或者同时调节帧周期,无线多媒体传感器网络内的数据包或负载具有突发性,上一时刻数据量较小,不能保证下一时刻网络负载较小,同样,上一时刻网内负载比较大,不能保证下一时刻的网内的负载同样较大,所以动态调节占空比的前提是正确地估计下一时刻网内负载的大小。基于此,本文提出了基于邻居队列的动态占空比调整算法(QD-MAC,Queue based Design of MAC)。
QD-MAC算法的基本思想。由于网络负载用邻居范围内的待发送数据包的总数来估计,能表示下一时刻网内要传输的数据包的数量,表示将来时刻网络负载的大小。定时统计网内的所有邻居节点的缓冲队列中的待发送的数据量来估算下一时刻的网内负载,新时刻统计的数据包与上一时刻的统计结果进行对比,根据比较结果采用相应的调整方案调整占空比。同时注意收发器从睡眠状态切换到活跃状态不是立刻发生的,因此,希望减少模式切换的频率。
占空比更新机制。为节省能量消耗,新占空比通过同步帧进行交换,在所有邻居节点范围内的节点都收到同样的新的占空比,如果节点收到的新的占空比小于当前用的占空比,而此时节点的缓冲队列中有数据待发送,那么此节点维持原占空比,在接收到下次新占空比之前,如果节点的队列缓冲中的数据包已经发送完毕,更换占空比。这种方法基本实现了占空比的同步更换,不存在不同步问题和邻居节点之间通信时一个在发送消息,而另一个处于睡眠状态。
3 仿真分析
采用由UC Berkeley开发的、面向对象的、离散事件驱动的网络环境模拟器NS-2对S-MAC和QDMAC协议进行了仿真。NS-2仿真软件[7]以脚本作为输入,脚本描述了网络拓扑结构、网络协议、网络负载,以及一些控制参数。NS-2输出的是一系列的数据,如每个数据源所发送的数据包数量,每个网络节点处的延迟等。
为对新协议QD-MAC与SMAC协议之间的性能差异进行对比,本文设置了如图3所示的拓扑结构。
图3 基于流量负载的动态占空比仿真的拓扑图
节点0发送数据到节点2,详细设置参数如表1所示。
表1 功率控制算法仿真参数设置
下面分别对S-MAC协议和QD-MAC在时延、丢包率、吞吐量和能耗的性能方面的对比进行相应的分析。
(1)平均时延。由图4可以看出,QD-MAC与SMAC协议相比,数据包的传输延迟明显降低,首先QD-MAC与S-MAC协议的延迟都随着数据包传输间隔的增大而降低,最后趋于稳定的最小值。
图4 QD-MAC与S-MAC协议的时延性能比较
在开始网络内的数据包的发送间隔比较小,网络内的数据量比较大,QD-MAC协议在负载特别大的时候,占空比调整为最大值100%,而此时S-MAC是固定占空比30%。由于碰撞,队列缓存等原因,引起的时延比较大;当网络内数据发送间隔>0.15 s时,QD-MAC在大占空比下正好可以发送完缓存队列中的数据,S-MAC协议等到发送间隔>0.45 s时,才来得及发送完队列中的数据。数据发送间隔>0.15 s后QD-MAC的占空比开始减小,等到间隔约为0.45 s时跟S-MAC的占空比相当。
(2)网络丢包率。QD-MAC与S-MAC协议的网络丢包率比较如图5所示。
图5 QD-MAC与S-MAC协议的丢包率性能比较
QD-MAC协议的丢包率性能要比S-MAC协议好很多,QD-MAC在最开始的发送间隔趋于0的时候丢包率为0.52,而S-MAC协议达到了0.92,因为此时QD-MAC的占空比达到100%,而S-MAC的占空比固定的30%;在约0.15 s QD-MAC的丢包率已明显趋于0,而S-MAC协议等到0.35 s时才开始趋于0。由此可见,在高吞吐量的情况下,QD-MAC的传输的可靠性比S-MAC协议强。
(3)网络吞吐量。吞吐量对比如图6所示,从整体上看,随着数据发送间隔的减小,网络吞吐量呈现减小的趋势。在数据发送间隔<0.35 s的情况下,QDMAC协议的吞吐量比S-MAC协议大,因为在发送间隔<0.35 s的情况下,S-MAC协议的碰撞严重,丢包率高,导致吞吐量较低。在数据发送间隔为0.35 s的情况下,QD-MAC协议的占空比与S-MAC的相同,两者吞吐量相当,发送间隔>0.35 s时网络吞吐量的主要决定因素是数据的产生速率,随着数据产生速率降低,两者的吞吐量减少。
图6 QD-MAC与S-MAC协议的吞吐量性能比较
(4)网络能耗。QD-MAC协议的能耗在数据发送间隔低于0.35 s时,QD-MAC协议的占空比比SMAC大,有大量数据要发送会消耗较大的能量。随着数据发送间隔的减小,缓存队列中待发送的数据减少,节能需要QD-MAC减小占空比,到数据发送间隔为0.35 s时两者的占空比相当,能耗相当。只有QDMAC随着数据产生速率减小继续减少占空比,而SMAC保持固定的30%占空比,在缓存队列中的数据发送完毕后,会有一段时间的空闲监听消耗能量,随着数据产生速率的减小,空闲监听时间越来越长。由于QD-MAC的占空比减小到最小值之后就不会降低,所以消耗的能量不会变为0,只会稳定在一个最小占空比情况下消耗的能量值处,具体能耗表现如图7所示。
图7 QD-MAC与S-MAC协议的能耗能比较
4 结束语
研究了无线多媒体传感器网络MAC层协议。指出了S-MAC协议应用于无线多媒体传感器网络存在的问题,然后提出了改进方法。统计所有邻居节点和自身节点缓冲队列中的数据量来预测网络负载从而调整占空比来适应网络内流量的变化。针对改进算法在NS2上进行仿真实验,仿真结果表明,QD-MAC协议不仅能使节点的活动时间适应通信负载的动态变化,还能大幅减少节点休眠带来的延迟。
[1]Akyildiz I F,Melodia T,Chowdhury K R.A survey on wireless multimedia sensor networks[J].Computer Networks,2007,51(4):921 -960.
[2]李瑞芳.无线多媒体传感器网络MAC层关键技术研究[D].长沙:湖南大学,2010.
[3]Akyildiz I F,Melodia T,Chowdury K R.Wireless multimedia sensor networks:A survey [J].Wireless Communications,IEEE,2007,14(6):32 -39.
[4]罗武胜,翟永平,鲁琴.无线多媒体传感器网络研究[J].电子与信息学报,2008,30(6):1511 -1516.
[5]Hu H,Min J,Wang X,et al.The improvement of S - MAC based on dynamic duty cycle in wireless sensor network[C].IEEE International Conference on Computer Science and Automation Engineering,2011(1):341 -345.
[6]An Z.Medium access control protocol with dynamic duty cycle in wireless sensor network[J].Jisuanji Gongcheng Computer Engineering,2011,37(24):611 -619.
[7]叶晓国.基于NS-2的无线传感器网络仿真模块扩展方法的研究[J].计算机研究与发展,2011,48(z2):302-306.