一种指定路由器选举方法、装置、路由器及通信系统与流程

文档序号:13141983阅读:438来源:国知局
一种指定路由器选举方法、装置、路由器及通信系统与流程

本发明涉及通信领域,尤其涉及一种指定路由器选举方法、装置、路由器及通信系统。



背景技术:

通信网络中的很多协议都采用了指定路由器designatedrouter(dr)机制,在多址访问网络中,所有路由器只与选举出来的指定路由器进行报文交互,从而避免了所有路由器两两之间进行报文交互而带来大量冗余报文的缺点,这样可以节省宝贵的带宽资源,降低对路由器处理能力的压力。

例如,链路状态路由协议,开放式最短路径优先(openshortestpathfirst,简称ospf),中间系统-中间系统(intermediatesystem-to-intermediatesystem,简称isis)都引入了指定路由器机制(isis协议中为designatedintermediatesystem,简称dis),网络中的其他路由器只与指定路由器进行数据库报文的同步交互,指定路由器会产生指向所有其他路由器连接的链路状态报文。

指定路由器的选举过程主要包括确定具有选举资格的候选路由器列表,根据选举资格属性从具有选举资格的候选路由器列表中,选举出具有最优资格的路由器为指定路由器。中间系统-中间系统isis协议采用抢占式规则,当新加入路由器比当前指定路由器具有更优选举资格时,新加入路由器会立刻抢占当前指定路由器资格,选举自己为指定路由器(其他路由器也会选举新加入路由器为指定路由器),这种抢占式dis选举算法会导致dis频繁切换,进而可能带来路由震荡等问题。

针对上述问题,提出一种指定路由器选举方法,以解决抢占式dis选举算法导致dis频繁切换的问题,是本领域技术人员亟待解决的技术问题。



技术实现要素:

本发明实施例提供了一种指定路由器选举方法、装置、路由器及通信系统,以解决现有抢占式dis选举算法导致dis频繁切换的问题。

一方面,提供了一种指定路由器选举方法,其包括:

当新加入通信网络时,检测通信网络中是否存在指定路由器;

若存在指定路由器,则接受指定路由器完成指定路由器选举;若不存在指定路由器,则触发进行指定路由器选举。

一方面,提供了一种指定路由器选举装置,其包括:

检测模块,用于当新加入通信网络时,检测通信网络中是否存在指定路由器;

选举模块,用于若存在指定路由器,则接受指定路由器完成指定路由器选举;若不存在指定路由器,则触发指定路由器选举。

一方面,提供了一种路由器,包括处理器,其特征在于,处理器用于当新加入通信网络时,检测通信网络中是否存在指定路由器;若存在指定路由器,则接受指定路由器完成指定路由器选举;若不存在指定路由器,则触发指定路由器选举。

一方面,提供了一种通信系统,其包括本发明实施例提供的路由器,路由器用于当新加入通信网络时,检测通信网络中是否存在指定路由器,若存在指定路由器,则接受指定路由器完成指定路由器选举,若不存在指定路由器,则触发指定路由器选举;和/或,在加入通信网络后,监听出现的触发条件,触发条件用于触发指定路由器选举,在监听到触发条件后,判断自身是否为指定路由器;若自身为指定路由器,检测自身的端口优先级是否低于通信网络中其他路由器的端口优先级,若是,则触发指定路由器选举;若自身不为指定路由器,检测通信网络中是否存在指定路由器,若存在指定路由器,则接受指定路由器完成指定路由器选举,若不存在指定路由器,则触发指定路由器选举。

另一方面,提供了一种计算机存储介质,计算机存储介质中存储有计算机可执行指令,计算机可执行指令用于执行前述的指定路由器选举方法。

本发明实施例的有益效果:

本发明实施例提供了一种指定路由器选举方法,路由器在新加入网络时,不立刻触发选举,而是先侦听网络是否已经存在dis,如果已经存在,则接受当前dis完成dis选举,不存在的话则进行dis选举,这种非抢占式选举方式,解决了现有抢占式dis选举算法会导致dis频繁切换、进而可能带来路由震荡等问题。

附图说明

图1为本发明第一实施例提供的指定路由器选举装置的结构示意图;

图2为本发明第二实施例提供的指定路由器选举方法的流程图;

