一种基于最短跳距的水下节点分层方法转让专利

申请号 : CN202010568241.1

文献号 : CN111866983B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 杜秀娟韩多亮

申请人 : 青海师范大学

摘要 :

本发明涉及一种基于最短跳距的水下节点分层方法,包括S1、当节点收到层级比其自身层级小的节点发送的控制报文,判断自身层级是否为初始值0xFF,并根据其结果关系执行S2步骤;S2、判断当前发送节点的层级与当前接收节点的层级的关系,并根据其大小关系执行S2步骤;S3、判断当前发送节点到当前接收节点距离与当前发送节点到上一次更新层级的发送节点距离的关系并根据其大小关系执行S4步骤;S4、当前发送节点根据最短跳距的传输方式将数据传输到上一次更新层级的发送节点;S5、每次收到控制报文,重复步骤S1‑S4。本发明的优点在于:通过计算节点间的传输距离实现两跳传输,降低了数据传输的能耗,有效节省了能量且对交付率和平均延时的影响很小。

权利要求 :

1.一种基于最短跳距的水下节点分层方法,其特征在于:它包括以下内容:

S0、网络中所有节点均已知自身的位置信息并将其携带在控制报文中,对网络中的所有节点进行节点层级配置;

S1、当前节点收到控制报文,判断自身层级与当前发送节点的层级的大小关系,如果自身层级小于当前发送节点的层级,则自身层级保持不变,否则,执行步骤S2;

S2、判断当前节点的层级是否为初始值0xFF,如果是,则将当前发送节点的层级加1后作为自身的层级,否则,执行步骤S3;

S3、计算当前发送节点到当前节点的距离和上一次更新层级的发送节点到当前节点的距离;

S4、判断当前发送节点到当前节点的距离与上一次更新层级的发送节点到当前节点距离的关系,如果当前发送节点到当前节点的距离大于上一次更新层级的发送节点到当前节点的距离,则当前节点层级保持不变,否则,执行步骤S5;

S5、将当前发送节点的层级加1后作为自身的层级;

S6、节点每次收到控制报文后,重复步骤S1-S5完成自身的层级更新。

2.根据权利要求1所述的一种基于最短跳距的水下节点分层方法,其特征在于:步骤S1中如果自身层级小于当前发送节点的层级,则自身层级保持不变,否则进行如下步骤:判断当前节点的层级是否为初始值0xFF,如果是,则将当前发送节点的层级加1后作为自身的层级;层级更新完毕,否则计算当前发送节点到当前节点的距离和上一次更新层级的发送节点到当前节点的距离;判断当前发送节点到当前节点的距离与上一次更新层级的发送节点到当前节点距离的关系,如果当前发送节点到当前节点的距离大于上一次更新层级的发送节点到当前节点的距离,则当前节点层级保持不变;否则,将当前发送节点的层级加1后作为自身的层级,层级更新完毕;任意节点收到控制报文后重复步骤S1-S5。

3.根据权利要求1所述的一种基于最短跳距的水下节点分层方法,其特征在于:当前发送节点到当前节点的距离小于上一次更新层级的发送节点到当前节点的距离,则将当前发送节点的层级加1后作为自身的层级。

4.根据权利要求1所述的一种基于最短跳距的水下节点分层方法,其特征在于:所述当前发送节点根据最短跳距的传输方式将数据传输到上一次更新层级的发送节点包括:当前发送节点将数据传输给层级比自身小且与自身距离最近的当前转发节点,实现一跳传输;

当前转发节点再将数据传输至下一跳转发节点或目标节点,实现两跳传输。

5.根据权利要求1-4任意一项所述的一种基于最短跳距的水下节点分层方法,其特征在于:所述节点层级配置步骤包括:S01、网络初始化后,目标节点广播控制报文到传输半径内的第一层级节点;

S02、第一层级节点收到控制报文后提取控制报文头部的目标节点的层级数,将自身的层级更新为目标节点层级数加1,并将控制报文转发到下一层级节点;

