路由器及其系统、数据库的同步方法及其装置与流程

文档序号:11410850阅读:295来源:国知局
路由器及其系统、数据库的同步方法及其装置与流程

本发明涉及通信领域,更具体地涉及一种路由器区分优先级的数据库同步的方法及其装置、以及路由器及其系统。



背景技术:

在数据通信领域中,动态路由协议主要分为两种:一种是距离矢量路由算法,另一种是链路状态路由算法。

在链路状态路由算法中,由链路状态路由算法产生的链路状态报文主要有两种类型:一种是承载网络拓扑结构的链路状态报文(简称拓扑链路状态报文,每台路由器都会产生描述对应拓扑结构的链路状态报文);另一种是承载网络路由的链路状态报文(简称叶子链路状态报文,相对于拓扑结构链路报文,路由器会产生更多的承载网络路由的链路状态报文,主要是网络前缀路由信息)。承载网络路由的链路状态报文关联于对应拓扑结构的链路状态报文,即只有先计算出到达特定路由器的拓扑路由,后续才能计算出特定路由器通告的网络前缀路由信息。

如图1所示。图1说明了不区分优先级地发送链路状态报文的例子。路由器1执行重分配命令引入大量的bgp路由,和路由器2进行数据库同步过程中需要将数据库中所有链路状态报文发送给路由器2。在tn时刻之前,路由器1将叶子链路状态报文(承载着引入的bgp路由信息)发送给路由器2,但在tn时刻,路由器1才将自己产生的拓扑链路状态报文(承载着路由器1指向路由器2的网络拓扑结构信息)发送给路由器2。由于在tn时刻之前路由器2没有路由器1的拓扑链路状态报文,所以路由器2无法计算出到达路由器1的拓扑路由,也就计算不出路由器1通告的bgp路由信息(即使此时路由器2可能已经接收到路由器1通告的所有bgp路由信息),只有当tn时刻路由器2接收到路由器1的拓扑链路状态报文时,路由器2才能计算出到达路由器1的拓扑路由,才能计算出路由器1通告的bgp路由信息。

通过上述例子可以看出,链路状态路由协议在数据库同步过程中,如果不区分拓扑链路状态报文和叶子链路状态报文,即不区分重要性地进行数据库同步,会出现没有接收到重要的拓扑链路状态报文而导致其通告的路由信息无法被及时计算的情况,最终会大大影响路由的收敛速度。



技术实现要素:

本发明实施例提供一种路由器区分优先级的数据库同步的方法及其装置、以及路由器及其系统,以解决在链路状态路由协议数据库同步过程中没有区分拓扑链路状态报文和非拓扑链路状态报文出现没有接收到拓扑链路状态报文而导致其通告的路由信息无法被及时计算的情况,最终会影响路由的收敛速度的问题。

本发明实施例提出的一种路由器数据库的同步方法,包括:

将链路状态报文区分为拓扑链路状态报文和叶子链路状态报文;

在相邻路由器同步数据库时,先同步完成所述拓扑链路状态报文,再同步完成所述叶子链路状态报文。

优选地,所述在相邻路由器同步数据库时,先同步完成所述拓扑链路状态报文,再同步完成所述叶子链路状态报文,同步过程包括:

建立相邻路由器数据库之间的摘要描述并将所述摘要描述发送给相邻路由器,所述摘要描述包括所有链路状态报文摘要;

根据摘要描述向相邻路由器发送链路状态请求报文。

优选地,所述建立相邻路由器之间的摘要描述并将所述摘要描述发送给相邻路由器包括:建立用于处理摘要描述的摘要描述队列,所述摘要描述队列包括:摘要描述优先队列、摘要描述普通队列、优先请求队列、普通请求队列。

优选地,所述建立相邻路由器之间的摘要描述并将所述摘要描述发送给相邻路由器包括:添加摘要描述队列,将摘要描述添加到对应的摘要描述队列中。

优选地,所述添加摘要描述队列的添加过程为:所述摘要描述为拓扑链路状态报文摘要时,将所述摘要描述添加到所述摘要描述优先队列;所述摘 要描述为叶子链路状态报文摘要时,将所述摘要描述添加到所述摘要描述普通队列。

优选地,所述建立相邻路由器之间的摘要描述并将所述摘要描述发送给相邻路由器包括:发送摘要描述队列,将摘要描述队列按优先级处理原则发送给邻居路由器,所述优先级处理原则为:优先发送摘要描述队列中的摘要描述优先队列给邻居路由器,摘要描述优先队列全部发送完成后再发送摘要描述普通队列。

优选地,所述建立相邻路由器之间的摘要描述并将所述摘要描述发送给相邻路由器包括:接收摘要描述队列,检查摘要描述队列中的摘要描述,根据摘要描述决定向邻居路由器发送链路状态请求报文。

优选地,当决定向邻居路由器发送所述链路状态请求报文时,将所述链路状态请求报文添加到请求队列中:如果所述摘要描述是拓扑链路状态报文摘要,则将所述链路状态请求报文添加到优先请求队列中;如果所述摘要描述是叶子链路状态报文摘要,则将所述链路状态请求报文添加到普通请求队列中。

优选地,所述建立相邻路由器之间的摘要描述并将所述摘要描述发送给相邻路由器包括:发送请求队列,将请求队列的链路状态请求报文按优先级处理原则发送给邻居路由器,所述优先级处理原则为:优先发送请求队列中的优先请求队列,优先请求队列完成后再发送普通请求队列;在发送普通请求队列过程中,如果优先请求队列中出现新的链路状态请求时,中断当前普通请求队列处理并转向优先请求队列中的链路状态报文请求发送处理。

优选地,所述根据摘要描述向相邻路由器发送链路状态请求报文包括:建立报文发送队列,所述报文发送队列是根据接到的链路请求报文建立并用于处理链路报文发送,所述报文发送队列包括:优先报文发送队列和普通报文发送队列。

优选地,所述根据摘要描述向相邻路由器发送链路状态请求报文包括:添加报文发送队列,将链路状态报文添加到报文发送队列中。

优选地,所述添加报文发送队列的添加过程为:

接收到邻居路由器发来的链路状态请求报文时,检查所述链路状态请求报文,根据所述链路状态请求报文将对应的链路状态报文添加到所述报文发 送队列中,包括:如果所述链路状态请求报文是拓扑链路状态请求报文,将所述拓扑链路状态报文添加到优先报文发送队列;如果所述链路状态请求报文是叶子链路状态请求报文,将所述叶子链路状态报文添加到普通报文发送队列;或者,

从其他路由器得到新的链路状态报文或者自己产生新的链路状态报文时,将新的链路状态报文添加到报文发送队列中:如果链路状态报文是拓扑链路状态报文,将拓扑链路状态报文添加到优先报文发送队列;如果链路状态报文是叶子链路状态报文,将叶子链路状态报文添加到普通报文发送队列。

优选地,所述根据摘要描述向相邻路由器发送链路状态请求报文包括:发送报文发送队列,将报文发送队列的链路状态报文按优先级处理原则发送给邻居路由器,所述优先级处理原则为:优先发送报文发送队列中的优先报文发送队列,优先报文发送队列完成后发送普通报文发送队列;在发送普通报文发送队列过程中,如果优先报文发送队列中出现新的链路状态报文发送请求时,中断当前普通报文发送队列处理并转向优先报文发送队列中的链路状态报文发送处理。

本发明实施例还提出一种路由器数据库的同步装置,其特征在于:包括:区分单元和同步单元;其中:

所述区分单元,用于将链路状态报文区分为拓扑链路状态报文和叶子链路状态报文;

所述同步单元,用于在相邻路由器同步数据库时,先同步完成所述拓扑链路状态报文,再同步完成所述叶子链路状态报文。

优选地,所述同步单元包括摘要描述生成模块和链路状态报文发送模块;其中:

所述摘要描述生成模块,用于建立相邻路由器数据库之间的摘要描述并将所述摘要描述发送给相邻路由器;所述摘要描述包括所有链路状态报文摘要;

所述链路状态报文发送模块,用于根据摘要描述向相邻路由器发送链路状态请求报文。

优选地,所述摘要描述生成模块,具体用于:

建立用于处理摘要描述的摘要描述队列,所述摘要描述队列包括:摘要描述优先队列、摘要描述普通队列、优先请求队列、普通请求队列;

添加摘要描述队列,将摘要描述分别添加到对应的摘要描述队列中;

发送摘要描述队列,将摘要描述队列按优先级处理原则发送给邻居路由器;

接收摘要描述队列,检查摘要描述队列中的摘要描述,根据摘要描述决定向邻居路由器发送链路状态请求报文;

发送请求队列,将请求队列的链路状态请求报文按优先级处理原则发送给邻居路由器。

优选地,所述添加摘要描述队列的添加过程为:所述摘要描述为拓扑链路状态报文摘要时,将所述摘要描述添加到所述摘要描述优先队列;所述摘要描述为叶子链路状态报文摘要时,将所述摘要描述添加到所述摘要描述普通队列。

优选地,所述发送摘要描述队列的优先级处理原则是:优先发送摘要描述队列中的摘要描述优先队列,摘要描述优先队列全部发送完后再发送摘要描述普通队列。

优选地,当决定向邻居路由器发送所述链路状态请求报文时,将所述链路状态请求报文添加到请求队列中:如果所述摘要描述是拓扑链路状态报文摘要,则将所述链路状态请求报文添加到优先请求队列中;如果所述摘要描述是叶子链路状态报文摘要,则将所述链路状态报文请求添加到普通请求队列中。

优选地,所述发送请求队列的优先级处理原则是:优先发送请求队列中的优先请求队列,优先请求队列完成后再发送普通请求队列;在发送普通请求队列过程中,如果优先请求队列中出现新的链路状态请求时,中断当前普通请求队列处理并转向优先请求队列中的链路状态报文请求发送处理。

优选地,所述链路状态报文发送模块,具体用于:

建立报文发送队列,所述报文发送队列是根据接到的链路请求报文建立并用于处理链路报文发送,所述报文发送队列包括:优先报文发送队列和普通报文发送队列;

添加报文发送队列,将链路状态报文添加到报文发送队列中;

发送报文发送队列,将报文发送队列的链路状态报文按优先级处理原则向邻居路由器发送。

优选地,所述添加报文发送队列添加过程为:

接收到邻居路由器发来的链路状态请求报文时,检查所述链路状态请求报文,根据所述链路状态请求报文将对应的链路状态报文添加到所述报文发送队列中,包括:如果所述链路状态请求报文是拓扑链路状态请求报文,将所述拓扑链路状态报文添加到优先报文发送队列;如果所述链路状态请求报文是叶子链路状态请求报文,将叶子链路状态报文添加到普通报文发送队列;或者,

从其他路由器得到新的链路状态报文或者自己产生新的链路状态报文时,将新的链路状态报文添加到报文发送队列中:如果链路状态报文是拓扑链路状态报文,将拓扑链路状态报文添加到优先报文发送队列;如果链路状态报文是叶子链路状态报文,将叶子链路状态报文添加到普通报文发送队列。

优选地,所述发送报文发送队列的优先级处理原则为:优先发送报文发送队列中的优先报文发送队列,优先报文发送队列完成后发送普通报文发送队列;在发送普通报文发送队列过程中,如果优先报文发送队列中出现新的链路状态报文发送请求时,中断当前普通报文发送队列处理并转向优先报文发送队列中的链路状态报文发送处理。

本发明实施例还提出一种路由器,所述路由器包括如以上所述的同步装置。

本发明实施例还提出一种路由器系统,所述路由器系统包括至少两个如以上所述的路由器。

本发明与现有技术相比,本发明提供的一种路由器区分优先级的数据库 同步的方法及其装置、以及路由器及其系统,链路状态路由协议在数据库同步过程中,区分拓扑链路状态报文和叶子链路状态报文,即区分重要性地进行数据库同步,优先同步影响网络拓扑结构的重要性高的拓扑链路状态报文,在拓扑链路状态报文同步完成的情况下再进行重要性相对低的其它链路状态报文(叶子链路状态报文)的同步,从而可以加快路由的收敛速度。