图3是现有技术中抢占式dis选举算法的示意图;

图4是本发明第三实施例提供的指定路由器选举方法的流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本发明中一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

现通过具体实施方式结合附图的方式对本发明做出进一步的诠释说明。

第一实施例:

图1为本发明第一实施例提供的指定路由器选举装置的结构示意图,由图1可知,本实施例提供的指定路由器选举装置包括:

检测模块11,用于当新加入通信网络时,检测通信网络中是否存在指定路由器;

选举模块12,用于若存在指定路由器,则接受指定路由器完成指定路由器选举;若不存在指定路由器,则触发指定路由器选举。

路由器新加入通信网络时,需要进行dis选举,在本实施例中,路由器根据通信网络是否存在dis执行不同的选举;若存在指定路由器,则接受指定路由器完成指定路由器选举;若不存在指定路由器,则触发指定路由器选举。

在一些实施例中,如图1所示,本发明实施例提供的指定路由器选举装置还包括监听模块13,

监听模块13用于在加入通信网络后,监听出现的触发条件,触发条件用于触发指定路由器选举;

检测模块11用于在监听模块13监听到触发条件后,判断自身是否为指定路由器;若自身为指定路由器,检测自身的端口优先级是否低于通信网络中其他路由器的端口优先级;若自身不为指定路由器,检测通信网络中是否存在指定路由器;

选举模块12用于若自身为指定路由器、且自身的端口优先级低于通信网络中其他路由器的端口优先级时,或者若自身不为指定路由器、且通信网络中不存在指定路由器时,触发指定路由器选举;还用于若自身不为指定路由器、且通信网络中存在指定路由器时,接受指定路由器完成指定路由器选举。

在一些实施例中,上述实施例中的触发条件包括路由器端口优先级变化,和/或,邻居路由器的状态变化。

在一些实施例中,上述实施例中的路由器端口优先级变化包括端口优先级变小或者变大,在现有技术中,发生端口优先级变化的路由器假定为路由器1:若路由器1为dis,在t1时刻,若其端口优先级变大,需要进行dis选举,dis选举结果不变(无用选举),在t2时刻,若其端口优先级变小至低于其他路由器的端口优先级(即dis主动释放其dis角色),需要进行dis选举,dis选举结果发生变化;若路由器1为非dis,在t1时刻,若其端口优先级变大至大于dis的端口优先级,需要进行dis选举(抢占式dis选举),dis选举结果发生变化,若其端口优先级变小,需要进行dis选举,dis选举结果不变(无用选举);由此可知,在任意路由器端口的优先级发生变化时,现有抢占式dis选举方法必然进行dis选举,可能导致dis变化或者出现无用选举,而若根据本发明实施例中的方案,在端口优先级发生变化时,仅在自身为指定路由器、且自身的端口优先级低于通信网络中其他路由器的端口优先级时(即dis主动释放其dis角色),触发指定路由器选举,其他情况下,只要通信网络存在dis,就不会进行dis选举,不会导致dis变化。

在一些实施例中,上述实施例中的邻居路由器的状态变化包括:邻居路由器从宣称自己为指定路由器转变为不再宣称自己为指定路由器;或者,邻居路由器从未宣称自己为指定路由器转变为开始宣称自己为指定路由器。例如在t1时刻,dis主动释放其dis角色,此时出现邻居路由器a(原dis)从宣称自己为指定路由器转变为不再宣称自己为指定路由器,然后触发dis选举,在t2时刻,邻居路由器b当选dis,就会出现邻居路由器(新dis)从未宣称自己为指定路由器转变为开始宣称自己为指定路由器。

在一些实施例中,上述实施例中的检测模块11用于检测在加入通信网络后的预定时间内,是否接收到其他路由器发送的表示指定路由器消息,其中,表示指定路由器消息用于表示路由器为指定路由器且非新接入路由器;若接收到表示指定路由器消息,则通信网络中存在指定路由器;若未接收到表示指定路由器消息,则通信网络中不存在指定路由器。在实际应用中,路由器在t1时刻接入通信网络,启动定时器进行计时预定时长t,在t2=t1+t判断是否接收到其他路由器发送的表示指定路由器消息,若接收到表示指定路由器消息,则认为通信网络中存在指定路由器,否则认为通信网络中不存在指定路由器。

