一种备份链路确定方法及装置与流程

文档序号:11842439阅读:277来源:国知局
一种备份链路确定方法及装置与流程

本发明涉及通信技术领域,特别是涉及一种备份链路确定方法及装置。



背景技术:

随着网络技术的发展,语音、视频等网络业务的出现对流量中断时间提出了更严格的要求。现有方法中,通常可以采用FRR(Fast Reroute,快速重路由)技术来减少流量中断时间。即针对各源节点和目的节点,计算出主链路和备份链路,当主链路故障后,快速切换至备份链路。

SPF(Shortest Path First,最短路径优先)技术可以用于计算各节点到其他节点的最短路径。在实际应用中,各节点可以使用SPF技术,来确定其到任一目的节点的主链路和备份链路。

具体地,各节点可以根据每两个节点之间链路的最短距离(即cost值),确定从自身到任一目的节点之间,cost值最小的链路为主链路,cost值仅小于主链路的链路为备份链路。其中,每两个节点之间链路的cost值为用来衡量链路质量的一种无量纲数值,链路质量越好,cost值越小。具体地,其可以体现为多种形式,如,其可以反映链路带宽、链路拥塞程度、节点距离远近等。也就是说,节点可以优先选择质量最好的链路作为主链路。

但是,链路状态路由协议工作时,总是以自身节点为起始节点进行SPF计算。有些情况下,节点在确定备份链路时,可能会形成环路。因此要确定无环路的备份链路,必须获知邻居节点到达目的节点以及起始节点的最短距离。

具体地,可以采用LFA(Loop Free Alternate,无环可选下一跳)技术。LFA作为一种FRR,其实就是借助现有的SPF算法,为每条链路的下一跳找出不会形成环路,真正能保持流量不中断的备份链路的下一跳。

但是,实际应用中,网络拓扑中包括的节点往往非常多,多达上千节点。因此,各节点以所有的候选邻居节点为起始节点进行SPF运算时,会导致计算量非常庞大,占用大量CPU。并且,是否存在备份链路,还要满足LFA无环条件。在以候选邻居节点为起始节点进行SPF计算前,无法决策经过该候选邻居节点的链路是否为备份链路。因此,很有可能进行了大量SPF计算,但并没有备份链路。



技术实现要素:

本发明实施例的目的在于提供一种备份链路确定方法及装置,以在减少SPF计算量的同时,提高备份链路确定的成功率。具体技术方案如下:

第一方面,本发明实施例提供了一种备份链路确定方法,应用于第一节点,所述方法包括:

在本节点所在的网络拓扑中,以本节点为起始节点进行最短路径优先SPF计算,根据计算结果,确定从本节点到目的节点的主链路;

识别所述网络拓扑中所有的割点,并根据各割点将所述网络拓扑划分为至少两个子拓扑;

确定所述主链路经过的子拓扑,并从本节点的候选邻居节点中确定出目标邻居节点,所述目标邻居节点包含于所述子拓扑中;

以所述目标邻居节点为起始节点进行SPF计算,根据计算结果,确定从本节点到所述目的节点的备份链路。

第二方面,本发明实施例提供了一种备份链路确定装置,应用于第一节点,所述装置包括:

执行模块,用于在本节点所在的网络拓扑中,以本节点为起始节点进行最短路径优先SPF计算,根据计算结果,确定从本节点到目的节点的主链路;识别所述网络拓扑中所有的割点,并根据各割点将所述网络拓扑划分为至少两个子拓扑;确定所述主链路经过的子拓扑,并从本节点的候选邻居节点中确定出目标邻居节点,所述目标邻居节点包含于所述子拓扑中;

处理模块,用于以所述目标邻居节点为起始节点进行SPF计算,根据计算结果,确定从本节点到所述目的节点的备份链路。

本发明实施例提供了一种备份链路确定方法及装置,节点可以识别其所在网络拓扑中所有的割点,进而根据各割点,将该网络拓扑划分为至少两个子拓扑,并且,可以确定从自身到目的节点的主链路经过的子拓扑;进一步地,可以在自身的候选邻居节点中,识别包含于该子拓扑的目标邻居节点,并只以这些目标邻居节点为起始节点进行SPF计算,从而根据SPF计算结果,确定自身到目的节点的备份链路。在实际应用中,从任一源节点到目的节点的备份链路,只可能存在于该源节点到目的节点的主链路所经过的子拓扑中。因此,非该子拓扑中的各候选邻居节点,不可能包含在备份链路中,而包含在该子拓扑中的各候选邻居节点,都可能成为从源节点到目的节点的备份链路的下一跳。从而,只以包含在该子拓扑中的各候选邻居节点为起始节点进行SPF计算,能够在减少SPF计算量的同时,提高备份链路确定的成功率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1(a)、1(b)为任一网络拓扑示意图;

