一种基于RSSI的改进型OLSR路由协议的实现方法与流程

文档序号:19281433发布日期:2019-11-29 22:59阅读:262来源:国知局
一种基于RSSI的改进型OLSR路由协议的实现方法与流程

本发明涉及移动自组网技术领域,特别涉及一种基于rssi的改进型olsr路由协议的实现方法。



背景技术:

manet网络由于其自组织性,自愈性等特点使其广泛应用于军事通信和灾后应急通信等领域,针对manet网络提出了许多路由算法和协议,包括按需路由协议,主动路由协议和混合路由协议等。但在移动、干扰和复杂地形等因素引起的网络拓扑动态变化的情况下,如何自适应选择和使用路由,保障端到端业务流的需求,一直是一个热点研究问题,针对olsr路由协议靠节点周期性交换hello消息和tc消息,获取链路状态信息的方式,olsr路由协议采用的是最短路径,计算路由表,但是存在场景,点对点信号值很弱,但是能够维持路由,采用最短路径计算出来的路由表在发起业务数据过程中,由于信号很差,丢包很大,延迟大,无法满足业务的服务质量,导致业务无法正常完成,这种情况下就急需一种解决方法,本发明在考虑最短路径的同时参考节点间的rssi(receivedsignalstrengthindication接收的信号强度指示)值,综合进行路由算法的改进和实现,完成在此类情况下保证业务服务质量,高效稳定完成业务需求。



技术实现要素:

本发明的目的旨在至少解决所述技术缺陷之一。

为此,本发明的目的在于提出一种基于rssi的改进型olsr路由协议的实现方法,能够很好的解决边缘节点有最短路径但是信号质量差的场景,更好的满足实际场景业务需求。

为了实现上述目的,本发明提供一种基于rssi的改进型olsr路由协议的实现方法,在一跳邻居表和两跳邻居表项中扩展rssi值字段,一跳邻居表用于记录节点与邻居节点之间rssi值,两跳邻居表用于记录邻居节点与该邻居节点的其他邻居节点之间的rssi值;

具体包括以下步骤:

步骤s1,遍历一跳邻居表,根据节点与其邻居节点链路情况,计算每个节点与其邻居节点之间的最佳一跳路径或者最佳一跳路径和最佳二跳路径,并创建最佳路由表;

如果节点与其邻居节点是双向对称邻居,则根据一跳邻居表项中的rssi值做判定:

如果节点与其邻居节点的rssi值低于最低门限值,则不能将该邻居节点直接加入到最佳路由表中,而是在该节点的两跳邻居表中查找是否存在能够到达该邻居节点的其他邻居节点,将能够到达该邻居节点的其他邻居节点记为待选其他邻居节点,如果存在待选其他邻居节点,则从一跳邻居表中获取该节点到待选其他邻居节点的rssi值,记为待选一跳rssi值,从二跳邻居表中获取该邻居节点到待选其他邻居节点的rssi值,记为待选二跳rssi值,将待选其他邻居节点的待选一跳rssi值与待选二跳rssi值输入到优选其他邻居节点判断条件中进行判断:

如果某一待选其他邻居节点符合优选其他邻居节点判断条件,则将该待选其他邻居节点作为优选其他邻居节点,并将该节点到优选其他邻居节点再到其邻居节点之间的路径作为该节点到其邻居节点之间的最佳二跳路径,并记录到最佳路由表中;

如果所有待选其他邻居节点都不符合优选其他邻居节点判断条件,则该节点与其邻居节点的rssi值作为一跳最佳rssi值,将该节点与其邻居节点之间的路径作为该节点到其邻居节点之间的最佳一跳路径,并记录到最佳路由表中;

遵循如上规则,遍历每个节点,计算该节点到其邻居节点之间的最佳一跳路径和最佳二跳路径,并记录到最佳路由表中;

步骤s2,遍历两跳邻居表,找到该节点的绝对两跳邻居,所谓绝对两跳邻居为,该节点的邻居节点的邻居节点但不是该节点自身的邻居节点,将能够到达绝对两跳邻居的邻居节点记为待选一跳邻居,从最佳路由表中获取待选一跳邻居对应的一跳最佳rssi值、最佳一跳路径,从两跳邻居表中获取待选一跳邻居到绝对两跳邻居的rssi值,由一跳最佳rssi值和待选一跳邻居到绝对两跳邻居的rssi值计算得到待选绝对两跳rssi值;选取所有待选绝对两跳rssi值中最大的待选绝对两跳rssi值作为最佳绝对两跳rssi值,则最佳绝对两跳rssi值所对应的待选一跳邻居为优选一跳邻居,则该节点到优选一跳邻居再到绝对两跳邻居之间的路径为最佳二跳路径,并记录到最佳路由表中;

