CN110557330A - 一种备份路径计算方法、装置及计算机存储介质 - Google Patents

一种备份路径计算方法、装置及计算机存储介质 Download PDF

Info

Publication number
CN110557330A
CN110557330A CN201810542217.3A CN201810542217A CN110557330A CN 110557330 A CN110557330 A CN 110557330A CN 201810542217 A CN201810542217 A CN 201810542217A CN 110557330 A CN110557330 A CN 110557330A
Authority
CN
China
Prior art keywords
segment
current
path
node
destination node
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
Application number
CN201810542217.3A
Other languages
English (en)
Other versions
CN110557330B (zh
Inventor
彭少富
金飞蔡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZTE Corp
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CN201810542217.3A priority Critical patent/CN110557330B/zh
Publication of CN110557330A publication Critical patent/CN110557330A/zh
Application granted granted Critical
Publication of CN110557330B publication Critical patent/CN110557330B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/20Hop count for routing purposes, e.g. TTL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例公开了一种备份路径计算方法,包括:根据假设故障位置获取源节点至目的节点的收敛后的备选修复路径;所述假设故障位置包括与所述源节点直连的下一跳节点或链路;按照设定的路径压缩算法对所述备选修复路径进行压缩,获得所述源节点至所述目的节点的备份路径。本发明实施例还公开了一种备份路径计算装置及计算机存储介质。

Description

一种备份路径计算方法、装置及计算机存储介质
技术领域
本发明涉及数据通信领域,尤其涉及一种备份路径计算方法、装置及计算机存储介质。
背景技术
IEFT草案“Draft-ietf-spring-segment-routing-15”中描述了分段路由(SR,Segment Routing)的架构,分段路由技术使得一个节点可以为特定的报文指定其转发路径,而不是按一般的最短路径转发,通过在报文中附加由段标识符(SID,SegmentIDentifier)组成的段标识符列表(Segment List)等相关的信息,不需要在中间节点上维护每条路径的状态信息。典型的SID类型包括Node_SID和Adjacency_SID,前者表示一个节点的SID,用于指导报文沿最短路径至该节点,后者表示一条链路(或链路集合)的SID,用于指导报文向该链路(或该链路集合)转发。
IETF草案“Draft-francois-spring-segment-routing-fi-lfa-00”中对拓扑无关的无环替换(TI-LFA,Topology-Independent Loop-free Alternate)进行了定义。TI-LFA可以在单播快速重路由(FRR,Fast Reroute)中发生节点或链路故障时提供备选修复路径或备份路径。
IEFT草案“Draft-bashandy-rtgwg-segment-routing-ti-lfa-02”中描述了基于分段路由转发机制的拓扑无关的无环替换快速重路由(TI-LFA FRR,Topology-Independent Loop-free Alternate Fast Reroute)技术。TI-LFA FRR提供了一种局部修复(Local Repair)机制,即只要网络拓扑中存在冗余路径,则能够100%的计算出相应的备份路径。这是因为,在TI-LFA FRR中,可以用显式路径来表达备份路径,所以对网络拓扑无约束。因此,TI-LFA FRR是一种可靠性更高的FRR技术。
现有的TI-LFA FRR备份路径计算方法是通过对源节点至目的节点的收敛后的备选修复路径与P集合和Q集合取交集,以获取简化的备份路径。然而,采用上述方法计算备份路径不仅计算过程复杂,而且计算得到的备份路径可能会包含较多的节点或链路。
发明内容
为解决现有存在的技术问题,本发明实施例提供一种计算过程简单、且能够简化备份路径的备份路径计算方法、装置及计算机存储介质。
为达到上述目的,本发明实施例的技术方案是这样实现的:
第一方面,本发明实施例提供了一种备份路径计算方法,包括:
根据假设故障位置获取源节点至目的节点的收敛后的备选修复路径;所述假设故障位置包括与所述源节点直连的下一跳节点或链路;
按照设定的路径压缩算法对所述备选修复路径进行压缩,获得所述源节点至所述目的节点的备份路径。
上述方案中,所述按照设定的路径压缩算法对所述备选修复路径进行压缩,获得所述源节点至所述目的节点的备份路径,包括:
以所述源节点为初始的当前根节点;
从所述备选修复路径中沿第一方向选取一段为当前段;
检查所述当前根节点至所述当前段对应的目的节点的最短路径是否经过所述假设故障位置;
若经过,则保留所述当前段至备份路径,并将所述当前段对应的目的节点作为更新的当前根节点,从所述备选修复路径中沿所述第一方向依序选取下一段为更新的当前段,返回所述检查所述当前根节点至所述当前段对应的目的节点的最短路径是否经过所述假设故障位置的步骤;
若不经过,则将所述当前段进行压缩,并从所述备选修复路径中沿所述第一方向依序选取下一段为更新的当前段,返回所述检查所述当前根节点至所述当前段对应的目的节点的最短路径是否经过所述假设故障位置的步骤。
上述方案中,所述将所述当前段进行压缩,包括:
若所述当前根节点与上一个段对应的目的节点相同、且所述当前段不是所述备选修复路径顺沿所述第一方向的最后一个段,或者若所述当前段是所述备选修复路径顺沿所述第一方向的第一个段,则将所述当前段对应的目的节点保留至所述备份路径顺沿所述第一方向的末端;
若所述当前根节点与上一个段对应的目的节点相同、且所述当前段是所述备选修复路径顺沿所述第一方向的最后一个段,则不将所述当前段保留至所述备份路径;
若所述当前根节点与上一个段对应的目的节点不相同,则将所述当前段覆盖所述备份路径顺沿所述第一方向的最后一个段。
上述方案中,所述将所述当前段覆盖所述备份路径顺沿所述第一方向的最后一个段,包括:
若所述当前段不是所述备选修复路径顺沿所述第一方向的最后一个段,则删除所述备份路径顺沿所述第一方向的最后一个段,并将所述当前段对应的目的节点保留至所述备份路径顺沿所述第一方向的末端;
若所述当前段是所述备选修复路径顺沿所述第一方向的最后一个段,则删除所述备份路径顺沿所述第一方向的最后一个段。
上述方案中,所述检查所述当前根节点至所述当前段对应的目的节点的最短路径是否经过所述假设故障位置,包括:
根据最短路径优先算法获取以所述当前根节点为根的最短路径树;
根据所述最短路径树确定所述当前根节点至所述当前段对应的目的节点的最短路径;
查找所述假设故障位置对应的段是否包含在所述最短路径中,若是,则表征所述最短路径经过所述假设故障位置,若否,则表征所述最短路径不经过所述假设故障位置。
上述方案中,所述按照设定的路径压缩算法对所述备选修复路径进行压缩,获得所述源节点至所述目的节点的备份路径,包括:
以所述目的节点为初始的当前目的节点;
从所述备选修复路径中沿第二方向选取一段为当前段;
检查所述当前段对应的源节点至所述当前目的节点的最短路径是否经过所述假设故障位置;
若经过,则保留所述当前段至备份路径,并将所述当前段对应的源节点作为更新的当前目的节点,从所述备选修复路径中沿所述第二方向依序选取下一段为更新的当前段,返回所述检查所述当前段对应的源节点至所述当前目的节点的最短路径是否经过所述假设故障位置的步骤;
若不经过,则将所述当前段进行压缩,并从所述备选修复路径中沿所述第二方向依序选取下一段为更新的当前段,返回所述检查所述当前段对应的源节点至所述当前目的节点的最短路径是否经过所述假设故障位置的步骤。
上述方案中,所述将所述当前段进行压缩,包括:
若所述当前段不是所述备选修复路径顺沿所述第二方向的最后一个段、且上一个段对应的源节点与所述当前目的节点相同,或者若所述当前段是所述备选修复路径顺沿所述第二方向的第一个段,则将所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径;
若所述当前段不是所述备选修复路径顺沿所述第二方向的最后一个段、且上一个段对应的源节点与所述当前目的节点不相同,则删除所述备份路径顺沿所述第二方向的最后一个段、并将所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径;
若所述当前段是所述备选修复路径顺沿所述第二方向的最后一个段、且上一个段对应的源节点与所述当前目的节点不相同,则删除所述备份路径顺沿所述第二方向的最后一个段。
上述方案中,所述保留所述当前段至备份路径,包括:
若所述当前段为第一类型段,则将所述当前段按照所述第二方向依序保留至所述备份路径;
若所述当前段为第二类型段,且所述当前段是所述备选修复路径顺沿所述第二方向的第一个段,则将所述当前段以及所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径;
若所述当前段为第二类型段,所述当前段不是所述备选修复路径顺沿所述第二方向的第一个段和最后一个段,且所述备份路径顺沿所述第二方向的最后一个段对应的源节点与所述当前段对应的目的节点相同,则删除所述备份路径顺沿所述第二方向的最后一个段,并将所述当前段以及所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径;
若所述当前段为第二类型段,所述当前段是所述备选修复路径顺沿所述第二方向的最后一个段,且所述备份路径顺沿所述第二方向的最后一个段对应的源节点与所述当前段对应的目的节点相同,则删除所述备份路径顺沿所述第二方向的最后一个段,并将所述当前段按照所述第二方向依序保留至所述备份路径。
上述方案中,所述检查所述当前段对应的源节点至所述当前目的节点的最短路径是否经过所述假设故障位置,包括:
根据最短路径优先算法获取以所述当前段对应的源节点为根的最短路径树;
根据所述最短路径树确定所述当前段对应的源节点至所述当前目的节点的最短路径;
查找所述假设故障位置对应的段是否包含在所述最短路径中,若是,则表征所述最短路径经过所述假设故障位置,若否,则表征所述最短路径不经过所述假设故障位置。
第二方面,本发明实施例提供了一种备份路径计算装置,包括:
获取单元,用于根据假设故障位置获取源节点至目的节点的收敛后的备选修复路径;所述假设故障位置包括与所述源节点直连的下一跳节点或链路;
处理单元,用于按照设定的路径压缩算法对所述备选修复路径进行压缩,获得所述源节点至所述目的节点的备份路径。
上述方案中,所述处理单元,具体用于:
以所述源节点为初始的当前根节点;
从所述备选修复路径中沿第一方向选取一段为当前段;
检查所述当前根节点至所述当前段对应的目的节点的最短路径是否经过所述假设故障位置;
若经过,则保留所述当前段至备份路径,并将所述当前段对应的目的节点作为更新的当前根节点,从所述备选修复路径中沿所述第一方向依序选取下一段为更新的当前段,返回所述检查所述当前根节点至所述当前段对应的目的节点的最短路径是否经过所述假设故障位置的步骤;
若不经过,则将所述当前段进行压缩,并从所述备选修复路径中沿所述第一方向依序选取下一段为更新的当前段,返回所述检查所述当前根节点至所述当前段对应的目的节点的最短路径是否经过所述假设故障位置的步骤。
上述方案中,所述处理单元,具体用于:
若所述当前根节点与上一个段对应的目的节点相同、且所述当前段不是所述备选修复路径顺沿所述第一方向的最后一个段,或者若所述当前段是所述备选修复路径顺沿所述第一方向的第一个段,则将所述当前段对应的目的节点保留至所述备份路径顺沿所述第一方向的末端;
若所述当前根节点与上一个段对应的目的节点相同、且所述当前段是所述备选修复路径顺沿所述第一方向的最后一个段,则不将所述当前段保留至所述备份路径;
若所述当前根节点与上一个段对应的目的节点不相同,则将所述当前段覆盖所述备份路径顺沿所述第一方向的最后一个段。
上述方案中,所述处理单元,具体用于:
若所述当前段不是所述备选修复路径顺沿所述第一方向的最后一个段,则删除所述备份路径顺沿所述第一方向的最后一个段,并将所述当前段对应的目的节点保留至所述备份路径顺沿所述第一方向的末端;
若所述当前段是所述备选修复路径顺沿所述第一方向的最后一个段,则删除所述备份路径顺沿所述第一方向的最后一个段。
上述方案中,所述处理单元,具体用于:
根据最短路径优先算法获取以所述当前根节点为根的最短路径树;
根据所述最短路径树确定所述当前根节点至所述当前段对应的目的节点的最短路径;
查找所述假设故障位置对应的段是否包含在所述最短路径中,若是,则表征所述最短路径经过所述假设故障位置,若否,则表征所述最短路径不经过所述假设故障位置。
上述方案中,所述处理单元,具体用于:
以所述目的节点为初始的当前目的节点;
从所述备选修复路径中沿第二方向选取一段为当前段;
检查所述当前段对应的源节点至所述当前目的节点的最短路径是否经过所述假设故障位置;
若经过,则保留所述当前段至备份路径,并将所述当前段对应的源节点作为更新的当前目的节点,从所述备选修复路径中沿所述第二方向依序选取下一段为更新的当前段,返回所述检查所述当前段对应的源节点至所述当前目的节点的最短路径是否经过所述假设故障位置的步骤;
若不经过,则将所述当前段进行压缩,并从所述备选修复路径中沿所述第二方向依序选取下一段为更新的当前段,返回所述检查所述当前段对应的源节点至所述当前目的节点的最短路径是否经过所述假设故障位置的步骤。
上述方案中,所述处理单元,具体用于:
若所述当前段不是所述备选修复路径顺沿所述第二方向的最后一个段、且上一个段对应的源节点与所述当前目的节点相同,或者若所述当前段是所述备选修复路径顺沿所述第二方向的第一个段,则将所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径;
若所述当前段不是所述备选修复路径顺沿所述第二方向的最后一个段、且上一个段对应的源节点与所述当前目的节点不相同,则删除所述备份路径顺沿所述第二方向的最后一个段、并将所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径;
若所述当前段是所述备选修复路径顺沿所述第二方向的最后一个段、且上一个段对应的源节点与所述当前目的节点不相同,则删除所述备份路径顺沿所述第二方向的最后一个段。
上述方案中,所述处理单元,具体用于:
若所述当前段为第一类型段,则将所述当前段按照所述第二方向依序保留至所述备份路径;
若所述当前段为第二类型段,且所述当前段是所述备选修复路径顺沿所述第二方向的第一个段,则将所述当前段以及所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径;
若所述当前段为第二类型段,所述当前段不是所述备选修复路径顺沿所述第二方向的第一个段和最后一个段,且所述备份路径顺沿所述第二方向的最后一个段对应的源节点与所述当前段对应的目的节点相同,则删除所述备份路径顺沿所述第二方向的最后一个段,并将所述当前段以及所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径;
若所述当前段为第二类型段,所述当前段是所述备选修复路径顺沿所述第二方向的最后一个段,且所述备份路径顺沿所述第二方向的最后一个段对应的源节点与所述当前段对应的目的节点相同,则删除所述备份路径顺沿所述第二方向的最后一个段,并将所述当前段按照所述第二方向依序保留至所述备份路径。
上述方案中,所述处理单元,具体用于:
根据最短路径优先算法获取以所述当前段对应的源节点为根的最短路径树;
根据所述最短路径树确定所述当前段对应的源节点至所述当前目的节点的最短路径;
查找所述假设故障位置对应的段是否包含在所述最短路径中,若是,则表征所述最短路径经过所述假设故障位置,若否,则表征所述最短路径不经过所述假设故障位置。
第三方面,本发明实施例提供了一种备份路径计算装置,所述装置包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,
所述处理器用于运行所述计算机程序时,执行第一方面所述备份路径计算方法的步骤。
第四方面,本发明实施例提供了一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现第一方面所述备份路径计算方法的步骤。
上述实施例所提供的备份路径计算方法,根据假设故障位置获取源节点至目的节点的收敛后的备选修复路径;所述假设故障位置包括与所述源节点直连的下一跳节点或链路;按照设定的路径压缩算法对所述备选修复路径进行压缩,获得所述源节点至所述目的节点的备份路径。如此,通过设定的路径压缩算法对源节点至目的节点的收敛后的备选修复路径进行压缩,以获得简化的源节点至目的节点的备份路径,由于备份路径是直接通过对源节点至目的节点的收敛后的备选修复路径压缩后得到的,从而计算过程更加简单。
附图说明
图1为本发明一实施例中备份路径计算方法的流程示意图;
图2为本发明一实施例中对所述备选修复路径进行压缩的流程示意图;
图3为本发明另一实施例中对所述备选修复路径进行压缩的流程示意图;
图4为本发明一实施例中网络拓扑的结构示意图;
图5为本发明另一实施例中备份路径计算方法的流程示意图;
图6为本发明又一实施例中备份路径计算方法的流程示意图;
图7为本发明一实施例中备份路径计算装置的结构示意图;
图8为本发明另一实施例中备份路径计算装置的结构示意图。
具体实施方式
以下结合说明书附图及具体实施例对本发明技术方案做进一步的详细阐述。除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“和/或”包括一个或多个相关的所列项目的任意的和所有的组合。
假设源节点为S,目的节点为D,S至D的最短路径的下一跳节点为F,S与F之间的链路用L表示,则根据现有的备份路径计算方法,节点S上可以按节点F失效或者按链路L失效(统称为故障X)来计算至目的节点D的TI-LFA FRR备份路径,具体计算过程如下:
首先,确定以下多个集合,分别记为P(S,X)、Extended P(S->N,X)、Q(D,X)、以及Post-path(S,D,X)。为其中,P(S,X)是指一个节点集合,称为P节点集合,满足:故障X发生前,节点S至该P节点集合中的节点的最短路径都不需经过故障X;Extended P(S->N,X)也是指一个节点集合,称为扩展P节点集合,满足:节点S的直连邻居节点N至该扩展P节点集合中的节点的最短路径都不需经过故障X;Q(D,X)是指一个节点集合,称为Q节点集合,满足:故障X发生前,Q节点集合中的节点至目的节点D的最短路径都不需经过故障X;Post-path(S,D,X)是指S至D按故障X发生后对应收敛后的路径的简称。
然后,将Post-path(S,D,X)与P(S,X)或Extended P(S->N,X)取交集,以及将Post-path(S,D,X)与Q(D,X)取交集,即可选择合适的节点P与节点Q,此时TI-LFA FRR备份路径就可以表示为{出接口,Node_SID(P),EP(P,Q)},其中,Node_SID(P)是指节点P的Node_SID,EP(P,Q)是指从节点P至节点Q的一条SR path。该TI-LFA FRR备份路径{出接口,Node_SID(P),EP(P,Q)}的含义是指:故障X发生后,先将报文从指定的出接口沿最短路径向节点P转发,然后经由从节点P至节点Q的一条SR path,最后从节点Q沿最短路径向目的节点D转发。
因此,根据所选择的节点P与节点Q,TI-LFA FRR备份路径有以下多种可能的表示形式:
可以是一个简单的link(S->N),这是因为Post-path(S,D,X)与P(S,X)或ExtendedP(S->N,X)取交集后为空,Post-path(S,D,X)与Q(D,X)取交集后为N,N为S的直连邻居节点,此时对应LFA。
可以是一个简单的link(S->P),这是因为Post-path(S,D,X)与P(S,X)或ExtendedP(S->N,X)取交集后为P,Post-path(S,D,X)与Q(D,X)取交集后为Q,并且P与Q是同一节点,以及P为S至D的最短路径上与S直连的下一跳节点,此时对应LFA。
可以是一个简单的Node_SID(P),这是因为Post-path(S,D,X)与P(S,X)或Extended P(S->N,X)取交集后为P,Post-path(S,D,X)与Q(D,X)取交集后为Q,并且P与Q是同一节点,以及P为S至D的最短路径上与S非直连的下一跳节点;或者,是一个简单的{link(S->N),Node_SID(P)},此时对应Remote LFA。
可以是一个复杂的{Node_SID(P),Adjacency_SID(P->Q)},这是因为Post-path(S,D,X)与P(S,X)或Extended P(S->N,X)取交集后为P,Post-path(S,D,X)与Q(D,X)取交集后为Q,并且P与Q不是同一节点,Q为P的直连邻居节点;或者是一个复杂的{link(S->N),Node_SID(P),Adjacency_SID(P->Q)}。
可以是一个复杂的{Node_SID(P),Adjacency_SID(P->A1),Adjacency_SID(A1->A2),…,Adjacency_SID(An->Q)},这是因为Post-path(S,D,X)与P(S,X)或Extended P(S->N,X)取交集后为P,Post-path(S,D,X)与Q(D,X)取交集后为Q,并且P与Q不是同一节点,Q为P的非直连邻居节点,Q至P需要经过A1,A2,...,An等节点;或者是一个复杂的{link(S->N),Node_SID(P),Adjacency_SID(P->A1),Adjacency_SID(A1->A2),…,Adjacency_SID(An->Q)}。
从上可见,当前的TI-LFA FRR备份路径的计算方法存在以下不足:
1)选择合适的节点P、Q的过程十分复杂且消耗时间长。为了让TI-LFA FRR备份路径的表示形式更加简洁,必须尽量在Post-path(S,D,X)上选择相互更加靠近的P、Q,特别是尽量选择P与Q相同,即只要有可能就尽量退化成Remote LFA,甚至LFA的表示形式。为此需要计算各种集合,将Post-path(S,D,X)同时与P(S,X)和Extended P(S->N,X)取交集即进行遍历和比较,从而确定哪个交集中包含的节点P能与Post-path(S,D,X)和Q(D,X)交集中包含的节点Q一起组合,形成满足上述简洁原则的{P,Q}。
2)EP(P,Q)可能会很长,使得表示形式复杂。如果P与Q不相交,则节点P与节点Q之间的一条SR path可能会比较长,导致整个TI-LFA FRR备份路径的表示形式复杂,并且当前的计算方法中没有对其进行优化的可能。为此,本申请实施例提供一种计算过程简单、且能够简化备份路径的备份路径计算方法。
参见图1,为本发明实施例提供的一种备份路径计算方法,包括以下步骤:
S101:根据假设故障位置获取源节点至目的节点的收敛后的备选修复路径;
可以理解地,所述源节点和所述目的节点是指网络拓扑中任意两个节点之间根据其相对的位置或功能而言的,例如,就同一个网络拓扑中的两个节点A、B而言,A可以以自身作为源节点计算至包含B在内的其它目的节点的路由,B也可以以自身作为源节点计算至包含A在内的其它目的节点的路由,所述路由即为路径。所述节点可以是网络设备或网元等,所述网络设备可以是交换机、路由器等。所述假设故障位置是指假设源节点至目的节点的最短路径的直连下一跳节点或链路发生故障,所述直连链路可以加入到共享风险链路组。
这里,所述收敛后的备选修复路径是指假设源节点至目的节点的最短路径的直连下一跳节点或链路发生故障后,源节点至目的节点的收敛后的分段路由路径。由于大部分的网络使用链路状态协议作为域内路由协议,如中间系统到中间系统(IS-IS,Intermediate System-to-Intermediate System)协议或开放式最短路径优先(OSPF,OpenShortest Path First)协议,而基于链路状态协议收集到的链路状态数据库,可以根据假设源节点至目的节点的最短路径的直连下一跳节点或链路发生故障时,获取源节点至目的节点的收敛后的分段路由路径作为所述备选修复路径。
在一可选的实施例中,所述根据假设故障位置获取源节点至目的节点的收敛后的备选修复路径为:根据最短路径优先算法(SPF,Shortest Path First)计算在所述假设故障位置发生故障后以所述源节点为根的最短路径树,根据所述最短路径树确定所述源节点至所述目的节点的收敛后的最短路径,并将所述收敛后的最短路径作为所述源节点至所述目的节点的收敛后的备选修复路径。
如此,根据假设故障位置获得的源节点至目的节点的最短路径、并作为所述源节点至所述目的节点的收敛后的备选修复路径,能够使得所述源节点与所述目的节点之间数据传输的距离尽量最短,从而节省传输时间。
S102:按照设定的路径压缩算法对所述备选修复路径进行压缩,获得所述源节点至所述目的节点的备份路径。
这里,路径压缩算法是指根据设定的压缩规则对备选修复路径中的对应节点和/或链路进行压缩的算法,其中,该设定的压缩规则可以根据收敛后的备选修复路径中各节点与假设故障位置之间的关系而确定,如当备选修复路径中多个相邻节点至同一目的节点的最短路径均不经过假设故障位置时,可以保留其中之一节点;或者,当备选修复路径中任一节点至同一目的节点的最短路径均不经过假设故障位置时,则删除对应的所述节点等,以达到对备选修复路径压缩的目的。备份路径是通过对收敛后的备选修复路径根据路径压缩算法进行压缩后得到的路径,由于备份路径是根据收敛后的备选修复路径压缩得到,其中不论假设故障位置是否为单个节点和/或链路,均可以根据假设故障位置而得到的收敛后的备选修复路径作为获取该备份路径的范围,从而备份路径的获取过程相对更加简单。
在一可选的实施例中,请参阅图2,所述按照设定的路径压缩算法对所述备选修复路径进行压缩,获得所述源节点至所述目的节点的备份路径,包括:
S1020:以所述源节点为初始的当前根节点;
S1021:从所述备选修复路径中沿第一方向选取一段为当前段;
S1022:检查所述当前根节点至所述当前段对应的目的节点的最短路径是否经过所述假设故障位置,若是,则执行S1023,否则执行S1024;
S1023:保留所述当前段至备份路径,并将所述当前段对应的目的节点作为更新的当前根节点,从所述备选修复路径中沿所述第一方向依序选取下一段为更新的当前段,返回S1022;
具体地,若所述当前根节点至所述当前段对应的目的节点的最短路径经过所述假设故障位置,则保留所述当前段至备份路径,将所述当前段对应的目的节点作为更新的当前根节点,从所述备选修复路径中沿所述第一方向依序选取下一段为更新的当前段,并返回S1022,所述检查所述当前根节点至所述当前段对应的目的节点的最短路径是否经过所述假设故障位置的步骤;
S1024:将所述当前段进行压缩,并从所述备选修复路径中沿所述第一方向依序选取下一段为更新的当前段,返回S1022。
具体地,若所述当前根节点至所述当前段对应的目的节点的最短路径不经过所述假设故障位置,则将所述当前段进行压缩,从所述备选修复路径中沿所述第一方向依序选取下一段为更新的当前段,并返回S1022,所述检查所述当前根节点至所述当前段对应的目的节点的最短路径是否经过所述假设故障位置的步骤。
其中,所述第一方向是指顺沿该收敛后的备选修复路径从头至尾的方向,即是指从源节点至目的节点的方向。段包括节点类型的段和链路类型的段,分别采用Node_Segment和Adjacency_Segment两种标签表示,当所述段为Node_Segment时,所述段对应的源节点和目的节点为相同节点,即节点类型的段中的节点Node;而当所述段为Adjacency_Segment时,所述段对应的源节点为该Adjacency所属的源节点(Local Node),所述段对应的目的节点为该Adjacency所连接的目的节点(Remote Node)。比如,若段为源节点(S)的Node_Segment,则所述段对应的源节点和目的节点就是S;若段为源节点(S)至目的节点(F)的Adjacency_Segment(S->F),则所述段对应的源节点为S,目的节点为F。
通过根据第一方向对收敛后的备选修复路径中的段进行遍历,检查当前根节点至当前段对应的目的节点的最短路径是否经过所述假设故障位置,根据检查的结果保留对应的段或将对应的段进行压缩,如此,通过对源节点至目的节点的收敛后的备选修复路径进行压缩,可以简化获得的备份路径。
在一可选的实施例中,所述检查当前根节点至所述当前段对应的目的节点的最短路径是否经过所述假设故障位置,包括:
根据最短路径优先算法获取以所述当前根节点为根的最短路径树;
根据所述最短路径树确定所述当前根节点至所述当前段对应的目的节点的最短路径;
查找所述假设故障位置对应的段是否包含在所述最短路径中,若是,则表征所述最短路径经过所述假设故障位置,若否,则表征所述最短路径不经过所述假设故障位置。
这里,可以通过在所述源节点上按照所述假设故障位置发生故障之前根据最短路径优先算法分别维护以网络拓扑中每个节点为根的最短路径树,然后根据以所述当前根节点为根的最短路径树确定所述当前根节点至所述当前段对应的目的节点的最短路径。可以理解地,所述以当前根节点为根的最短路径树包含了所述当前根节点至网络拓扑中其它每个节点的最短路径。由于所述最短路径是由节点和/链路对应的段表示的,因此,根据所述假设故障位置对应的段是否包含在所述最短路径中、可以获知所述最短路径是否经过所述假设故障位置,即当所述假设故障位置对应的段包含在组成所述最短路径的段中时,表征所述最短路径经过所述假设故障位置;当所述假设故障位置对应的段不包含在组成所述最短路径的段中时,表征所述最短路径不经过所述假设故障位置。
如此,通过获取在所述假设故障位置发生故障之前、当前根节点至所述当前段对应的目的节点的最短路径,并根据假设故障位置对应的段是否包含在所述最短路径中、判断所述最短路径是否经过所述假设故障位置,从而计算过程更加简单,提升计算速度。
在一可选的实施例中,所述将所述当前段进行压缩,包括:
若所述当前根节点与上一个段对应的目的节点相同、且所述当前段不是所述备选修复路径顺沿所述第一方向的最后一个段,或者若所述当前段是所述备选修复路径顺沿所述第一方向的第一个段,则将所述当前段对应的目的节点保留至所述备份路径顺沿所述第一方向的末端;
若所述当前根节点与上一个段对应的目的节点相同、且所述当前段是所述备选修复路径顺沿所述第一方向的最后一个段,则不将所述当前段保留至所述备份路径;
若所述当前根节点与上一个段对应的目的节点不相同,则将所述当前段覆盖所述备份路径顺沿所述第一方向的最后一个段。
可以理解地,所述分段路由路径通常包含多个段,也即,所述分段路由路径的源节点至目的节点之间可能存在多个中间节点,而路径中一些不影响数据传输的中间节点对应的段可以被删除,因此,当所述当前根节点与上一个段对应的目的节点不相同时,表征所述当前根节点至所述当前段对应的目的节点的多个中间节点的最短路径可能都不经过假设故障位置,这些中间节点不影响数据从源节点向目的节点传输,从而将所述当前段覆盖所述备份路径顺沿所述第一方向的最后一个段,以减少备份路径中包含的段数量,从而简化备份路径。
在一可选的实施例中,所述将所述当前段覆盖所述备份路径顺沿所述第一方向的最后一个段,包括:
若所述当前段不是所述备选修复路径顺沿所述第一方向的最后一个段,则删除所述备份路径顺沿所述第一方向的最后一个段,并将所述当前段对应的目的节点保留至所述备份路径顺沿所述第一方向的末端;
若所述当前段是所述备选修复路径顺沿所述第一方向的最后一个段,则删除所述备份路径顺沿所述第一方向的最后一个段。
可以理解地,当所述当前根节点与上一个段对应的目的节点不相同时,说明所述当前根节点至所述收敛后的备选修复路径中所述当前段的上一个段对应的目的节点的最短路径不经过假设故障位置,从而可以不将所述当前段的上一个段对应的目的节点保留在所述备份路径,也即,删除所述备份路径顺沿所述第一方向的最后一个段。如此,通过减少备份路径中包含的段数量,从而简化备份路径。
在一可选的实施例中,请参阅图3,所述按照设定的路径压缩算法对所述备选修复路径进行压缩,获得所述源节点至所述目的节点的备份路径,包括:
S2020:以所述目的节点为初始的当前目的节点;
S2021:从所述备选修复路径中沿第二方向选取一段为当前段;
S2022:检查所述当前段对应的源节点至所述当前目的节点的最短路径是否经过所述假设故障位置;若是,则执行S2023,否则执行S2024;
S2023:保留所述当前段至备份路径,并将所述当前段对应的源节点作为更新的当前目的节点,从所述备选修复路径中沿所述第二方向依序选取下一段为更新的当前段,返回S2022;
具体地,若所述当前段对应的源节点至所述当前目的节点的最短路径经过所述假设故障位置,则保留所述当前段至备份路径,将所述当前段对应的源节点作为更新的当前目的节点,从所述备选修复路径中沿所述第二方向依序选取下一段为更新的当前段,并返回S2022,所述检查所述当前段对应的源节点至所述当前目的节点的最短路径是否经过所述假设故障位置的步骤。
S2024:将所述当前段进行压缩,并从所述备选修复路径中沿所述第二方向依序选取下一段为更新的当前段,返回S2022。
具体地,若所述当前段对应的源节点至所述当前目的节点的最短路径不经过所述假设故障位置,则将所述当前段进行压缩,从从所述备选修复路径中沿所述第二方向依序选取下一段为更新的当前段,并返回S2022,所述检查所述当前段对应的源节点至所述当前目的节点的最短路径是否经过所述假设故障位置的步骤。
其中,所述第二方向是指顺沿该收敛后的备选修复路径从尾到头的方向,即是指从目的节点至源节点的方向。段包括节点类型的段和链路类型的段,分别采用Node_Segment和Adjacency_Segment两种标签表示,当所述段为Node_Segment时,所述段对应的源节点和目的节点为相同节点,即节点类型的段中的节点Node;而当所述段为Adjacency_Segment时,所述段对应的源节点为该Adjacency所属的Local Node,所述段标识符对应的目的节点为该Adjacency所连接的Remote Node。比如,若段为源节点(S)的Node_Segment,则所述段对应的源节点和目的节点就是S;若段为源节点(S)至目的节点(F)的Adjacency_Segment(S->F),则所述段对应的源节点为S,目的节点为F。
通过根据第二方向对收敛后的备选修复路径中的段进行遍历,检查当前段对应的源节点与当前目的节点的最短路径是否经过所述假设故障位置,根据检查的结果保留对应的段或将对应的段进行压缩,如此,通过对源节点至目的节点的收敛后的备选修复路径进行压缩,可以简化获得的备份路径。
在一可选的实施例中,所述检查所述当前段对应的源节点至所述当前目的节点的最短路径是否经过所述假设故障位置,包括:
根据最短路径优先算法获取以所述当前段对应的源节点为根的最短路径树;
根据所述最短路径树确定所述当前段对应的源节点至所述当前目的节点的最短路径;
查找所述假设故障位置对应的段是否包含在所述最短路径中,若是,则表征所述最短路径经过所述假设故障位置,若否,则表征所述最短路径不经过所述假设故障位置。
这里,可以通过在所述源节点上按照所述假设故障位置发生故障之前根据最短路径优先算法分别维护以网络拓扑中每个节点为根的最短路径树,然后根据以所述当前段对应的源节点作为根的最短路径树确定所述当前段对应的源节点至所述当前目的节点的最短路径。可以理解地,所述当前段对应的源节点所对应的最短路径树包含了所述当前段对应的源节点至网络拓扑中每个节点的最短路径。由于所述最短路径是由节点和/链路对应的段表示的,因此,根据所述假设故障位置对应的段是否包含在所述最短路径中、可以获知所述最短路径是否经过所述假设故障位置,即当所述假设故障位置对应的段包含在组成所述最短路径的段中时,表征所述最短路径经过所述假设故障位置;当所述假设故障位置对应的段不包含在组成所述最短路径的段中时,表征所述最短路径不经过所述假设故障位置。
如此,通过获取在所述假设故障位置发生故障之前、所述当前段对应的源节点至当前目的节点的最短路径,并根据假设故障位置对应的段是否包含在所述最短路径中、判断所述最短路径是否经过所述假设故障位置,从而计算过程更加简单,提升计算速度。
在一可选的实施例中,所述将所述当前段进行压缩,包括:
若所述当前段不是所述备选修复路径顺沿所述第二方向的最后一个段、且上一个段对应的源节点与所述当前目的节点相同,或者若所述当前段是所述备选修复路径顺沿所述第二方向的第一个段,则将所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径;
若所述当前段不是所述备选修复路径顺沿所述第二方向的最后一个段、且上一个段对应的源节点与所述当前目的节点不相同,则删除所述备份路径顺沿所述第二方向的最后一个段、并将所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径;
若所述当前段是所述备选修复路径顺沿所述第二方向的最后一个段、且上一个段对应的源节点与所述当前目的节点不相同,则删除所述备份路径顺沿所述第二方向的最后一个段。
这里,当从第二方向对所述备选修复路径进行压缩时,若所述当前段不是所述备选修复路径顺沿所述第二方向的最后一个段、且上一个段对应的源节点与所述当前目的节点不相同,说明上一个段对应的源节点与所述当前目的节点的多个中间节点至所述当前目的节点的最短路径可能都不经过假设故障位置,这些中间节点不影响数据从源节点向目的节点传输,从而删除所述备份路径顺沿所述第二方向的最后一个段、并将所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径。若所述当前段不是所述备选修复路径顺沿所述第二方向的第一个段、且上一个段对应的源节点与所述当前目的节点相同,说明上一个段对应的源节点至旧的当前目的节点的最短路径经过所述假设故障位置,保留在所述备份路径中的上一个段对应的源节点不能够被删除。需要说明的是,若所述当前段是所述备选修复路径顺沿所述第二方向的最后一个段、且上一个段对应的源节点与所述当前目的节点相同,则不将所述当前段保留至所述备份路径,即不对所述当前段进行任何操作。如此,通过删除收敛后的备选修复路径中不影响数据从源节点向目的节点传输的中间节点,以减少备份路径中包含的段数量,从而简化备份路径。
在一可选的实施例中,所述保留所述当前段至备份路径,包括:
若所述当前段为第一类型段,则将所述当前段按照所述第二方向依序保留至所述备份路径;
若所述当前段为第二类型段,且所述当前段是所述备选修复路径顺沿所述第二方向的第一个段,则将所述当前段以及所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径;
若所述当前段为第二类型段,所述当前段不是所述备选修复路径顺沿所述第二方向的第一个段和最后一个段,且所述备份路径顺沿所述第二方向的最后一个段对应的源节点与所述当前段对应的目的节点相同,则删除所述备份路径顺沿所述第二方向的最后一个段,并将所述当前段以及所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径;
若所述当前段为第二类型段,所述当前段是所述备选修复路径顺沿所述第二方向的最后一个段,且所述备份路径顺沿所述第二方向的最后一个段对应的源节点与所述当前段对应的目的节点相同,则删除所述备份路径顺沿所述第二方向的最后一个段,并将所述当前段按照所述第二方向依序保留至所述备份路径。
这里,所述第一类型段表示段为Node_Segment,所述第二类型段表示段为Adjacency_Segment。当从第二方向对所述备选修复路径进行压缩时,若所述当前段对应的源节点至所述当前目的节点的最短路径经过所述假设故障位置,则需要根据当前段的类型、位置以及当前段与备份路径中已存在的段的关系对应将当前段或者当前段与所述当前段对应的源节点保留至所述备份路径,使得在假设故障位置出现故障后,源节点通过保留在备份路径中的段向目的节点传输数据时,能够不经过所述假设故障位置,确保数据正常传输,并简化备份路径。
综上,上述实施例提供的备份路径计算方法,通过设定的路径压缩算法对源节点至目的节点的收敛后的备选修复路径进行压缩,以获得简化的源节点至目的节点的备份路径,由于备份路径是直接通过对源节点至目的节点的收敛后的备选修复路径压缩后得到的,从而计算过程更加简单。
下面通过具体示例对本申请实施例作进一步详细说明,参见图4,假设源节点为S,目的节点为D,S至D的最短路径的下一跳节点为F,S与F之间的链路用L表示,则S节点上可以按节点F失效或者按链路L失效(统称为故障X)来计算至目的节点D的TI-LFA FRR备份路径。本实施例中,以Node_SID为Node Segment、Adajcency Segment为Adjacency_SID进行说明。
参见图5,为本发明实施例提供的一种备份路径计算方法,本实施例中以第一方向即从头至尾的方向对根据假设发生故障X所获得的源节点至目的节点的收敛后的备选修复路径进行压缩为例,本实施例中,所述收敛后的备选修复路径为最短路径,备份路径为目标最短路径,该方法包括以下步骤:
S201:S节点上维护以自身为根的SPT,获取假设S节点至目的节点D的最短路径上发生故障X的收敛后的最短路径old_SR_path,目标最短路径new_SR_path初始为空,当前根节点current_root初始设置为S。
这里,为了判断当前根节点至某个节点的最短路径是否经过故障X,采取了在S节点上维护所有以其它节点为根的最短路径树(SPT,Shortest Path Tree)。将假设故障X发生前S节点上以自身为根的SPT记为old_SPT(S),old_SPT(S)给出了假设故障X发生前至目的节点D的最短路径。S节点再按照假设故障X发生后,重新计算以自身为根的SPT,记为new_SPT(S),new_SPT(S)给出了假设至目的节点D的最短路径发生故障X的收敛后的最短路径old_SR_path。old_SPT(D)表示维护的是假设发生故障X前以节点D为根的SPT。所述old_SR_path可以是一条表示严格逐跳路径的纯Adajcency Segment List或者纯Node SegmentList,所述old_SR_path也可以是由Node Segment和Adjacency Segment混合组成的Segment List。此外,将old_SR_path通过计算所需得到的目标最短路径记为new_SR_path,而new_SR_path初始为空,并将当前根节点记为current_root,current_root初始设置为S。
S202:从头至尾遍历old_SR_path,依次取Segment。
具体地,从头至尾遍历old_SR_path,依次取old_SR_path中的Segment。
需要说明的是,Segment的目的节点是指报文沿该Segment所能到达的目的节点,如Node Segment的目的节点就是该Node,Adjacency Segment的目的节点就是该Adjacency所连接的Remote Node。而Segment的源节点是指该Segment的归属节点,如Node Segment的源节点就是该Node,Adjacency Segment的源节点就是该Adjacency所属的Local Node。
S203:检查current_root至Segment的目的节点的最短路径是否经过故障X,如果是,则执行S204,否则执行S205。
这里,可以借助以current_root为根节点的SPT来判断current_root节点至Segment的目的节点的最短路径是否经过故障X,若故障X对应的段包含在所述最短路径中,说明current_root至Segment的目的节点的最短路径经过故障X;若故障X对应的段不包含在所述最短路径中,说明current_root至Segment的目的节点的最短路径不经过故障X。
S204:将Segment添加至new_SR_path尾部,添加R标志,并将current_root更新成该Segment的目的节点,跳转至S202。
这里,current_root至当前Segment对应的目的节点的最短路径经过X,说明如果在故障X发生后,报文在到达上一个segment后需要显式经过当前Segment向D节点传输,因此需要将当前Segment保留至new_SR_path中,并用R标志标识该Segment不能够被覆盖。
S205:检查new_SR_path中最尾部是否已存在Segment且为P标志,如果是,则执行S206,否则执行S207。
这里,new_SR_path中带有P标志的Segment表示current_root至该Segment对应的目的节点的最短路径不经过故障X,该Segment可以被old_SR_path中与其相邻的下一个Segment(current_root至该下一个Segment对应的目的节点的最短路径也不经过故障X)所覆盖,而该Segment被覆盖后不影响数据从S节点向D节点传输。因此,通过检查new_SR_path中最尾部的Segment是否带有P标志,从而对带有P标志的该Segment进行覆盖,以简化获得的new_SR_path。
S206:检查Segment是否为old_SR_path中的最后一个Segment,如果是,则执行S209,否则执行S208。
这里,当current_root至当前Segment对应的目的节点的最短路径不经过X,且当前Segment是old_SR_path中的最后一个Segment,current_root至old_SR_path中倒数第二个Segment对应的目的节点的最短路径也不经过故障X时,说明删除当前Segment以及old_SR_path中倒数第二个Segment后不影响数据从S节点向D节点传输,因此,通过检查当前Segment是否为old_SR_path中的最后一个Segment,从而对new_SR_path中最尾部已存在的Segment进行删除或覆盖,以简化获得的new_SR_path。
S207:将Segment的目的节点添加至new_SR_path尾部,并添加P标志,跳转至S202。
可以理解地,如果Segment是old_SR_path中的最后一个Segment,则可以不执行S207。这里,当new_SR_path中最尾部已存在Segment且带有R标志时,说明new_SR_path中最尾部已存在的Segment不能被覆盖,因此将当前Segment的目的节点添加至new_SR_path尾部,并添加P标志。
S208:将Segment的目的节点改写new_SR_path中最尾部已存在的Segment,并添加P标志,跳转至S202。
这里,current_root至当前Segment对应的目的节点的最短路径不经过X,且当前Segment不是old_SR_path中的最后一个Segment,且current_root至old_SR_path中与当前Segment相邻的上一个Segment对应的目的节点的最短路径也不经过X,说明删除与当前Segment相邻的上一个Segment即删除new_SR_path中最尾部已存在的Segment不影响数据从源节点向目的节点传输,因此,将当前Segment的目的节点改写new_SR_path中最尾部已存在的Segment,并添加P标志。
S209:移除new_SR_path中最尾部已存在的Segment,并跳转至S202。
这里,current_root至old_SR_path中最后一个Segment对应的目的节点的最短路径不经过故障X、同时current_root至old_SR_path中倒数第二个Segment对应的目的节点的最短路径也不经过故障X时,说明删除new_SR_path中最后一个Segment不影响数据从源节点向目的节点传输,以减少new_SR_path中包含的Segment数量,从而简化new_SR_path。
上述针对old_SR_path按照从头至尾的方向遍历并处理完后,将得到new_SR_path,即期望的最短的TI-LFA FRR备份路径。
参见图6,为本发明实施例提供的另一种备份路径计算方法,本实施例中以第二方向即从尾至头的方向对根据假设发生故障X所获得的源节点至目的节点的收敛后的备选修复路径进行压缩为例,本实施例中,所述收敛后的备选修复路径为最短路径、备份路径为目标最短路径,该方法包括以下步骤:
S301:S节点上维护以自身为根的SPT,获取假设S节点至目的节点D的最短路径上发生故障X的收敛后的最短路径old_SR_path,目标最短路径new_SR_path初始为空,当前目的节点current_destination初始设置为D。
这里,为了判断某个节点至当前目的节点的最短路径是否经过故障X,采取了在S节点上维护所有以其它节点为根的SPT。将假设故障X发生前S节点上以自身为根的SPT记为old_SPT(S),old_SPT(S)给出了假设故障X发生前至目的节点D的最短路径。S节点再按照假设故障X发生后,重新计算以自身为根的SPT,记为new_SPT(S),new_SPT(S)给出了假设至目的节点D的最短路径发生故障X的收敛后的最短路径old_SR_path。old_SPT(D)表示维护的是发生故障X前以节点D为根的SPT。所述old_SR_path可以是一条严格逐跳路径的纯Adajcency Segment List或者纯Node Segment List,所述old_SR_path也可以是由NodeSegment和Adjacency Segment混合组成的Segment List。此外,将old_SR_path通过计算所需得到的目标最短路径记为new_SR_path,而new_SR_path初始为空,并将当前目的节点记为current_destination,current_destination初始设置为D。
S302:从尾至头遍历old_SR_path,依次取Segment。
具体地,从尾至头遍历old_SR_path,依次取old_SR_path中的Segment。
需要说明的是,Segment的目的节点是指报文沿该Segment所能到达的目的节点,如Node Segment的目的节点就是该Node,Adjacency Segment的目的节点就是该Adjacency所连接的Remote Node。而Segment的源节点是指该Segment的归属节点,如Node Segment的源节点就是该Node,Adjacency Segment的源节点就是该Adjacency所属的Local Node。
S303:检查Segment的源节点至current_destination的最短路径是否经过故障X,如果是,则执行S304,否则执行S305。
这里,可以借助以Segment的源节点为根的SPT来判断Segment的源节点至current_destination的最短路径是否经过故障X,若故障X对应的段包含在所述最短路径中,说明Segment的源节点至current_destination的最短路径经过故障X;若故障X对应的段不包含在所述最短路径中,说明Segment的源节点至current_destination的最短路径不经过故障X。
S304:如果Segment为Node Segment,则向new_SR_path头部添加此Node Segment并添加D标志;如果Segment为Adjacency Segment,则向new_SR_path头部添加此AdjacencySegment,再添加此Adjacency Segment的源节点并添加D标志,将current_destination更新成此Adjacency Segment的源节点;
具体地,如果Segment为Node Segment,则简单的向new_SR_path头部添加此NodeSegment,并给此Node Segment添加D标志,即给此Node Segment打上D标志;如果Segment为Adjacency Segment,则先向new_SR_path头部添加此Adjacency Segment,此时若检查出new_SR_path头部已存在Node Segment并且与待添加的Adjacency Segment的目的节点相同,则可以移除new_SR_path头部已存在的Node Segment,然后向new_SR_path头部添加此Adjacency Segment后,再检查该Segment是否为old_SR_path中的第一个Segment,如果该Segment不是old_SR_path中的第一个Segment,则还需要向new_SR_path头部添加此Adjacency Segment的源节点并给此Adjacency Segment添加D标志。然后,将current_destination更新成此Adjacency Segment的源节点。
这里,若当前Segment为Adjacency Segment,当前Segment的源节点至current_destination的最短路径经过故障X,且new_SR_path最头部已存在的Node Segment与待添加的Adjacency Segment的目的节点相同时,则移除new_SR_path最头部已存在的NodeSegment,然后向new_SR_path头部添加此Adjacency Segment,使得在故障X发生后,S节点可以经过该当前Segment向D节点传输数据,并简化new_SR_path。
S305:检查new_SR_path中最头部是否已存在Node Segment且带有Q标志,如果是,则执行S306,否则执行S307。
这里,当当前Segment的源节点至current_destination的最短路径不经过故障X,并且new_SR_path中最头部已存在Node Segment且带有Q标志时,说明上一个Segment的源节点至current_destination的最短路径也不经过故障X。
S306:检查Segment是否为old_SR_path中的第一个Segment,如果是,则执行S309,否则执行S308。
具体地,当前Segment的源节点至current_destination的最短路径不经过故障X,new_SR_path中最头部已存在Node Segment且带有Q标志,并且当前Segment为old_SR_path中的第一个Segment,说明在故障X发生后,源节点通过当前目的节点能够向目的节点传输数据,new_SR_path中可以不保留上一个Segment或当前Segment。
S307:将Segment的源节点添加至new_SR_path头部,并添加Q标志,跳转至S302。
这里,如果Segment是old_SR_path中的第一个Segment,则可以不执行此步骤S307。
S308:将Segment的源节点改写new_SR_path的最头部的Node Segment,并添加Q标志,跳转至S302。
这里,当前Segment的源节点至current_destination的最短路径不经过故障X,且当前Segment不是old_SR_path中的第一个Segment,而上一个Segment的源节点至current_destination的最短路径也不经过故障X,用当前Segment的源节点覆盖new_SR_path中保留的上一个Segment后不影响数据从S节点向D节点传输,且能够简化获得的new_SR_path。
S309:从new_SR_path中删除已存在的最头部Node Segment,跳转至S302。
这里,当前Segment的源节点至current_destination的最短路径不经过故障X,且当前Segment是old_SR_path中的第一个Segment,而上一个Segment的源节点至current_destination的最短路径也不经过故障X,删除new_SR_path中保留的上一个Segment后不影响数据从S节点向D节点传输,且能够简化获得的new_SR_path。
以上流程中,向new_SR_path中添加的Segment的D标志表示该Segment的源节点为当前目的节点,Q标志表示该Segment的源节点至当前目的节点的最短路径不需经过故障X。带有D标志的Segment向new_SR_path添加时总是添加在头部,带有Q标志的Segment向new_SR_path添加时,可以直接覆盖new_SR_path中已存在的最头部带有Q标志的Segment,但不允许覆盖最头部带有D标志的Segment。
上述针对old_SR_path按照从尾至头的方向遍历并处理完后,将得到new_SR_path,即期望的最短的TI-LFA FRR备份路径。
下面通过具体示例对上述实施例进行具体说明,请再次参阅图4,假设图4中链路S->N、链路G->B1、链路B3->H的metric均为200,其它链路的metric均为10,所有链路都是双向链路,每条链路两个方向的metric都一致。两个节点之间的最短路径是指在两个节点之间的所有路径中、链路的metric之和最小的路径。参见图4,在F节点失效前,S至D的一条路径{S->F,F->D}的metric之和为20,S至D的另一条路径{S->N,N->A1,A1->A2,A3->G,G->B1,B1->B2,B2->B3,B3->H,H->C1,C1->C2,C2->C3,C3->D}的metric之和为700,因此,S至D的最短路径为{S->F,F->D}。假设节点F从有效变为无效即节点F失效,S节点按照假设节点F失效后计算出至目的节点D的收敛后的最短路径old_SR_path为{S->N,N->A1,A1->A2,A3->G,G->B1,B1->B2,B2->B3,B3->H,H->C1,C1->C2,C2->C3,C3->D},old_SR_path是一条由纯Adjacency Segment组成的Segment List。备份路径new_SR_path初始为空。
(1)当从头至尾遍历old_SR_path时,初始的当前根节点current_root为S,上述备份路径的获取过程具体如下:
第一个Segment为S->N,该Segment的目的节点为N,由于current_root为S,而S至N的最短路径需要经过F节点,所以将第一个Segment即S->N添加到new_SR_path的尾部并添加R标志,此时new_SR_path变为{S->N},并将current_root更新为N。
这里,所述S至N的最短路径需要经过F节点是指:检查F节点失效前对应的old_SPT(S),发现S至N的最短路径需要经过F节点。相应的,所述S至N的最短路径不需要经过F节点是指:检查F节点失效前对应的old_SPT(S),发现S至N的最短路径不需要经过F节点。
第二个Segment为N->A1,该Segment的目的节点为A1,由于N至A1的最短路径不需要经过F节点,所以将第二个Segment的目的节点即A1添加到new_SR_path的尾部并添加P标志,此时new_SR_path变为{S->N,A1},current_root保持不变。
第三个Segment为A1->A2,该Segment的目的节点为A2,由于N至A2的最短路径不需要经过F节点,所以将第三个Segment的目的节点即A2添加到new_SR_path的尾部并添加P标志,由于new_SR_path尾部已经存在带有P标志的Segment即A1,则用A2改写A1,此时new_SR_path变为{S->N,A2},current_root保持不变。
第四个Segment为A2->A3,该Segment的目的节点为A3,由于N至A3的最短路径不需要经过F节点,所以将第四个Segment的目的节点即A3添加到new_SR_path的尾部并添加P标志,由于new_SR_path尾部已经存在带有P标志的Segment即A2,则用A3改写A2,此时new_SR_path变为{S->N,A3},current_root保持不变。
第五个Segment为A3->G,该Segment的目的节点为G,由于N至G的最短路径不需要经过F节点,所以将第五个Segment的目的节点即G添加到new_SR_path的尾部并添加P标志,由于new_SR_path尾部已经存在带有P标志的Segment即A3,则用G改写A3,此时new_SR_path变为{S->N,G},current_root保持不变。
第六个Segment为G->B1,该Segment的目的节点为B1,由于N至B1的最短路径需要经过F节点,所以将第六个Segment即G->B1添加到new_SR_path的尾部并添加R标志,此时new_SR_path变为{S->N,G,G->B1},并将current_root更新为B1。
这里,所述N至B1的最短路径需要经过F节点具体为:检查F节点失效前对应的old_SPT(N)发现N至B1的最短路径需要经过F节点。相应的,所述N至B1的最短路径不需要经过F节点具体为:检查F节点失效前对应的old_SPT(N)发现N至B1的最短路径不需要经过F节点。
第七个Segment为B1->B2,该Segment的目的节点为B2,由于B1至B2的最短路径不需要经过F节点、且new_SR_path尾部为带有R标志的Segment,所以将第七个Segment的目的节点即B2添加到new_SR_path的尾部并添加P标志,此时new_SR_path变为{S->N,G,G->B1,B2},current_root保持不变。
第八个Segment为B2->B3,该Segment的目的节点为B3,由于B1至B3的最短路径不需要经过F节点,所以将第八个Segment的目的节点即B3添加到new_SR_path的尾部并添加P标志,由于new_SR_path尾部已经存在带有P标志的Segment即B2,则用B3改写B2,此时new_SR_path变为{S->N,G,G->B1,B3},current_root保持不变。
第九个Segment为B3->H,该Segment的目的节点为H,由于B1至H的最短路径需要经过F节点,所以将第九个Segment即B3->H添加到new_SR_path的尾部并添加R标志,此时new_SR_path变为{S->N,G,G->B1,B3,B3->H},并将current_root更新为H。
这里,所述B1至H的最短路径需要经过F节点具体为:检查F节点失效前对应的old_SPT(B1)发现B1至H的最短路径需要经过F节点。
第十个Segment为H->C1,该Segment的目的节点为C1,由于H至C1的最短路径不需要经过F节点、且new_SR_path尾部为带有R标志的Segment,所以将第十个Segment的目的节点即C1添加到new_SR_path的尾部并添加P标志,此时new_SR_path变为{S->N,G,G->B1,B3,B3->H,C1},current_root保持不变。
第十一个Segment为C1->C2,该Segment的目的节点为C2,由于H至C2的最短路径不需要经过F节点,所以将第十一个Segment的目的节点即C2添加到new_SR_path的尾部并添加P标志,由于new_SR_path尾部已经存在带有P标志的Segment即C1,则用C2改写C1,此时new_SR_path变为{S->N,G,G->B1,B3,B3->H,C2},current_root保持不变。
第十二个Segment为C2->C3,该Segment的目的节点为C3,由于H至C3的最短路径不需要经过F节点,所以将第十二个Segment的目的节点即C3添加到new_SR_path的尾部并添加P标志,由于new_SR_path尾部已经存在带有P标志的Segment即C2,则用C3改写C2,此时new_SR_path变为{S->N,G,G->B1,B3,B3->H,C3},current_root保持不变。
第十三个Segment为C3->D且是old_SR_path中最后一个Segment,该Segment的目的节点为D,由于H至D的最短路径不需要经过F节点,所以将new_SR_path最尾部的带有P标志的Segment删除,得到{S->N,G,G->B1,B3,B3->H},遍历结束。
(2)当从尾至头遍历old_SR_path时,初始的当前目的节点current_destination为D,上述备份路径的获取过程具体如下:
第一个Segment为C3->D,该Segment的源节点为C3,由于C3至D的最短路径不需要经过F节点,所以将该Segment的源节点C3写入new_SR_path头部并给C3打上Q标志,new_SR_path变为{C3},继续遍历下一个Segment。
第二个Segment为C2->C3,该Segment的源节点为C2,由于C2至D的最短路径不需要经过F节点,所以将该Segment的源节点C2写入new_SR_path头部,由于new_SR_path的头部已存在带有Q标志的且为Node Segment的C3,则直接用C2覆盖C3,并给C2打上Q标志,new_SR_path变为{C2},继续遍历下一个Segment。
第三个Segment为C1->C2,该Segment的源节点为C1,由于C1至D的最短路径不需要经过F节点,所以将该Segment的源节点C1写入new_SR_path头部,由于new_SR_path的头部已存在带有Q标志的且为Node Segment的C2,则直接用C1覆盖C2,并给C1打上Q标志,new_SR_path变为{C1},继续遍历下一个Segment。
第四个Segment为H->C1,该Segment的源节点为H,由于H至D的最短路径不需要经过F节点,所以将该Segment的源节点H写入new_SR_path头部,由于new_SR_path的头部已存在带有Q标志的且为Node Segment的C1,则直接用H覆盖C1,并给H打上Q标志,new_SR_path变为{H},,继续遍历下一个Segment。
第五个Segment为B3->H,该Segment的源节点为B3,由于B3至D的最短路径需要经过F节点,所以先将Adjacency Segment(B3->H)添加到new_SR_path的头部,再将AdjacencySegment(B3->H)的源节点即Node Segment(B3)添加到new_SR_path的头部,由于在添加时发现Adjacency Segment(B3->H)的目的节点H与new_SR_path头部已有的Node Segment(H)相同,则先删除new_SR_path头部已有的Node Segment(H),再依次添加B3->H和B3至new_SR_path,并给B3打上D标志,最后获得的new_SR_path变为{B3,B3->H},以及将current_destination更新为B3。
这里,所述B3至D的最短路径需要经过F节点具体为:检查F失效前对应的old_SPT(B3)发现B3至D的最短路径需要经过F节点。
第六个Segment为B2->B3,该Segment的源节点为B2,由于B2至B3的最短路径不需要经过F节点,所以将该Segment的源节点B2写入new_SR_path头部并给B2打上Q标志,new_SR_path变为{B2,B3,B3->Q},继续遍历下一个Segment。
第七个Segment为B1->B2,该Segment的源节点为B1,由于B1至B3的最短路径不需要经过F节点,所以将该Segment的源节点B1写入new_SR_path头部,由于new_SR_path的头部已存在带有Q标志的且为Node Segment的B2,则直接用B1覆盖B2,并给B1打上Q标志,此时new_SR_path变为{B1,B3,B3->H},继续遍历下一个Segment。
第八个Segment为G->B1,该Segment的源节点为G,由于G至B3的最短路径需要经过F节点,所以先将Adjacency Segment(G->B1)添加到new_SR_path的头部,再将AdjacencySegment(G->B1)的源节点即Node Segment(G)添加到new_SR_path的头部,由于在添加时发现Adjacency Segment(G->B1)的目的节点B1与new_SR_path头部已有的Node Segment(B1)相同,则先删除new_SR_path头部已有的Node Segment(B1),再依次添加G->B1和G至new_SR_path,并给G打上D标志,最后获得的new_SR_path变为{G,G->B1,B3,B3->H},以及将current_destination更新为G。这里,所述G至B3的最短路径需要经过F节点具体为:检查F失效前对应的old_SPT(G)发现G至B3的最短路径需要经过F节点。
第九个Segment为A3->G,该Segment的源节点为A3,由于A3至G的最短路径不需要经过F节点,所以将该Segment的源节点A3写入new_SR_path头部并给A3打上Q标志,此时new_SR_path变为{A3,G,G->B1,B3,B3->H},继续遍历下一个Segment。
第十个Segment为A2->A3,该Segment的源节点为A2,由于A2至G的最短路径不需要经过F节点,所以将该Segment的源节点A2写入new_SR_path头部,由于new_SR_path的头部已存在带有Q标志的且为Node Segment的A3,则直接用A2覆盖A3,并给A2打上Q标志,此时new_SR_path变为{A2,G,G->B1,B3,B3->H},继续遍历下一个Segment。
第十一个Segment为A1->A2,该Segment的源节点为A1,由于A1至G的最短路径不需要经过F节点,所以将该Segment的源节点A1写入new_SR_path头部,由于new_SR_path的头部已存在带有Q标志的且为Node Segment的A2,则直接用A1覆盖A2,并给A1打上Q标志,此时new_SR_path变为{A1,G,G->B1,B3,B3->H},继续遍历下一个Segment。
第十二个Segment为N->A1,该Segment的源节点为N,由于N至G的最短路径不需要经过F节点,所以将该Segment的源节点N写入new_SR_path头部,由于new_SR_path的头部已存在带有Q标志的且为Node Segment的A1,则直接用N覆盖A1,并给N打上Q标志,此时new_SR_path变为{N,G,G->B1,B3,B3->H},继续遍历下一个Segment。
第十三个Segment为S->N,该Segment的源节点为S,由于S至G的最短路径需要经过F节点,需要将S->N添加到new_SR_path的头部,由于S->N是old_SR_path中的第一个Segment,所以仅添加Adjacency Segment(S->N),而无需添加Adjacency Segment(S->N)的源节点S,由于Adjacency Segment(S->N)的目的节点N与new_SR_path头部已有的NodeSegment(N)相同,则先删除new_SR_path头部已有的Node Segment(N),再添加S->N至new_SR_path,此时new_SR_path变为{S->N,G,G->B1,B3,B3->H},以及将current_destination更新为S。这里,所述S至G的最短路径需要经过F节点具体为:检查F失效前对应的old_SPT(S)发现S至G的最短路径需要经过F节点。
通过以上处理可知,最终得到的TI-LFA FRR的备份路径的表示形式为{S->N,G,G->B1,B3,B3->H},相比现有的TI-LFA FRR算法计算得到的备份路径{S->N,G,G->B1,B1->B2,B2->B3,B3->H},更加短小简洁,计算过程也更简单。
为实现上述方法,本发明实施例还提供了一种备份路径计算装置,如图7所示,该装置包括:获取单元10和处理单元20;其中,
所述获取单元10,用于根据假设故障位置获取源节点至目的节点的收敛后的备选修复路径;所述假设故障位置包括与所述源节点直连的下一跳节点或链路;
所述处理单元20,用于按照设定的路径压缩算法对所述备选修复路径进行压缩,获得所述源节点至所述目的节点的备份路径。
综上,上述实施例提供的备份路径计算装置,根据假设故障位置获取源节点至目的节点的收敛后的备选修复路径;所述假设故障位置包括与所述源节点直连的下一跳节点或链路;按照设定的路径压缩算法对所述备选修复路径进行压缩,获得所述源节点至所述目的节点的备份路径。如此,通过设定的路径压缩算法对源节点至目的节点的收敛后的备选修复路径进行压缩,以获得简化的源节点至目的节点的备份路径,由于备份路径是通过对源节点至目的节点的收敛后的备选修复路径压缩后得到的,从而计算过程更加简单。
在一可选的实施例中,所述处理单元20,具体用于:
以所述源节点为初始的当前根节点;
从所述备选修复路径中沿第一方向选取一段为当前段;
检查所述当前根节点至所述当前段对应的目的节点的最短路径是否经过所述假设故障位置;
若经过,则保留所述当前段至备份路径,并将所述当前段对应的目的节点作为更新的当前根节点,从所述备选修复路径中沿所述第一方向依序选取下一段为更新的当前段,返回所述检查所述当前根节点至所述当前段对应的目的节点的最短路径是否经过所述假设故障位置的步骤;
若不经过,则将所述当前段进行压缩,并从所述备选修复路径中沿所述第一方向依序选取下一段为更新的当前段,返回所述检查所述当前根节点至所述当前段对应的目的节点的最短路径是否经过所述假设故障位置的步骤。
通过根据第一方向对收敛后的备选修复路径的段进行遍历,检查当前根节点至当前段对应的目的节点的最短路径是否经过所述假设故障位置,根据检查的结果保留对应的段或将对应的段进行压缩,如此,通过对源节点至目的节点的收敛后的备选修复路径进行压缩,可以简化获得的备份路径。
在一可选的实施例中,所述处理单元20,具体用于:
若所述当前根节点与上一个段对应的目的节点相同、且所述当前段不是所述备选修复路径顺沿所述第一方向的最后一个段,或者若所述当前段是所述备选修复路径顺沿所述第一方向的第一个段,则将所述当前段对应的目的节点保留至所述备份路径顺沿所述第一方向的末端;
若所述当前根节点与上一个段对应的目的节点相同、且所述当前段是所述备选修复路径顺沿所述第一方向的最后一个段,则不将所述当前段保留至所述备份路径;
若所述当前根节点与上一个段对应的目的节点不相同,则将所述当前段覆盖所述备份路径顺沿所述第一方向的最后一个段。
如此,通过压缩操作减少备份路径中包含的段数量,从而简化备份路径。
在一可选的实施例中,所述处理单元20,具体用于:
若所述当前段不是所述备选修复路径顺沿所述第一方向的最后一个段,则删除所述备份路径顺沿所述第一方向的最后一个段,且将所述当前段对应的目的节点保留至所述备份路径顺沿所述第一方向的末端;
若所述当前段是所述备选修复路径顺沿所述第一方向的最后一个段,则删除所述备份路径顺沿所述第一方向的最后一个段。
如此,通过减少备份路径中包含的段数量,从而简化备份路径。
在一可选的实施例中,所述处理单元20,具体用于:
根据最短路径优先算法计算以所述当前根节点为根的最短路径树;
根据所述最短路径树确定所述当前根节点至所述当前段对应的目的节点的最短路径;
查找所述假设故障位置对应的段是否包含在所述最短路径中,若是,则表征所述最短路径经过所述假设故障位置,若否,则表征所述最短路径不经过所述假设故障位置。
在一可选的实施例中,所述按照设定的路径压缩算法对所述备选修复路径进行压缩,获得所述源节点至所述目的节点的备份路径,包括:
以所述目的节点为初始的当前目的节点;
从所述备选修复路径中沿第二方向选取一段为当前段;
检查所述当前段对应的源节点至所述当前目的节点的最短路径是否经过所述假设故障位置;
若经过,则保留所述当前段至备份路径,并将所述当前段对应的源节点作为更新的当前目的节点,从所述备选修复路径中沿所述第二方向依序选取下一段为更新的当前段,返回所述检查所述当前段对应的源节点至所述当前目的节点的最短路径是否经过所述假设故障位置的步骤;
若不经过,则将所述当前段进行压缩,并从所述备选修复路径中沿所述第二方向依序选取下一段为更新的当前段,返回所述检查所述当前段对应的源节点至所述当前目的节点的最短路径是否经过所述假设故障位置的步骤。
通过根据第二方向对收敛后的备选修复路径的段进行遍历,检查当前段对应的源节点至当前目的节点的最短路径是否经过所述假设故障位置,根据检查的结果保留对应的段或将对应的段进行压缩,如此,通过对源节点至目的节点的收敛后的备选修复路径进行压缩,可以简化获得的备份路径。
在一可选的实施例中,所述处理单元20,具体用于:
若所述当前段不是所述备选修复路径顺沿所述第二方向的最后一个段、且上一个段对应的源节点与所述当前目的节点相同,或者若所述当前段是所述备选修复路径顺沿所述第二方向的第一个段,则将所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径;
若所述当前段不是所述备选修复路径顺沿所述第二方向的最后一个段、且上一个段对应的源节点与所述当前目的节点不相同,则删除所述备份路径顺沿所述第二方向的最后一个段、并将所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径;
若所述当前段是所述备选修复路径顺沿所述第二方向的最后一个段、且上一个段对应的源节点与所述当前目的节点不相同,则删除所述备份路径顺沿所述第二方向的最后一个段。
如此,通过删除收敛后的备选修复路径中不影响数据从源节点向目的节点传输的中间节点,以减少备份路径中包含的段数量,从而简化备份路径。
在一可选的实施例中,所述处理单元20,具体用于:
若所述当前段为第一类型段,则将所述当前段按照所述第二方向依序保留至所述备份路径;
若所述当前段为第二类型段,且所述当前段是所述备选修复路径顺沿所述第二方向的第一个段,则将所述当前段以及所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径;
若所述当前段为第二类型段,所述当前段不是所述备选修复路径顺沿所述第二方向的第一个段和最后一个段,且所述备份路径顺沿所述第二方向的最后一个段对应的源节点与所述当前段对应的目的节点相同,则删除所述备份路径顺沿所述第二方向的最后一个段,并将所述当前段以及所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径;
若所述当前段为第二类型段,所述当前段是所述备选修复路径顺沿所述第二方向的最后一个段,且所述备份路径顺沿所述第二方向的最后一个段对应的源节点与所述当前段对应的目的节点相同,则删除所述备份路径顺沿所述第二方向的最后一个段,并将所述当前段按照所述第二方向依序保留至所述备份路径。
如此,通过保留至当前目的节点的最短路径经过假设故障位置的段,确保根据压缩后获得的备份路径能够从源节点向目的节点传输数据。
在一可选的实施例中,所述处理单元20,具体用于:
根据最短路径优先算法计算以所述当前段对应的源节点为根的最短路径树;
根据所述最短路径树确定所述当前段对应的源节点至所述当前目的节点的最短路径;
查找所述假设故障位置对应的段是否包含在所述最短路径中,若是,则表征所述最短路径经过所述假设故障位置,若否,则表征所述最短路径不经过所述假设故障位置。
如此,通过获取在所述假设故障位置发生故障之前、当前段对应的源节点至当前目的节点的最短路径,并根据假设故障位置对应的段是否包含在所述最短路径中、判断所述最短路径是否经过所述假设故障位置,从而计算过程更加简单,提升计算速度。
本发明实施例提供了一种备份路径计算装置,如图8所示,该装置包括:至少一个处理器310和用于存储能够在处理器310上运行的计算机程序的存储器311;其中,图8中示意的处理器310并非用于指代处理器310的个数为一个,而是仅用于指代处理器310相对其他器件的位置关系,在实际应用中,处理器310的个数可以为一个或多个;同样,图8中示意的存储器311也是同样的含义,即仅用于指代存储器311相对其他器件的位置关系,在实际应用中,存储器311的个数可以为一个或多个。
其中,所述处理器310用于运行所述计算机程序时,执行如下步骤:
根据假设故障位置获取源节点至目的节点的收敛后的备选修复路径;所述假设故障位置包括与所述源节点直连的下一跳节点或链路;
按照设定的路径压缩算法对所述备选修复路径进行压缩,获得所述源节点至所述目的节点的备份路径。
综上,上述实施例提供的备份路径计算装置,通过设定的路径压缩算法对源节点至目的节点的收敛后的备选修复路径进行压缩,以获得简化的源节点至目的节点的备份路径,由于备份路径是通过对源节点至目的节点的收敛后的备选修复路径压缩后得到的,从而计算过程更加简单。
在一可选的实施例中,所述处理器310还用于运行所述计算机程序时,执行如下步骤:
以所述源节点为初始的当前根节点;
从所述备选修复路径中沿第一方向选取一段为当前段;
检查所述当前根节点至所述当前段对应的目的节点的最短路径是否经过所述假设故障位置;
若经过,则保留所述当前段至备份路径,并将所述当前段对应的目的节点作为更新的当前根节点,从所述备选修复路径中沿所述第一方向依序选取下一段为更新的当前段,返回所述检查所述当前根节点至所述当前段对应的目的节点的最短路径是否经过所述假设故障位置的步骤;
若不经过,则将所述当前段进行压缩,并从所述备选修复路径中沿所述第一方向依序选取下一段为更新的当前段,返回所述检查所述当前根节点至所述当前段对应的目的节点的最短路径是否经过所述假设故障位置的步骤。
在一可选的实施例中,所述处理器310还用于运行所述计算机程序时,执行如下步骤:
若所述当前根节点与上一个段对应的目的节点相同、且所述当前段不是所述备选修复路径顺沿所述第一方向的最后一个段,或者若所述当前段是所述备选修复路径顺沿所述第一方向的第一个段,则将所述当前段对应的目的节点保留至所述备份路径顺沿所述第一方向的末端;
若所述当前根节点与上一个段对应的目的节点相同、且所述当前段是所述备选修复路径顺沿所述第一方向的最后一个段,则不将所述当前段保留至所述备份路径;
若所述当前根节点与上一个段对应的目的节点不相同,则将所述当前段覆盖所述备份路径顺沿所述第一方向的最后一个段。
在一可选的实施例中,所述处理器310还用于运行所述计算机程序时,执行如下步骤:
若所述当前段不是所述备选修复路径顺沿所述第一方向的最后一个段,则删除所述备份路径顺沿所述第一方向的最后一个段,并将所述当前段对应的目的节点保留至所述备份路径顺沿所述第一方向的末端;
若所述当前段是所述备选修复路径顺沿所述第一方向的最后一个段,则删除所述备份路径顺沿所述第一方向的最后一个段。
在一可选的实施例中,所述处理器310还用于运行所述计算机程序时,执行如下步骤:
根据最短路径优先算法获取以所述当前根节点为根的最短路径树;
根据所述最短路径树确定所述当前根节点至所述当前段对应的目的节点的最短路径;
查找所述假设故障位置对应的段是否包含在所述最短路径中,若是,则表征所述最短路径经过所述假设故障位置,若否,则表征所述最短路径不经过所述假设故障位置。
在一可选的实施例中,所述处理器310还用于运行所述计算机程序时,执行如下步骤:
以所述目的节点为初始的当前目的节点;
从所述备选修复路径中沿第二方向选取一段为当前段;
检查所述当前段对应的源节点至所述当前目的节点的最短路径是否经过所述假设故障位置;
若经过,则保留所述当前段至备份路径,并将所述当前段对应的源节点作为更新的当前目的节点,从所述备选修复路径中沿所述第二方向依序选取下一段为更新的当前段,返回所述检查所述当前段对应的源节点至所述当前目的节点的最短路径是否经过所述假设故障位置的步骤;
若不经过,则将所述当前段进行压缩,并从所述备选修复路径中沿所述第二方向依序选取下一段为更新的当前段,返回所述检查所述当前段对应的源节点至所述当前目的节点的最短路径是否经过所述假设故障位置的步骤。
在一可选的实施例中,所述处理器310还用于运行所述计算机程序时,执行如下步骤:
若所述当前段不是所述备选修复路径顺沿所述第二方向的最后一个段、且上一个段对应的源节点与所述当前目的节点相同,或者所述当前段是所述备选修复路径顺沿所述第二方向的第一个段,则将所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径;
若所述当前段不是所述备选修复路径顺沿所述第二方向的最后一个段、且上一个段对应的源节点与所述当前目的节点不相同,则删除所述备份路径顺沿所述第二方向的最后一个段、并将所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径;;
若所述当前段是所述备选修复路径顺沿所述第二方向的最后一个段、且上一个段对应的源节点与所述当前目的节点不相同,则删除所述备份路径顺沿所述第二方向的最后一个段。
在一可选的实施例中,所述处理器310还用于运行所述计算机程序时,执行如下步骤:
若所述当前段为第一类型段,则将所述当前段按照所述第二方向依序保留至所述备份路径;
若所述当前段为第二类型段,且所述当前段是所述备选修复路径顺沿所述第二方向的第一个段,则将所述当前段以及所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径;
若所述当前段为第二类型段,所述当前段不是所述备选修复路径顺沿所述第二方向的第一个段和最后一个段,且所述备份路径顺沿所述第二方向的最后一个段对应的源节点与所述当前段对应的目的节点相同,则删除所述备份路径顺沿所述第二方向的最后一个段,并将所述当前段以及所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径;
若所述当前段为第二类型段,所述当前段是所述备选修复路径顺沿所述第二方向的最后一个段,且所述备份路径顺沿所述第二方向的最后一个段对应的源节点与所述当前段对应的目的节点相同,则删除所述备份路径顺沿所述第二方向的最后一个段,并将所述当前段按照所述第二方向依序保留至所述备份路径。
在一可选的实施例中,所述处理器310还用于运行所述计算机程序时,执行如下步骤:
根据最短路径优先算法获取以所述当前段对应的源节点为根的最短路径树;
根据所述最短路径树确定所述当前段对应的源节点至所述当前目的节点的最短路径;
查找所述假设故障位置对应的段是否包含在所述最短路径中,若是,则表征所述最短路径经过所述假设故障位置,若否,则表征所述最短路径不经过所述假设故障位置。
该备份路径计算装置还包括:至少一个网络接口312。该装置中的各个组件通过总线系统313耦合在一起。可理解,总线系统313用于实现这些组件之间的连接通信。总线系统313除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图8中将各种总线都标为总线系统313。
其中,存储器311可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read-Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read-Only Memory)、电可擦除可编程只读存储器(EEPROM,Electrically Erasable Programmable Read-Only Memory)、磁性随机存取存储器(FRAM,ferromagnetic random access memory)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(CD-ROM,Compact Disc Read-Only Memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(RAM,Random AccessMemory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(SRAM,Static Random Access Memory)、同步静态随机存取存储器(SSRAM,Synchronous Static Random Access Memory)、动态随机存取存储器(DRAM,Dynamic Random Access Memory)、同步动态随机存取存储器(SDRAM,SynchronousDynamic Random Access Memory)、双倍数据速率同步动态随机存取存储器(DDRSDRAM,Double Data Rate Synchronous Dynamic Random Access Memory)、增强型同步动态随机存取存储器(ESDRAM,Enhanced Synchronous Dynamic Random Access Memory)、同步连接动态随机存取存储器(SLDRAM,SyncLink Dynamic Random Access Memory)、直接内存总线随机存取存储器(DRRAM,Direct Rambus Random Access Memory)。本发明实施例描述的存储器311旨在包括但不限于这些和任意其它适合类型的存储器。
本发明实施例中的存储器311用于存储各种类型的数据以支持备份路径计算装置的操作。这些数据的示例包括:用于在备份路径计算装置上操作的任何计算机程序,如操作系统和应用程序;联系人数据;电话簿数据;消息;图片;视频等。其中,操作系统包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序可以包含各种应用程序,例如媒体播放器(Media Player)、浏览器(Browser)等,用于实现各种应用业务。这里,实现本发明实施例方法的程序可以包含在应用程序中。
本实施例还提供了一种计算机存储介质,例如包括存储有计算机程序的存储器311,上述计算机程序可由备份路径计算装置中的处理器310执行,以完成前述方法所述步骤。计算机存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、Flash Memory、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备,如移动电话、计算机、平板设备、个人数字助理等。
一种计算机存储介质,所述计算机存储介质中存储有计算机程序,所述计算机程被处理器运行时,执行如下步骤:
根据假设故障位置获取源节点至目的节点的收敛后的备选修复路径;所述假设故障位置包括与所述源节点直连的下一跳节点或链路;
按照设定的路径压缩算法对所述备选修复路径进行压缩,获得所述源节点至所述目的节点的备份路径。
在一可选的实施例中,所述计算机程序被处理器运行时,还执行如下步骤:
以所述源节点为初始的当前根节点;
从所述备选修复路径中沿第一方向选取一段为当前段;
检查所述当前根节点至所述当前段对应的目的节点的最短路径是否经过所述假设故障位置;
若经过,则保留所述当前段至备份路径,并将所述当前段对应的目的节点作为更新的当前根节点,从所述备选修复路径中沿所述第一方向依序选取下一段为更新的当前段,返回所述检查所述当前根节点至所述当前段对应的目的节点的最短路径是否经过所述假设故障位置的步骤;
若不经过,则将所述当前段进行压缩,并从所述备选修复路径中沿所述第一方向依序选取下一段为更新的当前段,返回所述检查所述当前根节点至所述当前段对应的目的节点的最短路径是否经过所述假设故障位置的步骤。
在一可选的实施例中,所述计算机程序被处理器运行时,还执行如下步骤:
若所述当前根节点与上一个段对应的目的节点相同、且所述当前段不是所述备选修复路径顺沿所述第一方向的最后一个段,或者所述当前段是所述备选修复路径顺沿所述第一方向的第一个段,则将所述当前段对应的目的节点保留至所述备份路径顺沿所述第一方向的末端;
否则,若所述当前根节点与上一个段对应的目的节点相同、且所述当前段是所述备选修复路径顺沿所述第一方向的最后一个段,则不将所述当前段保留至所述备份路径;
否则,若所述所述当前根节点与上一个段对应的目的节点不相同,则将所述当前段覆盖所述备份路径顺沿所述第一方向的最后一个段。
在一可选的实施例中,所述计算机程序被处理器运行时,还执行如下步骤:
若所述当前段不是所述备选修复路径顺沿所述第一方向的最后一个段,则删除所述备份路径顺沿所述第一方向的最后一个段,并将所述当前段对应的目的节点保留至所述备份路径顺沿所述第一方向的末端;
若所述当前段是所述备选修复路径顺沿所述第一方向的最后一个段,则删除所述备份路径顺沿所述第一方向的最后一个段。
在一可选的实施例中,所述计算机程序被处理器运行时,还执行如下步骤:
根据最短路径优先算法获取以所述当前根节点为根的最短路径树;
根据所述最短路径树确定所述当前根节点至所述当前段对应的目的节点的最短路径;
查找所述假设故障位置对应的段是否包含在所述最短路径中,若是,则表征所述最短路径经过所述假设故障位置,若否,则表征所述最短路径不经过所述假设故障位置。
在一可选的实施例中,所述计算机程序被处理器运行时,还执行如下步骤:
以所述目的节点为初始的当前目的节点;
从所述备选修复路径中沿第二方向选取一段为当前段;
检查所述当前段对应的源节点至所述当前目的节点的最短路径是否经过所述假设故障位置;
若经过,则保留所述当前段至备份路径,并将所述当前段对应的源节点作为更新的当前目的节点,从所述备选修复路径中沿所述第二方向依序选取下一段为更新的当前段,返回所述检查所述当前段对应的源节点至所述当前目的节点的最短路径是否经过所述假设故障位置的步骤;
若不经过,则将所述当前段进行压缩,并从所述备选修复路径中沿所述第二方向依序选取下一段为更新的当前段,返回所述检查所述当前段对应的源节点至所述当前目的节点的最短路径是否经过所述假设故障位置的步骤。
在一可选的实施例中,所述计算机程序被处理器运行时,还执行如下步骤:
若所述当前段不是所述备选修复路径顺沿所述第二方向的最后一个段、且上一个段对应的源节点与所述当前目的节点相同,或者所述当前段是所述备选修复路径顺沿所述第二方向的第一个段,则将所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径;
若所述当前段不是所述备选修复路径顺沿所述第二方向的最后一个段、且上一个段对应的源节点与所述当前目的节点不相同,则删除所述备份路径顺沿所述第二方向的最后一个段、并将所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径;
若所述当前段是所述备选修复路径顺沿所述第二方向的最后一个段、且上一个段对应的源节点与所述当前目的节点不相同,则删除所述备份路径顺沿所述第二方向的最后一个段。
在一可选的实施例中,所述计算机程序被处理器运行时,还执行如下步骤:
若所述当前段为第一类型段,则将所述当前段按照所述第二方向依序保留至所述备份路径;
若所述当前段为第二类型段,且所述当前段是所述备选修复路径顺沿所述第二方向的第一个段,则将所述当前段以及所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径;
若所述当前段为第二类型段,所述当前段不是所述备选修复路径顺沿所述第二方向的第一个段和最后一个段,且所述备份路径顺沿所述第二方向的最后一个段对应的源节点与所述当前段对应的目的节点相同,则删除所述备份路径顺沿所述第二方向的最后一个段,并将所述当前段以及所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径;
若所述当前段为第二类型段,所述当前段是所述备选修复路径顺沿所述第二方向的最后一个段,且所述备份路径顺沿所述第二方向的最后一个段对应的源节点与所述当前段对应的目的节点相同,则删除所述备份路径顺沿所述第二方向的最后一个段,并将所述当前段按照所述第二方向依序保留至所述备份路径。
在一可选的实施例中,所述计算机程序被处理器运行时,还执行如下步骤:
根据最短路径优先算法获取以所述当前段对应的源节点为根的最短路径树;
根据所述最短路径树确定所述当前段对应的源节点至所述当前目的节点段的最短路径;
查找所述假设故障位置对应的段是否包含在所述最短路径中,若是,则表征所述最短路径经过所述假设故障位置,若否,则表征所述最短路径不经过所述假设故障位置。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。本发明的保护范围应以所述权利要求的保护范围以准。

Claims (12)

1.一种备份路径计算方法,其特征在于,所述方法包括:
根据假设故障位置获取源节点至目的节点的收敛后的备选修复路径;所述假设故障位置包括与所述源节点直连的下一跳节点或链路;
按照设定的路径压缩算法对所述备选修复路径进行压缩,获得所述源节点至所述目的节点的备份路径。
2.根据权利要求1所述的方法,其特征在于,所述按照设定的路径压缩算法对所述备选修复路径进行压缩,获得所述源节点至所述目的节点的备份路径,包括:
以所述源节点为初始的当前根节点;
从所述备选修复路径中沿第一方向选取一段为当前段;
检查所述当前根节点至所述当前段对应的目的节点的最短路径是否经过所述假设故障位置;
若经过,则保留所述当前段至备份路径,并将所述当前段对应的目的节点作为更新的当前根节点,从所述备选修复路径中沿所述第一方向依序选取下一段为更新的当前段,返回所述检查所述当前根节点至所述当前段对应的目的节点的最短路径是否经过所述假设故障位置的步骤;
若不经过,则将所述当前段进行压缩,并从所述备选修复路径中沿所述第一方向依序选取下一段为更新的当前段,返回所述检查所述当前根节点至所述当前段对应的目的节点的最短路径是否经过所述假设故障位置的步骤。
3.根据权利要求2所述的方法,其特征在于,所述将所述当前段进行压缩,包括:
若所述当前根节点与上一个段对应的目的节点相同、且所述当前段不是所述备选修复路径顺沿所述第一方向的最后一个段,或者若所述当前段是所述备选修复路径顺沿所述第一方向的第一个段,则将所述当前段对应的目的节点保留至所述备份路径顺沿所述第一方向的末端;
若所述当前根节点与上一个段对应的目的节点相同、且所述当前段是所述备选修复路径顺沿所述第一方向的最后一个段,则不将所述当前段保留至所述备份路径;
若所述当前根节点与上一个段对应的目的节点不相同,则将所述当前段覆盖所述备份路径顺沿所述第一方向的最后一个段。
4.根据权利要求3所述的方法,其特征在于,所述将所述当前段覆盖所述备份路径顺沿所述第一方向的最后一个段,包括:
若所述当前段不是所述备选修复路径顺沿所述第一方向的最后一个段,则删除所述备份路径顺沿所述第一方向的最后一个段,并将所述当前段对应的目的节点保留至所述备份路径顺沿所述第一方向的末端;
若所述当前段是所述备选修复路径顺沿所述第一方向的最后一个段,则删除所述备份路径顺沿所述第一方向的最后一个段。
5.根据权利要求2所述的方法,其特征在于,所述检查所述当前根节点至所述当前段对应的目的节点的最短路径是否经过所述假设故障位置,包括:
根据最短路径优先算法获取以所述当前根节点为根的最短路径树;
根据所述最短路径树确定所述当前根节点至所述当前段对应的目的节点的最短路径;
查找所述假设故障位置对应的段是否包含在所述最短路径中,若是,则表征所述最短路径经过所述假设故障位置,若否,则表征所述最短路径不经过所述假设故障位置。
6.根据权利要求1所述的方法,其特征在于,所述按照设定的路径压缩算法对所述备选修复路径进行压缩,获得所述源节点至所述目的节点的备份路径,包括:
以所述目的节点为初始的当前目的节点;
从所述备选修复路径中沿第二方向选取一段为当前段;
检查所述当前段对应的源节点至所述当前目的节点的最短路径是否经过所述假设故障位置;
若经过,则保留所述当前段至备份路径,并将所述当前段对应的源节点作为更新的当前目的节点,从所述备选修复路径中沿所述第二方向依序选取下一段为更新的当前段,返回所述检查所述当前段对应的源节点至所述当前目的节点的最短路径是否经过所述假设故障位置的步骤;
若不经过,则将所述当前段进行压缩,并从所述备选修复路径中沿所述第二方向依序选取下一段为更新的当前段,返回所述检查所述当前段对应的源节点至所述当前目的节点的最短路径是否经过所述假设故障位置的步骤。
7.根据权利要求6所述的方法,其特征在于,所述将所述当前段进行压缩,包括:
若所述当前段不是所述备选修复路径顺沿所述第二方向的最后一个段、且上一个段对应的源节点与所述当前目的节点相同,或者若所述当前段是所述备选修复路径顺沿所述第二方向的第一个段,则将所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径;
若所述当前段不是所述备选修复路径顺沿所述第二方向的最后一个段、且上一个段对应的源节点与所述当前目的节点不相同,则删除所述备份路径顺沿所述第二方向的最后一个段、并将所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径;
若所述当前段是所述备选修复路径顺沿所述第二方向的最后一个段、且上一个段对应的源节点与所述当前目的节点不相同,则删除所述备份路径顺沿所述第二方向的最后一个段。
8.根据权利要求6所述的方法,其特征在于,所述保留所述当前段至备份路径,包括:
若所述当前段为第一类型段,则将所述当前段按照所述第二方向依序保留至所述备份路径;
若所述当前段为第二类型段,且所述当前段是所述备选修复路径顺沿所述第二方向的第一个段,则将所述当前段以及所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径;
若所述当前段为第二类型段,所述当前段不是所述备选修复路径顺沿所述第二方向的第一个段和最后一个段,且所述备份路径顺沿所述第二方向的最后一个段对应的源节点与所述当前段对应的目的节点相同,则删除所述备份路径顺沿所述第二方向的最后一个段,并将所述当前段以及所述当前段对应的源节点按照所述第二方向依序保留至所述备份路径;
若所述当前段为第二类型段,所述当前段是所述备选修复路径顺沿所述第二方向的最后一个段,且所述备份路径顺沿所述第二方向的最后一个段对应的源节点与所述当前段对应的目的节点相同,则删除所述备份路径顺沿所述第二方向的最后一个段,并将所述当前段按照所述第二方向依序保留至所述备份路径。
9.根据权利要求6所述的方法,其特征在于,所述检查所述当前段对应的源节点至所述当前目的节点的最短路径是否经过所述假设故障位置,包括:
根据最短路径优先算法获取以所述当前段对应的源节点为根的最短路径树;
根据所述最短路径树确定所述当前段对应的源节点至所述当前目的节点的最短路径;
查找所述假设故障位置对应的段是否包含在所述最短路径中,若是,则表征所述最短路径经过所述假设故障位置,若否,则表征所述最短路径不经过所述假设故障位置。
10.一种备份路径计算装置,其特征在于,所述装置包括:获取单元和处理单元;其中,
所述获取单元,用于根据假设故障位置获取源节点至目的节点的收敛后的备选修复路径;所述假设故障位置包括与所述源节点直连的下一跳节点或链路;
所述处理单元,用于按照设定的路径压缩算法对所述备选修复路径进行压缩,获得所述源节点至所述目的节点的备份路径。
11.一种备份路径计算装置,其特征在于,所述装置包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;其中,
所述处理器用于运行所述计算机程序时,执行权利要求1至9中任一项所述备份路径计算方法的步骤。
12.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1至9中任一项所述备份路径计算方法的步骤。
CN201810542217.3A 2018-05-30 2018-05-30 一种备份路径计算方法、装置及计算机存储介质 Active CN110557330B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810542217.3A CN110557330B (zh) 2018-05-30 2018-05-30 一种备份路径计算方法、装置及计算机存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810542217.3A CN110557330B (zh) 2018-05-30 2018-05-30 一种备份路径计算方法、装置及计算机存储介质

Publications (2)

Publication Number Publication Date
CN110557330A true CN110557330A (zh) 2019-12-10
CN110557330B CN110557330B (zh) 2022-03-25

Family

ID=68735224

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810542217.3A Active CN110557330B (zh) 2018-05-30 2018-05-30 一种备份路径计算方法、装置及计算机存储介质

Country Status (1)

Country Link
CN (1) CN110557330B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111813883A (zh) * 2020-06-23 2020-10-23 上海阿尔卡特网络支援系统有限公司 最短路径查询方法及查询系统
CN114697254A (zh) * 2020-12-31 2022-07-01 北京华为数字技术有限公司 一种报文处理的方法及相关装置

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6385649B1 (en) * 1998-11-06 2002-05-07 Microsoft Corporation Routers and methods for optimal routing table compression
CN101039265A (zh) * 2007-04-25 2007-09-19 华为技术有限公司 一种路由器及路由转发方法
CN101069394A (zh) * 2005-12-05 2007-11-07 日本电信电话株式会社 故障补救方法和数据包通信装置
CN101729348A (zh) * 2009-06-01 2010-06-09 中兴通讯股份有限公司 一种点到多点环的保护方法和系统
US20130051217A1 (en) * 2011-08-30 2013-02-28 Verizon Patent And Licensing Inc. System and method for enhancing loop free alternative coverage
CN105453491A (zh) * 2013-07-19 2016-03-30 瑞典爱立信有限公司 扩展远程lfa快速重新路由
CN105704019A (zh) * 2014-12-16 2016-06-22 思科技术公司 用于分段路由邻接分段的节点保护
CN106453085A (zh) * 2016-12-14 2017-02-22 国家电网公司 基于业务重要度的风险均衡路由分配的方法及系统
CN107872383A (zh) * 2016-09-28 2018-04-03 中兴通讯股份有限公司 参数的通告方法、获取方法及装置

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6385649B1 (en) * 1998-11-06 2002-05-07 Microsoft Corporation Routers and methods for optimal routing table compression
CN101069394A (zh) * 2005-12-05 2007-11-07 日本电信电话株式会社 故障补救方法和数据包通信装置
CN101039265A (zh) * 2007-04-25 2007-09-19 华为技术有限公司 一种路由器及路由转发方法
CN101729348A (zh) * 2009-06-01 2010-06-09 中兴通讯股份有限公司 一种点到多点环的保护方法和系统
US20130051217A1 (en) * 2011-08-30 2013-02-28 Verizon Patent And Licensing Inc. System and method for enhancing loop free alternative coverage
CN105453491A (zh) * 2013-07-19 2016-03-30 瑞典爱立信有限公司 扩展远程lfa快速重新路由
CN105704019A (zh) * 2014-12-16 2016-06-22 思科技术公司 用于分段路由邻接分段的节点保护
CN107872383A (zh) * 2016-09-28 2018-04-03 中兴通讯股份有限公司 参数的通告方法、获取方法及装置
CN106453085A (zh) * 2016-12-14 2017-02-22 国家电网公司 基于业务重要度的风险均衡路由分配的方法及系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
A.SAJASSI ET AL.: "BGP MPLS-Based Ethernet VPN", 《IETF ISSN:2070-1721》 *
P. SARKAR ET AL.: "Remote-LFA Node Protection and Manageability", 《IETF ISSN:2070-1721》 *
S. LITKOWSKI ET AL.: "Operational Management of Loop-Free Alternates", 《IETF ISSN:2070-1721》 *
S.BRYANT ET AL.: "Remote Loop-Free Alternate (LFA) Fast Reroute (FRR)", 《IETF ISSN:2070-1721》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111813883A (zh) * 2020-06-23 2020-10-23 上海阿尔卡特网络支援系统有限公司 最短路径查询方法及查询系统
CN111813883B (zh) * 2020-06-23 2024-05-28 上海阿尔卡特网络支援系统有限公司 最短路径查询方法及查询系统
CN114697254A (zh) * 2020-12-31 2022-07-01 北京华为数字技术有限公司 一种报文处理的方法及相关装置
CN114697254B (zh) * 2020-12-31 2024-06-11 北京华为数字技术有限公司 一种报文处理的方法及相关装置

Also Published As

Publication number Publication date
CN110557330B (zh) 2022-03-25

Similar Documents

Publication Publication Date Title
CN110557337B (zh) 一种分段路由路径计算方法、装置及计算机存储介质
US11489756B2 (en) Enforcing strict shortest path forwarding using strict segment identifiers
CN109039919B (zh) 转发路径确定方法、装置、系统、计算机设备及存储介质
JP4541745B2 (ja) ホームエージェント管理装置及び管理方法
CN113300949B (zh) 转发报文的方法、发布路由信息的方法、装置及系统
EP3493491A1 (en) Packet forwarding method and device
US7539153B1 (en) Method and apparatus for longest prefix matching based on a trie
US9246794B2 (en) Label distribution and route installation in a loop-free routing topology using routing arcs
CN110557330B (zh) 一种备份路径计算方法、装置及计算机存储介质
WO2019205806A1 (zh) 数据包的处理方法及装置、存储介质、电子装置
Nguyen et al. Slick packets
CN105763468A (zh) 一种bgp更新报文的传输方法和装置
CN113904985A (zh) 一种段列表获取方法、报文转发方法、装置及电子设备
JP2008054211A (ja) 経路計算方法及び装置及びプログラム
US7830791B2 (en) Method and system for routing network communications
KR102287520B1 (ko) 계층화된 도메인 기반의 네트워크 구조에서 라우터의 도메인 라우팅 테이블 관리 방법
CN116055446A (zh) 跨网络的报文转发方法、电子设备及机器可读存储介质
US11323357B1 (en) Accessing varying route attribute states during routing policy application on network devices
JP4422114B2 (ja) 故障影響度判定方法及び装置及びプログラム
JP2002152252A (ja) 経路計算装置及びそれに用いる経路計算方法並びにその制御プログラムを記録した記録媒体
Castillo et al. Dual‐failure restorability analysis of span‐restorable meta‐mesh networks
US11811611B2 (en) System and method for backup flooding topology split
CN114143249B (zh) 确定路由信息的方法、装置、电子设备及存储介质
JP2009123050A (ja) 情報検索装置、及び情報検索装置へのエントリ情報の登録方法
JP4725382B2 (ja) パケット中継方法、及びパケット中継ノード

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant