一种基于OLSR路由协议参数自适应调整的方法与流程

文档序号:19633427发布日期:2020-01-07 11:44阅读:536来源:国知局
一种基于OLSR路由协议参数自适应调整的方法与流程

本发明涉及路由协议技术领域,特别涉及一种基于olsr路由协议参数自适应调整的方法。



背景技术:

移动自组织网络(manet网络)由于其自组织性,自愈性等特点使其广泛应用于军事通信和灾后应急通信等领域,针对manet网络提出了许多路由算法和协议,包括按需路由协议,主动路由协议和混合路由协议等。但在移动、干扰和复杂地形等因素引起的网络拓扑动态变化的情况下,如何自适应选择和使用路由,保障端到端业务流的需求,一直是一个热点研究问题,针对olsr路由协议(optimizedlinkstaterouting,最优链路状态路由协议)靠节点周期性交换heilo消息和tc消息,获取链路状态信息的方式,固定的发射周期不能适应网络拓扑动态变化,当节点快速移动时,表现为拓扑信息过期,路由失效;而当节点静止,网络拓扑没有变化时,浪费网络资源,而且增加了网络负载。



技术实现要素:

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

为此,本发明的目的在于提出一种基于olsr路由协议参数自适应调整的方法,能够实现根据本地链路集的变化情况,调整hello消息的发送间隔,根据本地多点中继集mpr以及邻居表的变化情况调整tc消息发送时间间隔。

为了实现上述目的,本发明提供一种基于olsr路由协议参数自适应调整的方法,在olsr路由协议实现机制的基础上,通过定时器设定olsr路由协议的默认值,再新增一个自适应模块,计算下一次发送heilo消息和tc消息的时间间隔,自适应调整具体步骤如下:

步骤s1,olsr路由协议初始化,完成所需初始化的变量和各存储表;

步骤s2,定时器创建并启动定时器,开始调度处理;

步骤s3,自适应模块进行hello消息和tc消息自适应处理;

自适应模块进行hello消息自适应处理步骤如下:

步骤s311,统计当前heilo消息发送间隔hei内邻居表的变化情况并计分,记录为移动性得分ms,移动性得分ms和当前发送间隔hei的比值作为当前节点的移动性;

步骤s312,将当前节点的移动性与上一个节点的移动性做加权和,得到节点的不稳定度di,在通过不稳定度di的计算公式得到当前发送heilo消息到下一次发送heilo消息的时间间隔值,即下一次发送间隔的值;

步骤s313,当下一次发送间隔到达时,发送下一次发送heilo消息;

自适应模块进行tc消息自适应处理步骤如下:

步骤s321,监听广播链路集的变化情况,当广播链路集发生变化时,根据变化情况确定下一个tc消息的发送时间;

步骤s322,当广播链路集没有发生变化时,使用tc发送间隔调整公式对tc消息的发送间隔进行恢复。

在上述任一方案中优选的是,在步骤s311,当olsr路由协议采用的是固定的hello消息发送间隔hei时,则hhello消息发送间隔hei的值设置为hmid,根据节点的移动速度,设hello消息发送间隔hei的浮动范围为[hmin,hmax],其中hmin≤hmid≤hmax。

在上述任一方案中优选的是,hmid的值为2s,hmin的值为1s,hmax的值为4s。

在上述任一方案中优选的是,当设定di=0时,hei=hmax;当di=1时,hei=hmin;则hei的计算公式如下:

则发送hello消息的接收信息有效时间域根据hello的发送间隔hei调整为:vtimehello=β*hei;

其中,vtimehello表示本次发送hello消息的接收消息有效时间长度,β为调整参数。

在上述任一方案中优选的是,在步骤s311中,移动性得分ms的条件,如下:

条件1:每当节点的邻居表增加一个邻居时,移动性得分ms加2分;

条件2:每当节点的邻居表中修改一条邻居的状态从其他状态变为对称邻居的时候,移动性得分ms加1分;

条件3:每当节点的多点中继集中的一条链路从对称邻居恢复为非对称邻居时,移动性得分ms加1分。

在上述任一方案中优选的是,在步骤s311中,移动性得分ms的计算公式为:ms=2*n+nsym+nasym;