在一些实施例中,上述实施例中的选举模块12用于判断通信网络内是否存在宣称为指定路由器、且非新加入路由器的路由器;若存在,则将宣称为指定路由器、且非新加入路由器的路由器作为指定路由器;若不存在,则从通信网络内符合选举要求的路由器中按照优先级选择一个路由器作为指定路由器。

在一些实施例中,上述实施例中的选举模块12还用于若存在多个宣称为指定路由器、且非新加入路由器的路由器,则按照优先级从中选择一个作为指定路由器。本实施例主要用于两个及以上的局域网互联时的情况,在t1时刻之前,局域网1和局域网2是相互独立的,局域网1和局域网2都有其对应的指定路由器,现假设为dis1及dis2,在t1时刻,局域网1和局域网2联通,此时将触发dis选举,若按照本发明的技术方案,dis1及dis2都将宣称为指定路由器、且非新加入路由器的路由器,此时其他路由器就需用根据优先级从中选择一个作为指定路由器。

在实际应用中,上述实施例中所有的功能模块,如监听模块13、检测模块11及选举模块12等功能模块,都可以由处理器使用存储器存储的用于实现各功能模块功能的软件程序实现,也可以由烧录有对应软件程序的可编程逻辑器件等方式实现。

对应的,本发明实施例提供了一种路由器,该路由器包括处理器,处理器用于当新加入通信网络时,检测通信网络中是否存在指定路由器;若存在指定路由器,则接受指定路由器完成指定路由器选举;若不存在指定路由器,则触发指定路由器选举。

在一些实施例中,上述实施例中的处理器还用于在加入通信网络后,监听出现的触发条件,触发条件用于触发指定路由器选举;在监听到触发条件后,判断自身是否为指定路由器;若自身为指定路由器,检测自身的端口优先级是否低于通信网络中其他路由器的端口优先级,若是,则触发指定路由器选举;若自身不为指定路由器,检测通信网络中是否存在指定路由器,若存在指定路由器,则接受指定路由器完成指定路由器选举,若不存在指定路由器,则触发指定路由器选举。

在一些实施例中,上述实施例中的触发条件包括路由器端口优先级变化,和/或,邻居路由器的状态变化。

在一些实施例中,上述实施例中的路由器端口优先级变化包括端口优先级变小或者变大,在现有技术中,发生端口优先级变化的路由器假定为路由器1:若路由器1为dis,在t1时刻,若其端口优先级变大,需要进行dis选举,dis选举结果不变(无用选举),在t2时刻,若其端口优先级变小至低于其他路由器的端口优先级(即dis主动释放其dis角色),需要进行dis选举,dis选举结果发生变化;若路由器1为非dis,在t1时刻,若其端口优先级变大至大于dis的端口优先级,需要进行dis选举(抢占式dis选举),dis选举结果发生变化,若其端口优先级变小,需要进行dis选举,dis选举结果不变(无用选举);由此可知,在任意路由器端口的优先级发生变化时,现有抢占式dis选举方法必然进行dis选举,可能导致dis变化或者出现无用选举,而若根据本发明实施例中的方案,在端口优先级发生变化时,仅在自身为指定路由器、且自身的端口优先级低于通信网络中其他路由器的端口优先级时(即dis主动释放其dis角色),触发指定路由器选举,其他情况下,只要通信网络存在dis,就不会进行dis选举,不会导致dis变化。

在一些实施例中,上述实施例中的邻居路由器的状态变化包括:邻居路由器从宣称自己为指定路由器转变为不再宣称自己为指定路由器;或者,邻居路由器从未宣称自己为指定路由器转变为开始宣称自己为指定路由器。

在一些实施例中,上述实施例中的处理器用于检测在加入通信网络后的预定时间内,是否接收到其他路由器发送的表示指定路由器消息,其中,表示指定路由器消息用于表示路由器为指定路由器且非新接入路由器;若接收到表示指定路由器消息,则通信网络中存在指定路由器;若未接收到表示指定路由器消息,则通信网络中不存在指定路由器。在实际应用中,路由器在t1时刻接入通信网络,启动定时器进行计时预定时长t,在t2=t1+t判断是否接收到其他路由器发送的表示指定路由器消息,若接收到表示指定路由器消息,则认为通信网络中存在指定路由器,否则认为通信网络中不存在指定路由器。