图2为另一网络拓扑示意图;

图3为本发明实施例的一种备份链路确定方法的流程图;

图4为本发明实施例的一种备份链路确定装置的结构示意图;

图5为对图2所示的网络拓扑运行DFS算法后生成的搜索树,以及各节点在搜索树中的第一深度值示意图;

图6为图5所示的搜索树中针对各节点,该节点的第二深度值示意图。

具体实施方式

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

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。

在实际应用中,节点在通过SPF确定备份链路时,可能会产生环路。例如,如图1(a)所示的网络拓扑中,S表示源节点,D表示目的节点。通过SPF技术可以确定从节点S到节点D的主链路为S-E-D,备份链路为S-N-D。而当S-E链路发生故障时,则需要通过备份链路S-N-D,将节点S到节点D的流量发送给节点D。

但是,如图1(b)所示的网络拓扑中,如果N-D的cost不是3而是43,则通过SPF技术可以确定从节点S到节点D的备份链路为S-N-S-E-D。因为走N-S-E-D的链路的cost比N-D的cost更小。这样S-E链路一旦发生故障,即使节点S将到达节点D的流量切换到节点N上进行转发,节点N也会把到节点D的流量重新转发给节点S,从而形成环路。因此,实际上节点N是不具备作为节点S到节点D的备份链路的下一跳的资格的。

如图1(a)或1(b)所示的网络拓扑中,无环的条件如下:

cost(N,D)<cost(N,S)+cost(S,D)

也就是说,当从节点N到节点D的链路的cost值,小于从节点N到节点S的cost值与从节点S到节点D的主链路的cost值的和时,从节点N到节点D不会形成环路。

但是,链路状态路由协议工作时,总是以自身节点为起始节点进行SPF计算。比如图1(a)中的节点S,进行SPF计算时,只能算出cost(S,X),即只能获知节点S到其他节点的最短距离。cost(N,D)以及cost(N,S)采用传统的SPF运算无法获知。因此要确定备份链路,必须获知邻居节点到达目的节点以及起始节点的最短距离。

为了解决该问题,可以采用LFA(Loop Free Alternate,无环可选下一跳)技术。LFA作为一种FRR,其实就是借助现有的SPF算法,为每条链路的下一跳找出不会形成环路,真正能保持流量不中断的备份链路的下一跳。

具体地,各节点在进行SPF计算时,除了以本地节点为起始节点进行SPF计算外,增加以除主链路中的邻居节点之外的每个候选邻居节点为起始节点进行SPF计算,获得从每个候选邻居节点出发到达其他节点的最短距离。通过这些数据执行LFA方案的备份下一跳选择算法,确定本地节点到其他所有节点的备份链路。参照图1(a),针对节点S,除了以节点S为起始节点进行SPF计算,仍旧需要以节点N为起始节点进行SPF计算。

但是,实际应用中,网络拓扑中包括的节点往往非常多,多达上千节点。因此,各节点以所有的候选邻居节点为起始节点进行SPF运算时,会导致计算量非常庞大,占用大量CPU。并且,是否存在备份链路,还要满足LFA无环条件。在以候选邻居节点为起始节点进行SPF计算前,无法决策经过该候选邻居节点的链路是否为备份链路。因此,很有可能进行了大量SPF计算,但并没有备份链路。

为了在减少SPF计算量的同时,提高备份链路确定的成功率,本发明实施例提供了一种备份链路确定方法及装置。

首先结合一个具体的网络拓扑,来说明在实际应用中,针对任一个节点,其候选邻居节点中,需要以哪些候选邻居节点为起始节点进行SPF计算,不需要以哪些候选邻居节点为起始节点进行SPF计算。

在实际应用中,网络拓扑通常为比较复杂的,如图2所示的网络拓扑。在这种网络拓扑中,割点在其中扮演着很重要的角色。其中,在网络拓扑中,若删除某节点后,该网络拓扑被分割为至少两个独立的子拓扑,则该节点为割点。