其中,n为一个发送间隔hei周期内增加的节点数,nsym表示一个发送间隔hei周期内节点邻居状态由其他状态变为对称邻居的节点数,nasym表示一个发送间隔hei周期内节点邻居表由对称邻居变为非对称邻居的节点数。

在上述任一方案中优选的是,在步骤s312中,节点的不稳定度di的计算公式为:

其中,hei表示当前hello消息发送间隔,hei′表示上一个hello消息发送间隔周期,ms表示当前hello消息发送间隔hei内的移动性得分,ms′表示上一个hello消息发送间隔hei′内的移动性得分。

在上述任一方案中优选的是,在步骤s321中,tc消息的发送时间间隔的范围为[tmin,tmax];其中,tmin为tc消息的发送时间间隔的最小值,tmax为tc消息的发送时间间隔的最大值;

当tc消息的发送时间间隔为tmin时,表示节点快速移动拓扑发生变化,需要快速发送tc消息;

当tc消息的发送时间间隔为tmax时,表示网络拓扑没有变化,用于节点静止的情况下,这时无需频繁发送tc消息。

在上述任一方案中优选的是,当拓扑发生变化的时候需要快速发送tc消息,根据olsr路由协议的运行原理和感知网络拓扑变化的方式,快速发送条件有:

条件1:当节点的多点中继集、广播链路选择集和对称邻居集新增元素时,则下一个tc消息的发送时间间隔为tmin;

条件2:当节点的多点中继集、广播链路选择集和对称邻居集删除元素时,则下一个tc消息的发送时间间隔为tmin;

条件3:当广播链路集没有变化的时,使用tc发送间隔调整公式对tc消息的发送间隔进行恢复;

tc发送间隔调整公式为:

其中,tceilast为上一个tc发送间隔,tceinext为下一个tc发送间隔。

在上述任一方案中优选的是,自适应模块进行tc消息自适应处理还包括:

在每次发送完一个tc消息后,在下一个tc消息发送之前,若触发快速发送条件,则下一个tc消息发送间隔更新为上一个tc消息发送时间加上tmin;

当tc消息的自适应发送出现标准的tc消息的接收信息有效时间设置不合适的时,采用的tc消息调整算法公式来调整,tc消息调整算法公式如下:

vtimetc=η*tcei;

其中,vtimetc表示标准的tc消息的接收信息有效时间,η表示调整参数,tcei表示tc消息发送间隔。

本发明的基于olsr路由协议参数自适应调整的方法具有以下有益效果:

1、本发明能够实现根据本地链路集的变化情况,调整hello消息的发送间隔,根据本地多点中继集mpr以及邻居表的变化情况调整tc消息发送时间间隔。

2、本发明能够改变固定周期的hello消息和tc消息的发送,在不同的网络环境下采用不同的hello消息和tc消息发送周期,并且根据链路集和拓扑集的变化控制报文的发送频率。

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

附图说明

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

图1为本发明的总体流程图;

图2为本发明的自适应hello消息处理框架流程示意图;

图3为本发明的自适应tc消息处理框架流程示意图。

具体实施方式

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

olsr路由协议由传统表驱动协议的改进而来,每个节点通过周期性的交换链路状态信息来维护整个网络的拓扑信息。它的工作原理是:网络中每个节点只选择自己邻居节点的一个子集,作为多点中继集mpr。根据多点中继集mpr的节点产生链路状态信息。通过节点不断的选择自己的多点中继集mpr或该节点作为其它节点的多点中继集mpr,对广播信息进行转发,最后根据新信息计算到达目的节点的最短路径。

olsr路由协议维护路由的方式是通过周期性的交换hello消息和tc消息,而固定的控制报文发送周期不能适应网络拓扑的动态变化。

针对以上,本发明提供一种基于olsr路由协议参数自适应调整的方法,改变固定周期的hello消息和tc消息的发送,在不同的网络环境下采用不同的hello消息和tc消息发送周期,并且根据链路集和拓扑集的变化控制报文的发送频率。

具体方法如下:在olsr路由协议实现机制的基础上,通过定时器设定olsr路由协议的默认值,再新增一个自适应模块,计算下一次发送heilo消息和tc消息的时间间隔,如图1所示,自适应调整具体步骤如下:

步骤s1,olsr路由协议初始化,完成所需初始化的变量和各存储表;