步骤s3,最后根据拓扑表,依次遍历两跳以上的路由表,直至计算网内所有节点的可达路径,结束最佳路由表的计算,产生全部的路由表。

在上述任一方案中优选的是,所述一跳邻居表中节点与邻居节点之间rssi值由本节点从底层测量直接获取,两跳邻居表中的rssi值是通过hello消息广播获取。

在上述任一方案中优选的是,在步骤s1中,如果节点与其邻居节点的rssi值不低于最低门限值,则该节点与其邻居节点的rssi值作为一跳最佳rssi值,将该节点与其邻居节点之间的路径作为该节点到其邻居节点之间的最佳一跳路径,并记录到最佳路由表中。

在上述任一方案中优选的是,在步骤s1中,如果不存在待选其他邻居节点,则该节点与其邻居节点的rssi值作为一跳最佳rssi值,将该节点与其邻居节点之间的路径作为该节点到其邻居节点之间的最佳一跳路径,并记录到最佳路由表中。

在上述任一方案中优选的是,在步骤s1中,优选其他邻居节点判断条件如下:

条件1,如果待选其他邻居节点的待选一跳rssi值低于最低门限值,则该待选其他邻居节点不是优选其他邻居节点;

条件2,如果待选其他邻居节点的待选二跳rssi值低于最低门限值,则该待选其他邻居节点不是优选其他邻居节点;

条件3,如果待选其他邻居节点的待选一跳rssi值和待选二跳rssi值都不低于最低门限值,则计算该节点到待选其他邻居节点再到其邻居节点之间的相对rssi值,并选取最大的相对rssi值所对应的待选其他邻居节点作为优选其他邻居节点。

在上述任一方案中优选的是,相对rssi值计算公式如下:

rssi(z)=arssi(x)+brssi(y);

其中,rssi(z)为相对rssi值,rssi(x)为待选一跳rssi值,rssi(y)为待选二跳rssi值,a、b为比例系数。

在上述任一方案中优选的是,优选其他邻居节点的相对rssi值为一跳最佳rssi值。

在上述任一方案中优选的是,在步骤s2中,从两跳邻居表中获取待选一跳邻居到绝对两跳邻居的rssi值低于最低门限值,则该待选一跳邻居不是优选一跳邻居。

在上述任一方案中优选的是,在步骤s3中,遍历两跳以上的路由表,选取节点与两跳以上目标节点之间的所有能够到达路径中rssi值最大的路径作为节点与两跳以上目标节点之间的两跳以上最佳路径,并将两跳以上最佳路径记录在路由表中。

在上述任一方案中优选的是,选取两跳以上最佳路径时,将该节点到前一跳节点的最佳rssi值,记为前一跳最佳rssi值,该节点到前一跳节点的最佳路径记为最佳前一跳路径,前一跳节点到目标节点之间的最佳rssi值记为目标最佳rssi值,并根据前一跳最佳rssi值与目标最佳rssi值计算两跳以上最佳rssi值,并所有的两跳以上最佳rssi值进行比较。

本发明的基于rssi的改进型olsr路由协议的实现方法具有以下有益效果:

1、本发明将自身节点与邻居节点之间的rssi值通过hello消息广播给邻居节点,邻居节点收到hello消息后,解析并存储,每个节点存储了邻居节点与该邻居节点的邻居节点之间的rssi值,计算路由表时进行参考,能够快速选取合适的下一跳路径,大大提高其计算效率。

2、本发明在考虑最短路径的同时参考节点间的rssi值,综合进行路由算法的改进和实现,完成在此类情况下保证业务服务质量,高效稳定完成业务需求。当前节点与其邻居节点的rssi值低于最低门限值时,则表明当前节点与其邻居节点之间的信号很弱,本发明通过寻找是否有其他邻居节点可以到达该邻居节点并且rssi值满足一定门限,此时选择与当前节点rssi值最好的邻居节点作为到达目标邻居的下一跳路径,这样每个节点都依据此规则进行,计算出来的路由是最优的最短的路径,所以本发明能够很好的解决边缘节点有最短路径但是信号质量差的场景,更好的满足实际场景业务需求。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:

图1为原始olsr路由计算协议流程示意图;

图2为本发明的基于rssi的改进型olsr路由协议的实现方法的流程示意图;

图3为本发明的基于rssi的改进型olsr路由协议的实现方法的总体流程图:

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

原始的olsr路由协议实现是根据周期性的广播hello消息和tc消息,节点本地维护多张表项,邻居表,两跳邻居表,拓扑表等,在触发计算路由条件时,根据各个表项,依据协议进行路由表的计算,如图1所示为原始olsr路由计算协议流程示意图,

原始的olsr路由协议实现具体包括以下步骤:

步骤1-1、遍历一跳邻居表,根据节点与邻居节点链路情况,如果是双向对称邻居,将创建为一跳路由表。

举例说明如下:

图1中节点1为当前节点,根据周期性的消息交互建立的表项,依据最短路径原则,分别创建如下路由信息:

步骤1-2、遍历两跳邻居表,找到绝对的两跳邻居,所谓绝对的两跳邻居为,该邻居节点的邻居节点不是自身节点的邻居节点,这样计算该两跳邻居的路径时需要从当前一跳路由表里选取最佳的,可达的该两跳邻居的邻居节点,作为到达该两跳邻居的下一跳。

例如在图1中确认绝对的两跳邻居为节点8和节点9,计算出一条最短路径停止,产生路由表项如下:

步骤1-3、最后根据拓扑表,节点之前的连接关系进一步采用当前的一跳路由和两跳路由信息为前提,计算出多跳路由信息,然后依次遍历两跳以上的路由表,直至完成网内所有节点的可达路径,结束路由表的计算,产生全部的路由表。

由上述原始的olsr路由协议实现步骤可知,olsr路由协议采用的是最短路径计算路由表,但是存在场景,点对点信号值很弱,但是为了能够维持路由,采用最短路径计算出来的路由表在发起业务数据过程中,由于信号很差,丢包很大,延迟大,无法满足业务的服务质量,导致业务无法正常完成。

针对上述问题,本发明提供一种基于rssi的改进型olsr路由协议的实现方法,在一跳邻居表和两跳邻居表项中扩展rssi(receivedsignalstrengthindication接收的信号强度指示)值字段,一跳邻居表用于记录节点与邻居节点之间rssi值,两跳邻居表用于记录邻居节点与该邻居节点的其他邻居节点之间的rssi值,其中,一跳邻居表中节点与邻居节点之间rssi值由本节点从底层测量直接获取,两跳邻居表中的rssi值是通过hello消息广播获取。

本发明的将自身节点与邻居节点之间的rssi值通过hello消息广播给邻居节点,邻居节点收到hello消息后,解析并存储,每个节点存储了邻居节点与该邻居节点的邻居节点之间的rssi值,计算路由表时进行参考,选取合适的下一跳路径。

具体包括以下步骤,如图3所示:

步骤s1,遍历一跳邻居表,根据节点与其邻居节点链路情况,计算每个节点与其邻居节点之间的最佳一跳路径或者最佳一跳路径和最佳二跳路径,并创建最佳路由表;

如果节点与其邻居节点是双向对称邻居,则根据一跳邻居表项中的rssi值做判定:

如果节点与其邻居节点的rssi值不低于最低门限值,则该节点与其邻居节点的rssi值作为一跳最佳rssi值,将该节点与其邻居节点之间的路径作为该节点到其邻居节点之间的最佳一跳路径,并记录到最佳路由表中。

如果节点与其邻居节点的rssi值低于最低门限值,则不能将该邻居节点直接加入到最佳路由表中,而是在该节点的两跳邻居表中查找是否存在能够到达该邻居节点的其他邻居节点,将能够到达该邻居节点的其他邻居节点记为待选其他邻居节点,如果存在待选其他邻居节点,则从一跳邻居表中获取该节点到待选其他邻居节点的rssi值,记为待选一跳rssi值,从二跳邻居表中获取该邻居节点到待选其他邻居节点的rssi值,记为待选二跳rssi值,将待选其他邻居节点的待选一跳rssi值与待选二跳rssi值输入到优选其他邻居节点判断条件中进行判断:

优选其他邻居节点判断条件如下:

条件1,如果待选其他邻居节点的待选一跳rssi值低于最低门限值,则该待选其他邻居节点不是优选其他邻居节点;

条件2,如果待选其他邻居节点的待选二跳rssi值低于最低门限值,则该待选其他邻居节点不是优选其他邻居节点;

条件3,如果待选其他邻居节点的待选一跳rssi值和待选二跳rssi值都不低于最低门限值,则计算该节点到待选其他邻居节点再到其邻居节点之间的相对rssi值,优选其他邻居节点的相对rssi值为一跳最佳rssi值,并选取最大的相对rssi值所对应的待选其他邻居节点作为优选其他邻居节点。

相对rssi值计算公式如下:

rssi(z)=arssi(x)+brssi(y);

其中,rssi(z)为相对rssi值,rssi(x)为待选一跳rssi值,rssi(y)为待选二跳rssi值,a、b为比例系数;优选比例系数a≥比例系数b。

如果某一待选其他邻居节点符合优选其他邻居节点判断条件,则将该待选其他邻居节点作为优选其他邻居节点,并将该节点到优选其他邻居节点再到其邻居节点之间的路径作为该节点到其邻居节点之间的最佳二跳路径,并记录到最佳路由表中。

