水声传感器网络MAC协议UW-CSMA/CA的NAV优化
2022-03-30路晨贺靳晓珂魏宗博
李 莉,李 进,路晨贺,靳晓珂,魏宗博
(1.沈阳化工大学 计算机科学与技术学院,辽宁 沈阳 110142;2.辽宁省化工过程工业智能化技术重点实验室,辽宁 沈阳 110142)
0 引言
由于水下环境复杂多变,水声通信信道具有长传播延时、可用带宽窄、能量受限、多普勒效应及多径效应明显等特点[1-5],使得水声传感器网络技术的发展受到严重制约,亟需性能优秀的MAC和路由协议等。高效的MAC协议可以控制网络节点对时间和资源的调度,减少数据冲突,缩短网络延时,使信道资源得到充分利用[6-8]。
在水声传感器网络中,预约类 MAC 协议结构复杂,但可以明显降低数据包冲突的概率,提高网络的吞吐量。目前,预约类MAC协议的研究主要基于Carrier Sense Multiple Access (CSMA)协议开展,UW-CSMA/CA[9]协议是根据水声传感器网络的特点对陆上CSMA/CA[10]协议进行的改进,该协议能够根据信道监听结果和网络分配矢量Network Allocation Vector (NAV)[11]值确定节点数据的发送和接收。但是由于该协议NAV值的设置不能根据节点间距离进行调整,而是简单地采用网络中的最大传播延时进行计算,导致网络传播延时比较大[12]。本文针对UW-CSMA/CA协议的NAV问题进行改进,设计了Adjustable-NAV-MAC(AN-MAC)协议,以此改善冗余延时问题。
同时,为了使协议的仿真环境更加接近实际网络情况,本文基于NS-Miracle仿真器进行拓展,将NS-Miracle中的Bellhop声射线模型与世界海洋仿真系统WOSS进行结合,根据实际水域环境数据(温度、声速剖面及沉积物等)模拟声波在水下的传输特性,仿真水声传感器网络的运行过程,获取更接近实际情况的仿真数据,提高仿真结果的有效性。
1 UW-CSMA/CA协议
1.1 UW-CSMA/CA协议的通信原理
UW-CSMA/CA协议采用具有物理载波侦听和虚拟载波侦听的握手机制,数据通信过程包括RTS-CTS-DATA-ACK几个传输阶段[13-14]。该协议的通信过程如图1所示,S是源节点,D是目的节点。
图1 UW-CSMA/CA协议的通信过程Fig.1 Communication process of UW-CSMA/CA protocol
在网络中,当源节点有数据包要发送时,应先通过载波侦听技术对信道进行侦听。如果信道繁忙,发送方则需要进行退避;如果信道空闲,则源节点发送RTS控制帧预约信道。当目的节点接收到RTS,且在以后的一段时间内不存在数据通信,则向源节点回复CTS。在源节点接收到CTS后,立即发送DATA。目的节点在接收到源节点发送的DATA后,立即回复ACK并结束此次通信。源节点接收到ACK后也随即结束此次通信。但是当数据通信过程发生异常时,如源节点未接收到CTS或ACK超时,源节点则采用NAV机制退避并进行数据重传处理。而对于网络中的其他邻节点,接收到不是发送给自己的数据包时,将保持静默,保证此次通信顺利完成。
1.2 UW-CSMA/CA协议的传输问题
图2为UW-CSMA/CA协议的NAV设置及握手过程。通过RTS,CTS控制帧握手,DATA数据帧与ACK确认帧交互,实现了数据传输。在通信过程中,节点在侦听控制帧时,邻节点会根据控制帧中包含的传输时间设置NAV,然后在侦听到新的控制帧时更新NAV。而源节点与目的节点间的传播延时也是设置NAV的必要条件。以设置UW-CSMA/CA协议的NAVCTS为例,目的节点接收到CTS帧后,节点间还需要进行3次帧的传播,分别为目的节点返回CTS帧,源节点发送DATA数据,接收节点返回确认ACK,且经过2个帧间间隙。则NAVCTS设置为CTS帧、DATA和ACK帧三者之间传播延时与DATA数据及ACK帧传输时间的总和。
图2 NAV设置及握手过程Fig.2 NAV configurations and handshake process
如图2所示,邻节点根据侦听到CTS设置相应的NAV,具体实现如下:
(1)
式中,Tmp_delay为网络节点间的最大传播延时;SIFS为帧间间隙。
由于该协议不获取网络中节点的位置信息,式中Tmp_delay被设置为网络中节点间的最大传播延时。由于网络中各节点的位置不同,节点间的距离均小于或等于最大距离,节点间的传播延时一定小于或等于最大传播延时。因此,采用最大延时作为退避时间将会使网络中的整体延时加大,降低了网络的吞吐量。针对以上问题,本文对NAV设置方式进行了改进,采用节点间距离计算节点间实际延时替换最大延时来降低节点退避时间,该协议称为AN-MAC协议,其NAV设置及握手过程如图3所示。
图3 AN-MAC协议的NAV设置以及握手过程Fig.3 NAV configurations and handshake process of AN-MAC protocol
由图3可以看出,图中的Tap_delay为源节点到目的节点的实际传播延时,它可以通过修改RTS/CTS帧结构,根据节点间距离及水声传播速度等方式进行计算和存储,其小于图2中的最大传播延时Tmp_delay,采用Tap_delay代替Tmp_delay来计算NAV,具体实现如下:
(2)
2 AN-MAC协议的实现
本文主要对UW-CSMA/CA协议的传输机制以及NAV取值问题进行分析,通过调节NAV对节点间通信时的退避时间进行分配,提出了一种根据实际距离分配NAV的方法——AN-MAC协议,将传统的NAV确定方法结合节点距离测定算法进行改进,用来解决邻节点NAV配置冗余问题,从而降低网络整体的延时,提高网络吞吐量。
为实现AN-MAC协议中NAV的设置,对UW-CSMA/CA协议做出如下具体改进:
(1) 帧结构
修改RTS帧和CTS帧结构,如图4所示,在RTS帧和CTS帧中添加时间存储站字段,该字段是为了计算源节点与目的节点间的传输时间差,即2节点间的实际传播延时Tap_delay。具体操作:在源节点发送RTS帧时记录当前时刻Ti,当目的节点发送CTS控制帧时记录当前时刻Tk,在时间存储字段中记录2节点单次传播延时Tap_delay,其为Tk与Ti的算术差。
考虑邻居节点冲突问题,建立了邻居节点NAV表,由于协议需要源节点的CTS/ACK的发送信息才能管理邻居NAV表,因此将附加字段(即发送节点地址)添加到CTS/ACK。
图4 AN-MAC协议的帧结构Fig.4 Frame structure of AN-MAC protocol
(2) 协议通信过程
AN-MAC协议的具体通信过程如图5所示。
源节点开始建立通信时,以源节点与目的节点间的实际传播延时Tap_delay来计算NAVRTS,这样NAVRTS被记录在RTS帧中,监测到RTS帧的所有节点会通过RTS中的NAVRTS来进行自身NAV的计算,NAVRTS的计算如下:
NAVRTS=4Tap_delay+3SIFS+TCTS+TDATA+TACK。
(3)
图5 AN-MAC协议的通信过程Fig.5 Communication process of AN-MAC protocol
当目的节点接收到RTS帧后,读取其中的NAVRTS,并根据时间存储站计算出Tap_delay,然后目的节点发送CTS帧时会获取RTS中的Tap_delay进行NAVCTS的计算,NAVCTS的计算如式(4)所示。对于DATA帧以及ACK帧的NAV确定也是在Tap_delay基础上进行的。当其他节点侦听到CTS帧时,会在NAVCTS基础上进行更新。
NAVCTS=3Tap_delay+2SIFS+TDATA+TACK。
(4)
在接收到CTS帧之后,源节点能够获取Tap_delay,并在此基础上计算TDATA,然后源节点将包含TDATA的数据包DATA发送给目的节点。目的节点接收到来自源节点的DATA数据包后,其他的邻节点已经根据接收到RTS帧和DATA帧中的数据将它们的NAV值更新。若目的节点与源节点相距较小,则根据Tap_delay计算得出新的NAVRTS值也会小于NAVRTS,节点取消其当前的NAV计时器,并使用TDATA(式(5))重启它们。
NAVDATA=2Tap_delay+SIFS+TACK。
(5)
最后,目的节点返回NAVACK=0,传输范围内的其他节点清除NAV配置开始重新争用信道。
节点间的实际传播延时计算如下:
(6)
式中,Tap_delay为实际传播延时,单位为s;l为传播距离,单位为m;Vs_speed为声波在海水中的传播速度,单位为m/s。
由于Tap_delay≤Tmp_delay,使AN-MAC整体传输NAV更接近实际,同时,计算更精确。
在接下来的现场测评环节,63名选民代表参加了投票。“优秀票57票,称职票5票,基本称职票1票,不称职票0票,总体评价为优秀。”镇人大主席宣布测评结果的话音刚落,会场响起了热烈的掌声,李兴军紧张的神情才稍稍放松了下来。
3 MAC协议仿真及结果分析
本文将世界海洋仿真系统[15](World Ocean Simulation System,WOSS)与声射线模型Bellhop[16]结合对NS-Miracle[17](Multi-Interface Cross-Layer Extension Library for the Network Simulator)的水声传输信道进行扩展,使扩展后的 NS-Miracle 仿真系统能够更准确地模拟实际水声网络的相关特性[18]。
本文基于扩展后的NS-Miracle仿真系统对UW-CSMA/CA协议与本文提出的AN-MAC进行仿真对比分析。典型的水下传感器网络分为集中式的拓扑结构、分布式拓扑结构和链式多跳拓扑结构[19]。本文仿真采用如图6所示的链式多跳拓扑结构,仿真实验中相邻节点间距离为1 000 m,通信系统模型采用BPSK,网络层采用静态路由。其他仿真参数设置如表1所示。
图6 网络仿真拓扑Fig.6 Network simulation topology diagram
表1 网络仿真参数设置
衡量网络性能的指标通常包括吞吐量、延时、误码率、能耗等。由于AN-MAC协议在UW-CSMA/CA 的基础上对NAV的设置进行改进,所以仿真着重对归一化吞吐量和网络平均延时进行分析。
仿真实验设置每个节点的发包周期在15~200 s,共进行了11组仿真实验,每组实验重复10次并取平均值,实验分组情况如表2所示。
表2 网络节点平均发包周期
根据仿真结果计算每次仿真的平均吞吐量和平均延时,为了方便比较协议的性能,对平均吞吐量做了如式(7)所示的归一化处理:
(7)
式中,τn为归一化吞吐量;τ为网络平均吞吐量;t为发包周期;Lp为以字节为单位的包长。
AN-MAC协议与UW-CSMA/CA协议的归一化吞吐量对比如图7所示。
图7 归一化吞吐量仿真结果对比Fig.7 Comparison of normalized throughput simulation results
从图7可以看出,随着节点发包率的增加,归一化吞吐量总体呈下降趋势,当平均发包率较低时,网络中传输的数据包较少,网络容量足够,数据包冲突概率较低,因此二者网络平均吞吐量未呈现明显差异。当平均发包率120~140 b/s时,数据包传输达到网络负荷,冲突概率明显增大,随着发包率上升,二者归一化吞吐量差异逐渐明显。但是总体上AN-MAC协议的归一化吞吐量要高于UW-CSMA/CA协议。
图8 平均延时仿真结果对比Fig.8 Comparison of average delay simulation results
以上仿真结果表明,AN-MAC协议根据节点间的实际距离计算和分配NAV,可以减少网络的平均延时,从而提高归一化吞吐量。当网络中负载变大达到极限时,协议的性能会明显变差,网络的传输延时明显上升,吞吐量下降,但是总体看来,在延时和吞吐量方面,AN-MAC协议相对于UW-CSMA/CA协议均有所改善,对信道利用率的提高有一定帮助。
4 结束语
本文对水声传感器网络MAC协议进行了研究,分析了基于RTS/CTS握手机制的冲突避免MAC协议UW-CSMA/CA中NAV值设置带来的延时冗余问题,并对其进行了改进,提出了一种按节点实际距离计算和分配NAV的AN-MAC协议。根据节点间的实时距离计算出实际的传播延时来代替最大传输延时,用其确定各节点的NAV值,进而减少冗余延时。为了提高仿真结果的有效性,将Bellhop信道模型和世界海洋系统结合对AN-MAC协议和UW-CSMA/CA协议进行了仿真。结果表明,AN-MAC协议在归一化吞吐量和平均延时方面较UW-CSMA/CA均有改善,提高了网络中的吞吐量,减少了网络延时,对信道资源的利用率有所提高。