S03、下一层节点提取控制报文头部的层级,与自身的层级进行比较,若自身层级小于控制报文头部的层级,则自身层级保持不变;否则判断自身层级是否为0xFF,若是,则将层级更新为报文头部的层级加1,否则,计算当前发送节点到当前节点的距离和上一次更新层级的发送节点到当前节点的距离;判断当前发送节点到当前节点的距离与上一次更新层级的发送节点到当前节点距离的关系,如果当前发送节点到当前节点的距离大于上一次更新层级的发送节点到当前节点的距离,则当前节点层级保持不变;否则,将当前发送节点的层级加1后作为自身的层级,层级更新完毕;

S04、重复S03步骤的内容,直到所有节点的层级都配置更新完毕。

说明书 :

一种基于最短跳距的水下节点分层方法

技术领域

[0001] 本发明涉及水声传感网络技术领域,尤其涉及一种基于最短跳距的水下节点分层方法。

背景技术

[0002] 水声网络(Underwater Acoustic Networks,UANs)作为人类认识、探索、开发和利用海 洋资源的重要手段,成为越来越多的科研工作者研究的热点。在科研方面,UANs在海洋资 源勘探、海洋科学研究、海洋灾难探测、环境污染监测等方面有着广泛的应用前景;在军事 方面,未来的作战中,海陆空一体化信息网络将发挥重大作用,海洋战场占据重要地位。UANs 具有目标追踪、导航定位、信息传输等功能,UANs的研究、发展与应用协同陆空作战实时 通信,可以有效提升作战效率;在经济与社会方面,海洋因其鱼和贝类能够为人类提供滋味 鲜美、营养丰富的蛋白食物,而被称为未来的“粮仓”,而我国的海洋面积占国土面积的31.22%, 因此,研究UANs对资源勘探和能源开发有重要的使用价值。
[0003] 目前水声网络(Underwater Acoustic Networks,UANs)中提出的部分路由协议(如:DBR、 VBF等)在建立路由的过程中易形成“空旷区域”,导致数据不能成功送达至上一次更新层级 的发送节点,降低了网络的包交付率;数据重传和长距离传输会带来额外的能耗,增加网络 开销,降低网络效率。如图1所示,以DBR协议为例,根据DBR协议源节点将数据发送出 去后,转发节点F和节点N1将会收到数据包,但是N1的深度大于源节点S,不能作为转发 节点;只有节点F深度小于源节点S可以转发数据,但是节点F的传输范围内没有比节点F 深度小的节点,所以本次数据将无法传输到sink节点,就形成了“空旷区域”的问题,进而 影响整个网络的数据传输通信。
[0004] 为解决“空旷区域”的问题,目前多采用节点分层算法,每个传感器节点根据收到的hello 消息和分层算法获得自身的层级,越靠近sink的节点其层级越小,数据传输时,数据由层级 大的节点传输至层级小的节点,最终传输至sink节点。现有的节点分层方案主要有基于超级 节点广播传输功率探测包的分层方法、基于sink节点与普通节点距离的分层方法和基于最小 跳数的分层方法。
[0005] 然而基于超级节点广播传输功率探测包的分层方法、基于sink节点与普通节点距离的分 层方法中均需要频繁的更改传感器节点的发送功率,在真实环境中测试时更改发送功率是一 项比较繁琐的工作,且过大的发送功率也会带来较大的能量消耗,增加整体网络的开销;在 基于最小跳数的分层方法中,易形成单跳之间的长距离传输,导致能耗增加。
[0006] 因此,如何设计出合适的水下节点分层方案以解决上述问题,是现阶段急需考虑的。

发明内容