在一些实施例中,上述实施例中的处理器用于判断通信网络内是否存在宣称为指定路由器、且非新加入路由器的路由器;若存在,则将宣称为指定路由器、且非新加入路由器的路由器作为指定路由器;若不存在,则从通信网络内符合选举要求的路由器中按照优先级选择一个路由器作为指定路由器。

在一些实施例中,上述实施例中的处理器还用于若存在多个宣称为指定路由器、且非新加入路由器的路由器,则按照优先级从中选择一个作为指定路由器。本实施例主要用于两个及以上的局域网互联时的情况,在t1时刻之前,局域网1和局域网2是相互独立的,局域网1和局域网2都有其对应的指定路由器,现假设为dis1及dis2,在t1时刻,局域网1和局域网2联通,此时将触发dis选举,若按照本发明的技术方案,dis1及dis2都将宣称为指定路由器、且非新加入路由器的路由器,此时其他路由器就需用根据优先级从中选择一个作为指定路由器。

对应的,本发明实施例提供了一种通信系统,其包括路由器,路由器用于当新加入通信网络时,检测通信网络中是否存在指定路由器,若存在指定路由器,则接受指定路由器完成指定路由器选举,若不存在指定路由器,则触发指定路由器选举;和/或,监听触发条件,触发条件用于触发指定路由器选举,在监听到触发条件后,判断自身是否为指定路由器;若自身为指定路由器,检测自身的端口优先级是否低于通信网络中其他路由器的端口优先级,若是,则触发指定路由器选举;若自身不为指定路由器,检测通信网络中是否存在指定路由器,若存在指定路由器,则接受指定路由器完成指定路由器选举,若不存在指定路由器,则触发指定路由器选举。

第二实施例:

图2为本发明第二实施例提供的指定路由器选举方法的流程图,由图2可知,本实施例提供的指定路由器选举方法包括:

s201:当新加入通信网络时,检测通信网络中是否存在指定路由器;

s202:若存在指定路由器,则接受指定路由器完成指定路由器选举;若不存在指定路由器,则触发指定路由器选举。

在一些实施例中,上述实施例中的方法还包括:

在加入通信网络后,监听出现的触发条件,触发条件用于触发指定路由器选举;

在监听到触发条件后,判断自身是否为指定路由器;

若判断结果是自身为指定路由器,检测自身的端口优先级是否低于通信网络中其他路由器的端口优先级,若是,则触发指定路由器选举;

在一些实施例中,上述实施例中的方法还包括:在监听到触发条件后,若判断结果是自身不为指定路由器,检测通信网络中是否存在指定路由器;若存在指定路由器,则接受指定路由器完成指定路由器选举;若不存在指定路由器,则触发指定路由器选举。

在一些实施例中,上述实施例中的触发条件包括路由器端口优先级变化,和/或,邻居路由器的状态变化。

在一些实施例中,上述实施例中的邻居路由器的状态变化包括:邻居路由器从宣称自己为指定路由器转变为不再宣称自己为指定路由器;或者,邻居路由器从未宣称自己为指定路由器转变为开始宣称自己为指定路由器。

在一些实施例中,上述实施例中的检测通信网络中是否存在指定路由器包括:

检测在加入通信网络后的预定时间内,是否接收到其他路由器发送的表示指定路由器消息,其中,表示指定路由器消息用于表示路由器为指定路由器且非新接入路由器;

若接收到表示指定路由器消息,则通信网络中存在指定路由器;

若未接收到表示指定路由器消息,则通信网络中不存在指定路由器。

在一些实施例中,上述实施例中的指定路由器选举包括:

判断通信网络内是否存在宣称为指定路由器、且非新加入路由器的路由器;

若存在,则将宣称为指定路由器、且非新加入路由器的路由器作为指定路由器;

若不存在,则从通信网络内符合选举要求的路由器中按照优先级选择一个路由器作为指定路由器。

在一些实施例中,上述实施例中的方法还包括:若存在多个宣称为指定路由器、且非新加入路由器的路由器,则按照优先级从中选择一个作为指定路由器。

