[发明专利]基于动态网络空洞规避的水下传感器网络路由协议有效
申请号: | 201910582222.1 | 申请日: | 2019-06-30 |
公开(公告)号: | CN110461009B | 公开(公告)日: | 2021-05-28 |
发明(设计)人: | 张世广;张钢;刘春凤 | 申请(专利权)人: | 天津大学 |
主分类号: | H04W24/06 | 分类号: | H04W24/06;H04W40/10;H04W40/22;H04W40/34;H04W84/18 |
代理公司: | 天津市北洋有限责任专利代理事务所 12201 | 代理人: | 杜文茹 |
地址: | 300072*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 动态 网络 空洞 规避 水下 传感器 路由 协议 | ||
1.一种基于动态网络空洞规避的水下传感器网络路由协议的方法,其特征在于,包括如下步骤:
1)对水下每个节点的移动模式进行建模,使节点能够在一个球面上有规律地移动;所述的建模包括:
设水下节点N的初始位置坐标为(x0,y0,z0),绳索的长度为r,锚定点N0的坐标为(x0,y0,0),在球坐标系中节点的移动模型为:
其中r=z0,θ=θ(t),λ=λ(t),t表示模型的运行时间,θ0表示节点能够摆动的最大角度,θ表示节点的摆动角度,λ表示节点的移动方向;
在节点移动过程中,当节点到达目标位置后,相对静止设定时间,然后再开始进行下一次移动;
2)由上到下建立节点之间的虚拟路由路径,所述的路径绕过网络空洞区域;
所述的节点之间的虚拟路由路径,是在整个网络工作过程中,每个汇聚节点周期性地发送控制数据包,广播自己的转发方向、已经建立的虚拟路径跳数和最近一次收到的控制数据包的序列号,每个水下节点在收到控制数据包后,如果所述的水下节点最近一次收到的控制数据包的序列号小于当前收到的控制数据包的序列号,或者最近一次收到的控制数据包的序列号与当前收到的控制数据包的序列号相同,但当前收到的控制数据包所记录的已经建立的虚拟路径跳数小于所述节点所记录的已经建立的虚拟路径跳数,则将所述的水下节点所希望下一跳节点的转发方向设置为控制数据包中所记录的的节点的转发方向,将所述的水下节点的转发方向设置为控制数据包传来的方向,并将自己记录的已经建立的虚拟路径跳数加一,然后所述的水下节点也将自己的状态封装进新的控制数据包,再进行广播;
3)通过已建立的虚拟路由路径转发数据包;包括:
设节点S是当前的转发节点,n1和n2是两个候选节点,假设节点S的优先级函数的第一项是关于深度差d的一个线性函数,表示为:
f(d)=α·d+β
式中,α和β表示求解的参数,
假设候选节点n1去转发,而候选节点n2不去转发,则候选节点n1的延迟时间要比候选节点n2短,所以有:
f(d1)f(d2)
式中,d1表示候选节点n1的深度,d2表示候选节点n2的深度;候选节点n2不仅要收到节点S传来的数据包,还要收到候选节点n1的数据包来抑制自己的转发,设从节点S到候选节点n1的传输时延为t1,从节点S到候选节点n2的传输时延为t2,从候选节点n1到候选节点n2的传输时延为t12,于是有:
t1+f(d1)+t12≤t2+f(d2)
将f(d)=α·d+β代入式中的f(d1)和f(d2)得
因为深度差越大,节点间的传输延迟越小,所以α为负值,则:
考虑到候选节点n1和n2的最差的位置,令其中τ=R/v表示两节点间的最大传输时延,使用δ来表示d1-d2,则:
将代入f(d)=α·d+β,并设节点S与深度差最大的候选节点间的传输延迟为0秒,则
将求出的和代入f(d)=α·d+β,即为节点的优先级函数:
其中R代表了节点的传输半径;τ=R/v,代表一跳的最大传播时延;δ越小,节点的延迟时间越长,这会导致端到端时延增加,但是限制了更多的冗余路径,节省了能量;
优先级函数的第二项考虑转发节点的剩余能量占比,令节点S因能量因素所产生得延迟为
其中residual_energy表示节点当前的剩余能量,inital_energy表示节点初始时的能量;
综上所述,在选择下一跳时的优先级函数delay(node)为
delay(node)=f(d)+g(residual_energy)
通过该函数,既限制了数据包的冗余传输,又平衡了节点的剩余能量,增强了节点的传输能力,延长了网络的生存期
4)根据节点的移动导致的拓扑变化动态地进行路径重建;包括:
首先,每个节点将自己与邻居节点及二跳节点视为同一簇,即在动态路由重建的过程中,利用邻居节点和二跳节点的转发方向来更新位置变动节点的转发方向;节点发生移动时立刻向周围的节点发送控制数据包,控制数据包中保存着位置变动节点的编号,该控制数据包的最大跳数为2,这是为了只有位置变动节点的邻居节点和二跳节点可以收到该控制数据包;周围节点在收到位置变动节点发来的控制数据包后,会向所述的位置变动节点回复一个控制数据包,所述的控制数据包中包装着周围节点的深度、转发方向、已经建立的虚拟路径跳数和最近一次收到的控制数据包的序列号;位置变动节点在收到回复的控制数据包后,会更新自己的状态,并将回复的控制数据包的最大跳数设置为2,防止控制数据包在整个网络的蔓延;
然后,节点如果发生了移动,会进行分簇操作,并向同簇内的其他节点发送节点发生移动时的控制数据包,因为该节点的位置发生了移动,要清空该节点的邻居表,等待收到同簇内其它节点回复的控制数据包来更新邻居表;如果位置移动的节点在准备发送数据包时,发现邻居表为空,则会等待0.5s后再次检查邻居表,在5次尝试后,若邻居表仍然为空,则丢弃该数据包;同簇内其他节点在收到位置变动节点发来的控制数据包后,会向位置变动节点发送自己的状态信息,然后将位置变动节点的条目从邻居表中删除,等待更新;位置变动节点在收到控制数据包后,同样会向邻居节点和二跳节点广播控制数据包,经过在簇内发送控制数据包,所有的节点都会更新邻居表,适应了在当前拓扑中路由数据包的需要。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于天津大学,未经天津大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910582222.1/1.html,转载请声明来源钻瓜专利网。