附图说明

图1为现有技术中不区分优先级数据库同步例子的示意图;

图2为本发明提供的一种路由器数据库同步方法的流程图;

图3为本发明提供的一种路由器数据库同步方法中添加摘要描述队列的流程图;

图4为本发明提供的一种路由器数据库同步方法中发送摘要描述队列的流程图;

图5为本发明提供的一种路由器数据库同步方法中接收摘要描述的流程图;

图6为本发明提供的一种路由器数据库同步方法中发送请求队列的流程图;

图7为本发明提供的一种路由器数据库同步方法中接收请求报文的流程图;

图8为本发明提供的一种路由器数据库同步方法中添加报文发送队列的流程图;

图9为本发明提供的一种路由器数据库同步方法中发送报文发送队列的流程图;

图10为本发明提供的一种路由器数据库同步装置的结构示意图。

为了使本发明的技术方案更加清楚、明了,下面将结合附图作进一步详述。

具体实施方式

应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图2所示,本发明提供一种路由器数据库同步的方法,应用于链路状态路由算法协议的数据库同步,包括:

将链路状态路由算法产生的链路状态报文区分为拓扑链路状态报文和叶子链路状态报文;

链路状态路由算法产生的链路状态报文主要有两种类型:一种是承载网络拓扑结构的链路状态报文(简称拓扑链路状态报文,每台路由器都会产生描述对应拓扑结构的链路状态报文);另一种是承载网络路由的链路状态报文(简称叶子链路状态报文,相对于拓扑结构链路报文,路由器会产生更多的承载网络路由的链路状态报文,主要是网络前缀路由信息)。承载网络路由的链路状态报文关联于对应拓扑结构的链路状态报文,即只有先计算出到达特定路由器的拓扑路由,后续才能计算出特定路由器通告的网络前缀路由信息。可以看出,承载网络拓扑结构的链路状态报文(拓扑链路状态报文)相对要比承载网络路由的链路状态报文(叶子链路状态报文)更加重要。

在相邻路由器同步数据库时,先同步完成所述拓扑链路状态报文,再同步完成所述叶子链路状态报文。具体同步过程包括:

建立相邻路由器数据库之间的摘要描述并将所述摘要描述发送给相邻路由器;

根据摘要描述向相邻路由器发送链路状态请求报文。

以下具体描述同步过程。

建立相邻路由器数据库之间的摘要描述并将所述摘要描述发送给相邻路由器

相邻路由器发送hello报文建立双向通信后,将本地数据库中所有链路状态报文摘要形成摘要描述(即以摘要描述形式来表征链路状态报文摘要)发送给邻居路由器,通过该摘要描述,可以确定本地路由器的本地数据库缺少的链路状态报文和邻居路由器数据库缺少的链路状态报文。

关于建立相邻路由器数据库之间的摘要描述并将所述摘要描述发送给相邻路由器的具体过程如下所述:

建立用于处理摘要描述的摘要描述队列,该处理包括添加、发送、接收等过程,并初始化该摘要描述队列。该摘要描述队列包括:摘要描述优先队 列、摘要描述普通队列、优先请求队列、普通请求队列。

添加摘要描述队列,将摘要描述按重要性分别添加到对应的摘要描述队列中,具体添加过程是:如摘要描述为拓扑链路状态报文摘要时,将其添加到摘要描述优先队列;如摘要描述为叶子链路状态报文摘要时,将其添加到摘要描述普通队列。

发送摘要描述队列,将摘要描述队列按优先级处理原则发送给邻居路由器。该优先级处理原则是:优先发送摘要描述队列中的摘要描述优先队列,摘要描述优先队列全部发送完后再发送摘要描述普通队列;当摘要描述优先队列不为空时,将摘要描述优先队列中的摘要描述发送给邻居路由器,直至摘要描述优先队列为空;当摘要描述优先队列为空时,处理摘要描述普通队列,将摘要描述普通队列中的摘要描述发送给邻居路由器。

