CN102916879A - 一种快速路由收敛方法 - Google Patents
一种快速路由收敛方法 Download PDFInfo
- Publication number
- CN102916879A CN102916879A CN2012104517802A CN201210451780A CN102916879A CN 102916879 A CN102916879 A CN 102916879A CN 2012104517802 A CN2012104517802 A CN 2012104517802A CN 201210451780 A CN201210451780 A CN 201210451780A CN 102916879 A CN102916879 A CN 102916879A
- Authority
- CN
- China
- Prior art keywords
- node
- lsp
- spt
- change
- link
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种快速路由收敛方法,当网络中的任意一个路由节点在收到新的链路状态分组LSP之后,该收到新的链路状态分组LSP的路由节点并不立即启动Dijkstra算法进行整个拓扑的路由重新计算,而是根据当前最短路径优先树SPT、链路状态信息库LSDB信息及新的链路状态分组LSP所含邻居节点的信息,分析网络拓扑的变化情况,将网络拓扑的变化情况分为以下四类:一是有一个叶子节点加入网络;二是网络拓扑没有发生变化,只是有一些路由信息发生了改变;三是链路断开;四是其他情形;根据网络拓扑的变化情况决定参与SPF计算的节点并计算路由。本发明,对路由算法本身的计算和更新进行了优化,既可以快速响应拓扑变化,又可以减少CPU负载。
Description
技术领域
本发明涉及通信技术领域,具体说是一种快速路由收敛方法。
背景技术
现有的路由算法可以分为两大类:基于距离矢量路由算法和基于链路状态路由算法。
基于距离矢量路由算法中,每个路由节点(简称为节点)从其邻居处获得路由信息,并在每一条路由信息上叠加从自己到这个邻居的距离矢量,从而形成自己的路由信息,如路由信息协议(RoutingInformation Protocol,RIP)。
基于链路状态路由算法中,每个路由节点将自己与邻居节点的链路信息通告给网络中的其他所有路由节点,然后每个路由节点执行最短路径优先(Shortest Path First,SPF)算法,找出自己到其他所有节点的最优路由。典型的链路状态路由协议有中间系统到中间系统(Intermediate System to Intermediate System,ISIS)协议和开放最短路径优先(Open Shortest Path First,OSPF)协议。虽然ISIS和OSPF在功能上有些差异,但其基本原理算法都是一样的。OSPF是为IP协议簇而开发的,而ISIS是针对开放系统互联(Open SystemInterconnect,OSI)参考模型开发的,随后才被扩展支持IP。
链路状态路由协议必须发现邻居,分发学习路由地址、链路开销(与带宽、时延等有关)等。这些信息都包含在链路状态分组(Link State Packet,LSP)中。不同节点产生的LSP都有自己唯一的标识(Identification,ID),使用递增的序列号来区分LSP的新旧。ID相同的LSP,序列号大的表示最近生成的,将用于路由计算。LSP在网络中洪泛,生成链路状态信息库(Link StateDatabase,LSDB)。然后每个路由节点启用一种广泛应用的称作Dijkstra的SPF算法(简称为Dijkstra算法,迪杰斯特拉算法),计算出到达所有其他路由节点的最短路径。该算法(指称作Dijkstra的SPF算法)是一个迭代的构造最短路径树(ShortestPath Tree,SPT)的过程,其基本思路是根据节点链路状态信息库中描述的拓扑信息构建最短路径树,然后将链路状态信息库中描述的路由信息作为树上的叶子生成最终路由。
现有的路由计算对CPU(中央处理器单元)要求很高。对于链路状态路由协议来说,一旦网络中有链路状态发生变化(链路UP、DOWN或者开销改变等),网络中的所有路由节点都会重新计算路由,执行Dijkstra算法。重新计算路由的过程对于小网络而言,影响不大。但是随着网络IP化进程的加剧,网络规模不断扩大,一个网络中可能有成千上万的节点。对于网络拓扑比较复杂、路由节点数量也很大的现代网络而言,每进行一次全部路由的计算都会占用大量系统资源,对系统造成很大冲击,同时,由于处理工作量太大造成耗时太长而无法满足路由快速收敛的需求。
目前已经有一些减少SPF计算次数的方法提出来,如设置指数增长的连续SPF计算间隔,防止过度频繁的路由计算,这种方法虽然降低了CPU的占用率,却又导致路由节点无法对链路变化立即做出反应,从而降低了路由收敛速度。
Dijkstra算法涉及到两个重要的数据结构。一个是PATH,即路由节点执行计算之后的最短路径,是一个方向图。另一个是TENT,一个临时数据库,表示候选节点,当TENT为空时,路由计算即结束。
大的网络拓扑中,网络总是在动态变化的,可能有链路的断开,有节点离开这个网络,也有可能有新的节点加入,链路状态信息库也会随之更新,从而路由也重新计算和安装。对于基于链路状态路由算法,只要有链路发生了改变,网络中的每个节点必须要对整个网络拓扑重新计算路由,以自身为根节点执行Dijkstra算法,这导致了少数节点的变化会触发全网所有节点的路由重新计算,占用大量系统资源,对系统造成很大冲击。实际上大多数情形是没有必要的,因为有一部分的链路并不会在SPT上,网路中实际链路的数目通常都比SPT上的多。另外,大多链路都是靠近叶子节点的,即远离根节点,只会影响少数的节点。现有的技术在进行路由计算的过程中,其中大多数重新计算是不必要的,由于不能有选择性的处理,从而浪费了大量的CPU,降低了收敛速度。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种快速路由收敛方法,对路由算法本身的计算和更新进行了优化,既可以快速响应拓扑变化,又可以减少CPU负载。
为达到以上目的,本发明采取的技术方案是:
一种快速路由收敛方法,其特征在于,包括以下步骤:
步骤1,预先评估网络拓扑的变化情况:当网络中的任意一个路由节点在收到新的链路状态分组LSP之后,该收到新的链路状态分组LSP的路由节点并不立即启动Dijkstra算法进行整个拓扑的路由重新计算,而是根据当前最短路径优先树SPT、链路状态信息库LSDB信息及新的链路状态分组LSP所含邻居节点的信息,分析网络拓扑的变化情况,将网络拓扑的变化情况分为以下四类:
一是有一个叶子节点加入网络;计为case1;
二是网络拓扑没有发生变化,只是有一些路由信息发生了改变;计为case2;
三是链路断开;计为case3;
四是其他情形;计为case4;
步骤2,根据网络拓扑的变化情况决定参与SPF计算的节点并计算路由:
对于第一类拓扑变化,以当前的SPT为基础作为已知PATH,新加入的节点作为备选节点加入TENT,执行Dijkstra算法,并更新新加入节点的IP可达信息;
对于第二类拓扑变化,以当前的SPT为基础作为已知PATH,备选节点TENT为空,执行Dijkstra算法,直接跳过SPF计算的过程,只是更新变化了的IP可达信息;
对于第三类拓扑变化,有两种情形,一种是不在SPT上的链路断开,不进行任何操作,另一种是在SPT上的链路断开,以当前的SPT为基础,删除受影响的节点之后作为已知的PATH,受影响的节点作为备选节点加入TENT,执行Dijkstra算法,更新受影响节点的IP可达信息;
对于第四类拓扑变化,均以自身为根节点重新执行完整的SPF计算,并更新所有的IP可达信息。
在上述技术方案的基础上,所述预先评估网络拓扑的变化情况由拓扑分析模块处理,
所述根据网络拓扑的变化情况决定参与SPF计算的节点并计算路由由路由处理模块处理。
在上述技术方案的基础上,检测到网络中节点或是链路有变化的节点会产生相应的LSP并向全网通告该变化,所述变化包括:有节点离开、有新的节点加入、有链路断开或有节点接口状态发生变化。
在上述技术方案的基础上,LSP用于描述一个路由节点的链路状态信息,用LSP ID标识,LSP中记录了邻居的LSP ID和IP可达信息;
LSDB是路由节点自身的LSP以及从其他节点接收到的LSP的集合;
节点加入SPT后则从SPT获得其对应的LSP顶点信息;
LSP和LSP顶点信息二者通过LSP ID互相关联。
在上述技术方案的基础上,预先评估网络拓扑的变化情况的具体步骤如下:
步骤1,当网络中的路由节点接收到一个新的LSP之后,拓扑分析模块首先会判断LSDB中是否已有相同LSP ID对应的LSP信息,如果没有,转步骤2,如果有,转步骤3;
步骤2,判断新LSP对应的路由节点是否在SPT上,如果是,则网络拓扑的变化情况为case4,判断结束,如果不是,转步骤2.1;
步骤2.1,根据新LSP中的邻居LSP ID判断新LSP中是否有且只有一个邻居,如果是,则网络拓扑的变化情况为case1,判断结束,如果不是,则转步骤2.2;
步骤2.2,判断新LSP中邻居的数量是否大于1,如果是,则网络拓扑的变化情况为case4,判断结束,如果不是,则表示没有邻居,直接结束判断,并不进行路由计算;
步骤3,判断旧LSP对应的路由节点是否在SPT上,如果是则转步骤4,如果不是则转步骤2.1,
步骤4,判断旧LSP中是否有邻居信息,如果没有,则转步骤2.1,如果有,则转步骤5,
步骤5,判断新LSP和旧LSP中邻居信息是否不同,如果新LSP和旧LSP邻居信息完全相同,表示仅有一些IP可达信息的变化,则网络拓扑的变化情况为case2,判断结束;如果新LSP和旧LSP邻居不同,则转步骤6;
步骤6,判断新LSP中有的邻居在旧LSP中有没有,如果新的LSP中包含旧的LSP中没有的邻居节点,则网络拓扑的变化情况为case4,判断结束;如果新的LSP中不包含旧的LSP中没有的邻居节点,则转步骤7,
步骤7,判断旧LSP中有的邻居在新LSP中有没有,如果旧LSP中的一个邻居在新LSP中没有,而且仅此一个邻居没有,表示第一次检测到只有一条链路断开,则网络拓扑的变化情况为case3,判断结束;否则,网络拓扑的变化情况为case4,判断结束。
在上述技术方案的基础上,如果在当前拓扑变化情形为case1-case3的任意一种情形时,此时再收到新的LSP时,所有情形均直接判定为case4。
在上述技术方案的基础上,路由处理模块对于case1,执行叶子节点加入时的SPF计算;
路由处理模块对于case2,直接跳过SPF计算的过程,只是更新变化了的IP可达信息;
路由处理模块对于case3,执行链路断开时的SPF计算,更新受影响节点的IP可达信息;
路由处理模块对于case4,从根节点开始重新执行完整的SPF计算,并更新所有的IP可达信息。
在上述技术方案的基础上,执行叶子节点加入时的SPF计算的具体步骤如下:
叶子节点加入网络时,首先判断叶子节点的父节点是否在SPT上,如果叶子节点的父节点不在SPT上,则对所有节点执行SPF计算;如果叶子节点的父节点在SPT上,则将父节点的所有邻居加入TENT表,然后判断叶子节点是否在父节点的TENT表中,如果叶子节点不在父节点的TENT表中,则清空TENT表后再对所有节点执行SPF计算;如果叶子节点在父节点的TENT表中,则将叶子节点指向其父节点,并从TENT列表中将该叶子节点删除,并在SPT上注册。
在上述技术方案的基础上,执行链路断开时的SPF计算的具体步骤如下:
如果为链路断开的情形,则记录下当前nLSP及nlsp中缺少的对端邻居nbrLSP,所述nLSP为新收到的LSP,所述nbrLSP为断开链路另一端节点的LSP;
记录后判断nLSP对应的顶点V是否在SPT上,如果nLSP对应的顶点V不在SPT上,则执行全部节点的路由重新计算,同case4;
否则进一步判断nbrLSP对应的顶点W是否在SPT上,如果nbrLSP对应的顶点W不在SPT上,则执行全部节点的路由重新计算,同case4;
否则即顶点V和顶点W都在SPT上,则判断W和V关系;
如果W不是V的孩子节点,V也不是W的孩子节点,则表示该链路并不在SPT上,无需路由计算和路由更新,计算结束;
如果W不是V的孩子节点,而V是W的孩子,则将W和V互换,使V表示节点,W表示孩子节点;
如果W是V的孩子节点,则不用互换W和V,V表示节点,W表示孩子节点;
至此,满足了条件“V表示节点,W表示孩子节点”,则从SPT上删除W节点及其孩子节点,将这些被删除的节点加入TENT列表中,再对TENT列表中的节点执行SPF计算,将其逐一重新附加到SPT上,计算结束。
本发明所述的快速路由收敛方法,对路由算法本身的计算和更新进行了优化,既可以快速响应拓扑变化,又可以减少CPU负载。实际网络应用中,某些链路状态信息的变化并不需要让所有路由都全部重新计算,本发明所述的方法通过预先评估网络拓扑的变化情况,使得重新进行路由计算的波及面控制在最小范围内,节约了系统的CPU资源并加快了由链路状态变化引发的路由收敛速度。
附图说明
本发明有如下附图:
图1是本发明中一个基本的网络拓扑图,
图2是本发明中拓扑分析模块的处理流程图,
图3是本发明中路由处理模块的处理流程图,
图4是本发明中叶子节点加入时的SPF计算流程图,
图5是本发明中链路断开时SPF计算的流程图。
具体实施方式
以下结合附图对本发明作进一步详细说明。
本发明所述的快速路由收敛方法,包括以下步骤:
步骤1,预先评估网络拓扑的变化情况:当网络中的任意一个路由节点在收到新的链路状态分组LSP之后,该收到新的链路状态分组LSP的路由节点并不立即启动Dijkstra算法进行整个拓扑的路由重新计算,而是根据当前最短路径优先树SPT、链路状态信息库LSDB信息及新的链路状态分组LSP所含邻居节点的信息,分析网络拓扑的变化情况,将网络拓扑的变化情况分为以下四类:
一是有一个叶子节点加入网络;
二是网络拓扑没有发生变化,只是有一些路由信息发生了改变;
三是链路断开;
四是其他情形;
步骤2,根据网络拓扑的变化情况决定参与SPF计算的节点并计算路由:
对于第一类拓扑变化,以当前的SPT为基础作为已知PATH,新加入的节点作为备选节点加入TENT,执行Dijkstra算法,并更新新加入节点的IP可达信息;
对于第二类拓扑变化,以当前的SPT为基础作为已知PATH,备选节点TENT为空,执行Dijkstra算法,直接跳过SPF计算的过程,只是更新变化了的IP可达信息;
对于第三类拓扑变化,有两种情形,一种是不在SPT上的链路断开,不进行任何操作,另一种是在SPT上的链路断开,以当前的SPT为基础,删除受影响的节点之后作为已知的PATH,受影响的节点作为备选节点加入TENT,执行Dijkstra算法,更新受影响节点的IP可达信息;
对于第四类拓扑变化,均以自身为根节点重新执行完整的SPF计算,并更新所有的IP可达信息。
本发明通过以上方法,当网络拓扑或者路由信息发生变化时,系统不需要进行全部路由计算,每次只是根据网络变化的不同情况做出最精简的处理,使得路由计算处理工作量降到最低,从而大大节约路由计算所占用的时间。
在上述技术方案的基础上,所述预先评估网络拓扑的变化情况由拓扑分析模块处理,
所述根据网络拓扑的变化情况决定参与SPF计算的节点并计算路由由路由处理模块处理。
每个路由节点均通过拓扑分析模块和路由处理模块实现了所述的快速路由收敛方法,每个路由节点均使用该快速路由收敛方法。
以下通过实施例进一步说明本发明的技术方案。
如图1所示,这是一个网络拓扑图形,实线是根据Dijkstra算法计算出的SPT树,虚线则表示不在该SPT树上的链路。这里执行路由计算的根节点是节点A,节点B和节点C是节点A的孩子,节点A是节点B和节点C的父亲。节点D、E、F均为叶子节点。当网络中节点或者链路有任何变化,比如有节点离开或者有新的节点加入,或者有链路断开时,检测到该变化的节点会产生相应的LSP向全网通告该变化。即:检测到网络中节点或是链路有变化的节点会产生相应的LSP并向全网通告该变化,所述变化包括:有节点离开、有新的节点加入、有链路断开或有节点接口状态发生变化。
LSP用于描述一个路由节点的链路状态信息,用LSPID标识,LSP中记录了邻居(与自身建立邻接关系的网络中其他路由节点)的LSP ID和IP可达信息;LSDB是路由节点自身的LSP以及从其他节点接收到的LSP的集合;节点加入SPT后则从SPT获得其对应的LSP顶点信息;LSP与LSP顶点中均有LSP ID,二者(指LSP和LSP顶点信息)通过LSP ID互相关联;判断一个节点是否在SPT上,则可以通过查找SPT上是否有该节点LSP ID对应的LSP顶点信息获知,如果有,则表示该节点在SPT上,如果没有,则该节点不在SPT上。
拓扑分析模块预先评估网络拓扑的变化情况,每一个执行快速路由收敛方法的节点根据当前最短路径优先树SPT、链路状态信息库LSDB信息及新的链路状态分组LSP所含邻居节点的信息,分析网络拓扑的变化情况,分为四类,如前所述的case1~case4。如图2所示,预先评估的具体过程如下:
步骤1,当网络中的路由节点接收到一个新的LSP之后,拓扑分析模块首先会判断LSDB中是否已有相同LSP ID对应的LSP信息,如果没有,转步骤2,如果有,即旧LSP,转步骤3;
步骤2,判断新LSP对应的路由节点是否在SPT上,如果是,则网络拓扑的变化情况为case4,判断结束,即:如果LSP是一个新接收到的LSP且其对应的路由节点已经在SPT上,则标记为case4;如果不是,转步骤2.1;
步骤2.1,根据新LSP中的邻居LSP ID判断新LSP中是否有且只有一个邻居,如果是,则网络拓扑的变化情况为case1,判断结束,如果不是,则转步骤2.2;
步骤2.2,判断新LSP中邻居的数量是否大于1,如果是,则网络拓扑的变化情况为case4,判断结束,如果不是,则表示没有邻居,直接结束判断,并不进行路由计算;即:当LSP是一个新收到的LSP且该LSP不在SPT上,如果该新LSP中有且只有一个邻居信息,表示有一个叶子节点加入网络,是case1,如有两个以上邻居信息则为case4,如没有邻居信息则不进行路由计算;
步骤3,判断旧LSP对应的路由节点是否在SPT上,如果是则转步骤4,如果不是则转步骤2.1,
步骤4,判断旧LSP中是否有邻居信息,如果没有,则转步骤2.1,如果有,则转步骤5,
步骤5,判断新LSP和旧LSP中邻居信息是否不同,如果新LSP和旧LSP邻居信息完全相同,表示仅有一些IP可达信息的变化,则网络拓扑的变化情况为case2,判断结束;即:如果LSDB中已有该节点的LSP,如果新LSP和旧LSP邻居相同,表示仅有一些IP可达信息的变化,为case2;如果新LSP和旧LSP邻居不同,则转步骤6;
步骤6,判断新LSP中有的邻居在旧LSP中有没有,如果新的LSP中包含旧的LSP中没有的邻居节点,则网络拓扑的变化情况为case4,判断结束;如果新的LSP中不包含旧的LSP中没有的邻居节点,则转步骤7,
步骤7,判断旧LSP中有的邻居在新LSP中有没有,如果旧LSP中的一个邻居在新LSP中没有,而且仅此一个邻居没有,表示第一次检测到只有一条链路断开,则网络拓扑的变化情况为case3,判断结束;否则,网络拓扑的变化情况为case4,判断结束。
在上述技术方案的基础上,由于同时收到多个LSP的判断较为复杂,本发明针对收到多个LSP的情况特别规定如下:如果在当前拓扑变化情形为case1-case3的任意一种情形时,此时再收到新的LSP时,所有情形均直接判定为case4。
路由处理模块按照网络拓扑的变化情况的不同处理流程如图3所示。对于case1,执行叶子节点加入时的SPF计算,详见图4;对于case2,直接跳过SPF计算的过程,只是更新变化了的IP可达信息;对于case3,执行链路断开时的SPF计算,详见图5,更新受影响节点的IP可达信息;对于case4,从根节点开始重新执行完整的SPF计算,并更新所有的IP可达信息。可参见前述的步骤2,二者含义相同,仅仅是表述上的区别。
如图4为叶子节点加入时的SPF计算流程图(case1)。叶子节点加入网络时,首先判断叶子节点的父节点是否在SPT上,叶子节点的父节点,即叶子节点LSP中唯一的邻居节点信息,必须要在SPT上,如果叶子节点的父节点不在SPT上,则执行全部节点的路由计算(即对所有节点执行SPF计算);如果叶子节点的父节点在SPT上,则将父节点的所有邻居加入TENT表,然后判断叶子节点是否在父节点的TENT表中,叶子节点必须在父节点的TENT表中,如果叶子节点不在父节点的TENT表中,则清空TENT表后再执行全部节点的路由计算(即对所有节点执行SPF计算);如果叶子节点在父节点的TENT表中,则将叶子节点指向其父节点,并从TENT列表中将该叶子节点删除,并在SPT上注册。
如图5为链路断开时SPF计算的流程图(case3)。如果为链路断开的情形,则记录下当前nLSP及nlsp中缺少的对端邻居nbrLSP,所述nLSP为新收到的LSP,所述nbrLSP为断开链路另一端节点的LSP;
记录后判断nLSP对应的顶点V是否在SPT上,如果nLSP对应的顶点V不在SPT上,则执行全部节点的路由重新计算,同case4;
否则进一步判断nbrLSP对应的顶点W是否在SPT上,如果nbrLSP对应的顶点W不在SPT上,则执行全部节点的路由重新计算,同case4;
否则即顶点V和顶点W都在SPT上,则判断W和V关系;
如果W不是V的孩子节点,V也不是W的孩子节点,则表示该链路并不在SPT上,无需路由计算和路由更新,计算结束;
如果W不是V的孩子节点,而V是W的孩子,则将W和V互换,使V表示节点,W表示孩子节点;
如果W是V的孩子节点,则不用互换W和V,V表示节点,W表示孩子节点;
至此,满足了条件“V表示节点,W表示孩子节点”,则从SPT上删除W节点及其孩子节点,将这些被删除的节点加入TENT列表中,再对TENT列表中的节点执行SPF计算,将其逐一重新附加到SPT上,计算结束。
本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。
Claims (9)
1.一种快速路由收敛方法,其特征在于,包括以下步骤:
步骤1,预先评估网络拓扑的变化情况:当网络中的任意一个路由节点在收到新的链路状态分组LSP之后,该收到新的链路状态分组LSP的路由节点并不立即启动Dijkstra算法进行整个拓扑的路由重新计算,而是根据当前最短路径优先树SPT、链路状态信息库LSDB信息及新的链路状态分组LSP所含邻居节点的信息,分析网络拓扑的变化情况,将网络拓扑的变化情况分为以下四类:
一是有一个叶子节点加入网络;计为case1;
二是网络拓扑没有发生变化,只是有一些路由信息发生了改变;计为case2;
三是链路断开;计为case3;
四是其他情形;计为case4;
步骤2,根据网络拓扑的变化情况决定参与SPF计算的节点并计算路由:
对于第一类拓扑变化,以当前的SPT为基础作为已知PATH,新加入的节点作为备选节点加入TENT,执行Dijkstra算法,并更新新加入节点的IP可达信息;
对于第二类拓扑变化,以当前的SPT为基础作为已知PATH,备选节点TENT为空,执行Dijkstra算法,直接跳过SPF计算的过程,只是更新变化了的IP可达信息;
对于第三类拓扑变化,有两种情形,一种是不在SPT上的链路断开,不进行任何操作,另一种是在SPT上的链路断开,以当前的SPT为基础,删除受影响的节点之后作为已知的PATH,受影响的节点作为备选节点加入TENT,执行Dijkstra算法,更新受影响节点的IP可达信息;
对于第四类拓扑变化,均以自身为根节点重新执行完整的SPF计算,并更新所有的IP可达信息。
2.如权利要求1所述的快速路由收敛方法,其特征在于:所述预先评估网络拓扑的变化情况由拓扑分析模块处理,
所述根据网络拓扑的变化情况决定参与SPF计算的节点并计算路由由路由处理模块处理。
3.如权利要求1所述的快速路由收敛方法,其特征在于:检测到网络中节点或是链路有变化的节点会产生相应的LSP并向全网通告该变化,所述变化包括:有节点离开、有新的节点加入、有链路断开或有节点接口状态发生变化。
4.如权利要求1所述的快速路由收敛方法,其特征在于:LSP用于描述一个路由节点的链路状态信息,用LSP ID标识,LSP中记录了邻居的LSP ID和IP可达信息;
LSDB是路由节点自身的LSP以及从其他节点接收到的LSP的集合;
节点加入SPT后则从SPT获得其对应的LSP顶点信息;
LSP和LSP顶点信息二者通过LSP ID互相关联。
5.如权利要求1所述的快速路由收敛方法,其特征在于:预先评估网络拓扑的变化情况的具体步骤如下:
步骤1,当网络中的路由节点接收到一个新的LSP之后,拓扑分析模块首先会判断LSDB中是否已有相同LSP ID对应的LSP信息,如果没有,转步骤2,如果有,转步骤3;
步骤2,判断新LSP对应的路由节点是否在SPT上,如果是,则网络拓扑的变化情况为case4,判断结束,如果不是,转步骤2.1;
步骤2.1,根据新LSP中的邻居LSP ID判断新LSP中是否有且只有一个邻居,如果是,则网络拓扑的变化情况为case1,判断结束,如果不是,则转步骤2.2;
步骤2.2,判断新LSP中邻居的数量是否大于1,如果是,则网络拓扑的变化情况为case4,判断结束,如果不是,则表示没有邻居,直接结束判断,并不进行路由计算;
步骤3,判断旧LSP对应的路由节点是否在SPT上,如果是则转步骤4,如果不是则转步骤2.1,
步骤4,判断旧LSP中是否有邻居信息,如果没有,则转步骤2.1,如果有,则转步骤5,
步骤5,判断新LSP和旧LSP中邻居信息是否不同,如果新LSP和旧LSP邻居信息完全相同,表示仅有一些IP可达信息的变化,则网络拓扑的变化情况为case2,判断结束;如果新LSP和旧LSP邻居不同,则转步骤6;
步骤6,判断新LSP中有的邻居在旧LSP中有没有,如果新的LSP中包含旧的LSP中没有的邻居节点,则网络拓扑的变化情况为case4,判断结束;如果新的LSP中不包含旧的LSP中没有的邻居节点,则转步骤7,
步骤7,判断旧LSP中有的邻居在新LSP中有没有,如果旧LSP中的一个邻居在新LSP中没有,而且仅此一个邻居没有,表示第一次检测到只有一条链路断开,则网络拓扑的变化情况为case3,判断结束;否则,网络拓扑的变化情况为case4,判断结束。
6.如权利要求5所述的快速路由收敛方法,其特征在于:如果在当前拓扑变化情形为case1-case3的任意一种情形时,此时再收到新的LSP时,所有情形均直接判定为case4。
7.如权利要求5所述的快速路由收敛方法,其特征在于:路由处理模块对于case1,执行叶子节点加入时的SPF计算;
路由处理模块对于case2,直接跳过SPF计算的过程,只是更新变化了的IP可达信息;
路由处理模块对于case3,执行链路断开时的SPF计算,更新受影响节点的IP可达信息;
路由处理模块对于case4,从根节点开始重新执行完整的SPF计算,并更新所有的IP可达信息。
8.如权利要求7所述的快速路由收敛方法,其特征在于:执行叶子节点加入时的SPF计算的具体步骤如下:
叶子节点加入网络时,首先判断叶子节点的父节点是否在SPT上,如果叶子节点的父节点不在SPT上,则对所有节点执行SPF计算;如果叶子节点的父节点在SPT上,则将父节点的所有邻居加入TENT表,然后判断叶子节点是否在父节点的TENT表中,如果叶子节点不在父节点的TENT表中,则清空TENT表后再对所有节点执行SPF计算;如果叶子节点在父节点的TENT表中,则将叶子节点指向其父节点,并从TENT列表中将该叶子节点删除,并在SPT上注册。
9.如权利要求7所述的快速路由收敛方法,其特征在于:执行链路断开时的SPF计算的具体步骤如下:
如果为链路断开的情形,则记录下当前nLSP及nlsp中缺少的对端邻居nbrLSP,所述nLSP为新收到的LSP,所述nbrLSP为断开链路另一端节点的LSP;
记录后判断nLSP对应的顶点V是否在SPT上,如果nLSP对应的顶点V不在SPT上,则执行全部节点的路由重新计算,同case4;
否则进一步判断nbrLSP对应的顶点W是否在SPT上,如果nbrLSP对应的顶点W不在SPT上,则执行全部节点的路由重新计算,同case4;
否则即顶点V和顶点W都在SPT上,则判断W和V关系;
如果W不是V的孩子节点,V也不是W的孩子节点,则表示该链路并不在SPT上,无需路由计算和路由更新,计算结束;
如果W不是V的孩子节点,而V是W的孩子,则将W和V互换,使V表示节点,W表示孩子节点;
如果W是V的孩子节点,则不用互换W和V,V表示节点,W表示孩子节点;
至此,满足了条件“V表示节点,W表示孩子节点”,则从SPT上删除W节点及其孩子节点,将这些被删除的节点加入TENT列表中,再对TENT列表中的节点执行SPF计算,将其逐一重新附加到SPT上,计算结束。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210451780.2A CN102916879B (zh) | 2012-11-13 | 2012-11-13 | 一种快速路由收敛方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210451780.2A CN102916879B (zh) | 2012-11-13 | 2012-11-13 | 一种快速路由收敛方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102916879A true CN102916879A (zh) | 2013-02-06 |
CN102916879B CN102916879B (zh) | 2015-04-08 |
Family
ID=47615115
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210451780.2A Active CN102916879B (zh) | 2012-11-13 | 2012-11-13 | 一种快速路由收敛方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102916879B (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106059850A (zh) * | 2016-05-17 | 2016-10-26 | 中国科学院计算技术研究所 | 一种is‑is网络中的链路异常检测方法、系统、装置、芯片 |
CN106161230A (zh) * | 2016-06-29 | 2016-11-23 | 杭州华三通信技术有限公司 | 一种备份链路确定方法及装置 |
CN106385364A (zh) * | 2016-09-05 | 2017-02-08 | 杭州华三通信技术有限公司 | 一种路由更新方法及装置 |
CN106789631A (zh) * | 2017-01-20 | 2017-05-31 | 深圳市风云实业有限公司 | 一种组播路由重构方法及路由设备 |
CN108259357A (zh) * | 2017-09-29 | 2018-07-06 | 新华三技术有限公司 | 一种路由收敛方法及装置 |
CN108270677A (zh) * | 2016-12-30 | 2018-07-10 | 中国移动通信集团浙江有限公司 | 一种快速路由收敛方法及装置 |
CN109688060A (zh) * | 2018-12-29 | 2019-04-26 | 杭州迪普科技股份有限公司 | 链路分组配置方法、装置及路由器 |
CN113872868A (zh) * | 2020-06-30 | 2021-12-31 | 华为技术有限公司 | 通知消息传输方法、装置及系统、存储介质 |
CN114244761A (zh) * | 2021-12-08 | 2022-03-25 | 中盈优创资讯科技有限公司 | 一种基于is-is的设备自动发现方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050063321A1 (en) * | 2003-09-09 | 2005-03-24 | Nec Corporation | Method and apparatus for designing a spanning tree virtual network |
CN101483610A (zh) * | 2009-02-26 | 2009-07-15 | 迈普(四川)通信技术有限公司 | 链路状态路由协议的路由更新方法 |
-
2012
- 2012-11-13 CN CN201210451780.2A patent/CN102916879B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050063321A1 (en) * | 2003-09-09 | 2005-03-24 | Nec Corporation | Method and apparatus for designing a spanning tree virtual network |
CN101483610A (zh) * | 2009-02-26 | 2009-07-15 | 迈普(四川)通信技术有限公司 | 链路状态路由协议的路由更新方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106059850A (zh) * | 2016-05-17 | 2016-10-26 | 中国科学院计算技术研究所 | 一种is‑is网络中的链路异常检测方法、系统、装置、芯片 |
CN106161230A (zh) * | 2016-06-29 | 2016-11-23 | 杭州华三通信技术有限公司 | 一种备份链路确定方法及装置 |
CN106161230B (zh) * | 2016-06-29 | 2020-10-30 | 新华三技术有限公司 | 一种备份链路确定方法及装置 |
CN106385364A (zh) * | 2016-09-05 | 2017-02-08 | 杭州华三通信技术有限公司 | 一种路由更新方法及装置 |
CN108270677A (zh) * | 2016-12-30 | 2018-07-10 | 中国移动通信集团浙江有限公司 | 一种快速路由收敛方法及装置 |
CN106789631B (zh) * | 2017-01-20 | 2020-04-03 | 深圳市风云实业有限公司 | 一种组播路由重构方法及路由设备 |
CN106789631A (zh) * | 2017-01-20 | 2017-05-31 | 深圳市风云实业有限公司 | 一种组播路由重构方法及路由设备 |
CN108259357B (zh) * | 2017-09-29 | 2021-08-24 | 新华三技术有限公司 | 一种路由收敛方法及装置 |
CN108259357A (zh) * | 2017-09-29 | 2018-07-06 | 新华三技术有限公司 | 一种路由收敛方法及装置 |
CN109688060A (zh) * | 2018-12-29 | 2019-04-26 | 杭州迪普科技股份有限公司 | 链路分组配置方法、装置及路由器 |
CN113872868A (zh) * | 2020-06-30 | 2021-12-31 | 华为技术有限公司 | 通知消息传输方法、装置及系统、存储介质 |
CN113872868B (zh) * | 2020-06-30 | 2022-11-25 | 华为技术有限公司 | 通知消息传输方法、装置及系统、存储介质 |
CN114244761A (zh) * | 2021-12-08 | 2022-03-25 | 中盈优创资讯科技有限公司 | 一种基于is-is的设备自动发现方法及装置 |
CN114244761B (zh) * | 2021-12-08 | 2023-10-31 | 中盈优创资讯科技有限公司 | 一种基于is-is的设备自动发现方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102916879B (zh) | 2015-04-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102916879A (zh) | 一种快速路由收敛方法 | |
CN101616466B (zh) | 一种自组网区域路由方法 | |
CN101965715B (zh) | 最短路径确定中的打破平局 | |
CN101483610B (zh) | 链路状态路由协议的路由更新方法 | |
CN104298541A (zh) | 云存储系统的数据分布算法及其装置 | |
CN107483248B (zh) | 一种基于无线传感器网络的约束最小生成树拓扑控制方法 | |
CN101753462B (zh) | 多下一跳路由的实现方法及装置 | |
CN103078796B (zh) | 一种路由计算方法和设备 | |
CN113347059B (zh) | 基于固定探针位置的带内网络遥测最优探测路径规划方法 | |
CN106911570B (zh) | 一种可靠的网络数据通信方法 | |
CN103001879A (zh) | 减少链路状态通告洪泛次数的方法及设备 | |
CN105721307A (zh) | 一种多路径转发报文方法及装置 | |
CN105050149A (zh) | 用于解决Zigbee树型网络拥塞问题的路由方法 | |
CN113706326A (zh) | 基于矩阵运算的移动社会网络图修改方法 | |
CN103532861A (zh) | 基于生成树的域内动态多路径生成方法 | |
Abdulsaheb et al. | Improving ad hoc network performance by using an efficient cluster based routing algorithm | |
Kamali et al. | Formal analysis of proactive, distributed routing | |
CN103188150A (zh) | 路径确定方法及装置 | |
CN105721271A (zh) | 无线和电力线通信网状网络 | |
CN110881178B (zh) | 一种基于分支游走的物联网数据聚合方法 | |
CN102316029B (zh) | 一种快速重路由方法及路由设备 | |
CN101626341B (zh) | 链路状态协议下的信息同步方法及装置 | |
CN105591932A (zh) | 邻居的识别方法及装置 | |
JP2010193224A (ja) | ネットワーク設計装置、ネットワーク設計方法、およびプログラム | |
Meghanathan | An algorithm to determine minimum velocity-based stable connected dominating sets for ad hoc networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |