首页> 中国专利> 一种基于链路质量估计的可靠路由算法

一种基于链路质量估计的可靠路由算法

摘要

本发明的一种基于链路质量估计的可靠路由算法,包括由网关发起拓扑发现,使得网络中的节点获知自己周围邻居节点及其相对网关的深度;根据发送的探测包的总数和邻居节点收到探测包的数量,获得相对各个邻居节点的交付率;网关构造路由信息包,并对路由信息包中的路由信息进行初始化;网关发送路由信息包,接收到路由信息包的邻居节点进行计算,若新的解优于原有最优解则对路由信息进行更新,并将更新后的路由信息包发送给邻居节点;根据路由信息中的节点把包传递到网关的成功率和相对网关的深度,获得最优路径。本发明的路由算法以少量的额外代价来获得了更高的可靠性。该算法的主要特点是快速有效;减少误判的可能性。

著录项

  • 公开/公告号CN108449267A

    专利类型发明专利

  • 公开/公告日2018-08-24

    原文格式PDF

  • 申请/专利权人 东北大学;

    申请/专利号CN201810211815.2

  • 发明设计人 李婕;栗腾飞;邢锋;王兴伟;

    申请日2018-03-15

  • 分类号

  • 代理机构沈阳优普达知识产权代理事务所(特殊普通合伙);

  • 代理人张志伟

  • 地址 110169 辽宁省沈阳市浑南区创新路195号

  • 入库时间 2023-06-19 06:16:00

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2020-08-07

    授权

    授权

  • 2018-09-18

    实质审查的生效 IPC(主分类):H04L12/721 申请日:20180315

    实质审查的生效

  • 2018-08-24

    公开

    公开

说明书

技术领域

本发明属于无线通信领域,具体涉及一种基于链路质量估计的可靠路由算法。

背景技术

现有的一些经典路由协议,如Flooding协议和Gossiping协议,无需任何算法或者路由维护,在Flooding协议中,节点将自身产生的或者收到的数据包广播给所有的邻居,收到该数据包的邻居会接着广播给它自己的邻居,这样数据包就可以被送达到网络中所有节点。但是当有大量数据包副本被发送给同一节点时会产生“内爆”消耗大量资源。而在Gossiping协议避免了内爆,但导致了数据通过节点的延迟,同时随机传送导致能量浪费。SPIN协议解决了Flooding协议和Gossiping协议的问题,但它的公告机制不能保证数据一定会被传递,如果距离源节点较远的节点对数据感兴趣但是这些节点和源节点之间的节点都对数据不感兴趣,那么数据无法被传递到目的地。

发明内容

为解决上述技术问题,本发明的目的是提供一种基于链路质量估计的可靠路由算法,以提升工业环境下网络节点传输可靠性。

本发明提供一种基于链路质量估计的可靠路由算法,其特征在于,包括如下步骤:

步骤1:由网关发起拓扑发现,使得网络中的节点获知自己周围邻居节点及其相对网关的深度;

步骤2:通过发送探测包的形式,根据发送的探测包的总数和邻居节点收到探测包的数量,获得相对各个邻居节点的交付率;

步骤3:网关构造路由信息包,并对路由信息包中的路由信息进行初始化;

步骤4:从网关开始发送路由信息包,接收到路由信息包的邻居节点根据接收到的新的路由信息和原有路由信息进行计算,若新的解和优于原有最优解则对路由信息进行更新,并将更新后的路由信息包发送给邻居节点,否则不更新路由信息;

步骤5:网络中所有节点获得路由信息包后,根据路由信息中的节点把包传递到网关的成功率和相对网关的深度,获得最优路径。

在本发明的基于链路质量估计的可靠路由算法中,所述步骤1包括:

步骤1.1:设置网关节点的深度值为0,同时其他节点的深度值设置为可取的最大值;

步骤1.2:网关生成一个获取深度信息的深度探测包并将其广播,收到深度探测包的节点即为邻居节点;

步骤1.3:将深度探测包内的深度值加一后与每个邻居节点的当前深度值进行比较,如果前者更小则根据深度探测包的深度信息更新该邻居节点的深度信息,再生成一个新的深度探测包并将更新后的深度信息广播出去,否则不采取任何行为;

步骤1.4:当深度探测包洪泛到全网之后所有的节点都可获得自己相对于网关的深度和自己周围一跳邻居节点及其深度信息。

在本发明的基于链路质量估计的可靠路由算法中,所述步骤2包括:

步骤2.1:网络中的各节点生成链路质量探测包,并将链路质量探测包发送给其邻居节点;

