专利名称:链路状态路由协议的路由更新方法
技术领域:
本发明涉及网络通信技术,特别涉及链路状态路由协议基于最短路径优先(Shortest Path First,简称SPF)算法建立最短路径树(Shortest Path Tree,简称SPT)的路由更新 技术。
背景技术:
链路状态路由协议是指通过在网络中搜集所有路由器相关的链路状态并通过计算得到相 应路由信息的协议。目前的主流链路状态路由协议,如开放最短路径优先协议(Open Shortest Path First,简称0SPF)、中间系统到中间系统的域内路由信息交换协议( Intermediate System to Intermediate System intra—domain routing information exchange protocol,简称ISIS), 一般使用标准的SPF算法计算网络拓扑信息以及路由信息 。每个运行链路状态路由协议的网络节点(以下简称为节点)使用SPF算法建立以自己为根 的最短路径树,根据该最短路径树,得到到达每个节点可选的路由,由此找出数据包转发的 最优路由。关于SPF的计算过程在链路状态路由协议的RFC里都有较详细描述,也可参见公开 号为CN1310482C的中国专利,这里不再描述。当关系到网络拓扑结构的链路状态发生变化时 ,例如OSPF协议的路由器链路状态通告(Router Link State Advertisement,简称 Router-LSA)、网络链路状态通告(Network-LSA)、自治系统边界路由器链路状态通告( AS-summary-LSA)等发生变化时,整个网络拓扑以及路由会全部重新计算。对于网络拓扑结 构比较庞大的骨干网络,每个节点维护的链路状态数据库也非常巨大,同时路由收敛性能要 求也比较高;如果将全部路由信息重新计算一遍不仅消耗的时间长、收敛慢,而且会耗费系 统大量的CPU资源,对网络设备以及软件系统都是较大的负担。如果是局部网络部分节点信 息的变化,比如某个链路的花费(cost)发生变化,因此而进行全部路由的重新计算,从而 带来没必要的系统资源消耗,也影响了路由收敛速度。
发明内容
本发明所要解决的技术问题,就是针对现有技术的上述缺点,提供一种根据增量SPF计 算结果,对链路状态路由协议的链路状态发生变化的节点进行路由计算的路由更新方法。
本发明解决所述技术问题,采用的技术方案是,链路状态路由协议的路由更新方法,用 于运行链路状态路由协议的节点,包括以下步骤
4a、 节点收到链路状态通告信息后,记录受影响的节点,并根据受影响的节点建立更新 节点链表和删除节点链表;
b、 在设定的时间周期内,对所述更新节点链表和删除节点链表进行操作,得到候选节 点集合;利用候选节点集合进行最短路径优先计算,得到变化节点链表和更新的最短路径树
c、 根据最新的最短路径树和变化节点链表,对变化节点链表中的节点通告的路由进行 路由更新计算。
本发明的有益效果是,可以较快的达到路由收敛,并且减少节点的CPU消耗。
图l是本发明流程图2是本发明实施例一个网络环境的简单拓扑图; 图3是本发明实施例节点A的SPT树示意图; 图4是本发明实施例链路状态变化后的SPT树示意图; 图5是本发明实施例增量SPF计算后更新的SPT树示意图。
具体实施例方式
本发明的方法运用在运行链路状态路由协议的每个节点上。链路状态变化后,链路状态 路由协议会迅速把变化后的链路状态信息通告出来,收到该链路状态通告信息的节点执行本 发明的链路状态路由协议的路由更新方法,如图1所示,分为三步首先,节点收到链路状
态变化的链路状态通告信息后,根据新旧链路状态通告信息,判断链路状态变化的类型,并
基于本地已有的SPT树,记录受影响的节点;其次,对受链路变化影响的节点进行增量SPF ( Incremental SPF,简写为ISPF)计算;最后,ISPF计算结束后,得到最新的SPT树,同时经 过比较得到链路状态变化后导致路径发生变化的节点,对路径变化节点通告的路由进行路由 更新计算。
下面详细描述本发明的技术方案。
第一步,节点收到链路状态变化的链路状态通告信息后,根据新旧链路状态信息,判断 链路状态变化的类型,并基于本地已有的SPT树,记录受影响的节点;具体包括如下步骤
a、节点根据收到的链路状态通告信息得到该链路状态通告信息的发出节点,根据发出 节点査找本地链路状态数据库
al、如果没有査找到本地保存有该发出节点发出的链路状态通告
信息,则将发出节点的邻居节点记录到更新节点链表;或a2、査找到本地保存有该发出节点发出的链路状态通告信息,比较该发出节点两次发出 的链路状态通告信息,得到链路状态变化的类型(如链路添加、链路删除、链路cost变化 、节点添加、节点删除等);査找本地的最短路径树,结合链路状态变化类型将发出节点记 录到更新节点链表,将发出节点的子节点记录到删除节点链表。
第二步,对受链路变化影响的节点进行ISPF计算;包括如下步骤
bl、把更新节点链表记录的节点加入候选节点集合;
b2、把删除节点链表记录的节点及其子节点,从最短路径树上删除;
b3、将从最短路径树上删除的节点的父节点和邻居节点加入候选节点集合;
b4、将从最短路径树上删除的节点记录到变化节点链表;
b5、将候选节点集合中的节点按照到达根节点的花费总和从小到大排序,从候选节点集
合依次取出节点,进行SPF计算;
b6、 SPF计算过程中,若某节点已经在SPT上,则判断本节点到达根节点的花费总和是否 小于等于本节点在SPT上到达根节点的花费总和,如是,则把本节点以及其子节点从SPT上删 除,进入步骤b3;
b7、得到更新的最短路径树和变化节点链表。
如果步骤b6中进行SPF计算的节点为新添加节点,则记录到变化节点链表。 如果步骤b6中进行SPF计算的节点已经记录在变化节点链表中,且路径信息相同,则将
本节点从变化节点链表中删除。
第三步,路由更新计算,根据以上步骤得到的变化节点链表,遍历变化节点链表的所有
节点,根据变化类型对变化节点上通告的路由进行添加、删除、更新下一跳的计算;具体步
骤为
cl、从变化节点链表取出变化的节点; 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资源消耗。对于网络中局部链路 状态变化的情况,能够较大地縮减路由收敛时间。
权利要求
权利要求1链路状态路由协议的路由更新方法,用于运行链路状态路由协议的节点,包括以下步骤a、节点收到链路状态通告信息后,记录受影响的节点,并根据受影响的节点建立更新节点链表和删除节点链表;b、在设定的时间周期内,对所述更新节点链表和删除节点链表进行操作,得到候选节点集合;利用候选节点集合进行最短路径优先计算,得到变化节点链表和更新的最短路径树;c、根据最新的最短路径树和变化节点链表,对变化节点链表中的节点通告的路由进行路由更新计算。
2.根据权利要求l所述的链路状态路由协议的路由更新方法,其特征在于,步骤a中,具体包括如下步骤al、节点根据收到的链路状态通告信息得到该链路状态通告信息的发出节点,根据发出节点査找本地链路状态数据库如果査找到本地保存有该发出节点发出的链路状态通告信息,比较该发出节点两次发出的链路状态通告信息,得到链路状态变化的类型;a2、査找本地的最短路径树,结合链路状态变化类型将发出节点记录到更新节点链表,将发出节点的子节点记录到删除节点链表。
3.根据权利要求2所述的链路状态路由协议的路由更新方法,其特征在于,步骤al进一步包括,如果没有査找到本地保存有该发出节点发出的链路状态通告信息,则将该发出节点的邻居节点记录到更新节点链表。
4.根据权利要求1 3任一项所述的链路状态路由协议的路由更新方法,其特征在于,步骤b的具体操作过程是bl、把更新节点链表记录的节点加入候选节点集合;b2、把删除节点链表记录的节点及其子节点,从最短路径树上删除;b3、将从最短路径树上删除的节点的父节点和邻居节点加入候选节点集合;b4、将从最短路径树上删除的节点记录到变化节点链表;b5、将候选节点集合中的节点按照到达根节点的花费总和从小到大排序,从候选节点集合依次取出节点,进行SPF计算;b6、 SPF计算过程中,若某节点已经在SPT上,则判断本节点到达根节点的花费总和是 否小于等于本节点在SPT上到达根节点的花费总和,如是,则把本节点以及其子节点从SPT上 删除,进入步骤b3;b7、得到更新的最短路径树和变化节点链表。
5.根据权利要求4所述的链路状态路由协议的路由更新方法,其特征 在于,如果步骤b6中进行SPF计算的节点为新添加节点,则记录到变化节点链表。
6.根据权利要求4所述的链路状态路由协议的路由更新方法,其特征 在于,如果步骤b6中进行SPF计算的节点已经记录在变化节点链表中,且路径信息相同,则 将本节点从变化节点链表中删除。
7.根据权利要求4所述的链路状态路由协议的路由更新方法,其特征 在于,步骤c的具体操作过程是cl、从变化节点链表逐个取出节点;c2、对每个取出节点通告的路由进行路由增量计算。
8.根据权利要求7所述的链路状态路由协议的路由更新方法,其特征 在于,所述链路状态路由协议为OSPF时,对路由器链路状态通告和网络链路状态通告进行区 域内路由计算。
9.根据权利要求7所述的链路状态路由协议的路由更新方法,其特征 在于,所述链路状态路由协议为OSPF时,若变化节点链表中的节点为区域边界路由器,则对 摘要路由链路状态通告进行路由计算。
10.根据权利要求7所述的链路状态路由协议的路由更新方法,其特 征在于,所述链路状态路由协议为OSPF时,若变化节点链表中的节点为自治系统边界路由器 ,则对自治系统外部路由链路状态通告进行路由计算。
全文摘要
本发明涉及网络通信技术。本发明针对现有技术的路由更新方法的缺点,公开了一种根据增量SPF计算结果,对链路状态发生变化的节点进行路由计算的路由更新方法。本发明的链路状态路由协议的路由更新方法,分为三步首先,节点收到链路状态变化的链路状态通告信息后,根据新旧链路状态通告信息,判断链路状态变化的类型,并基于本地已有的SPT树,记录受影响的节点;其次,对受链路变化影响的节点进行增量SPF计算;增量SPF计算结束后,得到最新的SPT树,同时经过比较得到链路状态变化后导致路径发生变化的节点,对路径变化节点通告的路由进行路由更新计算。本发明特别适用于局部链路状态变化的网络进行路由更新。
文档编号H04L12/56GK101483610SQ20091030058
公开日2009年7月15日 申请日期2009年2月26日 优先权日2009年2月26日
发明者胡祖松 申请人:迈普(四川)通信技术有限公司