在实际应用中,本发明实施例提供的dis选举方法可以新接入通信网络的路由器、通信网络已有的路由器同时执行全部或部分流程步骤;新接入通信网络的路由器包括原通信网络没有的路由器加入,原通信网络已有的路由器在重启之后的加入。

第三实施例:

现结合具体应用场景对本发明做进一步的诠释说明。

isis协议采用抢占式规则,当新加入路由器比当前指定路由器具有更优选举资格时,新加入路由器会立刻抢占当前指定路由器资格,选举自己为指定路由器(其他路由器也会选举新加入路由器为指定路由器),这种抢占式dis选举算法会导致dis频繁切换,进而可能带来路由震荡等问题。

图3显示了现有isis抢占式dis选举过程,t1时刻router1和router2建立邻居关系,router1和router2端口优先级分别为1和2,router2被选举为dis,并且产生对应网络的伪节点链路状态报文;t2时刻router3加入网络,路由器3端口优先级为3,高于路由器2端口优先级,所以会抢占router2的dis资格,选举自己为dis,老化router2先前产生的伪节点链路状态报文,产生新的伪节点链路状态报文;t3时刻优先级更高的router4加入网络,抢占router3的dis资格,选举自己为dis,老化router3先前产生的伪节点链路状态报文,产生新的伪节点链路状态报文,这种抢占式dis选举算法导致dis频繁切换,老化旧dis产生的伪节点链路状态报文可能会带来路由震荡等问题。

即,现有的isis协议dis选举算法,如果新加入路由器优先级高于当前网络已存在dis路由器优先级时,会立刻抢占当前dis路由器资格,选举自己为dis,这种抢占式选举算法导致dis频繁切换,不利于网络dis的稳定,dis切换过程中老化旧dis产生的伪节点链路状态报文可能会带来路由震荡等问题。

针对抢占式选举算法导致dis频繁切换可能带来路由震荡等问题的缺点,本实施例提供了一种非抢占式isis协议dis选举的方法,路由器新加入网络时,等待一定时间以侦听网络中是否已经存在dis,并且向其它路由器发送新加入网络不参与dis选举信号,如果侦听到网络已经存在dis,即使优先级高于当前dis,也不选举自己为dis,接受当前dis;一定时间内没有侦听到当前网络存在dis,则运行dis选举,如果自己优先级最高,则选举自己为dis。这种非抢占式dis选举算法更有利于网络dis的稳定,避免了抢占式dis选举算法导致dis频繁切换的缺点,以及可能带来的路由震荡等问题。

本发明包括路由器新加入网络处理过程、端口配置优先级发生变化处理过程、邻居路由器相关选举属性变化处理过程、非抢占式dis选举流程四个方面。

现结合图4进行说明,如图4所示,本实施例提供的dis选举方法包括:

s401:路由器新加入网络时的处理;

在实际应用中,路由器加入网络后,端口开始发送hello报文,其中hello报文携带“新加入网络”标志信息,用以告知其它路由器本路由器刚刚加入网络,如果已经存在dis的情况下不要考虑选举本路由器为dis,打开设定时长的等待定时器,这段时间内用以侦听网络中是否存在dis,如果已经存在dis的话,则接受当前dis。

具体的,在设定时长间隔内,即等待定时器还未超时,如果接收到其它路由器发来的宣称自己为dis并且没有携带“新加入网络”标志信息的hello报文,说明网络中已经存在dis,则接受当前网络dis,即使自己优先级更高,也不选举自己为dis;触发发送更新后的hello报文,不再携带“新加入网络”标志信息,关闭等待定时器。

若在设定时长间隔内一直没有侦听到网络中存在dis,即没有接收到其它路由器发来的宣称自己为dis并且没有携带“新加入网络”标志信息的hello报文,等待定时器超时,运行dis选举算法,如果自己优先级最高,则选举自己为dis;触发发送更新后的hello报文,不再携带“新加入网络”标志信息,如果自己被选举为dis,宣称自己为dis。

s402:路由器自身端口配置变化时的处理;

