本发明涉及一种水下传感器网络路由方法,具体说是一种空洞感知的水下传感器网络路由方法。
背景技术:
海底观测系统是人类探索海洋,开发和利用海底资源的重要前提之一,主要任务是探测未知世界、寻找海底资源、监控人类活动对海洋带来的影响。水下传感器网络(Underwater Sensor Networks,UWSNs)具有能耗大、高延迟、低带宽等特点,UWSNs研究的难点是路由选择,路由选择在功耗、拓扑结构、可扩展性、寻址技术、鲁棒性等方面面临巨大的挑战。
针对水下传感器网络能量利用率低、网络拓扑动态变化等问题,Gopi S等人提出了与路径无关的能量最优化分层路由协议(Energy Optimized Path Unaware Layered Routing Protocol,E-PULRP),该协议中传感器节点必须均匀分布,适用于以单个固定汇聚节点为中心的网络环境,实现了能量优化、动态路由选择,但它不适用于多个汇聚节点和移动汇聚节点的网络环境。
针对稀疏或密集水下网络环境,Manal Al-Bzoor等人提出了功率自调节路由协议(Adaptive Power Controlled Routing Protocol,APCRP)。该协议要求水面浮标节点的最大功率必须覆盖整个网路,否则会降低网络性能;在节点广播探测包寻找中继节点的过程中,网络延迟、碰撞等因素导致其规定时间内未收到中继节点的确认包,造成能量消耗过多、全网能量分布不均衡。
针对水下传感器网络路由协议存在的“热区”问题,Mahin Sajid等人提出了移动汇聚节点的协作(Sink Mobility with Incremental Cooperative,SMIC)路由协议,该协议感知节点的深度阈值和剩余能量,通过控制重传包和链路质量高效地利用水下有限资源,提高了吞吐量和数据包送达率,但增大了数据传输时延。
技术实现要素:
本发明的目的在于提供能在确保能量均衡分布、避免空洞的同时解决水下路由协议存在的“热区”问题的空洞感知的水下传感器网络路由方法。
本发明的目的是这样实现的:
水下传感器网络由一个浮标节点、至少1个汇聚节点、N个悬浮于水中随机分布的普通传感器节点组成,浮标节点位于水面,汇聚节点从海面到海底或从海底到海面垂直移动,每个传感器节点都具有相同的功率、处理及发送数据的能力;汇聚节点在下浮过程中到达设定位置时,广播分层建立包执行分层建立任务,下浮到最深深度时,等待一段时间后广播数据收集包执行数据收集任务,数据收集完毕后开始上浮,在上浮过程中到达设定位置时广播数据收集包执行数据收集任务,上浮到水面时将收集的数据发送给浮标节点;传感器节点周期性地检测感兴趣的数据,完成数据采集任务;传感器节点若收到分层建立信号,则进入分层建立阶段并建立同心球壳分层结构,传感器节点若收到数据收集信号,则进入数据收集阶段,各传感器节点建立到汇聚节点的路径并发送数据。
数据采集阶段:传感器节点周期性地监测其感兴趣的数据,并将监测数据存入其缓冲区或替换其缓冲区中的最久记录。
所述广播分层建立包执行分层建立任务中具体包括:汇聚节点下浮一段距离后到达设定位置时广播分层建立包,该分层建立包包括所处分层结构中的层级、剩余能量、标记节点类型的标志位和包的类型;收到分层建立包类型的传感器节点根据分层建立包的层级更新路由表信息,形成以汇聚节点为中心的同心球壳分层结构,各传感器节点处于不同的同心球壳中。
数据收集阶段具体包括:收到数据收集信号或数据包的传感器节点根据路由表信息选择下一跳节点;传感器节点若寻找到下一跳节点,则将其监测数据以数据包的形式直接发送给下一跳节点,重复上述过程,直到将数据发送给汇聚节点。
本发明提供了一种空洞感知的水下传感器网络路由方法,是一种针对三维水下环境的路由方法,在确保能量均衡分布、避免空洞的同时解决了水下路由协议存在的“热区”问题。包括数据采集、分层建立和数据收集三个阶段。
本发明的有益效果是:本发明考虑了同层传输及节点的剩余能量,同时避免了同层循环传输、热区、空洞等情况的发生,提高了数据包送达率,延长了网络寿命,并使全网能量均衡分布。
附图说明
图1是本发明的路由方法的流程框图。
图2是本发明的网络模型结构示意图。
图3是本发明的分层建立阶段流程图。
图4是本发明的数据收集阶段流程图。
具体实施方式
下面结合附图举例对本发明作更详细的描述。
结合图1,本发明的路由方法如下:
汇聚节点在下浮过程中到达特定位置时广播分层建立包执行分层建立任务;下浮到最深深度时广播分层建立包执行分层建立任务,等待一段时间后广播数据收集包执行数据收集任务,数据收集完毕后开始上浮;在上浮过程中到达特定位置时广播数据收集包执行数据收集任务;上浮到水面时将收集的数据发送给浮标节点。节点周期性地检测感兴趣的数据,完成数据采集任务;节点若收到分层建立信号,则进入分层建立阶段并建立同心球壳分层结构;节点若收到数据收集信号,则进入数据收集阶段,各节点建立到汇聚节点的路径并发送数据。
(1)数据采集阶段:传感器节点周期性地监测其感兴趣的数据,并将监测数据存入其缓冲区或替换其缓冲区中的最久记录。
(2)分层建立阶段:汇聚节点下浮一段距离后到达特定位置时广播分层建立包,该包包括该节点所处分层结构中的层级、剩余能量、标记节点类型的标志位和包的类型;收到分层建立包类型的节点根据分层建立包的层级更新其路由表信息。该阶段形成以汇聚节点为中心的同心球壳分层结构,各节点处于不同的同心球壳中。
(3)数据收集阶段:汇聚节点上浮到特定位置时广播数据收集信号收集数据。收到数据收集信号或数据包的传感器节点根据其路由表信息选择下一跳节点;传感器节点若寻找到下一跳节点,则将其监测数据以数据包的形式直接发送给下一跳节点。重复上述过程,直到将数据发送给汇聚节点。
本发明将孤立节点、能量已耗尽的节点、父节点与兄弟节点都为空洞节点的节点定义为空洞节点,将父节点不为空洞节点且有足够能量进行数据传输的节点定义为高级节点,将父节点为空洞节点且兄弟节点不为空洞节点且有足够能量进行数据传输的节点定义为低级节点。
结合图2,本发明的具体网络模型如下:
整个网络环境由水面的一个浮标节点、至少1个汇聚节点、N个悬浮于水中随机分布的普通传感器节点组成;每个传感器节点都具有相同的功率、处理及发送数据的能力。
(1)汇聚节点的移动模型
汇聚节点从海面到海底或从海底到海面垂直移动。汇聚节点移动模型形式化如下:
sxl=sx0 (1)
szl=sz0+k*h0,k∈{0,1,2,...,n|n<=[(Ddepth-sz0)/h0]} (2)
sxh=sx0+w0 (3)
szh=sz0+([(Ddepth-sz0)/h0]-k)*h0,k∈{0,1,2,...,n|n<=[(Ddepth-sz0)/h0]} (4)
其中,k为整数;w0代表相邻汇聚节点之间的水平间隔;(sxl,0,szl)代表汇聚节点从水面到水底垂直移动的坐标;(sxh,0,szh)代表汇聚节点从水底到水面垂直移动的坐标;(sx0,0,sz0)代表汇聚节点的初始坐标;h0代表汇聚节点每次移动的深度差的绝对值;Ddepth代表仿真环境的最大深度;[EXP]表示小于或等于EXP的最大整数。
(2)能量消耗模型
水下环境噪音模型N(f)的表达式如下:
N(f)=Nt(f)+Ns(f)+Nw(f)+Nth(f) (5)
其中,Nt(f)为湍流噪声,Ns(f)为船舶噪声,Nw(f)为风噪声,Nth(f)为热噪声。
水下声音信号随着距离变化的能量衰减模型的表达式如下:
其中,表示扩散损失,表示吸收损失,A0为常数,k为扩散系数,表示能量传播的几何方式,f为声音信号频率,a(f)表示吸收系数,为水下传播的距离。
接收端的信噪比的表达式如下:
其中,P(f)为信号在接收端的功率,DI表示方向指数,即接收端方向敏感性函数。
覆盖范围的声功率的表达式如下:
其中,表示覆盖半径为的带宽。
声信号消耗功率的表达式如下:
其中,η为常数,DI为方向系数,接收端方向敏感性的函数。
每个包P传输距离时消耗的能量为表达式如下:
其中,L为包的长度,B为信道带宽(传输率),Pr为接受1bit信息消耗的功率。
网络总能量消耗用Etotal表示,表达式如下:
其中,hi-hi-1表示第i层与第i-1之间的距离,j代表发送的最后一个包,i表示包j所在层。
衡量全网中能量是否均衡分布,用an表示,表达式如下:
其中,nnodes表示网络中传感器节点的总数,Eres(mi)为传感器节点mi的剩余能量,nj代表任意一个节点。
(3)数据采集阶段
传感器节点周期性地监测其感兴趣的数据,并将监测数据存入其缓冲区或替换其缓冲区中的最久记录。
(4)分层建立阶段
结合图3,本发明的分层建立阶段具体过程如下:
汇聚节点在下浮过程中到达特定位置时广播分层建立包,若收到分层建立包类型的节点所在层级等于该包层级且该包的剩余能量大于阈值,则更新其路由表,使路由表存放剩余能量最大的高级节点;若收到分层建立包类型的节点所在层级大于该包层级且该包的剩余能量大于阈值,则该节点层级为该包层级加1并更新其路由表,使路由表存放剩余能量最大的高级节点或低级节点,等待一段时间后,广播分层建立包并重复此过程;否则丢弃该包。该阶段形成以汇聚节点为中心的同心球壳分层结构,各节点处于不同的同心球壳中。
(5)数据收集阶段
结合图4,本发明的数据收集阶段具体过程如下:
1)汇聚节点在上浮过程中到达特定位置时广播数据收集包。
2)收到数据收集包或数据包的传感器节点若其路由表为空,则将数据包存入其缓冲区或替换其缓冲区中的最久记录;若其路由表中存在高级节点且高级节点所在层级小于路由表存储的层级,则该高级节点作为下一跳节点,执行3);若其路由表中存在低级节点且低级节点所在层级小于路由表存储的层级,则该低级节点作为下一跳节点,执行3);若其路由表中存在高级节点且高级节点所在层级等于路由表存储的层级,则该高级节点作为下一跳节点。
3)传感器节点若寻找到下一跳节点,则将其监测数据以数据包的形式直接发送给下一跳节点,执行2),直到将数据包发送给汇聚节点。
本发明将传统网络模型中靠近水面的节点的网络负载均衡到以汇聚节点的移动轨迹为中心线的对称区域,解决了“热区”问题;考虑了同层传输及节点的剩余能量,同时避免了同层循环传输、空洞等情况的发生,提高了数据包送达率,缩短了端到端时延,延长了网络寿命,使全网能量均衡分布。