[0007] 本发明的目的在于克服现有技术的缺点,提供了一种基于最短跳距的水下节点分层方法, 解决了目前采用的节点分层算法存在的不足。
[0008] 本发明的目的通过以下技术方案来实现:一种基于最短跳距的水下节点分层方法,它包 括以下内容:
[0009] S1、当前节点收到控制报文,判断自身层级与当前发送节点的层级的大小关系,如果自 身层级小于当前发送节点的层级,则自身层级保持不变;
[0010] S2、判断当前节点的层级是否为初始值0xFF,如果是,则将当前发送节点的层级加1后 作为自身的层级;
[0011] S3、计算当前发送节点到当前节点的距离和上一次更新层级的发送节点到当前节点的距 离;
[0012] S4、判断当前发送节点到当前节点的距离与上一次更新层级的发送节点到当前节点距离 的关系,如果当前发送节点到当前节点的距离大于上一次更新层级的发送节点到当前节点的 距离,则当前节点层级保持不变;
[0013] S5、将当前发送节点的层级加1后作为自身的层级;
[0014] S6、节点每次收到控制报文后,重复步骤S1-S5完成自身的层级更新。
[0015] 进一步地,步骤S1中如果自身层级小于当前发送节点的层级,则自身层级保持不变,否 则进行如下步骤:
[0016] 判断当前节点的层级是否为初始值0xFF,如果是,则将当前发送节点的层级加1后作为 自身的层级;层级更新完毕,否则计算当前发送节点到当前节点的距离和上一次更新层级的 发送节点到当前节点的距离;判断当前发送节点到当前节点的距离与上一次更新层级的发送 节点到当前节点距离的关系,如果当前发送节点到当前节点的距离大于上一次更新层级的发 送节点到当前节点的距离,则当前节点层级保持不变;否则,将当前发送节点的层级加1后 作为自身的层级,层级更新完毕;任意节点收到控制报文后重复步骤S1-S5。
[0017] 进一步地,当前发送节点到当前节点的距离小于上一次更新层级的发送节点到当前节点 的距离,则将当前发送节点的层级加1后作为自身的层级。
[0018] 进一步地,所述当前发送节点根据最短跳距的传输方式将数据传输到上一次更新层级的 发送节点包括:
[0019] 当前发送节点将数据传输给层级比自身小且与自身距离最近的当前转发节点,实现一跳 传输;
[0020] 当前转发节点再将数据传输至下一跳转发节点或目标节点,实现两跳传输。
[0021] 进一步地,所述方法还包括对网络中的所有节点进行节点层级配置的步骤,所述节点层 级配置的步骤设置于所述步骤S1之前。
[0022] 进一步地,所述节点层级配置步骤包括:
[0023] 网络初始化后,目标节点广播控制报文到传输半径内的第一层级节点;
[0024] 第一层级节点收到控制报文后提取控制报文头部的目标节点的层级数,将自身的层级更 新为目标节点层级数加1,并将控制报文转发到下一层级节点;
[0025] 下一层节点提取控制报文头部的层级,与自身的层级进行比较,若自身层级小于控制报 文头部的层级,则自身层级保持不变;否则判断自身层级是否为0xFF,若是,则将层级更新 为报文头部的层级加1,否则,计算当前发送节点到当前节点的距离和上一次更新层级的发 送节点到当前节点的距离;判断当前发送节点到当前节点的距离与上一次更新层级的发送节 点到当前节点距离的关系,如果当前发送节点到当前节点的距离大于上一次更新层级的发送 节点到当前节点的距离,则当前节点层级保持不变;否则,将当前发送节点的层级加1后作 为自身的层级,层级更新完毕;
[0026] 重复第三步骤的内容,直到所有节点的层级都配置更新完毕。
[0027] 本发明的有益效果为:一种基于最短跳距的水下节点分层方法,通过计算节点间的传输 距离实现两跳传输,降低了数据传输的能耗,有效节省了能量且对交付率和平均延时的影响 很小。

附图说明

[0028] 图1为本发明方法的流程示意图;
[0029] 图2为基于最短跳距的分层局部拓扑图;
[0030] 图3为θ=0°,d=10时,d1与相对能耗的关系图;
[0031] 图4为θ=0°,d、d1与相对能耗的关系图;
[0032] 图5为θ=30°,d、d1与相对能耗的关系图;
[0033] 图6为θ=45°,d、d1与相对能耗的关系图;
[0034] 图7为θ=60°,d、d1与相对能耗的关系图;
[0035] 图8为θ=90°,d、d1与相对能耗的关系图;
[0036] 图9为节点个数与交付率对比图;
[0037] 图10为节点个数与交付率对比图;
[0038] 图11为节点个数与延时对比图。

具体实施方式

[0039] 为使本申请实施例的目的、技术方案和有点更加清楚,下面将结合本申请实施例中附图, 对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请 一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件 可以以各种不同的配置来布置和设计。因此,以下对附图中提供的本申请的实施例的详细描 述并非旨在限制要求保护的本申请的保护范围,而是仅仅表示本申请的选定实施例。基于本 申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例, 都属于本申请保护的范围。下面结合附图对本发明做进一步的描述。
[0040] 如图1所示,本发明涉及一种基于最短跳距的水下节点分层方法,它包括以下内容:
[0041] S1、当前节点收到控制报文,判断自身层级与当前发送节点的层级的大小关系,如果自 身层级小于当前发送节点的层级,则自身层级保持不变;
[0042] S2、判断当前节点的层级是否为初始值0xFF,如果是,则将当前发送节点的层级加1后 作为自身的层级;
[0043] S3、计算当前发送节点到当前节点的距离和上一次更新层级的发送节点到当前节点的距 离;
[0044] S4、判断当前发送节点到当前节点的距离与上一次更新层级的发送节点到当前节点距离 的关系,如果当前发送节点到当前节点的距离大于上一次更新层级的发送节点到当前节点的 距离,则当前节点层级保持不变;
[0045] S5、将当前发送节点的层级加1后作为自身的层级;
[0046] S6、节点每次收到控制报文后,重复步骤S1-S5完成自身的层级更新。
[0047] 进一步地,步骤S1中如果自身层级小于当前发送节点的层级,则自身层级保持不变,否 则进行如下步骤:
[0048] 判断当前节点的层级是否为初始值0xFF,如果是,则将当前发送节点的层级加1后作为 自身的层级;层级更新完毕,否则计算当前发送节点到当前节点的距离和上一次更新层级的 发送节点到当前节点的距离;判断当前发送节点到当前节点的距离与上一次更新层级的发送 节点到当前节点距离的关系,如果当前发送节点到当前节点的距离大于上一次更新层级的发 送节点到当前节点的距离,则当前节点层级保持不变;否则,将当前发送节点的层级加1后 作为自身的层级,层级更新完毕;任意节点收到控制报文后重复步骤S1-S5。
[0049] 进一步地,当前发送节点到当前节点的距离小于上一次更新层级的发送节点到当前节点 的距离,则将当前发送节点的层级加1后作为自身的层级。
[0050] 进一步地,所述当前发送节点根据最短跳距的传输方式将数据传输到上一次更新层级的 发送节点包括:
[0051] 当前发送节点将数据传输给层级比自身小且与自身距离最近的当前转发节点,实现一跳 传输;
[0052] 当前转发节点再将数据传输至下一跳转发节点或目标节点,实现两跳传输。
[0053] 进一步地,所述方法还包括对网络中的所有节点进行节点层级配置的步骤,所述节点层 级配置的步骤设置于所述步骤S1之前。
[0054] 进一步地,所述节点层级配置步骤包括:
[0055] 网络初始化后,目标节点广播控制报文到传输半径内的第一层级节点;
[0056] 第一层级节点收到控制报文后提取控制报文头部的目标节点的层级数,将自身的层级更 新为目标节点层级数加1,并将控制报文转发到下一层级节点;
[0057] 下一层节点提取控制报文头部的层级,与自身的层级进行比较,若自身层级小于控制报 文头部的层级,则自身层级保持不变;否则判断自身层级是否为0xFF,若是,则将层级更新 为报文头部的层级加1,否则,计算当前发送节点到当前节点的距离和上一次更新层级的发 送节点到当前节点的距离;判断当前发送节点到当前节点的距离与上一次更新层级的发送节 点到当前节点距离的关系,如果当前发送节点到当前节点的距离大于上一次更新层级的发送 节点到当前节点的距离,则当前节点层级保持不变;否则,将当前发送节点的层级加1后作 为自身的层级,层级更新完毕;
[0058] 重复第三步骤的内容,直到所有节点的层级都配置更新完毕。
[0059] 具体地,假设网络中所有节点均已知自身的位置信息并将其携带在控制报文中,网络初 始化时,sink节点(目的节点)广播控制报文,其它非sink节点接收到控制报文后,按照以 下步骤更新层级:
[0060] 步骤1、判断当前发送节点层级lp是否为层级初始值0xFF,若是,则提取发送控制报文 的节点的层级l,将其自身的层级更新为l+1;否则,执行步骤2。
[0061] 步骤2:判断发送控制报文的节点的层级l是否大于当前发送节点层级lp,若l>lp,则层 级保持不变;否则,执行步骤3。
[0062] 步骤3:计算当前发送节点与当前接收节点的距离dsrc,并计算当前发送节点与上一次更 新层级的发送节点的距离dsrp,若dsrc>dsrp,则当前发送节点的层级保持不变,将当前发送 节点的信息添加至邻居表;否则,执行步骤4;
[0063] 步骤4:提取层级字段,当前接收节点的层级l,将其自身的层级更新为l+1,更新邻居 表。
[0064] 如图2所示,网络初始化后sink节点(目的节点)广播控制报文后,转发节点F1、F2、 F将首次收到控制报文,将报文头部sink节点的层级0提取出来,将自身的层级更新为1, 并将控制报文转发出去;然后转发节点F会收到F1、F2的控制报文(由于F1、F2的层级均为 1,下面将不再区分收到由F1、F2转发控制报文的先后顺序),由于F、F1和F2的层级均为1, 发送者层级大于当前节点层级的条件不成立,因此,F将计算自身到sink节点的距离和自身 到F1、F2的距离,从图中可以看出,F到sink节点的距离较远,因此,F提取报文头部F1、 F2的层级1,加1后将自身的层级更新为2。
[0065] 利用能耗模型对基于最小跳数的分层方法与本发明的方法进行分析对比;假设F至sink 节点的距离为d,F至F1、F1至sink节点的距离分别为d1、d2;数据由F直接传输至sink 节点的能耗为E,由F发送至F1或F2再转发至sink节点的能耗为E',则根据能耗模型得到:
[0066] E=PsTP=PrTPA(d)
[0067] E'=PsTP=PrTPA(d1)+PrTPNA(d2)
[0068] 其中, Ps=PrA(d),k=1.5。由于传输时延Tp相同、所有节点的发送功率 Ps均一致,因此,E和E'计算公式如下:
[0069]
[0070]
[0071] 假设d1与d之间的夹角为θ,则根据余弦定理可得:
[0072]
[0073] 当θ=0°时,则:
[0074]
[0075] 用MATLAB仿真分析比较了E和E'的关系,将E和E'称为相对能耗,仿真中假设d的 取值范围为(0,5),单位:Km,d1的取值在d的取值范围内变化,取值分别为:θ的角度在(0°,90°)范围内变化,信道的中心频率为 
10Khz。
[0076] 如图3所示,θ=0°,d=10时,一跳传输至sink节点的相对能耗保持不变,但随着d1的 增大,两跳传输至sink节点的相对能耗逐渐减小,当 时,两跳传输至sink节点的 相对能耗达到最低;由于θ=0°,d=10且d1的值始终小于d,一跳传输至sink节点的相对能 耗总大于两跳传输至sink节点的相对能耗。
[0077] 如图4所示,当θ=0°,d、d1分别在其范围内变化时,当 时,两跳传输至sink 节点的相对能耗小于一跳传输至sink节点能耗,且能耗达到最小值。
[0078] 如图4-图8所示,随着θ逐渐增大,两跳传输至sink节点的相对能耗逐渐大于一跳传输 至sink节点的相对能耗,当θ=90°时,d1的长度大于d,因此,两跳传输至sink节点的相对 能耗完全大于一跳传输至sink节点的相对能耗。综合图3、4、5、6、7、8,当d1>d时,两 跳传输至sink节点的相对能耗大于一跳传输至sink节点的相对能耗;当d1<d时,两跳传输 至sink节点的相对能耗小于一跳传输至sink节点的相对能耗;且当 时,两跳传输至sink 节点的相对能耗达到最小值。
[0079] 综合数学分析和MATLAB仿真分析的结果,d1<d且θ=<90°时,两跳传输至sink节点 的相对能耗小于一跳传输至sink节点的相对能耗,因此,数据转发时采用分层多跳传输,可 以有效节省能量。
[0080] 本发明用NS-3仿真工具对分层方案进行性能评估。在仿真中,用基于最短跳距的分层方 案替换了LB-AGR路由协议中基于最小跳数分层的方案,从数据包交付率、节点平均能耗和 端到端的平均延时三个方面进行了对比分析。实验场景设置如下:将15-45个节点随机部署 在6000m×6000m×3000m的三维环境中,仿真参数如下表:
[0081]
[0082]
[0083] 包交付率(Packet delivery ratio,PDR):是指sink节点成功接收的包数与源节点发送的 包数之比,PDR计算公式如下:
[0084]
[0085] 式中n为仿真实验的数量,Psend为源节点发送的数据包的数量,Prece为sink节点接收的 数据包的数量。
[0086] 节点平均能耗(Node Energy Consumption,NAEC):指一次仿真实验中节点发送数据包、 接收数据包和处于空闲状态的能量之和与网络中节点数量的比值,计算公式如下:
[0087]
[0088] 式中Nnumber表示节点的数量,Esend、Erece、Eidle分别表示节点发送数据、接收数据和处 于空闲状态消耗的能量。
[0089] 平均端到端的延时(Average End-To-End delay,AEED):指一次仿真实验中,sink节点 接收数据的时间与源节点发送数据时间的差的总和数据传输次数的比值,计算公式如下:
[0090]
[0091] 式中,Ntrans表示一次仿真实验中数据传输的次数,Tsink和Tsource分别表示sink节点接收数 据的时间和源节点发送数据的时间。
[0092] 本发明仿真测试了节点个数与交付率、节点平均能耗和网络端到端的平均延时的关系; 如图9所示,随着节点数量的增多,两种分层方案的交付率均保持在90%以上。基于最短跳 距的分层方案的交付率略低于基于最小跳数的分层方案,但差值均保持在1%-3%之间。
[0093] 如图10所示,随着节点数量的增多,由于基于最短跳距的分层方案可以实现短距离多跳 传输,因此其平均能耗小于基于最小跳数的分层方案的平均能耗。
[0094] 如图11所示,随着节点数量的增多,两种分层方案的平均延时基本保持不变,但由于基 于最短跳距的分层方案中,传输跳数的增加,其平均延时大于基于最小跳数的分层方案的平 均延时。
[0095] 本发明为了均衡sink附近节点的能耗,其附近节点的层级增加,实现了多跳传输且其单 跳之间的距离较短,通信时,可以使用较小的发送功率,因此附近节点的能量有效减少。同 时,其他节点根据距离确定层级,层与层之间的距离缩短,也可以实现短距离多跳传输。虽 然基于最短跳距的分层方案的延时增加,但是其交付率基本与基于最小跳数的分层方案的交 付率保持一致且其能耗有效减少,因此,基于最短跳距的分层方案的性能优于基于最小跳数 的分层方案。
[0096] 以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式, 不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述 构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动 和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。