具体的,路由器端口配置变化是指,优先级发生变化。路由器端口配置优先级发生变化时,如果端口优先级变大,保持当前dis不变;如果端口优先级变小并且自己为当前dis,从符合条件的候选路由器中选举优先级最高的路由器为dis(选举过程中路由器不考虑自己宣称为dis),从而保证当前网络最高优先级路由器当选为dis;触发发送更新后的hello报文,如果自己被选举为dis,宣称自己为dis;如果自己没有被选举为dis,不再宣称自己为dis;

s403:邻居路由器属性变化时的处理;

在实际应用中,邻居路由器属性变化触发选举。当邻居路由器状态变为up或者不再up、邻居路由器优先级发生变化、邻居路由器从宣称自己为dis转变为不再宣称自己为dis;或者,邻居路由器从未宣称自己为dis转变为开始宣称自己为dis,说明邻居路由器选举相关的属性发生了变化,需要触发dis选举;选举完成后触发发送更新后的hello报文,如果自己被选举为dis,宣称自己为dis;如果自己没有被选举为dis,不再宣称自己为dis。

s404:非抢占式dis选举;

若需要进行dis选举,先确定符合资格的dis候选路由器,排除邻居状态不为up的邻居路由器在dis候选路由器之外(候选路由器包括当前运行dis选举的路由器自己);判断是否有邻居路由器宣称自己为dis并且没有携带“新加入网络”标志信息,如果存在宣称自己为dis并且没有携带“新加入网络”标志信息的路由器,dis候选路由器只保留宣称自己为dis并且没有携带“新加入网络”标志信息的路由器,如果没有邻居路由器宣称自己为dis,从dis候选路由器中选举优先级最高路由器为dis,而宣称自己为dis并且携带“新加入网络”标志信息属于异常,因为新加入网络的路由器不应该宣称自己为dis,被排除在dis候选路由器之外。

具体的,针对路由器新加入网络时的处理过程诠释如下:

当前isis协议采用dis抢占式选举算法,当路由器新加入网络时,如果优先级高于网络当前dis优先级时,会抢占当前dis资格,选举自己为dis,这种抢占式选举算法导致dis频繁切换以及可能带来路由震荡等问题。

采用dis非抢占式选举算法,当路由器新加入网络时,侦听当前网络是否已经存在dis,如果已经存在dis,接受当前dis,即使自己优先级高于当前dis优先级也不选举自己为dis;如果不存在dis并且自己优先级最高,选举自己为dis。

为了避免无期限的等待来侦听当前网络是否已经存在dis,打开设置时长间隔的等待定时器,同时为了避免其他路由器可能选举新加入网络路由器为dis而造成dis切换,新加入网络路由器在hello报文中携带“新加入网络”标识信息(可以通过设置hello报文中的相应字段来实现,对应字段值为1时,标识路由器新加入网络;对应字段值为0时,标识路由器不是新加入网络),用以告知其它路由器本路由器刚刚加入网络,如果已经存在dis的情况下不要考虑选举本路由器为dis;

在设定时长间隔内,即等待定时器还未超时,侦听当前网络中是否已经存在dis,如果接收到其它路由器发来hello报文,宣称自己为dis并且没有携带“新加入网络”标志信息,说明网络中已经存在dis,则接受当前网络dis,即使自己优先级更高,也不选举自己为dis,否则会造成当前网络dis的不稳定;触发发送更新后的hello报文,因为已经选举出dis,所以不再携带“新加入网络”标志信息,并且关闭等待定时器;

在设定时长间隔内,路由器侦听当前网络中是否已经存在dis,如果一直没有接收到其它路由器发来的宣称自己为dis并且没有携带“新加入网络”标志信息的hello报文,也就是对应等待定时器超时,说明当前网络不存在dis,运行dis选举算法,如果自己优先级最高,选举自己为dis;触发发送更新后的hello报文,如果自己被选举为dis,宣称自己为dis,因为已经选举出dis所以不再携带“新加入网络”标志信息;

具体的,针对路由器修改配置优先级时的处理过程诠释如下:

优先级属性是dis选举一个重要的衡量因素,同等的情况下,优先级越高,当选dis的概率越大。当修改后的优先级变大时,如果自己为当前网络dis,继续选举自己为dis,即当前网络dis没有发生变化;如果自己不为当前网络dis,为了避免dis发生抢占切换,继续保持当前网络dis不变,那么自己发送出去的hello报文继续不宣称自己为dis,因为只有dis路由器宣称自己为dis,那么其它路由器会继续选举当前网络dis路由器为dis,从而保证当前网络dis不发生变化。

