一种学习的水声传感器网络ALOHA协议
2020-07-27林灿陈柯宇程恩林文
林灿, 陈柯宇,2, 程恩, 林文
(1.厦门大学 水声通信与海洋信息技术教育部重点实验室,福建 厦门 361005; 2.闽江学院 电子信息与控制福建省高校工程研究中心,福建 福州 350108; 3.闽江学院 计算机与控制工程学院,福建 福州 350108)
海洋的面积约占地球总面积的71%,是人类活动的重要领域,人们对资源需求的目光慢慢地从陆地转向了海洋。随着科学技术的不断发展,人类对海洋的探索、开发以及利用程度在不断加深,并且对海洋环境下的数据传输和信息交流有着巨大的需求。无论是在军用还是民用领域,水声通信网的研究都具有极大的价值[1-2]。所以近10年来,水声传感器网络(UASNs)引起了学术界和工业界的广泛关注[3-5]。但是现有的地面无线传感器网络(WSN)介质接入控制协议(MAC)主要使用无线电波进行通信,并且技术已经相当完善,但是这不适合水下通信,无线电波在水海洋中的传输受到了极大的限制,而声波是唯一一种能在水介质中进行长距离传输的能量形式,所以在水下组建无线网络,水声传感器网络是目前唯一的选择。水声通信信道需要新的高效、可靠的MAC协议,以应对水声信道多径衰落、多普勒频移、传输损耗、传输延迟和噪声干扰等问题[6-8]。
MAC协议决定了节点之间共享信道的方式。当多个相邻传感器节点(即发送节点)同时向中心节点(即接收节点)发送数据包的时候,数据包之间可能产生碰撞,导致中心节点可能无法正常接收到数据包。因此,在通信的过程中需要确定控制机制以便可以合理地分配信道资源的使用,减少和避免数据包之间的冲突。MAC协议的主要任务是防止同时传输或解决数据分组的传输冲突,同时保证能量效率,低信道接入延迟和节点接入的公平性[9]。同时节点自身能量有限, 如何实现节点能耗均衡、延长网络生命周期也是无线传感器网络的一个研究重点[10]。
目前,有研究人员提出了许多的水声传感器网络的MAC协议,根据节点竞争信道的方式,将水声传感器网络的MAC协议大致分为三大类:竞争型协议、非竞争型协议和其他类别协议[11]。竞争型协议不会提前给节点分配信道资源,节点必须根据需求竞争水声信道的使用权,避免信道资源的浪费。竞争型协议大致分为2类:随机竞争协议和握手协议。随机竞争协议是指各节点随机竞争信道,并随时发送数据。近期研究者们更关注于竞争 MAC协议的相关研究[12]。最早的随机竞争MAC协议是ALOHA协议,当传感器节点有数据包要发送的时候,它就会立即发送。如果产生了碰撞,就让节点等待一段独立的随机时间,然后再进行重传。但是很显然这样的数据传输机制会使得ALOHA在网络负载比较大的时候,吞吐量会比较低,而且通过重传来解决冲突会增加网络节点的功耗并缩短网络的生命周期[13]。而在陆地无线网络中,提出了时隙ALOHA的概念。在S-ALOHA协议中,传输时间被分成许多相同长度的时隙,每个节点只允许在每个时隙开始时发送数据包,这种传输方式降低了数据包冲突的概率[14]。但是在水下高传播时延的下,传感器节点和中心节点之间的不同距离会导致数据包虽然在不同时隙发送,可是并不能保证这些数据包都能在时隙内到达中心节点,因此可能在中心节点处产生碰撞。所以在水声传感器网络中,S-ALOHA协议并不会比ALOHA协议有更好的吞吐量[15-16]。Zhou 等[17]提出了一种方案来改进时隙ALOHA协议,协议通过调整节点发送数据包的时刻保证数据包能够在时隙内到达目标节点,但是这种协议没有有效的避免碰撞机制,所以数据包碰撞的几率仍然很大。但是由于水下的高传播时延,无法通过让发送端监听信道来确定接收端是否发生了碰撞。因此Peng等[18-19]针对水声传感器网络提出了UW-ALOHA协议,通过接收端反馈ACK来判断数据包是否被接收,如果发送方无法收到接收发方返回的ACK控制包,则表示由于冲突或链接错误,数据包或ACK丢失。
本文将UW-ALOHA扩展到UWS-ALOHA。在这项工作中,提出了一种L-ALOHA协议。该协议首先通过传感器节点和中心节点之间的通信来对整个水下的网络状态进行不断地学习和调整,使得网络会达到一种稳定的状态,然后传感器节点能够按照学习过程获取到的最佳传输时刻将数据包发送到中心节点而不会产生碰撞,而这时中心节点仅需要负责对接收到的数据包进行统计而不需要返回ACK控制包来确认接收到数据包。本文仿真证明提出的学习机制极大地提高了ALOHA协议的性能。
1 协议原理
本文提出一种L-ALOHA协议,接下来,来介绍L-ALOHA协议的基本过程。L-ALOHA协议分为2个部分:1)学习部分;2)稳定部分。在L-ALOHA的学习过程里,协议的主要功能是让网络中各个传感器节点通过不断地传输数据包给中心节点来进行对水声网络通信的学习,然后逐渐去调整各个传感器节点发送数据包的时刻,最后各个传感器节点选定自己时隙内一个最优发送数据包的时刻,并在以后的时隙固定时刻里发送数据包,从而达到避免数据包在接收端产生碰撞的目的;稳定部分的主要功能是根据各个传感器节点在协议的学习部分选定的最优发送数据包的时刻来发送数据包,同时缩小整个网络的时隙长度以提高吞吐量。
1.1 网络模型
如图1所示,网络拓扑模型由5个传感器节点和一个中心节点构成,节点之间采用的是集中式单跳的方式进行通信。仿真实验中设置水声传感器网络的分布范围为边长为3 000 m的正方形区域,5个传感器节点随机分布于正方形区域内,一个中心节点位于正方形区域的中心位置。
图1 水下传感器网络部署Fig.1 The deployment diagram for underwater sensor networks
1.2 学习部分
学习部分的任务是让每个传感器节点获取自己在时隙内的最优数据发送时刻以减少整个网络数据包传输之间的冲突。为了方便描述,采取2个传感器节点和一个中心节点进行说明。如图2所示,节点1和节点2都是传感器节点,节点0是它们的中心节点,将传输时间分为各个时隙,每个学习时隙有充足的等待ACK返回的时间,并且保证目标节点在每个时隙内接收到来自于发送节点的数据包,由于各个传感器节点与中心节点之间的距离的不同,数据包之间可能在接收端产生冲突,假设来自于节点1和节点2的数据包在同一期间到达节点0,这时产生了碰撞,最终导致节点0没有收到任何一个属于它们数据包,同时节点0并不会返回ACK控制包给节点1和节点2,导致来自于节点1和节点2的数据包发送失败。表1列出了L-ALOHA协议中所需的参数。
图2 L-ALOHA协议时序图Fig.2 Timing sequence diagram of L-ALOHA protocol
表1 L-ALOHA协议所需参数Table 1 The parameters required for L-ALOHA protocol
设定的学习机制是假设当传感器节点没有收到中心节点返回的ACK控制包的时候,那就是说明传感器节点发送数据失败,那么传感器节点在下一时隙就会选择依然在这一发送时刻重发数据包或者在原来发送时刻的基础上退避一个数据包的传输时间TData用来进行数据包的重传,数据包发生碰撞之后退避和不退避的概率为1∶1。如图2所示,对于碰撞,节点1选择了依然在时隙内的那个时刻进行重传,而节点2选择了退避一个TData来保证数据包的正常传输,而这时中心节点便可以成功接收来自于2个传感器节点数据包了。这种学习机制保证了每一个传感器节点都可以在时隙内找到它可以成功发送数据的那个时刻只要学习时隙足够大,经过多次的学习后,整个网络就会达到一种稳定状态,也就是在中心节点能够按照固定的顺序接收到来自于各个传感器节点发送来的数据包。
由于水下环境复杂,水下通信的过程中存在着诸多问题。其中时间的同步是主要考虑和需要解决的问题。在L-ALOHA协议的学习过程中,传感器节点与中心节点存在着时间同步的问题,如图2所示,采取一种新的ACK退避机制来保证学习过程的成功进行。因为在水声信道进行通信是采用广播的形式来传输数据包的,所以引入一个容忍时间Tto,保证中心节点在返回ACK包之前,所有传感器节点的数据包都已经发送,同时中心节点接收到数据包的时候,选择退避一个空间最大等待时间Tmax用来确保空间所有的数据包已经传输结束,然后再返回ACK控制包,这样的方法避免中心节点返回ACK控制包与空间内还完成传播过程的数据包产生碰撞,从而影响节点之间的数据传输。所以传感器节点发送完数据之后的等待时间Tw的计算公式为:
Tw=TData+Ttx+Tto+Tmax+TAck+Ttx
(1)
由于Ttx小于或等于Tmax,TAck≪TData,忽略不计,所以学习过程中的一个等待时间Tw的计算公式为:
Tw=TData+Tto+3Tmax
(2)
同时网络学习过程中的时隙长度Tl计算公式为:
Tl=Ttran+Tw
(3)
在L-ALOHA协议的学习过程中,取Tto和Ttran为:
Tto=2NtTData
(4)
Ttran=2NtTData
(5)
即
Tl=4NtTData+3Tmax
(6)
1.3 稳定部分
稳定部分的任务是当整个网络的学习状态达到了稳定的时候,每个传感器节点只需要按照各自通过学习所获取的最优发送时刻去发送数据包,如图2,当整个网络达到稳定状态的时候,各个传感器节点只需要在自己特定的时刻发送数据包,而中心节点不仅可以顺利接收到所有的数据包,还可以不用通过是否接收到返回的ACK控制包来判定数据发送的成功与否,这样也减少了返回ACK控制包的时间,大大增加了网络的吞吐量。因为水下数据传输是以广播的形式传播数据包,同时稳定状态的时隙长度还是需要避免传感器节点之间的相互干扰,所以稳定状态的时隙长度Ttx的计算公式如下:
Ts=max{Ttran+TData+Ttx}
(7)
由于Ttx小于或等于Tmax,即:
Ts=max{Ttran+TData+Tmax}
(8)
在稳定阶段,扩大时隙长度保证每个数据包在时隙内都能被接收,同时保证在下个时隙之前空间内没有其他数据包在传输,以免影响下一个时隙的数据包传输。
所以本文对L-ALOHA协议的提出是在UWS-ALOHA的基础上,通过节点间的不断学习和网络到达稳定后不需要返回ACK控制包来确认通信是否完成以及缩小时隙长度以达到提高吞吐量和减小端到端时延。
2 仿真结果与分析
仿真中节点都按照泊松分布以相同的速率产生数据包,并一跳的方式发送给中心节点。节点采用QPSK调制方式,传输速率为1 024 bit/s,声波传播速度为1 500 m/s,可用带宽(2~25) kHz,控制包ACK大小为16 bit,数据包大小为512 bit。
由于L-ALOHA协议会使得网络具有学习和稳定2种状态,所以需要来验证仿真时间对网络吞吐量的影响。设置网络拓扑结构为5个传感器节点和一个中心节点,同时将网络负载控制在1.0。
由图3可以看出,当仿真时间比较短的时候,网络的吞吐量相对而言比较低,因为在协议中,仿真时间比较短不足以支持L-ALOHA协议的学习部分的完成,所以网络吞吐量较低。随着仿真时间的增加,L-ALOHA的学习部分已经完成,整个网络的状态也趋于稳定,但是相较于达到稳定状态的时间长度,L-ALOHA协议的学习时间占整个仿真时长的比例依然较大,所以吞吐量依然较小,但较之处于学习状态的网络来说,网络的吞吐量还是略优。随着仿真时间慢慢增加,L-ALOHA协议的学习时间占整个仿真时长的比例在慢慢变小,对整个协议的性能产生的影响也在慢慢变小,所以网络的吞吐量在不断增加,最后慢慢趋于稳定,所以在以后的比较实验和验证实验中都将仿真时间设置为10 000 s,以减少仿真时间对L-ALOHA协议的性能产生影响。
图3 吞吐量随仿真时间变化Fig.3 Throughput vs. simulation time
由图4可以看出,当仿真时间比较短的时候,中心节点成功接收到的数据包数量相对较少,随着仿真时间的增加,中心节点成功接收到的数据包数量慢慢增加,当到达某一个时刻,成功接收到数据包数量开始线性增加,因为这时整个网络已经达到稳定状态,中心节点按照固定的次序依次接收来自于传感器节点的数据包,所以在网络达到了稳定状态的时候,中心节点接收到的数据包数量是呈线性增长的趋势。
图4 中心节点接收数据包数量随仿真时间变化Fig.4 The number of packets received vs. simulation time
本文还对L-ALOHA,UW-ALOHA和UWS-ALOHA这3种协议在集中式单跳网络中不同网络负载(offered load)下的吞吐量(throughput)和平均端到端时延(average end-to-end dealy)进行了仿真比较。结果为图5所示。
由图5(a)可以看出,随着网络负载的不断增加,3种协议的吞吐量也不断增加,当水下网络的负载达到一个临界值的时候,协议的吞吐量会保持在一个稳定值,这个稳定值就是协议所能取得的最大吞吐量。从图中可以看出在水下UWS-ALOHA协议性能并不会优于UW-ALOHA协议。当网络达到稳定的时候,L-ALOHA协议的吞吐量是UW-ALOHA和UWS-ALOHA协议的2.8倍左右。
由图5(b)可以看出,随着网络负载的不断增加,3种协议的平均端到端时延也不断增加,由于水下环境复杂,数据传播时延较大,导致水下网络处理数据包的速度有限,同时数据包的排队时延在不断增加,所以导致平均端到端时延也不断增加。从图中可以看出L-ALOHA协议的端到端时延明显小于UW-ALOHA协议和UWS-ALOHA协议。
图5 3种协议吞吐量和平均端到端时延随负载变化示意Fig.5 Throughput and average end-to-end delay vs. oered load for the three protocols
网络环境参数对L-ALOHA协议的性能有很大的影响。通过改变传感器节点的数量验证L-ALOHA协议性能与传感器节点数量之间的关系,在仿真实验中设置2种不同数量的传感器节点数:5和10。从图6(a)可以看出L-ALOHA协议的网络吞吐量随着传感器节点数的增加而增加。10个传感器节点的吞吐量比5个传感器节点的吞吐量增加了约16.9%。产生这种情况的原因是虽然传感器节点数的增加导致整个网络学习和达到稳定的时间变长,但是对于整个仿真时间长度来说,学习部分占的时长很小,并不会对网络的吞吐量产生太大的影响,在达到稳定状态后的相同一段时期里,传感器节点数量较多的网络模型成功发送的数据包也较多,所以导致10个传感器节点的网络吞吐量较之5个传感器会有稍许提高。
接着验证数据包大小对L-ALOHA协议性能的影响,在仿真实验中设置2种不同的数据包长度:256 bit和512 bit。从图6(b)可以看出L-ALOHA协议的吞吐量随着数据包大小的增加而增加。512 bit的数据包的吞吐量比256 bit的吞吐量增加了23.2%左右。虽然数据包长度的增加会使网络学习过程的时间变长,但是相对于整个网络的仿真时长来说,学习过程对吞吐量产生的影响很小,然而达到稳定后的相同一段时期里,数据包长度较大的网络模型发送成功的比特数更多,因此发送512 bit数据包网络的吞吐量会比发送256 bit数据包网络的吞吐量高。
图6 不同传感器节点数量下和不同数据包长度下的负载-吞吐量Fig.6 Throughput vs. oered load for different number of sensor nodes and different length of data packets
还验证了在不同传感器节点数量的网络拓扑模型下,网络通过学习使得网络达到稳定状态的时长,同样设定了2种不同的节点数量:5和10,同时将网络的负载都设置为1.0。由图7可知,网络的达到稳定状态的学习时间随着数据包的大小变化,数据包长度越长,数据包间生碰撞后的延迟时间也变长了,导致网络需要学习的时间也变长了,并且10个节点的学习时间明显大于5个节点,相同数据包长度节点数越多的网络拓扑结构数据包之间的冲突碰撞也会越多,所以也需要更多的学习时间,综上所述,网络到达稳定状态的时间长短与网络的传感器节点数量和传输数据包长度都成正相关。
图7 不同传感器节点数量下的数据包长度-到达稳态的时间Fig.7 Time the network reaches steady state vs. the length of data packet for different number of sensor nodes
综上所述,L-ALOHA协议拥有较高的吞吐量和较低的平均端到端时延,同时网络的传感器节点越多,发送的数据包长度越大,虽然使得网络达到稳定状态的时间延长,但是在一定程度上L-ALOHA协议的性能还是会更好。
3 结论
1)在L-ALOHA协议中每个传感器节点通过不断地学习来获得各自在一个时隙内的最佳传输时刻。当网络达到稳定状态的时候,传感器节点根据学习状态选定的时隙中最佳时刻来发送数据包。
2) 通过设置不同的业务量,模拟了随机分布的网络在不同负载下L-ALOHA的吞吐量性能,同时仿真结果证明该协议性能确实优于UW-ALOHA和UWS-ALOHA协议。
在未来的工作中,将会研究网络拓扑结构变化、节点的损坏、增加布设和节点位置的移动等问题对L-ALOHA协议所带来的影响。