一种基于差分的水下传感器网络适应路由的方法
技术领域
本发明总体上涉及网络通信技术领域,更具体地涉及一种水下传感器网络的路由方法。
背景技术
无线传感器网络将客观世界的物理信息同传输网络连接在一起,扩展了人们的信息获取和管控能力,将传感器网络应用到水环境中的水下传感网络(UWSN Underwater Wireless Sensor Networks)成为信息科学的重要研究领域。
由于水的吸收作用,电磁波在水中的传输距离较短。遵循IEEE 802.11b/g或IEEE802.15.4协议的节点发送的电磁波在水下的传输距离只有50-100cm。因此,水下网络节点采用声波通信。与陆地WSN相比,采用水声通信的UWSN网络面临以下挑战:
传播时延长:声波在水中的传播速度是1500m/s,比无线电波在地面的传播速度低5个量级,传统无线网络多址接入技术不适用UWSN水声信道。
信道错误率(error rate)高:声波在水下传输由于受到路径损耗、噪声干扰、多普勒扩散等因素的影响,信号出错率高。根据传输范围和调制方法的不同,水声通信的误码率在10-7-10-3之间,并随传输范围的增大而增大。
带宽有限:水声信道的带宽因受信号吸收影响极其有限,且依赖于声波频率和传输距离。大部分声音系统的工作频率在30kHz以下,IEEE 802.11的带宽可达几十兆,而工作于几千米的水声信道带宽大约是几十kbps。
能量有限:由于传输距离远、信号的发送与接收需要额外的处理以补偿信道衰落,水声通信比陆地无线电波通信能耗高;而水下节点采用干电池供电,不能利用太阳能充电。有限的能量与较大的能耗给UWSN的通信协议设计带来较大的挑战。
网络连通性差:水下传感器节点处于较为恶劣的江河、湖泊、海洋等环境,长期的浸泡、腐蚀使得节点故障率较高;其次,陆地传感器网络节点一般都是静止的,而水下传感器网络的节点可能会随着水流和其它水下活动而改变位置;相对于价格低廉的陆地节点,水下节点声学通信模块复杂、恶劣的水下环境需要增强的硬件保护装置,因此水下传感器节点价格昂贵。与陆地WSN、MANET等网络相比,UWSN具有长时延、高错误率、低带宽、能量有限、网络拓扑动态多变,这给UWSN网络的通信协议设计带来很大的挑战。UWSN亟需适应动态网络拓扑、节能且能耗在节点间分布均衡的路由协议。
目前传感器网络路由协议大致分为2类:查询路由和地理路由。查询路由中,汇聚节点发送兴趣消息指出查询任务。兴趣消息在整个网络中泛洪,以此逐跳建立从数据源到汇聚节点的反向路径。查询路由导致大量的通信开销、低能效和长延时。地理路由基于节点的位置或深度信息转发数据包。 基于矢量的路由转发协议(VBF)定义了一个从源节点到汇聚节点的路由管道,分组在该管道范围内泛洪。VBF为每个分组计算缓存时间来抑制过多的冗余转发,在一定程度上提高了能效。基于深度的路由DBR也通过将数据包抑制一段时间来避免许多的冗余转发。然而,由于采用缓存、广播转发,VBF与DBR都会带来较高的冲突、能耗和较长的延迟。此外,无论是VBF或DBR都采用贪心算法,容易导致本来连通的节点沦为孤立、失去路由。
以上的水下通信协议不能够很好的解决节点的能量受限的问题,造成网络的寿命非常的短,同时也不能够很好的解决数据的碰撞和较长的端到端的延迟问题。由于在水下传感网络中节点会随着水的流动而移动,造成网络的拓扑结构动态的变化,以上的通信协议也无法很好的解决这个问题。
发明内容
有鉴于此,本发明提供一种基于差分的水下传感器网络适应路由方法。该方法引入节点级别这一概念,并通过传感器网络固有的定位过程使每节点获取各自的级别信息和两跳以内的邻居节点信息,其中包括节点ID、级别、位置、剩余能量和生存时间等,并保存在邻居信息表中,作为路由决策参数。当收到分组时,节点根据分组首部的流向、目的地址字段,确定对于下行(广播或目的节点位置未知的单播)控制分组,基于级差的定向泛洪机制执行路由;对于上行数据分组,采用基于级差、节点密度和剩余能量的适应路由;对于已知目的节点位置信息的下行单播控制分组,采用基于级别与距离的差分地理路由。本发明的路由方法适用于水下复杂动态的网络环境,基于级差的定向泛洪和最佳下一跳的单节点转发大大提高了UWSN通信能效,通过均衡节点能耗延长了整个网络的生命期,非时间抑制的即时转发缩短了端到端的延迟。
为了达到上述目的,本发明提供了一种基于差分的水下传感器网络适应路由方法,其特征在于:包括下列几个组成部分:
(1)节点级别定义:UWSN网络与传统计算机网络通信有较大区别,SINK节点是UWSN的枢纽,又是连接到其它网络(Internet)的网关。UWSN通信以SINK节点为中心:其中的控制分组源自SINK节点,流向传感器节点,称为下行流量;数据分组来自传感器节点,以SINK节点为目的,称为上行流量。因此,那些SINK附近的传感器节点除了执行自身的感知任务,产生并发送数据外,还要为其它分组担任中继任务,负责中继其它节点的上行数据或下行控制分组,构成了UWSN网络的重要支撑。节点越靠近SINK点,担任的中继通信量越大,对网络的支撑作用越大。为了表示节点对网络的重要程度,本申请对节点进行分级:级别越小,越靠近SINK枢纽,节点在网络中地位越高。其中,SINK节点级别用0表示,则其一跳邻居级别为1,2跳邻居级别为2,以此类推。
(2)节点级别信息的获取与更新过程:
UWSN是以数据为中心的网络,而没有位置信息的感知数据失去其原有的意义。因此,节点定位是UWSN的首要过程,这一过程通常由SINK节点发起。UWSN网络中,信标节点(SINK节点)定期广播位置信息,其中包含SINK节点的自身位置和一些其它附带的诸如剩余能量、邻居节点等信息。在定位控制分组头部包含级别字段,用来填充发送节点的级别,该字段由SINK节点初始化为0,并随着该分组沿下行方向的定向泛洪逐跳增一,因此,该字段表示分组的上一跳节点级别。当第一次收到定位分组时,传感器节点提取头部字段中的级别信息,记为 ,并将其加一作为自己的级别,记为,并提取分组中节点ID、位置、剩余能量、邻居信息等,插入到邻居信息表,最后更新该分组原有的节点ID、级别、及其它相应字段为本节点相应信息后进行转发,则网络达到收敛后,每个节点都将得到自己的级别信息。
当传感器节点的级别尚未过期时收到一个定位分组时,它将对分组中的级别字段同自身的级别进行比较。如果分组中的级别较小,节点将更新自己的级别以及邻居表信息,并替换分组头部中的节点ID、级别和其它相应字段,并转发分组。否则,节点只更新邻居信息表而不转发分组。
(3)邻居节点信息记录:邻居表中记录的邻居节点信息主要来自于下行的控制分组。在SINK节点定期广播的定位分组中,其头部字段包括分组流向、SINK节点ID、转发节点ID、转发节点级别等信息,其内容字段包括转发节点位置、剩余能量及其一跳邻居信息等,另外还可捎带其它控制信息等。因此,每一个接收节点除了能够通过某种算法计算得到自己的位置、级别信息外,还能获取两跳以内的邻居信息,包括节点ID、级别、位置、剩余能量、父节点及老化时间等。
(4)基于级差的定向泛洪机制:当节点首次收到下行的控制分组时,它将分组头部的级别字段的值(表示为)加一后作为自己的级别(表示为),并将分组中相应字段的信息进行替换后转发。当已获取级别信息且该信息尚未过期的节点收到下行的广播分组或目的节点位置未知的单播分组时,节点提取分组首部级别字段的值,并与自己的级别进行比较,若< ,节点将更新邻居表中自己的级别、老化时间以及邻居信息等,并将分组中相应字段的信息进行替换后转发,否则不做任何处理。
(5)基于级差、节点密度和剩余能量的适应路由步骤:
51)当收到一个上行分组时,预期的接收节点将搜索自己的邻居表,查找有资格转发该分组的候选节点,即那些级别字段为的邻居节点。
52)在复杂动态的UWSN环境,可能存在多个邻居节点都有资格转发该分组,即存在多个候选的下一跳节点,如果这些候选节点都转发该分组,将会造成大量的冲突从而导致无谓的重传,增加了延时和能耗,这给采用大延时、高能耗水声通信的UWSN带来很高的代价。为了解决传统UWSN的广播转发带来的高冲突、高能耗弊端,适应路由将从候选节点中计算最佳的下一跳节点。
53)为了在整个网络中均衡节点的能量消耗,最大限度的提高UWSN网络寿命,适应路由在节点密度和剩余能量之间进行权衡,为每一个候选的节点计算一个期望的因子。这里为候选节点的期望因子,, 为节点密度,即候选的下一跳节点数量,为节点的剩余能量,为节点的初始能量。
54)期望因子最大的候选节点当选为最佳下一跳节点,。
(6)基于级别与距离的差分地理路由步骤:
61)当收到目的节点位置已知的下行分组时,接收节点将分组首部级别字段值与自身的级别进行比较。若则节点丢弃分组不做任何处理。
62)若,接收节点提取分组中目标节点的位置信息,记为,并查找邻居表。若在邻居表中找到比上一跳节点更接近目的节点的两跳的邻居节点。节点到目的节点的距离记为,则。节点为当前节点到节点的下一跳节点,定义节点的期望因子为。这里,为水下声波的传输范围。:
63)当接收节点在邻居表中找不到比上一跳节点更接近目的节点的两跳的邻居节点时,它将查找比上一跳节点更接近目的节点的一跳邻居节点,则是下一跳候选节点。定义节点的期望因子:
64)期望因子等于候选节点当选为最佳的下一跳节点。
本发明是一种基于级差、剩余能量、节点密度和地理位置的水下传感器网络适应路由方法。具有下列优点:
针对广播或目的节点位置未知的单播下行分组,基于级差的定向泛洪有效地避免了传统洪泛过程中大量冗余包的冲突、碰撞、重传带来的巨大开销。
与传统VBF、DBR等采用限定洪泛的UWSN路由协议相比,基于邻居表信息确定最佳下一跳的适应路由减少了冗余路径,在很大程度上提高了能量效率;适应路由采用立即路由,避免了传统水下UWSN路由对接收包的抑制时间,减少了端到端的延时。
适应路由将节点剩余能量和节点密度作为确定最佳下一跳的主要参数,便于UWSN网络的节点能耗和拓扑的均衡化,从而延长整个网络生存期。
差分地理路由在很大程度上避免了传统贪心路由容易导致的空旷区域问题,提高了UWSN通信的可靠性。
大量的仿真实验证明,基于差分的水下传感器网络适应路由协议能够在很大程度上降低能耗、减小端到端的时延,提高节点利用的公平性,延长整个网络生存期。本发明效果理想,应用前景看好
附图说明
图1是一种基于差分的水下传感器网络适应路由方法流程图;
图2是本发明一种基于差分的水下传感器网络适应路由的方法
中的分组格式。
具体实施方式
为使本发明的目的、实现方案和优点更为清晰,下面结合附图对本发明作进一步地详细描述。
参见图1,介绍本发明适应路由所用分组格式:(1)分组格式字段:数据包首部长度为9个字节,其中第一个bit为流向字段,该bit填充0,则表示数据包是由SINK节点发往普通传感器节点的信标或控制信息,沿下行路径传输;填充1表示来自于传感器节点的监测数据沿上行路径向SINK节点传输。第二个字段表示SINK节点ID,一个UWSN网络通常包括多个SINK节点汇聚数据,这些SINK节点互为备份,并为其它节点产生定位分组。第三个字段表示发送节点(上一跳节点)的级别,占8bits,该字段逐跳更新。第四个字段为发送节点ID,占16bits,该字段逐跳更新。我们可以把节点级别理解为节点的逻辑网络地址,节点ID为唯一标识节点的物理地址。第五个字段为地址分类,占1bit,用来指明下行流量的目的节点或上行流量的源节点地址(下一字段)采用位置信息还是节点ID;节点地址字段用来指明上行分组的源节点ID(主要针对不能执行数据融合的图像和音视频数据,其协议编号字段值为2,3或4)或下行分组的目的地址,占16bits;分组ID字段用来区分发送节点的不同分组,该字段由发送节点填充,因此逐跳改变。协议编号(优先级)字段用来区分应用层协议,占6bits,不同的应用协议具有不同的优先级和QoS。负载长度字段占8bits,表示分组中应用数据字段的长度;数据字段长度可变。FCS校验码长度为16bits,用来校验分组在传输过程中是否出现差错。
(2)流向、节点级别、节点地址字段与适应路由:采用本申请适应路由的分组的封装格式中,流向、发送节点级别、地址分类、节点地址等字段是区别于传统TCP/IP、ZigBee等协议封装的特色字段,作为UWSN网络基于差分的适应路由转发的重要依据。
节点地址字段:对于下行分组,当地址分类字段值为0时,表示分组目的为某地理范围内的一组传感器节点,其后的节点地址表示目的节点地理范围,相当于分组的组播地址。当该节点地址字段为0时,则表示广播分组;当地址分类字段值为1时,节点地址字段表示目的节点标识,该分组为单播分组。
流向字段:当流向字段取值为0时表示下行传输,即分组源自SINK节点,目的分为广播、组播和单播三种,分别对应于地址分类和节点地址两个字段(0 ,0)、(0 ,节点位置)、(0,节点ID)三种取值;当流向字段取值为1时表示上行传输,分组源自传感器节点,其传输目的为SINK节点。
节点级别字段:对于上行分组,接收节点首先查看发送分组的节点级别,若该级别大于自身节点级别,则进行数据融合后查找邻居信息表(路由表),计算最佳下一跳,并修改分组中发送节点信息字段内容为自身节点信息并执行分组转发,否则丢弃该分组不做任何处理。基于级别字段执行上行流量的路由转发机制保障了感知数据沿上行路径传输,避免不必要的流量转发带来的能量开销和碰撞的产生,最大限度实现节能。对于收到的下行广播分组(通常为附带了其它管理信息的定位信息),传感器节点首先查看自身节点的级别是否大于分组中的级别,是则对广播分组中的发送节点信息和应用层综合管理应用数据进行修改后泛洪转发,否则丢弃分组,不做任何处理。由此可见,UWSN中的广播流量采用基于级差的定向泛洪,即广播流量只沿着自上向下的方向传输,在减少网络流量的同时,有效地避免了路由环路的发生和TTL字段的使用。对于下行单播分组,虽然目的节点只有一个,但由于没有节点位置信息,中间节点也通过定向泛洪方式进行转发,即在UWSN网络的下行传输过程,广播与单播分组居然采用相同的的路由转发方式!对于下行组播分组,中间节点则采用差分地理路由执行转发。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。