当修改后的优先级变小时,如果自己不为当前网络dis,那么肯定就不会选举自己为dis,即当前网络dis不会发生变化;如果自己为当前网络dis,降低优先级应该让其它更高优先级的路由器当选dis,从符合条件的候选路由器中选举优先级最高路由器为dis(选举过程中路由器不考虑自己宣称为dis,如果继续考虑自己为dis的话,即使网络中存在更高优先级路由器,最终也会选举自己为dis);触发发送更新后的hello报文,如果自己不再被选举为dis,不再宣称自己为dis。

具体的,针对邻居路由器选举相关属性变化时的处理过程诠释如下:

和dis选举相关的邻居属性包括邻居状态是否up、邻居优先级发生变化、邻居前后dis宣称信息发生变化。

当邻居路由器状态变为up时,邻居路由器可以参选dis;当邻居路由器状态不再up时,邻居路由器不能参选dis。

优先级是dis选举的重要衡量要素之一,所以当邻居优先级发生变化时,即接收到邻居发来的hello报文中的优先级和上一次接收到邻居hello优先级不一致时,需要重新进行dis选举。

邻居前后dis宣称信息发生变化,也会对dis选举造成影响。邻居路由器先前宣称自己为dis而现在不再宣称自己为dis,或者邻居路由器先前没有宣称自己为dis而现在宣称自己为dis,表示邻居路由器已经重新进行了dis选举,选举结果关于自己是否dis发生了变化,需要重新进行dis选举;

当邻居路由器状态变为up或者不再up、邻居路由器优先级发生变化、邻居路由器先前宣称自己为dis现在不再宣称自己为dis或者先前没有宣称自己为dis现在开始宣称自己为dis,说明邻居路由器和选举相关的属性发生了变化,需要触发dis选举。

本发明提供的非抢占式的dis选举过程,不仅要考虑优先级属性,还要考虑是否宣称自己为dis这个重要信息,并且是否宣称自己为dis这个属性要优先于优先级属性,即如果已经有路由器宣称自己为dis,即使优先级低于其他没有宣称自己为dis的路由器优先级,宣称自己为dis的路由器最终会被选举为dis,这一点保证了当前网络dis的稳定。

在进行dis选举时,确定符合资格的dis候选路由器,排除状态不为up的邻居路由器在dis候选路由器之外(候选路由器包括当前运行dis选举的路由器自己);判断是否有邻居路由器宣称自己为dis并且没有携带“新加入网络”标志信息,如果存在宣称自己为dis并且没有携带“新加入网络”标志信息的路由器,dis候选路由器只保留宣称自己为dis并且没有携带“新加入网络”标志信息的路由器,如果没有邻居路由器宣称自己为dis,从dis候选路由器中选举优先级最高路由器为dis(宣称自己为dis并且携带“新加入网络”标志信息的路由器属于异常,因为新加入网络的路由器不应该宣称自己为dis,被排除在dis候选路由器之外)。

综上可知,通过本发明实施例的实施,至少存在以下有益效果:

本发明实施例提供了一种指定路由器选举方法,不立刻触发选举,而是先侦听网络是否已经存在dis,如果已经存在,则接受当前dis完成dis选举,不存在的话则进行dis选举,这种非抢占式选举方式,解决了现有抢占式dis选举算法会导致dis频繁切换、进而可能带来路由震荡等问题。

进一步的,在接入通信网络后,在检测到触发条件时,先检测通信网络是否存在dis以判断是否满足选举条件,仅在不存在dis时,满足选举条件时,进行dis选举,并非如现有技术那样直接选举,进而就不会如现有抢占式dis选举算法那样频繁切换dis,也解决了现有抢占式dis选举算法导致dis频繁切换的问题。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

以上仅是本发明的具体实施方式而已,并非对本发明做任何形式上的限制,凡是依据本发明的技术实质对以上实施方式所做的任意简单修改、等同变化、结合或修饰,均仍属于本发明技术方案的保护范围。

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