如图2所示的网络拓扑中,节点C,H,K为割点,它们将整个拓扑划分为四个子拓扑:{A,B,C,D,E,R},{C,F,G,H,I,J},{H,K},{K,L,M,N,O,P}。

例如,当源节点为节点C,目的节点为节点A,主链路为C-B-A时,主链路所跨的子拓扑为{A,B,C,D,E,R}。在确定备份链路时,如果备份链路存在,则备份链路一定在子拓扑{A,B,C,D,E,R}中,不可能在其他子拓扑中。

因此,节点C在确定C-A的备份链路时,针对其每个候选邻居节点D、F、J,只需要以包含在子拓扑{A,B,C,D,E,R}中的节点D为起始节点进行SPF计算,而不需要以包含在其他子拓扑中的邻居节点F和J为起始节点进行SPF计算。

另外,当源节点为节点H,目的节点为节点A,主链路为H-G-F-C-B-A时,主链路所跨的子拓扑集合为{A,B,C,D,E,R}和{C,F,G,H,I,J}。在确定备份链路时,如果备份链路存在,则备份链路一定在子拓扑集合{A,B,C,D,E,R}和{C,F,G,H,I,J}中,不可能在其他子拓扑中。

因此,节点H在确定H-A的备份链路时,针对其每个候选邻居节点I、K,只需要以包含在子拓扑{A,B,C,D,E,R}和{C,F,G,H,I,J}中的节点I为起始节点进行SPF计算,而不需要以包含在其他子拓扑中的邻居节点K为起始节点进行SPF计算。

特殊地,当源节点为节点H,目的节点为节点K,主链路为H-K时,主链路所跨的子拓扑为{H,K}。由于节点H的候选邻居节点G、I均不包含在子拓扑{H,K}中,因此,可以直接确定不需要进行SPF计算,不存在备份链路。

通过上述举例,可以得出以下结论:若源节点到目的节点的主链路所跨的子拓扑集合为X,则备份链路仍旧在该集合X中。也就是说,备份链路只能出现在主链路所跨的子拓扑集合中。

为了在减少SPF计算量的同时,提高备份链路确定的成功率,本发明实施例提供了一种备份链路确定方法过程,如图3所示,该过程可以包括以下步骤:

S301,在本节点所在的网络拓扑中,以本节点为起始节点进行最短路径优先SPF计算,根据计算结果,确定从本节点到目的节点的主链路。

本发明实施例提供的方法,可以应用于网络中的任一节点。在本发明实施例中,为了便于描述,可以将该节点称为第一节点。

在本发明实施例中,第一节点可以在本节点所在的网络拓扑中,以本节点为起始节点进行SPF计算,根据计算结果,确定从本节点到目的节点的主链路。

例如,第一节点可以通过SPF计算,得到从本节点到各节点的链路的cost值,进而可以将从本节点到目的节点中,cost值最小的链路确定为主链路。

需要说明的是,本发明实施例仅以确定第一节点到任一目的节点的备份链路为例,来说明本发明实施例提供的备份链路确定方法。实际应用中,可以应该本发明实施例提供的方法,确定第一节点到各目的节点的备份链路。

S302,识别所述网络拓扑中所有的割点,并根据各割点将所述网络拓扑划分为至少两个子拓扑。

在本发明实施例中,为了在减少SPF计算量的同时,提高备份链路确定的成功率,第一节点可以识别本节点所在网络拓扑中所有的割点,进而可以根据各割点,将该网络拓扑划分为至少两个子拓扑。

所谓的割点是指:删除某节点后,该网络拓扑被分割为至少两个独立的子拓扑,则该节点为割点。

第一节点在识别网络拓扑中所有的割点之前,可以以网络拓扑中的第二节点为根节点,对该网络拓扑运行DFS(Deep First Search,深度优先搜索)算法,生成搜索树。其中,上述第二节点可以与第一节点相同,也可以不同。

第一节点在识别网络拓扑中所有的割点时,可以运行预设算法,获得所述搜索树中各节点的第一深度值和第二深度值,所述第一深度值表示该节点在所述搜索树中的深度,所述第二深度值为该节点的子孙节点在所述搜索树中能到达的最浅深度。其中,上述预设算法可以是Tarjan算法。

各节点在搜索树中的深度,即为各节点在该搜索树中的遍历顺序。遍历顺序越靠前的节点,其在搜索树中的深度越小。例如,根节点为遍历顺序最靠前的节点,其在搜索树中的深度为0。

