水声通信网络S-MAC协议的研究∗
2019-03-01
(江苏科技大学电子信息学院 镇江 212003)
1 引言
水声通信网络是一种由计算、通信等不同功能节点组成的水下无线传感器网络,它在海洋环境监测、资源勘探与开发、海洋灾难预警以及援助导航等方面有着广泛的应用[1]。由于水声通信网络的组网形式特殊,同时水下通信面临长延时、衰落快以及能量有限等问题,所以它的MAC层协议的设计要求与陆地无线网有所区别。在水声通信网络中,在兼顾吞吐量、时延的情况下,节约能量成了水声通信网络需要解决的主要问题[2]。
为了降低能耗,人们提出了基于MAC层的S-MAC协议。S-MAC协议在继承MAC协议基本功能的基础上,采用了周期性睡眠机制,其工作原理是让没有发送或接收任务的节点进入到睡眠状态,节点空闲侦听时间的减少可以有效降低系统的能量消耗[3]。在数据的接收或发送过程中,为了降低数据冲突造成的能耗,协议采取退避机制来竞争信道;S-MAC协议采用RTS/CTS握手机制,单播信息在发送者和接收者之间按照RTS/CTS/DATA/ACK的顺序进行通信,这样进一步避免了串音侦听;S-MAC协议的周期性睡眠机制如图1所示。
图1 S-MAC协议的周期性睡眠机制
S-MAC协议是以节能为需求设计的一种MAC协议,该协议目前还存在一些不足,比如其周期内节点的侦听活动时间是固定不变的。此外,当网络中活跃的节点较多时,数据包之间的碰撞概率会随之增大,进而导致网络系统的吞吐量下降[4]。针对S-MAC协议的缺点和不足,本文提出了一种自适应 动 态 ES-MAC协 议(Energy Sensor-MAC,ES-MAC协议),该协议首先对S-MAC协议固定占空比进行了改进,改进的方法是增加动态侦听活动时间。此外,ES-MAC协议在S-MAC协议原有的退避算法基础上也进行了优化调整,引入阈值作为竞争窗口分层调整的判断依据[5]。改进后的协议可以根据信道中流量的变化情况动态的调整侦听活动时间以及争用窗口CW的值。
2 自适应动态S-MAC协议
2.1 自适应占空比调整机制
S-MAC协议采用周期性侦听/睡眠占空比的工作机制,当信道中没有数据发送时,节点进入睡眠状态。虽然该机制在一定程度上减少了能耗,但是因为其采用固定的占空比,所以周期内节点侦听与睡眠的时间是固定不变的,这样当信道无数据发送时,节点长时间处于侦听状态会带来无谓的能耗[6]。基于S-MAC协议的主要原理,针对其存在的问题提出了ES-MAC协议。与S-MAC协议采用固定的占空比不同,改进后的协议在周期内节点侦听时间是动态变化的[7],如果信道没有数据发送、接收时,侦听时段只保留DT(Dynamic Time,DT)部分,如果在给定时间内没有活动事件请求,那么活动结束,其主要的工作原理如下:
1)当节点i的队列中没有数据发送时,设置给定时间DT=ΔT,这是DT的一个下限;
2)每个周期的空闲侦听时间长度与△T有关,其中△T应满足:ΔT>C+R+T(其中C为竞争信道时间,R为发送RTS分组的时间,T为RTS分组结束到发出CTS分组开始的时间);
3)当节点i的队列中分组数大于0时,DT的值按指数倍数增大,即 DT=2αNi×ΔT(α表示增加幅度,与队列中分组数有关)。
改进后的协议可以更好地适应网络流量的变化。当网络活跃节点较多时,DT的值开始增大;当网络中活跃节点较少时,DT的值会逐渐减小[8]。改进前与改进后的周期性睡眠机制对比如图2所示。从图中可以看出,与S-MAC协议相比,改进后的ES-MAC协议增加了动态侦听时间DT部分,当网络中无数据发送或较少数据发送时,可以有效减少处于活动状态的时间。
图2 S-MAC协议与改进后协议基本机制的对比
2.2 退避算法的改进
虽然S-MAC协议采取了数据包发送过程中进行通信握手机制以及节点载波监听等机制,但在通信过程中依然存在数据包冲突的问题[9]。S-MAC协议采用的是二进制指数退避算法[10],为了避免数据间的冲突,在传输过程中会选择一段随机的时间进行退避,退避算法将使用一个随机退避时间作为计数器,计数器将在(0,CW)之间选取一个数,其中CW的值被称为竞争窗口。如果数据发送失败,则增大退避窗口CW的值;如果数据发送成功,则减小退避窗口CW的值[11]。虽然BEB退避算法在一定程度上减少了节点竞争信道的冲突次数,但当网络活跃结点数较多时,碰撞概率开始增大,网络的吞吐率明显降低。
为了减少数据传输过程中的碰撞,提高网络节点接受、发送数据的效率,引入E[CW]作为信道竞争程度阈值(E[CW]的值与网络节点数有关),退避算法竞争窗口的调整方法如下,
l)当CW<E[CW]时,在数据发送成功后,减少竞争窗口CW的值减并与CWmin比较,CW的值计算公式为式(2);如果数据发送失败,则采用乘性线性增加的方法增大竞争窗口CW的值,以便竞争窗口尽量快速增大,达到CWmax时乘性增加结束,此时CW计算公式为式(1)。
2)当 CW ≥E[CW]时,认为当前网络负载较大,在数据发生冲突前,增大竞争窗口CW的值,CW的值计算公式为式(3);成功发送后,竞争窗口CW开始减小,此时CW计算公式为式(4):
改进的退避算法流程图如图3所示。
图3 改进的退避算法流程图
3 实验仿真与分析
为了验证ES-MAC协议在网络仿真环境中的效果,需要对ES-MAC协议进行仿真验证,实验仿真将在NS2平台[12]上进行。本次仿真实验选取能量消耗、吞吐量以及网络时延三个性能指标来评估ES-MAC协议的性能。本文实验仿真参数与参数值见表l。
表1 仿真参数及参数值
3.1 能量效率分析
能耗问题直接影响水声通信网络的生命周期。仿真实验中选取数据分组间隔作为横坐标的变化量,分组间隔越小说明网络负载流量越大[13]。纵坐标选取平均能耗,平均能耗为每传输一个字节所消耗的能量大小[14],网络平均能量消耗计算公式(5)为
从图4中可以看出,在网络初始阶段ES-MAC协议平均能耗比S-MAC协议的平均能耗低一些,但是两者相差不大。当分组间隔减少3s~8s时,网络流量逐渐增大,由于S-MAC协议采用的争用窗口机制是在数据碰撞发生后进行调整的,此时能量已经消耗,再加上流量增大的情况下会带来潜在碰撞概率的增加,导致重传次数增多,所以其能耗增大明显。改进后的ES-MAC协议采用的是动态争用窗口机制[15],当网络信道中流量增大时,在发送数据前争用窗口会根据网络流量情况自行地进行调整,动态的争用窗口机制对网络的适应性更强。因此,ES-MAC协议在这段时间内的能耗虽然有所增加,但是整体的变化不会太大。从仿真实验结果可以看出,整个仿真过程中,在平均能耗方面,ES-MAC协议一直低于S-MAC协议。
图4 平均能耗仿真图
3.2 吞吐量分析
网络数据流的吞吐量是指目的节点在整个工作时间内成功接收到的数据包的总数量。本文仿真的是端到端的平均吞吐量[16],其单位为kbps。网络平均吞吐量计算公式(6)为
从图5可以看出,当分组间隔减小时,意味着网络负载的增大,由于S-MAC协议采用的BEB退避算法不能根据网络负载动态的调整竞争窗口[17],当网络活跃节点较多时,发送数据间的碰撞概率增大,同时S-MAC协议采用固定的占空比机制,源节点在进行数据分组发送时,需要等待目的节点从睡眠状态中醒来,这样会导致网络中节点竞争的加剧以及大量的数据分组丢失,所以网络吞吐量一直较低[18]。改进后的ES-MAC协议能根据网络的流量变化情况提前调整竞争窗口的值,更好的网络适应性可以有效降低数据之间的碰撞。同时协议增加了动态活动的时间,有效减少了网络拥挤带来的潜在碰撞,降低了在传输中数据分组的丢失以及重传次数。整个仿真阶段,在网络吞吐量性能上,ES-MAC协议始终高于S-MAC协议。
图5 吞吐量仿真图
3.3 时延状况分析
时延是指在网络中从首个数据分组发送开始计时,到最后一个数据分组被接收到截至的时间,平均时延[19]是总时间除以分组的数目。本文的性能指标采用的是平均时延,网络平均时延计算公式(7)为
图6 平均时延仿真图
从图6可以看出,在分组间隔10s~8s范围内,由于网络处在低负载的状态,ES-MAC协议与S-MAC协议在时延上没有明显区别。随着分组间隔逐渐减少,S-MAC协议固定不变的争用窗口会导致数据间碰撞概率的增加[20],数据发送失败后的重传直接增大了网络的时延。尤其是当分组间隔减少3s后,其时延变现更为明显。ES-MAC协议引入了动态占空比机制,同时改进了退避算法,在网络在时延方面有着更好的表现。当网络负载变大时,引入阈值判断的退避算法可以根据当前网络情况及时调整竞争窗口的大小,即使网络处于拥挤状态,依然可以有效减少数据间碰撞带来的网络时延[21]。在整个仿真过程中,在平均时延性能方面,ES-MAC协议的基本上一直小于S-MAC协议。
4 结语
本文对S-MAC协议进行了理论分析,针对其节点空闲侦听时间过长以及固定的争用窗口不能很好地适应网络流量变化的情况,提出了自适应动态ES-MAC协议。该协议通过增加动态侦听活动时间部分,当网络无数据发送或较少数据发送时,节点可以有效降低对信道空闲侦听的活动时间,同时改进后的协议使用动态可争用窗口来适应网络流量的变化。仿真实验结果验证了ES-MAC协议的可行性与有效性,同时与S-MAC协议相比,该协议在节能、吞吐量以及时延方面均具有更好的性能。