步骤2.2:邻居节点根据链路质量探测包内记录的探测包发送的总数和实际收到探测包的数量计算出对应节点的交付率;

步骤2.3:邻居节点将交付率广播给发送该链路质量探测包的对应节点,进而使网络中所有节点获得其对所有邻居节点的交付率。

在本发明的基于链路质量估计的可靠路由算法中,所述步骤3中路由信息包括:发包节点的地址、发包节点的下一跳的地址、节点把包传递到网关的成功率、相对网关的深度、节点记录的邻居的数量、邻居节点地址、对不同邻居节点的交付率和该字段用于标记是否为路由恢复过程。

在本发明的基于链路质量估计的可靠路由算法中,所述步骤4包括:

步骤4.1:接收邻居节点发来的路由信息包;

步骤4.2:根据路由信息包计算节点把包传递到网关的成功率、相对网关的深度和失效阈值;

步骤4.3:将计算得到的新的解和原有最优解进行比较,新的解优于原有最优解则先将原有最优解值赋值给次优解,将本次计算结果值赋值给最优解;

步骤4.4:判断邻居节点是否失效;

步骤4.5:向未失效的邻居节点发送更新后的路由信息包。

在本发明的基于链路质量估计的可靠路由算法中,所述步骤4.2中根据下式计算节点把包传递到网关的成功率:

suc=[1-(1-PRR[i])maxtrans]×suc_ratio[i]

其中,PRR[i]为对邻居节点i的包接收率,maxratio是最大重传次数,suc_ratio[i]是邻居节点将包传递到网关的成功率。

在本发明的基于链路质量估计的可靠路由算法中,所述步骤4.3中满足一下任意条件,则对最优解进行更新:

1)新的路由信息中路径深度低于现有最优解的中路径深度,而且成功率不低于现有解的成功率;

2)新的路由信息中路径深度等于现有最优解的中路径深度,且成功率高于现有最优解一定的值,该值设置为0.01;

3)新的路由信息中路径深度高于现有最优解的中路径深度,此时根据路径深度增加和端到端交付率的提高程度选择是否更新,成功率在90%的情况下每多一深度值交付率应增加2%才进行更新。

在本发明的基于链路质量估计的可靠路由算法中,所述步骤4.4中根据下式计算邻居节点的未失效率:

Pfail(n)=((1-p)max)n

其中,P为节点A与节点B之间的交付率,max为最大传输次数,Pfail(n)为节点连续以最大传输次数发送了n个数据包但是未收到节点B发来的确认包,且B节点未失效的概率,若满足下式则节点B失效

Pfail(n)<M

其中,M为一个非常小的数如0.0001,n为失效阈值。本发明的一种基于链路质量估计的可靠路由算法,采用能提供更精确的链路质量估计的LQI作为基于硬件的链路质量估计器,而针对其不稳定性问题提出采用卡尔曼滤波的方式来降低其方差,同时将求均值方法中用于存储LQI的数组空间降低到4个变量的空间复杂度。针对链路质量估计的可靠路由,其主要思想是由网关发起,每个节点都通过路径上下一个节点的解与自己对该节点的交付率来选择最优解,并将这个解交付给邻居节点供它们进行路由计算。其中由于考虑到不可靠性而采取了重传机制,那么节点间的交付率会受到重传的影响,对此分析了传输次数上限和接收率对于有重传机制下的节点间交付率的影响,得出结论即传输次数上限和接收率都是随着其值的增大而减少对于节点间交付率的影响。

附图说明

图1是本发明的一种基于链路质量估计的可靠路由算法的流程图。

具体实施方式

本发明通过发送探测包进行拓扑发现以及链路质量信息的收集,然后记录相应信息并处理。并将自己的结果与收集到的链路质量信息再构造成路由信息包发送给邻居节点。直到网络中所有的节点都获得了路由信息,因此可以从得到的信息中选出链路质量更好的链路。

如图1所示,本发明的一种基于链路质量估计的可靠路由算法,包括如下步骤:

步骤1:由网关发起拓扑发现,使得网络中的节点获知自己周围邻居节点及其相对网关的深度,所述步骤1具体包括:

步骤1.1:设置网关节点的深度值为0,同时其他节点的深度值设置为可取的最大值;

步骤1.2:网关生成一个获取深度信息的深度探测包并将其广播,收到深度探测包的节点即为邻居节点;