步骤s2,定时器创建并启动定时器,开始调度处理;

步骤s3,自适应模块进行hello消息和tc消息自适应处理;

在没有额外设备的情况下,节点本身很难知道节点移动速度和网络拓扑的变化,由于olsr路由协议是一个主动表驱动路由,节点间通过周期性的交换hello消息进行邻居节点的发现和链路探测,节点的移动最终会表现为邻居节点状态的变化。邻居节点的状态有对称邻居和非对称邻居,所谓对称邻居和非对称邻居,即是两个节点之间都能够接收到对方的hello消息,认为是对称邻居(sys_neigh),反之,节点仅能收到对方hello消息,对方收不到自己的hello消息,为非对称邻居(not_neigh)。

基于此,如图2所示,自适应模块进行hello消息自适应处理步骤如下:

步骤s311,统计当前heilo消息发送间隔hei(helloemissioninternal)内邻居表的变化情况并计分,记录为移动性得分ms(mobilityscore),移动性得分ms和当前发送间隔hei的比值作为当前节点的移动性;

当olsr路由协议采用的是固定的hello消息发送间隔hei时,则hhello消息发送间隔hei的值设置为hmid,根据节点的移动速度,设hello消息发送间隔hei的浮动范围为[hmin,hmax],其中hmin≤hmid≤hmax,hmin为hello消息发送间隔hei的最小值,hmax为hello消息发送间隔hei的最大值。

本发明的一个实施例中,默认hmid的值为2s,hmin的值为1s,hmax的值为4s,即默认hello消息发送间隔hei的浮动范围为[1s,4s],这样可以避免hmin太小增加网络开销,hmax太大,路由更新时延过长,路由失效造成网络性能下降的情况发生。

此外,移动性得分ms的条件,如下:

条件1:每当节点的邻居表增加一个邻居时,移动性得分ms加2分;

条件1是检测到有新的节点加入网络时邻居表的变化,相对于修改节点,增加节点更能反映节点的移动情况,也更需要加快发送hello消息,通过hello报文的三次握手确定为对称邻居。因此设定移动性得分ms加2分。

条件2:每当节点的邻居表中修改一条邻居的状态从其他状态变为对称邻居(sys_neigh)的时候,移动性得分ms加1分,表示经过hello消息的三次握手从非对称邻居到对称邻居。

条件3:每当节点的多点中继集中的一条链路从对称邻居(sys_neigh)恢复为非对称邻居(not_neigh)时,移动性得分ms加1分;表示节点状态从对称邻居(sys_neigh)到非对称邻居not_neigh)的变化。

其中,移动性得分ms的计算公式为:ms=2*n+nsym+nasym,(1);

其中,n为一个发送间隔hei周期内增加的节点数,nsym表示一个发送间隔hei周期内节点邻居状态由其他状态变为对称邻居的节点数,nasym表示一个发送间隔hei周期内节点邻居表由对称邻居变为非对称邻居的节点数。

当节点快速移动的时候,快速的发送hello消息能使其他节点快速发现该节点,并尽快更新邻居节点状态和路由。由于移动性得分ms是在一个hei内统计的,相同情况下hei的缩短会使ms的值减小,从而导致节点移动情况的误判,为了减少这种影响,采用步骤s312来计算节点的不稳定度di。

步骤s312,将当前节点的移动性与上一个节点的移动性做加权和,得到节点的不稳定度di,在通过不稳定度di的计算公式得到当前发送heilo消息到下一次发送heilo消息的时间间隔值,即下一次发送间隔的值;

具体为:用当前的发送周期内的ms值除以hei,然后和之前的ms′/hei′值做加权和,作为节点的不稳定度di,节点的不稳定度di的计算公式如下:

其中,hei表示当前hello消息发送间隔,hei′表示上一个hello消息发送间隔周期,ms表示当前hello消息发送间隔hei内的移动性得分,ms′表示上一个hello消息发送间隔hei′内的移动性得分。

这样使节点在发现新节点后能使hei大致按hmin<->hmid<->hmax的方式变化。即,当设定di=0时,hei=hmax;当di=1时,hei=hmin;则hei的计算公式如下:

则标准的hello消息的接收信息有效时间vtime=neighb_hold_time=β*refresh_interval=β*hmid,(4);