确定各节点在搜索树中的第一深度和第二深度后,第一节点可以确定本节点以及其他节点是否为割点。

具体地,当第二节点在该搜索树中存在至少两个子树时,可以确定其为割点。如,从根节点的任意一个子节点开始遍历该搜索树,如果能够遍历到搜索树中剩余所有节点时,可以表明第二节点在搜索树中存在一个子树;否则,表明第二节点在搜索树中存在至少两个子树。

对于非根节点,在其所在的子拓扑中,如果该节点存在至少一个子孙节点满足以下条件时,确定该节点为割点:所述子孙节点的第二深度值大于等于该非根节点的第一深度值。

需要说明的是,第一节点在确定网络拓扑中的割点时,除了使用上述方法之外,还可以使用现有的任一种方法,本发明实施例对此不进行限定。

确定网络拓扑中的割点后,第一节点可以进一步地根据各割点,将该网络拓扑划分为至少两个子拓扑。

S303,确定所述主链路经过的子拓扑,并从本节点的候选邻居节点中确定出目标邻居节点,所述目标邻居节点包含于所述子拓扑中。

将网络拓扑划分为多个子拓扑后,第一节点可以确定主链路经过的一个或多个子拓扑。例如,第一节点可以确定主链路中包括的每两个节点之间的链路所在的子拓扑。

进一步地,第一节点可以针对各候选邻居节点,在子拓扑集合中查找是否存在该节点,如果是,则确定该节点为包含于该子拓扑中的目标邻居节点。

其中,第一节点确定候选邻居节点时,可以除本节点在主链路上的邻居节点以外,将剩余的邻居节点确定为候选邻居节点。

S304,以所述目标邻居节点为起始节点进行SPF计算,根据计算结果,确定从本节点到所述目的节点的备份链路。

确定目标邻居节点后,第一节点可以针对各目标邻居节点,以该目标邻居节点为起始节点进行SPF计算,并根据计算结果,确定从自身到目的节点的备份链路。

例如,第一节点可以针对各目标邻居节点,计算该目标邻居节点到目的节点的cost值,以及其到自身的cost值,进而可以根据计算结果,确定从自身到目的节点的链路中,cost值最小的链路为备份链路。

本发明实施例提供了一种备份链路确定方法,节点可以识别其所在网络拓扑中所有的割点,进而根据各割点,将该网络拓扑划分为至少两个子拓扑,并且,可以确定从自身到目的节点的主链路经过的子拓扑;进一步地,可以在自身的候选邻居节点中,识别包含于该子拓扑的目标邻居节点,并只以这些目标邻居节点为起始节点进行SPF计算,从而根据SPF计算结果,确定自身到目的节点的备份链路。在实际应用中,从任一源节点到目的节点的备份链路,只可能存在于该源节点到目的节点的主链路所经过的子拓扑中。因此,非该子拓扑中的各候选邻居节点,不可能包含在备份链路中,而包含在该子拓扑中的各候选邻居节点,都可能成为从源节点到目的节点的备份链路的下一跳。从而,只以包含在该子拓扑中的各候选邻居节点为起始节点进行SPF计算,能够在减少SPF计算量的同时,提高备份链路确定的成功率。

相应于上面的方法实施例,本发明实施例还提供了相应的装置实施例。

如图4所示,本发明实施例提供了一种备份链路确定装置,应用于第一节点,所述装置包括:

执行模块410,用于在本节点所在的网络拓扑中,以本节点为起始节点进行最短路径优先SPF计算,根据计算结果,确定从本节点到目的节点的主链路;识别所述网络拓扑中所有的割点,并根据各割点将所述网络拓扑划分为至少两个子拓扑;确定所述主链路经过的子拓扑,并从本节点的候选邻居节点中确定出目标邻居节点,所述目标邻居节点包含于所述子拓扑中;

处理模块420,用于以所述目标邻居节点为起始节点进行SPF计算,根据计算结果,确定从本节点到所述目的节点的备份链路。

