CN101483610A - 链路状态路由协议的路由更新方法 - Google Patents
链路状态路由协议的路由更新方法 Download PDFInfo
- Publication number
- CN101483610A CN101483610A CNA2009103005824A CN200910300582A CN101483610A CN 101483610 A CN101483610 A CN 101483610A CN A2009103005824 A CNA2009103005824 A CN A2009103005824A CN 200910300582 A CN200910300582 A CN 200910300582A CN 101483610 A CN101483610 A CN 101483610A
- Authority
- CN
- China
- Prior art keywords
- node
- link
- chained list
- routing protocol
- state
- 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
本发明涉及网络通信技术。本发明针对现有技术的路由更新方法的缺点,公开了一种根据增量SPF计算结果,对链路状态发生变化的节点进行路由计算的路由更新方法。本发明的链路状态路由协议的路由更新方法,分为三步:首先,节点收到链路状态变化的链路状态通告信息后,根据新旧链路状态通告信息,判断链路状态变化的类型,并基于本地已有的SPT树,记录受影响的节点;其次,对受链路变化影响的节点进行增量SPF计算;增量SPF计算结束后,得到最新的SPT树,同时经过比较得到链路状态变化后导致路径发生变化的节点,对路径变化节点通告的路由进行路由更新计算。本发明特别适用于局部链路状态变化的网络进行路由更新。
Description
技术领域
本发明涉及网络通信技术,特别涉及链路状态路由协议基于最短路径优先(ShortestPath First,简称SPF)算法建立最短路径树(Shortest Path Tree,简称SPT)的路由更新技术。
背景技术
链路状态路由协议是指通过在网络中搜集所有路由器相关的链路状态并通过计算得到相应路由信息的协议。目前的主流链路状态路由协议,如开放最短路径优先协议(OpenShortest Path First,简称OSPF)、中间系统到中间系统的域内路由信息交换协议(Intermediate System to Intermediate System intra-domain routing informationexchange protocol,简称ISIS),一般使用标准的SPF算法计算网络拓扑信息以及路由信息。每个运行链路状态路由协议的网络节点(以下简称为节点)使用SPF算法建立以自己为根的最短路径树,根据该最短路径树,得到到达每个节点可选的路由,由此找出数据包转发的最优路由。关于SPF的计算过程在链路状态路由协议的RFC里都有较详细描述,也可参见公开号为CN1310482C的中国专利,这里不再描述。当关系到网络拓扑结构的链路状态发生变化时,例如OSPF协议的路由器链路状态通告(Router Link State Advertisement,简称Router-LSA)、网络链路状态通告(Network-LSA)、自治系统边界路由器链路状态通告(AS-summary-LSA)等发生变化时,整个网络拓扑以及路由会全部重新计算。对于网络拓扑结构比较庞大的骨干网络,每个节点维护的链路状态数据库也非常巨大,同时路由收敛性能要求也比较高;如果将全部路由信息重新计算一遍不仅消耗的时间长、收敛慢,而且会耗费系统大量的CPU资源,对网络设备以及软件系统都是较大的负担。如果是局部网络部分节点信息的变化,比如某个链路的花费(cost)发生变化,因此而进行全部路由的重新计算,从而带来没必要的系统资源消耗,也影响了路由收敛速度。
发明内容
本发明所要解决的技术问题,就是针对现有技术的上述缺点,提供一种根据增量SPF计算结果,对链路状态路由协议的链路状态发生变化的节点进行路由计算的路由更新方法。
本发明解决所述技术问题,采用的技术方案是,链路状态路由协议的路由更新方法,用于运行链路状态路由协议的节点,包括以下步骤:
a、节点收到链路状态通告信息后,记录受影响的节点,并根据受影响的节点建立更新节点链表和删除节点链表;
b、在设定的时间周期内,对所述更新节点链表和删除节点链表进行操作,得到候选节点集合;利用候选节点集合进行最短路径优先计算,得到变化节点链表和更新的最短路径树;
c、根据最新的最短路径树和变化节点链表,对变化节点链表中的节点通告的路由进行路由更新计算。
本发明的有益效果是,可以较快的达到路由收敛,并且减少节点的CPU消耗。
附图说明
图1是本发明流程图;
图2是本发明实施例一个网络环境的简单拓扑图;
图3是本发明实施例节点A的SPT树示意图;
图4是本发明实施例链路状态变化后的SPT树示意图;
图5是本发明实施例增量SPF计算后更新的SPT树示意图。
具体实施方式
本发明的方法运用在运行链路状态路由协议的每个节点上。链路状态变化后,链路状态路由协议会迅速把变化后的链路状态信息通告出来,收到该链路状态通告信息的节点执行本发明的链路状态路由协议的路由更新方法,如图1所示,分为三步:首先,节点收到链路状态变化的链路状态通告信息后,根据新旧链路状态通告信息,判断链路状态变化的类型,并基于本地已有的SPT树,记录受影响的节点;其次,对受链路变化影响的节点进行增量SPF(Incremental SPF,简写为ISPF)计算;最后,ISPF计算结束后,得到最新的SPT树,同时经过比较得到链路状态变化后导致路径发生变化的节点,对路径变化节点通告的路由进行路由更新计算。
下面详细描述本发明的技术方案。
第一步,节点收到链路状态变化的链路状态通告信息后,根据新旧链路状态信息,判断链路状态变化的类型,并基于本地已有的SPT树,记录受影响的节点;具体包括如下步骤:
a、节点根据收到的链路状态通告信息得到该链路状态通告信息的发出节点,根据发出节点查找本地链路状态数据库:
a1、如果没有查找到本地保存有该发出节点发出的链路状态通告
信息,则将发出节点的邻居节点记录到更新节点链表;或
a2、查找到本地保存有该发出节点发出的链路状态通告信息,比较该发出节点两次发出的链路状态通告信息,得到链路状态变化的类型(如:链路添加、链路删除、链路cost变化、节点添加、节点删除等);查找本地的最短路径树,结合链路状态变化类型将发出节点记录到更新节点链表,将发出节点的子节点记录到删除节点链表。
第二步,对受链路变化影响的节点进行ISPF计算;包括如下步骤:
b1、把更新节点链表记录的节点加入候选节点集合;
b2、把删除节点链表记录的节点及其子节点,从最短路径树上删除;
b3、将从最短路径树上删除的节点的父节点和邻居节点加入候选节点集合;
b4、将从最短路径树上删除的节点记录到变化节点链表;
b5、将候选节点集合中的节点按照到达根节点的花费总和从小到大排序,从候选节点集合依次取出节点,进行SPF计算;
b6、SPF计算过程中,若某节点已经在SPT上,则判断本节点到达根节点的花费总和是否小于等于本节点在SPT上到达根节点的花费总和,如是,则把本节点以及其子节点从SPT上删除,进入步骤b3;
b7、得到更新的最短路径树和变化节点链表。
如果步骤b6中进行SPF计算的节点为新添加节点,则记录到变化节点链表。
如果步骤b6中进行SPF计算的节点已经记录在变化节点链表中,且路径信息相同,则将本节点从变化节点链表中删除。
第三步,路由更新计算,根据以上步骤得到的变化节点链表,遍历变化节点链表的所有节点,根据变化类型对变化节点上通告的路由进行添加、删除、更新下一跳的计算;具体步骤为:
c1、从变化节点链表取出变化的节点;
c2、对变化的节点进行路由增量计算。
当链路状态路由协议为OSPF时,对路由器链路状态通告和网络链路状态通告进行区域内路由计算。
当链路状态路由协议为OSPF时,若变化节点链表中的节点为区域边界路由器,则对摘要路由链路状态通告进行路由计算。
当链路状态路由协议为OSPF时,若变化节点链表中的节点为自治系统边界路由器,则对自治系统外部路由链路状态通告进行路由计算。
实施例
如图2所示的一个网络环境的简单拓扑图,图中示出了节点A、节点B、节点C、节点D和节点E,以及各个链路上的花费值。根据这个拓扑关系,节点A经过SPF计算后,可以得到图3所示的以自己为根节点的SPT树。当节点C—D之间的链路花费从20变为40时,节点A根据这种变化情况,结合其SPT树上C是D的父节点,D是C的子节点,则需要把节点C记录到更新节点链表,节点D记录到删除节点链表。
节点A在设定的时间周期内,进行路由计算时,首先根据记录的更新节点链表和删除节点链表,把更新节点链表的节点C加入候选节点集合,把删除节点链表里的节点D以及节点D在SPT上的子节点E从当前SPT树上删除。对于从SPT树上删除的节点D和节点E,其父节点和邻居节点需要加入候选节点集合。
节点D的邻居节点B需要加入候选节点集合,同时节点D加入变化节点链表。节点D的子节点E需要从SPT上删除,同时节点E需要加入变化节点链表,节点E的父节点是节点D,已经被从SPT上删除,不需要再加入候选列表集合。经过这样的初始化处理后,得到图4所示变化后的SPT树。从包含节点C、B的候选节点集合开始增量SPF计算,得到如图5所示的更新SPT树。增量SPF计算后,得到的由节点D和节点E组成的变化节点链表。
节点D和节点E的路径发生了变化,更新节点D和节点E所通告的路由。例如如果路由协议为OSPF协议,则需要更新节点D和节点E所通告的路由,包括区域内、区域间、自治系统外部路由。
由上述描述可以看出,本发明的路由更新方法有两个关键:一是链路状态变化后,通过新旧链路状态的比较,得到链路变化的类型,因为链路状态路由协议都保存有本地的LSDB(Link State Database链路状态数据库),因此这个不难实现,只需要把最新通告的链路状态通告和本地LSDB保存的相应旧的链路状态通告进行比较即可得出。然后基于当前的SPT树,得到需要重新加入候选节点集合进行计算的更新节点链表和需要从当前SPT树删除的删除节点链表。二是增量SPF过程中,记录下变化节点链表,对变化节点链表里的节点,进行路由的计算更新。本发明的技术方案,达到了链路状态局部变化后,只进行局部SPF计算和部分路由计算的目的,加快路由收敛速度,减少对系统的CPU资源消耗。对于网络中局部链路状态变化的情况,能够较大地缩减路由收敛时间。
Claims (10)
- 【权利要求1】链路状态路由协议的路由更新方法,用于运行链路状态路由协议的节点,包括以下步骤:a、节点收到链路状态通告信息后,记录受影响的节点,并根据受影响的节点建立更新节点链表和删除节点链表;b、在设定的时间周期内,对所述更新节点链表和删除节点链表进行操作,得到候选节点集合;利用候选节点集合进行最短路径优先计算,得到变化节点链表和更新的最短路径树;c、根据最新的最短路径树和变化节点链表,对变化节点链表中的节点通告的路由进行路由更新计算。
- 【权利要求2】根据权利要求1所述的链路状态路由协议的路由更新方法,其特征在于,步骤a中,具体包括如下步骤:a1、节点根据收到的链路状态通告信息得到该链路状态通告信息的发出节点,根据发出节点查找本地链路状态数据库:如果查找到本地保存有该发出节点发出的链路状态通告信息,比较该发出节点两次发出的链路状态通告信息,得到链路状态变化的类型;a2、查找本地的最短路径树,结合链路状态变化类型将发出节点记录到更新节点链表,将发出节点的子节点记录到删除节点链表。
- 【权利要求3】根据权利要求2所述的链路状态路由协议的路由更新方法,其特征在于,步骤a1进一步包括,如果没有查找到本地保存有该发出节点发出的链路状态通告信息,则将该发出节点的邻居节点记录到更新节点链表。
- 【权利要求4】根据权利要求1~3任一项所述的链路状态路由协议的路由更新方法,其特征在于,步骤b的具体操作过程是:b1、把更新节点链表记录的节点加入候选节点集合;b2、把删除节点链表记录的节点及其子节点,从最短路径树上删除;b3、将从最短路径树上删除的节点的父节点和邻居节点加入候选节点集合;b4、将从最短路径树上删除的节点记录到变化节点链表;b5、将候选节点集合中的节点按照到达根节点的花费总和从小到大排序,从候选节点集合依次取出节点,进行SPF计算;b6、SPF计算过程中,若某节点已经在SPT上,则判断本节点到达根节点的花费总和是否小于等于本节点在SPT上到达根节点的花费总和,如是,则把本节点以及其子节点从SPT上删除,进入步骤b3;b7、得到更新的最短路径树和变化节点链表。
- 【权利要求5】根据权利要求4所述的链路状态路由协议的路由更新方法,其特征在于,如果步骤b6中进行SPF计算的节点为新添加节点,则记录到变化节点链表。
- 【权利要求6】根据权利要求4所述的链路状态路由协议的路由更新方法,其特征在于,如果步骤b6中进行SPF计算的节点已经记录在变化节点链表中,且路径信息相同,则将本节点从变化节点链表中删除。
- 【权利要求7】根据权利要求4所述的链路状态路由协议的路由更新方法,其特征在于,步骤c的具体操作过程是:c1、从变化节点链表逐个取出节点;c2、对每个取出节点通告的路由进行路由增量计算。
- 【权利要求8】根据权利要求7所述的链路状态路由协议的路由更新方法,其特征在于,所述链路状态路由协议为OSPF时,对路由器链路状态通告和网络链路状态通告进行区域内路由计算。
- 【权利要求9】根据权利要求7所述的链路状态路由协议的路由更新方法,其特征在于,所述链路状态路由协议为OSPF时,若变化节点链表中的节点为区域边界路由器,则对摘要路由链路状态通告进行路由计算。
- 【权利要求10】根据权利要求7所述的链路状态路由协议的路由更新方法,其特征在于,所述链路状态路由协议为OSPF时,若变化节点链表中的节点为自治系统边界路由器,则对自治系统外部路由链路状态通告进行路由计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009103005824A CN101483610B (zh) | 2009-02-26 | 2009-02-26 | 链路状态路由协议的路由更新方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2009103005824A CN101483610B (zh) | 2009-02-26 | 2009-02-26 | 链路状态路由协议的路由更新方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101483610A true CN101483610A (zh) | 2009-07-15 |
CN101483610B CN101483610B (zh) | 2011-07-20 |
Family
ID=40880548
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009103005824A Active CN101483610B (zh) | 2009-02-26 | 2009-02-26 | 链路状态路由协议的路由更新方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101483610B (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102385552A (zh) * | 2010-08-25 | 2012-03-21 | 微软公司 | 样本剖析报告的动态计算 |
CN102916879A (zh) * | 2012-11-13 | 2013-02-06 | 烽火通信科技股份有限公司 | 一种快速路由收敛方法 |
WO2014059889A1 (zh) * | 2012-10-17 | 2014-04-24 | 中兴通讯股份有限公司 | 一种更新路由查找树的方法及装置 |
CN104579976A (zh) * | 2013-10-16 | 2015-04-29 | 中兴通讯股份有限公司 | 链路状态协议数据包的生成方法及装置 |
CN106385364A (zh) * | 2016-09-05 | 2017-02-08 | 杭州华三通信技术有限公司 | 一种路由更新方法及装置 |
CN106789643A (zh) * | 2016-11-30 | 2017-05-31 | 中国人民解放军国防科学技术大学 | 一种适用于园区网的扁平单播路由方法 |
CN108259357A (zh) * | 2017-09-29 | 2018-07-06 | 新华三技术有限公司 | 一种路由收敛方法及装置 |
US10346222B2 (en) | 2010-11-30 | 2019-07-09 | Microsoft Technology Licensing, Llc | Adaptive tree structure for visualizing data |
CN110830370A (zh) * | 2019-12-03 | 2020-02-21 | 西安邮电大学 | 一种基于ospf协议的ibgp传递路由更新方法 |
CN111181830A (zh) * | 2020-01-03 | 2020-05-19 | 烽火通信科技股份有限公司 | 一种基于网管L3vpn业务的TX增量计算方法及系统 |
CN112558504A (zh) * | 2019-09-10 | 2021-03-26 | 中国电信股份有限公司 | 基于ospf协议的关键路径信息转发方法、装置和系统 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6252856B1 (en) * | 1996-12-03 | 2001-06-26 | Nortel Networks Limited | Method and apparatus for minimizing calculations required to construct multicast trees |
CN1214572C (zh) * | 2002-07-16 | 2005-08-10 | 华为技术有限公司 | 基于开放式最短路径优先路由协议的路由计算方法 |
-
2009
- 2009-02-26 CN CN2009103005824A patent/CN101483610B/zh active Active
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102385552A (zh) * | 2010-08-25 | 2012-03-21 | 微软公司 | 样本剖析报告的动态计算 |
CN102385552B (zh) * | 2010-08-25 | 2016-04-20 | 微软技术许可有限责任公司 | 样本剖析报告的动态计算 |
US10346222B2 (en) | 2010-11-30 | 2019-07-09 | Microsoft Technology Licensing, Llc | Adaptive tree structure for visualizing data |
WO2014059889A1 (zh) * | 2012-10-17 | 2014-04-24 | 中兴通讯股份有限公司 | 一种更新路由查找树的方法及装置 |
US9491100B2 (en) | 2012-10-17 | 2016-11-08 | Zte Corporation | Method and device for updating routing lookup tree |
CN102916879A (zh) * | 2012-11-13 | 2013-02-06 | 烽火通信科技股份有限公司 | 一种快速路由收敛方法 |
CN102916879B (zh) * | 2012-11-13 | 2015-04-08 | 烽火通信科技股份有限公司 | 一种快速路由收敛方法 |
CN104579976A (zh) * | 2013-10-16 | 2015-04-29 | 中兴通讯股份有限公司 | 链路状态协议数据包的生成方法及装置 |
CN104579976B (zh) * | 2013-10-16 | 2019-07-23 | 中兴通讯股份有限公司 | 链路状态协议数据包的生成方法及装置 |
CN106385364A (zh) * | 2016-09-05 | 2017-02-08 | 杭州华三通信技术有限公司 | 一种路由更新方法及装置 |
CN106789643B (zh) * | 2016-11-30 | 2019-05-31 | 中国人民解放军国防科学技术大学 | 一种适用于园区网的扁平单播路由方法 |
CN106789643A (zh) * | 2016-11-30 | 2017-05-31 | 中国人民解放军国防科学技术大学 | 一种适用于园区网的扁平单播路由方法 |
CN108259357A (zh) * | 2017-09-29 | 2018-07-06 | 新华三技术有限公司 | 一种路由收敛方法及装置 |
CN108259357B (zh) * | 2017-09-29 | 2021-08-24 | 新华三技术有限公司 | 一种路由收敛方法及装置 |
CN112558504A (zh) * | 2019-09-10 | 2021-03-26 | 中国电信股份有限公司 | 基于ospf协议的关键路径信息转发方法、装置和系统 |
CN112558504B (zh) * | 2019-09-10 | 2021-11-02 | 中国电信股份有限公司 | 基于ospf协议的关键路径信息转发方法、装置和系统 |
CN110830370A (zh) * | 2019-12-03 | 2020-02-21 | 西安邮电大学 | 一种基于ospf协议的ibgp传递路由更新方法 |
CN110830370B (zh) * | 2019-12-03 | 2021-12-10 | 西安邮电大学 | 一种基于ospf协议的ibgp传递路由更新方法 |
CN111181830A (zh) * | 2020-01-03 | 2020-05-19 | 烽火通信科技股份有限公司 | 一种基于网管L3vpn业务的TX增量计算方法及系统 |
CN111181830B (zh) * | 2020-01-03 | 2021-11-16 | 烽火通信科技股份有限公司 | 一种基于网管L3vpn业务的TX增量计算方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101483610B (zh) | 2011-07-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101483610B (zh) | 链路状态路由协议的路由更新方法 | |
CN103210617B (zh) | 用于减少网络中的消息和计算开销的方法和系统 | |
CN101272393B (zh) | 基于链路状态路由协议的路由计算方法和网络节点 | |
CN102916879B (zh) | 一种快速路由收敛方法 | |
US8897141B2 (en) | Network system and routing method | |
JP5915545B2 (ja) | 経路選択方法および制御サーバ | |
CN106063195A (zh) | 具有单独控制设备和转发设备的网络中的控制设备发现 | |
CN102971988A (zh) | 用于有向无环图(dag)路由的替代下行路径 | |
CN104767682A (zh) | 路由方法和系统以及分发路由信息的方法和装置 | |
JP5194233B2 (ja) | 経路制御方法およびノード装置 | |
CN103001879B (zh) | 减少链路状态通告洪泛次数的方法及设备 | |
AU2004311004A1 (en) | Method and apparatus for synchronizing a data communications network | |
KR101463364B1 (ko) | 라우팅 정보의 룩헤드 계산 | |
CN110100479A (zh) | 一种利用修改的无路径dao信令优化路由失效的装置和方法 | |
CN103201987A (zh) | 区分路由信息更新的优先级 | |
CN104283789A (zh) | 路由收敛方法和系统 | |
CN102377680A (zh) | 路由收敛方法及设备 | |
CN103873364A (zh) | 域间多路径路由的实现方法 | |
CN105282041A (zh) | 基于isis的洪泛方法及装置 | |
CN103532861A (zh) | 基于生成树的域内动态多路径生成方法 | |
US20060239211A1 (en) | Method and apparatus for constructing a forwarding information structure | |
CN105450524B (zh) | 一种媒体转发路由优化计算的方法 | |
CN103746828A (zh) | 一种管理网络节点的方法及装置 | |
US8423668B2 (en) | Link state protocol routing message containment | |
JP2010193224A (ja) | ネットワーク設計装置、ネットワーク設計方法、およびプログラム |
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 |