公式(4)中,β为调整参数,neighb_hold_time为保持时间,refresh_interval为刷新间隔时间。

如果采用自适应发送hello消息,当hei为hmin时,hello消息保持期vtime过长,易保存失效链路。当hei为hmax时,vtime过短,容易使节点或链路丢失。

所以,发送hello消息的vtime域应该根据hello的发送间隔hei做相应的调整为:

vtimehello=β*hei,(5);

其中,vtimehello表示本次发送hello消息的接收消息有效时间长度,hei表示本次发送hello消息到下一次发送hello消息的时间间隔。

本发明的另一个实施例中,β取值为3。

步骤s313,当下一次发送间隔到达时,发送下一次发送heilo消息。

节点发送tc消息,向全网广播一个链路集合,这个集合应该至少包含到达该节点mpr选择器集合中的所有节点的链路。为了提高网络的可靠性,通过增加冗余的方式,本发明的广播链路集合为全部对称的相邻节点链路集合。tc消息的自适应发送可以通过节点的mpr集,mpr选择器集,以及对称邻居集变化情况进行调整。

基于此,自适应模块进行tc消息自适应处理步骤如下,如图3所示:

步骤s321,监听广播链路集的变化情况,当广播链路集发生变化时,根据变化情况确定下一个tc消息的发送时间;

步骤s322,当广播链路集没有发生变化时,使用tc发送间隔调整公式对tc消息的发送间隔进行恢复,能够避免tc消息全网洪泛。

下面进行具体的说明:

tc消息的发送时间间隔的范围为[tmin,tmax];其中,tmin为tc消息的发送时间间隔的最小值,tmax为tc消息的发送时间间隔的最大值;

当tc消息的发送时间间隔为tmin时,表示节点快速移动拓扑发生变化,需要快速发送tc消息,以便其他节点快速更新路由;

当tc消息的发送时间间隔为tmax时,表示网络拓扑没有变化,用于节点静止的情况下,这时无需频繁发送tc消息。

本发明的另一个实施例中,将olsr路由协议标准中tc消息的发送间隔的默认值设为5s,记为tmid,值为5s。和hello消息的自适应发送类似,tc消息的发送间隔范围为[tmin,tmax],其中tmin≤tmid≤tmax,可以定义范围为[3,8]。

和hello消息的发送频率相比,tc消息的发送频率比较长,故tc消息的快速发送的触发条件与hello消息不同。

当拓扑发生变化的时候需要快速发送tc消息,根据olsr路由协议的运行原理和感知网络拓扑变化的方式,设定快速发送条件有:

条件1:当节点的多点中继集(即mpr集)、广播链路选择集(mpr选择器集)和对称邻居集新增元素时,则下一个tc消息的发送时间间隔tcei(tcemissioninternal)为tmin;

条件2:当节点的多点中继集、广播链路选择集和对称邻居集删除元素时,则下一个tc消息的发送时间间隔tcei为tmin。

条件3:为了避免tc消息全网洪泛,当广播链路集没有发生变化时,使用tc发送间隔调整公式对tc消息的发送间隔进行恢复。

tc发送间隔调整公式为:

公式(6)中,tceilast为上一个tc发送间隔,tceinext为下一个tc发送间隔。

步骤s321中提到的广播链路集发生变化的情况涉及条件1、2中提到情况,步骤s322中提到的广播链路集没有发生变化涉及条件3中提到情况。

自适应模块进行tc消息自适应处理还包括:

在每次发送完一个tc消息后,在下一个tc消息发送之前,若触发快速发送条件,则下一个tc消息发送间隔更新为上一个tc消息发送时间加上tmin;

当tc消息的自适应发送出现标准的tc消息的接收信息有效时间设置不合适的时候,采用的tc消息调整算法公式来调整,tc消息调整算法公式如下:

vtimetc=η*tcei,(7);

公式(7)中,vtimetc表示标准的tc消息的接收信息有效时间,η表示调整参数,tcei表示tc消息发送间隔。

本发明的自适应模块进行tc消息自适应处理的方法有助于当广播链路集变化的时候及时发送tc消息,向全网广播拓扑变化情况,当广播链路集没有变化的时候,减少信息的洪泛。

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

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