本发明实施例提供了一种备份链路确定装置,节点可以识别其所在网络拓扑中所有的割点,进而根据各割点,将该网络拓扑划分为至少两个子拓扑,并且,可以确定从自身到目的节点的主链路经过的子拓扑;进一步地,可以在自身的候选邻居节点中,识别包含于该子拓扑的目标邻居节点,并只以这些目标邻居节点为起始节点进行SPF计算,从而根据SPF计算结果,确定自身到目的节点的备份链路。在实际应用中,从任一源节点到目的节点的备份链路,只可能存在于该源节点到目的节点的主链路所经过的子拓扑中。因此,非该子拓扑中的各候选邻居节点,不可能包含在备份链路中,而包含在该子拓扑中的各候选邻居节点,都可能成为从源节点到目的节点的备份链路的下一跳。从而,只以包含在该子拓扑中的各候选邻居节点为起始节点进行SPF计算,能够在减少SPF计算量的同时,提高备份链路确定的成功率。

进一步地,所述执行模块410,还用于以所述网络拓扑中的第二节点为根节点,对所述网络拓扑运行深度优先搜索DFS算法,生成搜索树。

进一步地,所述执行模块410,还用于运行预设算法,获得所述搜索树中各节点的第一深度值和第二深度值,所述第一深度值表示该节点在所述搜索树中的深度,所述第二深度值为该节点的子孙节点在所述搜索树中能到达的最浅深度;当所述根节点存在至少两个子树时,确定其为割点;对于非根节点,在其所在的子拓扑中,如果所述非根节点存在至少一个子孙节点满足以下条件时,确定该非根节点为割点:所述子孙节点的第二深度值大于等于该非根节点的第一深度值。

进一步地,所述预设算法为Tarjan算法。

进一步地,所述执行模块410,还用于除本节点在所述主链路上的邻居节点以外,将剩余的邻居节点确定为所述候选邻居节点。

下面结合一个具体的实施例,对本发明提供的备份链路确定方法进行详细的说明。

如图2所示的网络拓扑,本实施例以节点C确定其到节点G的备份链路为例,来说明本发明提供的备份链路确定方法。

通过进行SPF计算,节点C可以确定其到节点G的主链路为C-F-G。

节点C可以以节点R为根节点,运行DFS算法,生成搜索树,如图5所示。并且,节点C还可以针对网络拓扑中的每个节点,运行Tarjan算法,得到每个节点在搜索树中的深度,以及各节点的子孙节点所能到达的最浅深度。如图5所示,节点R在搜索树中的深度为0,节点A在搜索树中的深度为1,节点B在搜索树中的深度为2,依次排列,节点P在搜索树中的深度为16。

如图6所示,其示出了图5所示的搜索树中针对各节点,该节点的子孙节点所能到达的最浅深度。如,节点R、A、B、C、D、E的子孙节点所能到达的最浅深度均为0;节点F、G、H、I、J的子孙节点所能到达的最浅深度均为3;节点K、L、M、N、O、P的子孙节点所能到达的最浅深度均为11。

确定各节点在搜索树中的深度,以及各节点的子孙节点所能到达的最浅深度后,节点C可以识别网络拓扑中的割点。

节点R只有一个子树,则确定其为非割点。节点A的各子孙节点(如子节点B,孙节点C、D、E)能到达的最浅深度0均小于节点A在搜索树中的深度1,则确定节点A为非割点。节点C的子孙节点(如子节点F,孙节点G、H、I、J)能到达的最浅深度3等于节点C在搜索树中的深度3,则确定节点C为割点。

对每个节点都进行判断后,可以得出该网络拓扑中的割点为节点C、H、K。它们将整个拓扑划分为四个子拓扑:{A,B,C,D,E,R},{C,F,G,H,I,J},{H,K},{K,L,M,N,O,P}。

节点C到节点G的主链路C-F-G所跨的子拓扑为{C,F,G,H,I,J}。节点C的候选邻居节点B、D、J中,节点J包含在子拓扑{C,F,G,H,I,J}中;节点B、D不包含在子拓扑{C,F,G,H,I,J}中。因此,可以确定节点J为目标邻居节点。

节点C可以以节点J为起始节点进行SPF计算,计算节点J到节点G的cost值,以及节点J到自身的cost值。并根据计算结果,确定从自身到节点G的备份链路。

可选地,在本发明实施例中,当节点C确定其所在网络拓扑中的各割点后,为了减小其他节点在确定备份链路时的计算量,节点C可以将网络拓扑中的各割点通知该网络拓扑中的其他各节点。因此,其他节点在确定备份链路时,可以根据已知的各割点,确定网络拓扑中的子拓扑,进而根据主链路和子拓扑,确定通过哪些邻居节点进行备份链路的计算。

对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

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