如果所有待选其他邻居节点都不符合优选其他邻居节点判断条件,则该节点与其邻居节点的rssi值作为一跳最佳rssi值,将该节点与其邻居节点之间的路径作为该节点到其邻居节点之间的最佳一跳路径,并记录到最佳路由表中。

如果不存在待选其他邻居节点,则该节点与其邻居节点的rssi值作为一跳最佳rssi值,将该节点与其邻居节点之间的路径作为该节点到其邻居节点之间的最佳一跳路径,并记录到最佳路由表中。

遵循如上规则,遍历每个节点,计算该节点到其邻居节点之间的最佳一跳路径和一跳最佳rssi值,并记录到最佳路由表中;

下面举例来具体进行说明:

例如,如图2所示,设节点1为当前节点,根据周期性的消息交互建立的表项,并依据当前节点与邻居节点的rssi值,判决是否直接产生一跳路由表,比如一跳最低门限值为-75,只要发现当前节点与邻居节点之间的rssi值小于该值,就需要寻找其他可达最短路径,至少是两跳路由,例如图中节点6与当前节点1之间的rssi值为-80,小于最低门限值-75,此时找到其他可达,并且信号值最好的路径,即通过节点5,再到节点6;

步骤s2,遍历两跳邻居表,找到该节点的绝对两跳邻居,所谓绝对两跳邻居为,该节点的邻居节点的邻居节点但不是该节点自身的邻居节点,将能够到达绝对两跳邻居的邻居节点记为待选一跳邻居,从最佳路由表中获取待选一跳邻居对应的一跳最佳rssi值、最佳一跳路径,从两跳邻居表中获取待选一跳邻居到绝对两跳邻居的rssi值,由一跳最佳rssi值和待选一跳邻居到绝对两跳邻居的rssi值计算得到待选绝对两跳rssi值;选取所有待选绝对两跳rssi值中最大的待选绝对两跳rssi值作为最佳绝对两跳rssi值,则最佳绝对两跳rssi值所对应的待选一跳邻居为优选一跳邻居,则该节点到优选一跳邻居再到绝对两跳邻居之间的路径为最佳二跳路径,并记录到最佳路由表中。

此外,从两跳邻居表中获取待选一跳邻居到绝对两跳邻居的rssi值低于最低门限值,则该待选一跳邻居不是优选一跳邻居。

下面举例来具体进行说明:

遍历两跳邻居表,找出绝对的两跳节点并根据当前一跳路由表项,计算出两跳邻居路由表,例如图2中确认绝对的两跳节点为8和9,计算出一条到达两跳邻居rssi值最高的路径,比如节点8是绝对的2跳邻居节点,其中有两个邻居节点可达,分别是节点3和节点4,因为节点1和节点4直接的rssi值更大,即信号更好,则选择节点4为到达节点8的下一跳,二两跳邻居9只有节点2可达,只能选择节点2作为到达节点9的下一跳路径,产生路由表项如下:

步骤s3,最后根据拓扑表,依次遍历两跳以上的路由表,直至计算网内所有节点的可达路径,结束最佳路由表的计算,产生全部的路由表。

具体为:遍历两跳以上的路由表,选取节点与两跳以上目标节点之间的所有能够到达路径中rssi值最大的路径作为节点与两跳以上目标节点之间的两跳以上最佳路径,并将两跳以上最佳路径记录在最佳路由表中。

选取两跳以上最佳路径时,将该节点到前一跳节点的最佳rssi值,记为前一跳最佳rssi值,该节点到前一跳节点的最佳路径记为最佳前一跳路径,前一跳节点到目标节点之间的最佳rssi值记为目标最佳rssi值,并根据前一跳最佳rssi值与目标最佳rssi值计算两跳以上最佳rssi值,并所有的两跳以上最佳rssi值进行比较。

下面举例来具体进行说明:

例如图2中的节点10-13,在当前的一跳路由和两跳路由信息为前提下,计算最佳路径结果如下:

本发明在考虑最短路径的同时参考节点间的rssi值,综合进行路由算法的改进和实现,完成在此类情况下保证业务服务质量,高效稳定完成业务需求。当前节点与其邻居节点的rssi值低于最低门限值时,则表明当前节点与其邻居节点之间的信号很弱,本发明通过寻找是否有其他邻居节点可以到达该邻居节点并且rssi值满足一定门限,此时选择与当前节点rssi值最好的邻居节点作为到达目标邻居的下一跳路径,这样每个节点都依据此规则进行,计算出来的路由是最优的最短的路径,所以本发明能够很好的解决边缘节点有最短路径但是信号质量差的场景,更好的满足实际场景业务需求。

尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在不脱离本发明的原理和宗旨的情况下在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。本发明的范围由所附权利要求及其等同限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1