接收摘要描述队列,接收邻居路由器发送的摘要描述队列,检查摘要描述队列中的每一个摘要描述,根据摘要描述决定是否需要向邻居路由器发送链路状态请求报文;当决定需要向邻居路由器发送请求链路状态报文时,将链路状态请求报文添加到请求队列中:如果摘要描述是拓扑链路状态报文摘要,则将链路状态请求报文添加到优先请求队列中;如果摘要描述是叶子链路状态报文摘要,则将链路状态请求报文添加到普通请求队列中。

发送请求队列,将请求队列的链路状态请求报文按优先级处理原则发送给邻居路由器。该优先级处理原则是:优先发送请求队列中的优先请求队列,优先请求队列完成后再发送普通请求队列;当优先请求队列不为空时,将优先请求队列中的链路状态报文请求发送给邻居路由器,直至优先请求队列为空;当优先请求队列为空时,处理普通请求队列,将普通请求队列中的链路状态报文请求发送给邻居路由器;在发送普通请求队列过程中,如果优先请求队列中出现新的链路状态请求时,中断当前普通请求队列处理并转向优先请求队列中的链路状态报文请求发送处理。

根据摘要描述向相邻路由器发送链路状态请求报文。

由于根据相邻路由器发送的摘要描述,可以确定本地路由器的本地数据库是否缺少的链路状态报文和邻居路由器数据库是否缺少的链路状态报文,并依此结果向邻居路由器请求发送数据库缺少的链路状态报文,完善路由器 的链路状态报文数据库,达成路由器数据库同步的目的。

路由器向邻居路由器发送链路状态报文的触发时机,存在两种情况:一种是接收到邻居路由器发来的链路状态报文请求(isis协议中接收到邻居路由器完整的数据库摘要描述后,会将邻居路由器缺少的链路状态报文发送给邻居路由器);另一种是从其他路由器得到新的链路状态报文或者自己产生新的链路状态报文。以上两种情况任一情况发生时,路由器都会向邻居路由器发送链路状态报文,具体的发送过程如下所述:

建立报文发送队列,所述报文发送队列是根据接到的链路请求报文建立并用于处理链路报文发送,该报文发送队列包括:优先报文发送队列和普通报文发送队列;并初始化上述报文发送队列。

添加报文发送队列,将链路状态报文添加到报文发送队列中,具体添加过程是:分两种情况进行具体添加过程:

第一种情况:接收到邻居路由器发来的链路状态请求报文时,检查请求报文中每一个链路状态请求报文,根据链路状态请求报文将对应的链路状态报文添加到报文发送队列中:如果链路状态请求报文是拓扑链路状态请求报文,则将拓扑链路状态报文添加到优先报文发送队列;如果链路状态请求报文是叶子链路状态请求报文,则将叶子链路状态报文添加到普通报文发送队列。

第二种情况:从其他路由器得到新的链路状态报文或者自己产生新的链路状态报文时,将新的链路状态报文添加到报文发送队列中:如果链路状态报文是拓扑链路状态报文,则将拓扑链路状态报文添加到优先报文发送队列;如果链路状态报文是叶子链路状态报文,则将叶子链路状态报文添加到普通报文发送队列。

发送报文发送队列,将报文发送队列的链路状态报文按优先级处理原则向邻居路由器发送。该优先级处理原则是:优先发送报文发送队列中的优先报文发送队列,优先报文发送队列完成后发送普通报文发送队列;当优先报文发送队列不为空时,将优先报文发送队列中的链路状态报文发送给邻居路由器,直至优先报文发送队列为空;当优先报文发送队列为空时,处理普通报文发送队列,将普通报文发送队列中的链路状态报文发送给邻居路由器;在处理普通报文发送队列过程时,如果优先报文发送队列中出现新的链路状 态报文发送请求时,中断当前普通报文发送队列处理并转向优先报文发送队列中的链路状态报文发送处理。

如图3所示,为本发明提供的一种路由器数据库同步方法中添加摘要描述队列的流程图。

路由器发现邻居路由器后会将本地数据库中所有链路状态报文摘要形成摘要描述发送给邻居路由器,邻居路由器接收到摘要描述后会判断是否需要向对方请求链路状态报文,如果本地没有或者本地的链路状态报文没有对方链路状态报文新,则需要向对方请求链路状态报文。