步骤1.3:将深度探测包内的深度值加一后与每个邻居节点的当前深度值进行比较,如果前者更小则根据深度探测包的深度信息更新该邻居节点的深度信息,再生成一个新的深度探测包并将更新后的深度信息广播出去,否则不采取任何行为;

步骤1.4:当深度探测包洪泛到全网之后所有的节点都可获得自己相对于网关的深度和自己周围一跳邻居节点及其深度信息。

表1深度探测包格式

步骤2:通过发送探测包的形式,根据发送的探测包的总数和邻居节点收到探测包的数量,获得相对各个邻居节点的交付率,所述步骤2具体包括:

步骤2.1:网络中的各节点生成链路质量探测包,并将链路质量探测包发送给其邻居节点;

步骤2.2:邻居节点根据链路质量探测包内记录的探测包发送的总数和实际收到探测包的数量计算出对应节点的交付率;

步骤2.3:邻居节点将交付率广播给发送该链路质量探测包的对应节点,进而使网络中所有节点获得其对所有邻居节点的交付率。

表2链路质量探测包格式

步骤3:网关构造路由信息包,并对路由信息包中的路由信息进行初始化;路由信息包括:发包节点的地址、发包节点的下一跳的地址、节点把包传递到网关的成功率、相对网关的深度、节点记录的邻居的数量、邻居节点地址、对不同邻居节点的交付率和该字段用于标记是否为路由恢复过程。

表3路由信息包的格式

这里由网关最先构造出路由信息包,success_ratio为1,path_length为0,在步骤2进行链路质量收集时,可以获取到自身的邻居数量neighbor_num及各个邻居的地址address_info[]以及对各个邻居的交付率PRR[],其余节点则根据自身已有信息和邻居发来的路由信息构造路由信息包。

步骤4:从网关开始发送路由信息包,接收到路由信息包的邻居节点根据接收到的新的路由信息和原有路由信息进行计算,若新的解和优于原有最优解则对路由信息进行更新,并将更新后的路由信息包发送给邻居节点,否则不更新路由信息,所述步骤4具体包括:

步骤4.1:接收邻居节点发来的路由信息包;

步骤4.2:根据路由信息包计算节点把包传递到网关的成功率、相对网关的深度和失效阈值,具体根据下式计算节点把包传递到网关的成功率:

suc=[1-(1-PRR[i])maxtrans]×suc_ratio[i]

其中,PRR[i]为对邻居节点i的包接收率,maxratio是最大重传次数,suc_ratio[i]是邻居节点将包传递到网关的成功率。

步骤4.3:将计算得到的新的解和原有最优解进行比较,新的解优于原有最优解则先将原有最优解值赋值给次优解,将本次计算结果值赋值给最优解;

具体实施时,满足一下任意条件,则对路由信息进行更新:

1)新的路由信息中路径深度低于现有最优解的中路径深度,而且成功率不低于现有解的成功率;

2)新的路由信息中路径深度等于现有最优解的中路径深度,且成功率高于现有最优解一定的值,该值设置为0.01;

3)新的路由信息中路径深度高于现有最优解的中路径深度,此时根据路径深度增加和端到端交付率的提高程度选择是否更新,成功率在90%的情况下每多一深度值交付率应增加2%才进行更新。

在计算路由最优解的同时记录次优解,当最优解更新之后将之前的最优解作为次优解直到路径计算完成,此时的次优解就是备用路径。当确认下一跳节点失效之后首先切换到备用路径,然后沿着下行链路通知节点发生链路失效并让该条链路上的节点重新计算路由。对于失效节点的沿着上行链路的节点来说,由于它们的发送数据包的路径并未被影响所以现存的计算结果依然可用也就无需进行重路由了。如果该节点失效后恢复,则发送路由请求后由邻居节点按照之前的路由算法再次发送路由控制包即可。

步骤4.4:判断邻居节点是否失效;

具体实施时,根据下式计算邻居节点的未失效率:

Pfail(n)=((1-p)max)n

其中,P为节点A与节点B之间的交付率,max为最大传输次数,Pfail(n)为节点连续以最大传输次数发送了n个数据包但是未收到节点B发来的确认包,且B节点未失效的概率,若满足下式则节点B失效

Pfail(n)<M

其中,M为一个非常小的数如0.0001,n为失效阈值。

步骤4.5:向未失效的邻居节点发送更新后的路由信息包。

步骤5:网络中所有节点获得路由信息包后,根据路由信息中的节点把包传递到网关的成功率和相对网关的深度,获得最优路径。

以上所述仅为本发明的较佳实施例,并不用以限制本发明的思想,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号