将本地数据库中链路状态报文摘要形成摘要描述发送给邻居路由器前,需要将本地数据库中所有链路状态报文添加到摘要描述队列中,如果链路状态报文为拓扑链路状态报文,则添加到摘要描述优先队列;如果链路状态报文为叶子链路状态报文,则添加到摘要描述普通队列。

如图4所示,为本发明提供的一种路由器数据库同步方法中发送摘要描述队列的流程图。

发送摘要描述队列时,首先处理摘要描述优先队列中的摘要描述,将摘要描述优先队列中的每个摘要描述发送出去,只有当摘要描述优先队列中所有摘要描述处理完成后,才处理摘要描述普通队列中的摘要描述。这样可以保证摘要描述优先队列中的拓扑链路状态摘要信息以高优先级发送出去。

因为摘要描述队列的添加是一次性完成,不存在所有链路状态摘要描述添加完成后又要添加的链路状态摘要描述,后续数据库中新添加的链路状态报文将会直接发送给邻居路由器,而不用再次添加到摘要描述队列表中。

如图5所示,为本发明提供的一种路由器数据库同步方法中接收摘要描述的流程图。

接收到邻居路由器发来的摘要描述队列,检查摘要描述队列中的每一个摘要描述,根据摘要描述决定是否需要向邻居路由器发送链路状态请求报文。如果本地数据库没有摘要描述的链路状态报文或者本地数据库中的链路状态报文没有摘要描述的链路状态报文新,需要向邻居路由器发送链路状态请求 报文。

当决定需要向邻居路由器发送链路状态请求报文时,将链路状态请求报文添加到请求队列中:如果摘要描述是拓扑链路状态报文摘要,则添加到优先请求队列中;如果摘要描述是叶子链路状态报文摘要,则添加到普通请求队列中。

接收到邻居路由器发来的完整摘要描述后(当路由器将本地数据库中所有链路状态的摘要描述全部发送完毕时,会通过摘要描述中的特定字段向邻居路由器传递本地已经将所有链路状态的摘要描述发送完的信号),如果本地数据库中含有完整摘要描述中所没有的链路状态报文时,则说明对方邻居路由器缺少相应的链路状态报文。如果缺少的链路状态报文是拓扑链路状态报文,则添加到优先报文发送队列;如果缺少的链路状态报文是叶子链路状态报文,则添加到普通报文发送队列(这个仅对isis协议适用)。

如图6所示,为本发明提供的一种路由器数据库同步方法中发送请求队列的流程图。

发送请求队列时,首先发送优先请求队列中的请求报文,只有当优先请求队列中所有请求报文处理完成后,才开始处理普通请求队列中的请求报文。这样可以保证优先请求队列中的拓扑链路状态请求报文以高优先级发送出去。

在处理普通请求队列过程中,如果有新的报文请求添加至优先请求队列中,则中断普通请求队列的发送请求处理,转去处理优先请求队列中的发送请求,处理完毕后继续上一次被中断的普通请求队列中的发送请求处理。这种抢占式的处理方式可以保证拓扑链路状态报文请求始终以高优先级发送出去。

如图7所示,为本发明提供的一种路由器数据库同步方法中接收请求报文的流程图。

接收到邻居路由器发来的请求报文时,会处理请求报文中的每一个链路状态报文请求,根据报文请求决定是否需要向邻居路由器发送对应的链路状态报文,如果本地数据库有对应的链路状态报文,将该链路状态报文发送给 邻居路由器。

如果需要向邻居路由器发送链路状态报文时,判断请求的链路状态报文是否为拓扑链路状态报文,如果请求的链路状态报文为拓扑链路状态报文,则添加到优先报文发送队列中;如果请求的链路状态报文为叶子链路状态报文,则添加到普通报文发送队列中。

如图8所示,为本发明提供的一种路由器数据库同步方法中添加报文发送队列的流程图。

从其他路由器得到新的链路状态报文或者自己产生新的链路状态报文时,需要将这些新的链路状态报文发送给邻居路由器。判断新的链路状态报文是否为拓扑链路状态报文,如果新的链路状态报文为拓扑链路状态报文,则添加到优先报文发送队列中;如果新的链路状态报文为叶子链路状态报文,则添加到普通报文发送队列中。

如图9所示,为本发明提供的一种路由器数据库同步方法中发送报文发送队列的流程图。

发送报文发送队列时,首先处理优先报文发送队列中的链路状态报文发送请求,将优先报文发送队列中的链路状态报文发送出去,只有当优先报文发送队列中所有链路状态报文发送请求处理完成后,才开始处理普通报文发送队列中的链路状态报文发送请求。这样可以保证优先发送队列中的拓扑链路状态报文以高处理优先级发送出去。

在处理普通报文发送队列过程中,如果有新的发送请求添加至优先报文发送队列中,则中断普通报文发送队列的发送请求处理,转去处理优先报文发送队列中的发送请求,处理完毕后继续上一次被中断的普通报文发送队列中的发送请求处理。这种抢占式的处理方式可以保证拓扑链路状态报文始终以高优先级发送出去。

如图10所示,为本发明提供的一种路由器数据库同步装置的结构示意图。

本发明提供一种路由器数据库的同步装置,应用于链路状态路由算法协议的数据库同步,包括:区分单元和同步单元。

区分单元,用于将链路状态路由算法产生的链路状态报文区分为拓扑链路状态报文和叶子链路状态报文;

同步单元,用于在相邻路由器同步数据库时,先同步完成所述拓扑链路状态报文,然后再同步完成所述叶子链路状态报文;所述同步单元包括摘要描述生成模块和发送模块。其中:

该摘要描述生成模块,用于建立相邻路由器数据库之间的摘要描述并将所述摘要描述发送给相邻路由器;所述摘要描述包括所有链路状态报文摘要;具体用于:

建立摘要描述队列,并初始化该摘要描述队列。该摘要描述队列包括:摘要描述优先队列、摘要描述普通队列、优先请求队列、普通请求队列。

添加摘要描述队列,将摘要描述按重要性分别添加到对应的摘要描述队列中,添加过程是:如摘要描述为拓扑链路状态报文摘要时,将其添加到摘要描述优先队列;如摘要描述为叶子链路状态报文摘要时,将其添加到摘要描述普通队列。

发送摘要描述队列,将摘要描述队列按优先级处理原则发送给邻居路由器。该优先级处理原则是:优先发送摘要描述队列中的摘要描述优先队列,摘要描述优先队列全部发送完后再发送摘要描述普通队列;当摘要描述优先队列不为空时,将摘要描述优先队列中的摘要描述发送给邻居路由器,直至摘要描述优先队列为空;当摘要描述优先队列为空时,处理摘要描述普通队列,将摘要描述普通队列中的摘要描述发送给邻居路由器。

接收摘要描述队列,接收邻居路由器发送的摘要描述队列,检查摘要描述队列中的每一个摘要描述,根据摘要描述决定是否需要向邻居路由器发送链路状态请求报文;当决定需要向邻居路由器发送链路状态请求报文时,将链路状态请求报文添加到请求队列中:如果摘要描述是拓扑链路状态报文摘要,则链路状态请求报文添加到优先请求队列中;如果摘要描述是叶子链路状态报文摘要,则链路状态请求报文添加到普通请求队列中。

发送请求队列,将请求队列的链路状态请求报文按优先级处理原则发送给邻居路由器。该优先级处理原则是:优先发送请求队列中的优先请求队列,优先请求队列完成后再发送普通请求队列;当优先请求队列不为空时,将优先请求队列中的链路状态报文请求发送给邻居路由器,直至优先请求队列为 空;当优先请求队列为空时,处理普通请求队列,将普通请求队列中的链路状态报文请求发送给邻居路由器;在发送普通请求队列过程中,如果优先请求队列中出现新的链路状态请求时,中断当前通请求队列处理并转向优先请求队列中的链路状态报文请求发送处理。

该链路状态报文发送模块,用于根据摘要描述向相邻路由器发送链路状态请求报文;具体用于:

建立报文发送队列,所述报文发送队列是根据接到的链路请求报文建立并用于处理链路报文发送,该报文发送队列包括:优先报文发送队列和普通报文发送队列;并初始化上述报文发送队列。

添加报文发送队列,将链路状态报文添加到报文发送队列中,具体添加过程是:分两种情况进行具体添加过程:

第一种情况:接收到邻居路由器发来的链路状态请求报文时,检查请求报文中每一个链路状态请求报文,根据链路状态请求报文将对应的链路状态报文添加到报文发送队列中:如果链路状态请求报文是拓扑链路状态请求报文,则将拓扑链路状态报文添加到优先报文发送队列;如果链路状态请求报文是叶子链路状态请求报文,则将叶子链路状态报文添加到普通报文发送队列。

第二种情况:从其他路由器得到新的链路状态报文或者自己产生新的链路状态报文时,将新的链路状态报文添加到报文发送队列中:如果链路状态报文是拓扑链路状态报文,则将拓扑链路状态报文添加到优先报文发送队列;如果链路状态报文是叶子链路状态报文,则将叶子链路状态报文添加到普通报文发送队列。

发送报文发送队列,将报文发送队列的链路状态报文按优先级处理原则向邻居路由器发送。该优先级处理原则是:优先处理报文发送队列中的优先报文发送队列,完成后再处理普通报文发送队列;当优先报文发送队列不为空时,将优先报文发送队列中的链路状态报文发送给邻居路由器,直至优先报文发送队列为空;当优先报文发送队列为空时,处理普通报文发送队列,将普通报文发送队列中的链路状态报文发送给邻居路由器;在处理普通报文发送队列过程时,如果优先报文发送队列中出现新的链路状态报文发送请求 时,中断当前普通报文发送队列处理并转向优先报文发送队列中的链路状态报文发送处理。

本发明还提供一种路由器,其包括如上所述的同步装置,所述同步装置,用于同步上述路由器的链路状态路由算法协议的数据库,其包括:区分单元和同步单元。其中:

区分单元,用于将链路状态路由算法产生的链路状态报文区分为拓扑链路状态报文和叶子链路状态报文;

同步单元,用于在相邻路由器同步数据库时,先同步完成所述拓扑链路状态报文,然后再同步完成所述叶子链路状态报文;所述同步单元包括摘要描述生成模块和链路状态报文发送模块。其中:

摘要描述生成模块,用于建立相邻路由器数据库之间的摘要描述并将所述摘要描述发送给相邻路由器;所述摘要描述包括所有链路状态报文摘要;

链路状态报文发送模块,用于根据摘要描述向相邻路由器发送链路状态请求报文。

本发明还提供一种路由器系统,包括至少两个路由器,所述路由器包括如上所述的同步装置,所述同步装置,用于同步上述路由器的链路状态路由算法协议的数据库,其包括:区分单元和同步单元。其中:

区分单元,用于将链路状态路由算法产生的链路状态报文区分为拓扑链路状态报文和叶子链路状态报文;

同步单元,用于在相邻路由器同步数据库时,先同步完成所述拓扑链路状态报文,然后再同步完成所述叶子链路状态报文;所述同步单元包括摘要描述生成模块和链路状态报文发送模块。其中:

摘要描述生成模块,用于建立相邻路由器数据库之间的摘要描述并将所述摘要描述发送给相邻路由器;所述摘要描述包括所有链路状态报文摘要;

链路状态报文发送模块,用于根据摘要描述向相邻路由器发送链路状态请求报文。

与现有技术相比较,本发明至少具有下列优点:

本发明提供的一种路由器区分优先级的数据库同步的方法及其装置、以及路由器及其系统,链路状态路由协议在数据库同步过程中,区分拓扑链路状态报文和叶子链路状态报文,即区分重要性地进行数据库同步,优先同步影响网络拓扑结构的重要性高的拓扑链路状态报文,在拓扑链路状态报文同步完成的情况下再进行重要性相对低的其它链路状态报文(叶子链路状态报文)的同步,从而可以加快路由的收敛速度。

还需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。

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