CN111801914B - 用于在最大不相交路径上转发网络业务的方法和设备 - Google Patents
用于在最大不相交路径上转发网络业务的方法和设备 Download PDFInfo
- Publication number
- CN111801914B CN111801914B CN201780098311.8A CN201780098311A CN111801914B CN 111801914 B CN111801914 B CN 111801914B CN 201780098311 A CN201780098311 A CN 201780098311A CN 111801914 B CN111801914 B CN 111801914B
- Authority
- CN
- China
- Prior art keywords
- network
- adag
- mrt
- gadag
- graph
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/22—Alternate routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing 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
本公开涉及网络业务的转发。在其方面之一,本文中提出的技术涉及一种用于通过最大冗余树MRT在最大不相交路径上将网络业务从多个源转发到多个目的地的方法。该方法在网络的路径计算元件PCE中实现多点到多点功能性的网络元件中实现,其中该网络包括多个网络元件。根据该方法,为网络计算了几乎有向无环图ADAG。通过使用ADAG来计算沿MRT的下一跳。确定所计算的MRT中不相交的一个或多个有效路径对,并且然后通过使用(一个或多个)MRT的(一个或多个)有效路径对来转发网络业务。
Description
技术领域
本公开一般涉及网络业务的转发。特别地,本公开中描述的各种实施例一般涉及用于通过最大冗余树(Maximally Redundant Tree)(MRT)在最大不相交路径上转发网络业务的方法和网络元件。
背景技术
本节旨在提供在本公开中描述的本发明各种实施例的背景技术。因此,除非本文中另有指示,否则本节中所描述的内容不应仅因其包含在本节中而解释为现有技术。
随着网络通信的使用不断增加,网络通信系统中对冗余的需求变得越来越重要。网络冗余是这样的过程,通过该过程在网络基础设施内安装(install)网络装置、设备和通信介质的附加或备选实例。冗余被用于在网络装置或路径故障和不可用的情况下确保网络可用性。像这样,它提供了一种网络故障转移(failover)的方法。通常,网络冗余是通过添加备选网络路径实现的。当主路径不可用时,能立即部署备选路径,以确保最短的停机时间和网络服务的连续性。
为了确保网络冗余,最大冗余树(MRT)已经发展起来。MRT被用于在网络中提供保护,其中转发基于目的地地址,而不是基于属于路径的地址,诸如资源预留协议(RSVP)。这样的网络的示例例如是因特网协议(IP)网络、基于标签分发协议(LDP)的多协议标签交换(MPLS)网络和以太网。对于IP和LDP,由因特网工程任务组(IETF)在RFC7811和RFC7812中描述了这样的解决方案,而对于以太网,由电气和电子工程师协会(IEEE)在802.1Qca中描述了这样的解决方案。
最大冗余树(MRT)是具有公共根节点的无向图的一对有向生成(spanning)树。沿第一树从任何节点X到根的路径以及沿第二树从同一节点X到根的路径共享最小数量的节点和最小数量的链路。沿两树的这两条路径通常是最大程度的节点和链路不相交。只有那些不能避免的节点和链路通常才在两条路径中都使用。源和目的地之间的共享节点和链路被称为切割节点(cut-node)(本文中可互换地称为切割顶点)和切割链路。移除这样的切割顶点会分割网络。当两条路径被保证完全不相交时,网络称为2节点连接(2-node-connected)。然而,当不是这种情况时,也仍提供最大冗余。
为了计算MRT,需要节点的部分顺序。除了也可能存在元素的无序对之外,图的节点(本文中可互换地称为顶点)的部分顺序是非常类似于总顺序(例如以自然数而闻名)的关系。自然数的传统顺序是总顺序,因为任何两个元素都能进行比较。有向无环图(DAG)定义了其顶点集的部分顺序,即,如果存在从A到B的有向路径,则A<B。如果A和B没有被排序,则一般使用记号A≸B。
几乎(almost)DAG(ADAG)是具有单个根节点的有向图,如图1中所图示的。图1图示了2连接图及其以R为根的生成ADAG。它“几乎”是DAG,因为与DAG相反,它包括循环。然而,所有的有向循环都包括根。ADAG的另一个定义是,它是具有根节点R的有向图,如果移除R,则ADAG将变成DAG。具有任意选择的根的生成ADAG可在线性时间内在任何2连接图中找到。
广义ADAG(GADAG)是ADAG对非2连接图的自然概括。虽然ADAG只可能在2连接图中找到,但网络可能容易是非2连接图。例如,由于网络故障,网络可能变为非2连接,并且只要故障资源未被修复,网络就将继续是非2连接。在这样的非2连接网络中,仍存在2连接的块,在那里可找到ADAG。块是没有任何单个切割顶点的最大子图,即2连接子图。与单个链路连接的两个节点也被认为是块。GADAG在其块中的每个中都有任意全局根和一个局部根。包括全局根的(一个或多个)块的局部根是全局根,而其它块的局部根是最靠近全局根的节点。不是全局根的局部根是切割顶点,并且同时属于多个块。然而,一个块中的局部根不一定是它属于的另一个块的局部根。在图2中图示了一个示例图及其具有全局根R的生成GADAG。
图2图示了具有四个块的GADAG;其中第一块包括A、B、C、D和R;第二块包括C、I和J;第三块包括B、E、F和G;以及第四块包括G和H。如果R是全局根,则最靠近的节点,即GADAG中的局部根,分别是R、C、B、G。
ADAG可用于定义类似于部分排序的东西。然而,如上所述,ADAG不是DAG,它包括循环,但是所有的循环都经过根节点R。从而,部分排序可被定义成使得,如果存在不包括根节点R的有向路径N→M,则节点N<M。根节点R是特殊节点,它既大于ADAG中的所有节点又小于ADAG中的所有节点。假如网络不是2连接的,并且计算了GADAG,则为其块中的每个找到部分顺序。
为了计算2连接图中的MRT,首先计算图上的ADAG,并使用它创建的部分排序。随后,每个节点S找到与S排序的节点,并为大于S的节点找到沿递增路径的下一跳,并且为小于S的节点找到沿递减路径的下一跳。由于根R既大于任何节点S又小于任何节点S,因此必须存在朝向根R的递增和递减的下一跳。ADAG中从较低拓扑有序节点到较高拓扑有序节点的方向上取得的链路的递增MRT被称为MRT-blue,而ADAG中从较高拓扑有序节点到较低拓扑有序节点的方向上取得的链路的递减MRT被称为MRT-red。通过使用递增和递减的下一跳,每个节点S将通过遵循以下规定的规则相应地找到朝向每个目的地节点D的蓝色SD_blue和红色SD_red下一跳:
1.如果S<D:
SD_blue=沿到D的递增路径的下一跳
SD_red=沿到R的递减路径的下一跳
2.如果S>D:
SD_blue=沿到R的递增路径的下一跳
SD_red=沿到D的递减路径的下一跳
3.If S≸D:
SD_blue=沿到R的递减路径的下一跳
SD_red=沿到R的递增路径的下一跳
这些下一跳定义了两个MRT,所谓的蓝色树和所谓的红色树。这些下一跳确实定义了MRT的证据可在Gábor Enyedi和Gábor Rétvári作的科学论文“Finding MultipleMaximally Redundant Trees in Linear Time”(Periodica poly technica electricEngineering 54.1-2(2011):29-40)中找到。
对于有序的情况,基本思想一般是要对路径中的一个使用有序路径,并且然后经过根R,并在那里对另一条路径执行“转向”。对于无序的情况,蓝色路径递减,直到到达小于D的节点,并且从该节点,相对于上面的规则1使用递增的直接路径。更进一步,红色路径递增,直到到达大于D的节点,并且从该节点,使用规则2。对这种情况,有必要注意的是,例如通过RFC7811中的方法构建的ADAG是这样的,以致只有一个链路进入根。
在IETF RFC 7811中或Gábor Enyedi和Gábor Rétvári的科学论文中可找到对如何计算MRT下一跳的更详细描述,如上文所提到的那样。
发明内容
鉴于上文的考虑和其它考虑,已经做出了本文中公开的各个方面和实施例。
本发明人已经认识到,虽然传统的MRT可为一源到一目的地系统中的冗余提供解决方案,但是在具有基于地址的路由选择的多源到多目的地系统(例如,2源到2目的地系统)中,没有用于提供冗余的现有的已知解决方案。
用于在多源到多目的地系统中提供冗余的这种用例的一个示例是当源和/或目的地可移动时,诸如当实体被远程控制时。在图3中图示了这样的示例。图3图示了例如在工厂中的机器人200。机器人200由外部控制器控制。为了使系统得以给该系统的所有组件提供1+1保护,通常必须提供至少两个独立的控制器S1、S2。由于机器人200可以是可移动的,因此它可使用图3中用虚线箭头所图示的无线电连接通信地连接到控制器。因此,该系统可包括可能在不同的频率上使用可能具有重叠覆盖的两个不同的基站D1、D2的两个独立的无线电连接,。从而,该系统可包括两个源(控制器S1、S2)和两个目的地(基站D1、D2)。更进一步,如果业务是双向的,则控制器S1、S2是一个方向上的源,而基站D1、D2是另一个方向上的源。而且,从控制器S1、S2到两个基站D1、D2的两条路径可以是不相交的,使得在控制器S1、S2和基站D1、D2之间的网络中的链路或节点故障的情况下,连接中的至少一个存活。更进一步,由于机器人200可以是可移动的,因此还可能需要切换支持。
不以基于地址的路由选择为基础的现有技术可能可用来解决这个问题。例如,具有RSVP的MPLS可在多个源和多个目的地之间提供不相交的路径。然而,这种解决方案需要具有关于传输节点中每个可能的基站对的信息,并且因而需要安装并持续刷新该信息。考虑到上述情况,其中实体是通过两个控制器使用不相交路径与两个基站进行对话来远程控制的,当机器人移动时,两个基站可改变,并且从而网络的所有节点都将需要被部分地重新配置。更进一步,假设有几个这样的机器人一起工作,因此不可能每次发生对于机器人200的切换时都重新配置整个网络。不可能连续执行这些昂贵的路径重新配置。因而,如果只有控制器S1、S2跟踪机器人通信地连接的基站D1、D2将是有利的。而且,由于大多数节点没有关于特定机器人的当前位置的信息,因此发送到给定机器人的分组一般不能直接使用机器人的地址,并且节点不能在没有信息的情况下转发它们。相反,通常必须通过使用基站的地址将分组发送到该基站。因而,需要一种解决方案,该解决方案能以使得仅源(即控制器)需要跟踪目的地(即机器人位置)的方式对于任何控制器/基站组合给出不相交的路径。
鉴于上述内容,因此,贯穿本公开描述的方面和实施例的一般目的是要为具有基于地址的路由选择的多源到多目的地挑战提供不同的解决方案。
该一般目的已经由所附的独立权利要求解决了。在所附的从属权利要求中定义了有利的实施例。
根据第一方面,提供了一种用于通过最大冗余树MRT在最大不相交路径上将网络业务从多个源转发到多个目的地的方法。该方法有利地在网络的路径计算元件PCE中实现多点到多点功能性的网络元件中实现。该网络包括多个网络元件。
为网络计算了几乎有向无环图ADAG。ADAG是所述网络的图抽象,其中多个网络元件是所述ADAG的顶点,并且连接多个网络元件的链路是ADAG的有向边。ADAG具有任意根。通过使用ADAG,计算沿MRT的下一跳。确定所计算的MRT中不相交的一个或多个有效路径对。然后,通过使用MRT的(一个或多个)有效路径对来转发网络业务。
在一个实施例中,当网络的图抽象是非2连接图时,该方法附加地包括通过计算网络的广义几乎有向无环图GADAG来计算网络的ADAG。GADAG是网络的图抽象,多个网络元件是GADAG的顶点,并且连接多个网络元件的链路是GADAG的有向边。GADAG具有任意全局根和一个或几个局部根。然后通过将除所述任意全局根之外的所述局部根虚拟地复制成两个根将GADAG转换成几乎有向无环图ADAG。
在一个实施例中,通过确定ADAG中多个源和多个目的地之间的所有可能关系来计算MRT。可通过从每个网络元件执行两次图遍历算法直到找到所有网络元件之间的排序来确定所述关系。当所述网络业务从两个源被转发到两个目的地时,通过从四个网络元件中的三个执行六次图遍历算法来确定所述关系。
在一个实施例中,通过对所计算的MRT使用矛盾和/或排序证据来确定不相交的(一个或多个)有效路径对。
在一个实施例中,该方法附加地包括预先计算并在表中存储多个源和多个目的地之间的所有可能的(一个或多个)路径对。可通过在预存表中执行查找以检索不相交的任何(一个或多个)路径对来确定(一个或多个)有效路径对。
在一个实施例中,当存在多个可接受路径对时,所述方法附加地包括使用平局决胜规则来确定性地选择所述可接受路径对之一。
在一个实施例中,该方法附加地包括选择要属于哪个源的哪条路径。
根据第二方面,提供了一种用于实现根据第一方面的方法的网络元件。为此,提出了一种用于通过最大冗余树MRT在最大不相交路径上将网络业务从多个源转发到多个目的地的网络元件。
在一个示例性实现中,网络元件包括处理器和存储器。存储器包括由处理器可执行的指令,由此网络元件可操作以计算网络的几乎有向无环图ADAG。ADAG是所述网络的图抽象,其中多个网络元件是所述ADAG的顶点,并且连接多个网络元件的链路是ADAG的有向边。ADAG具有任意根。网络元件可操作以使用ADAG来计算沿MRT的下一跳。网络元件可操作以确定所计算的MRT中不相交的(一个或多个)有效路径对。网络元件然后可操作以使用所述MRT的(一个或多个)有效路径对来转发网络业务。
在一个实施例中,当网络的图抽象是非2连接图时,网络元件的存储器包括由所述处理器可执行的指令,由此网络元件进一步可操作以通过计算网络的广义几乎有向无环图GADAG来计算网络的ADAG。GADAG是所述网络的图抽象,其中多个网络元件是所述GADAG的顶点,并且连接多个网络元件的链路是GADAG的有向边。GADAG具有任意全局根和一个或几个局部根。网络元件可操作以通过将除所述任意全局根之外的所述局部根虚拟地复制成两个根将所述GADAG转换成几乎有向无环图ADAG。
在一个实施例中,网络元件的存储器包括由处理器可执行的指令,由此网络元件进一步可操作以通过确定ADAG中多个源和多个目的地之间的所有可能关系来计算所述MRT。网络元件可进一步可操作以通过从每个网络元件执行两次图遍历算法直到找到所有网络元件之间的排序来确定所述关系。当网络业务从两个源转发到两个目的地时,所述存储器可包括由处理器可执行的指令,由此网络元件进一步可操作以通过从所述四个网络元件中的三个执行六次图遍历算法来确定所述关系。
在一个实施例中,网络元件的存储器包括由处理器可执行的指令,由此所述网络元件进一步可操作以通过对所计算的MRT使用矛盾和/或排序证据来确定不相交的(一个或多个)有效路径对。
在一个实施例中,网络元件的存储器包括由所述处理器可执行的指令,由此网络元件进一步可操作以预先计算并在表中存储多个源和多个目的地之间的所有有效的可能的(一个或多个)路径对。网络元件可进一步可操作以通过在预存表中执行查找以检索不相交的任何(一个或多个)路径对来确定(一个或多个)有效路径对。
在一个实施例中,当存在多个可接受的路径对时,网络元件的存储器包括由所述处理器可执行的指令,由此所述网络元件进一步可操作以当存在多个可接受路径对时,使用平局决胜规则来确定性地选择可接受路径对之一。
在一个实施例中,网络元件的存储器包括由所述处理器可执行的指令,由此所述网络元件进一步可操作以选择要属于哪个源的哪条路径。
根据第三方面,提供了一种网络的网络元件。网络元件适于计算网络的几乎有向无环图ADAG。ADAG是网络的图抽象。多个网络元件是ADAG的顶点,并且连接多个网络元件的链路是ADAG的有向边。ADAG具有任意根。网络元件进一步适于使用所述ADAG来计算沿最大冗余树MRT的下一跳。网络元件进一步适于确定所计算的MRT中不相交的(一个或多个)有效路径对。网络元件然后进一步适于使用所述MRT的(一个或多个)有效路径对来转发网络业务。
根据第四方面,提供了一种网络的网络元件。网络元件包括适于计算网络的几乎有向无环图ADAG的部件。ADAG是所述网络的图抽象,其中多个网络元件是所述ADAG的顶点,并且连接多个网络元件的链路是ADAG的有向边。ADAG具有任意根。网络元件进一步包括适于使用所述ADAG来计算沿最大冗余树MRT的下一跳的部件。网络元件进一步包括适于确定所计算的MRT中不相交的(一个或多个)有效路径对的部件。网络元件进一步包括适于使用所述MRT的(一个或多个)有效路径对来转发网络业务的部件。
根据第五方面,提供了一种网络的网络元件。网络元件包括被配置成计算网络的几乎有向无环图ADAG的第一模块。ADAG是所述网络的图抽象,其中多个网络元件是所述ADAG的顶点,并且连接所述多个网络元件的链路是所述ADAG的有向边,并且其中所述ADAG具有任意根。网络元件进一步包括被配置成使用所述ADAG来计算沿最大冗余树MRT的下一跳的第二模块。网络元件进一步包括被配置成确定所计算的MRT中不相交的(一个或多个)有效路径对的第三模块。网络元件进一步包括被配置成使用MRT来转发网络业务的第四模块。
根据第六方面,提供了一种包括指令的计算机程序,所述指令当在至少一个处理器上执行时,使所述至少一个处理器实行根据第一方面的方法。
根据第七方面,提供了一种包括第三方面的计算机程序的载体,其中该载体是电子信号、光信号、无线电信号或计算机可读存储介质之一。
本文中各种提出的实施例可允许通过MRT在最大不相交路径上将网络业务从多个源转发到多个目的地。使用基于地址的路由选择的益处是,只有源需要知道这些不相交路径,其它节点只安装MRT下一跳。只有源一般需要知道正确的树,因为它们使用例如正确的IP地址来标记分组。
附图说明
现在将参考附图,基于实施例,以示例的方式描述本发明的各个方面,附图中:
图1示出了ADAG,其是具有单个根节点的有向图;
图2示出了具有全局根R的示例图及其生成GADAG;
图3图示了远程控制的实体,诸如例如工厂中的机器人;
图4是由网络元件执行的示例方法的流程图;
图5是由网络元件执行的另外示例方法的流程图;
图6图示了具有两个子图的非2连接图;
图7示出了图6的ADAG版本;
图8示出了网络元件的示例实现;
图9示出了网络元件的另外示例实现;
图10示出了网络元件的又一另外示例实现;
图11示出了示例DAG;
图12a示出了另外示例DAG;
图12b示出了图12a的更新图;
图13图示了网络。
具体实施方式
下文将参考附图更全面地描述本文中的实施例,附图中示出了有利的实施例。然而,这些实施例可以以许多不同的形式体现,并且不应该被解释为限制于本文中明确阐述的实施例。通篇相似的数字指代相似的元件。
本文中使用的术语仅出于描述特定实施例的目的,并不旨在是限制性的。如本文中所使用的,单数形式“一(a、an)”和“该(the)”旨在也包括复数形式,除非上下文中以其它方式清楚地指示。将进一步理解到,术语“包括”和/或“包含”当在本文中使用时,规定所阐述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其它特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。
除非另有定义,否则本文中使用的所有术语(包括技术和科学术语)具有与通常理解的相同的含义。将进一步理解,本文中使用的术语应当被解释为具有与它们在本说明书和相关领域的上下文中的含义一致的含义,并且除非在本文中明确地如此定义,否则将不会以理想化或过于正式的意义来解释。
下面参考根据本实施例的方法、设备(系统)和/或计算机程序产品的框图和/或流程图图示来描述本技术。要理解,框图和/或流程图图示的框以及框图和/或流程图图示中的框的组合可由计算机程序指令来实现。这些计算机程序指令可被提供给通用计算机、专用计算机和/或其它可编程数据处理设备的处理器、控制器或控制单元以产生机器,使得经由计算机和/或其它可编程数据处理设备的处理器执行的指令创建用于实现在框图和/或一个或多个流程图框中规定的功能或动作的部件。
相应地,本公开可体现在硬件和/或软件(包括固件、常驻软件、微代码等)中。更进一步,本技术可采取计算机可用或计算机可读存储介质上的计算机程序产品的形式,该计算机可用或计算机可读存储介质具有在介质中体现的计算机可用或计算机可读程序代码,以供指令执行系统使用或与之结合使用。在此文档的上下文中,计算机可用或计算机可读介质可以是可包括、存储、传递、传播或传输程序以供指令执行系统、设备或装置使用或与之结合使用的任何介质。
虽然在此使用了一些规范中的特定术语,诸如基站,但是应该理解,实施例不限于这些特定术语,而是可应用于所有类似的实体,诸如宏基站、毫微微基站、NodeB、eNodeB和核心网络(CN)。
如本文中所使用的,网络元件(例如,路由器或交换机)是一件联网设备,包括通信地互连网络上的其它设备(例如,其它网络元件、终端系统)的硬件和软件。网络元件一般由其媒体访问控制(MAC)地址、因特网协议(IP)地址/子网、网络套接字(network socket)/端口和/或上层OSI层标识符来标识。
网络元件通常被组织并分成控制平面和数据平面(有时称为转发平面或媒体平面)。在网络元件是路由器(或正在实现路由选择功能性)的情况下,控制平面通常确定要如何路由数据(例如,分组)(例如,数据的下一跳和该数据的外出端口),并且数据平面负责转发该数据。例如,控制平面通常包括一个或多个路由选择协议,这些协议与其它网络元件通信以交换路由,并基于一个或多个路由选择度量来选择那些路由。此外,控制平面通常还可包括ISO层2控制协议。
路由和邻接(adjacency)可被存储在控制平面上的一个或多个路由选择结构中。控制平面可用基于(一个或多个)路由选择结构的信息来对数据平面进行编程。例如,控制平面将邻接和路由信息编程到数据平面上的一个或多个转发结构中。数据平面在转发业务时使用这些转发和邻接结构。
通常,网络元件包括一个或多个线路卡的集合、一个或多个控制卡的集合以及可选的一个或多个服务卡(有时称为资源卡)的集合。这些卡能通过一个或多个互连机制耦合在一起。线路卡的集合可构成数据平面,而控制卡的集合可提供控制平面并通过线路卡与外部网络元件交换分组。服务卡的集合能提供专门的处理。
节点可在网络元件中实现。物理节点可直接在网络元件上实现,而虚拟节点可以是在网络元件上实现的软件抽象以及可能的硬件抽象。从而,多个虚拟节点可在单个网络元件上实现。
在其方面之一,本文中提出的技术涉及一种用于通过最大冗余树MRT在最大不相交路径上从多个源向多个目的地转发网络业务的方法。该方法在网络的路径计算元件PCE中实现多点到多点功能性的网络元件900中实现,其中该网络包括多个网络元件。
参考图4,现在将描述第一实施例。图4图示了由网络元件900执行的方法。为网络计算110了几乎有向无环图ADAG。ADAG是所述网络的图抽象,其中多个网络元件是所述ADAG的顶点,并且连接多个网络元件的链路是ADAG的有向边。ADAG具有任意根。
ADAG被用于使用上述已知的MRT计算方法来计算130沿MRT的下一跳。MRT计算方法在RFC7811和RFC7812中被进一步描述。
此后,确定150所计算的MRT中不相交的一个或多个有效路径对。只有那些不相交的(一个或多个)路径对被确定为有效。当有多个源和多个目的地时,可能有几个可能的路径对。然而,它们中并不是所有的都是不相交的,而是至少一对总是不相交的。因此,不相交的(一个或多个)路径对被确定并因此有效。只有不包括矛盾的(一个或多个)路径对才有效。
最后,当已经确定了所计算的MRT中不相交的(一个或多个)有效路径对时,通过使用(一个或多个)MRT的(一个或多个)有效路径对来转发170网络业务。
不像RFC7811中描述的方法,其描述了一种用于找到以每个节点为根的MRT的方式以及一种将这些MRT用于找到任何单个源和单个目的地之间的两个不相交路径的方式,所提出的方法公开了一种进一步开发的方法,其可使用MRT来找到多个源和多个目的地之间的不相交路径。因而,提供了一种用于在具有基于地址的路由选择的多源到多目的地系统中提供冗余的解决方案。由于所提出的方法允许多源到多目的地系统找到并使用不相交的路径,因此能实现改进的冗余,并相应地实现更安全的系统。由于网络故障导致不可用的风险可被降低,并且由于网络故障导致系统停机的时间也可相应地减少。因此,可实现更高的盈利性和可靠性。
在一个示例性实施例中,网络业务可从两个源转发到两个目的地。先前描述了这种用例的一个示例,即当源/目的地可以是可移动的并且实体可被远程控制时。为了使这种系统得以给该系统的所有组件提供1+1保护,该系统可包括可能在不同的频率上使用具有重叠覆盖的两个不同的基站D1、D2的两个独立的无线电连接。从而,该系统可包括两个源(控制器S1、S2)和两个目的地(基站D1、D2)。因而,通过应用所提出的方法,所描述的用例成为可能。
下文将参考图5描述一些实施例。在一些实施例中,网络的图抽象是非2连接图。在这些实施例中,由于特殊角情况,用来自RFC7811的已知方法计算130 MRT的步骤不直接适用。在图6中示出了不是两个连接的图的说明性示例。该图是非2连接图,因为在从顶部到底部的任何路径中都需要节点I,或者反之亦然。因而,节点I是切割顶点。该图包括两个子图。上部子图包括节点I、G、P、H、Q和R,而下部子图包括节点I、J、K、A和B。然而,这些子图是2连接的。
对于非2连接图,不存在ADAG。相反,存在广义几乎有向无环图GADAG。在图6中所图示的GADAG以R为根,两个源是A和B,而两个目的地是P、Q。因而,两个目的地P和Q在不同于两个源A和B的另一个块中。通过使用从现有技术(例如,RFC7811)已知的方法,路径可被选择使得蓝色路径是到I的蓝色路径(切割顶点朝向它们)以及然后从I到P和Q的蓝色路径,而红色路径是到I的红色路径以及从I到P和Q的红色路径。
尽管有可能选择将分组发送到哪个目的地的哪个源,但在本示例中,A必须使用红色树,而B必须使用蓝色树,否则即使都到节点I,两条路径也不会不相交。挑战在于,P不与I排序,但是Q被排序。从而,从I到P的蓝色下一跳和到Q的红色下一跳都是G,而到P的红色下一跳和到Q的蓝色下一跳都是H。出现困难是因为,其它块中的节点不区分与它们使用的切割顶点排序或不排序的节点。在本文中公开的实施例之一中,这个挑战能通过开发节点从GADAG中计算MRT的方式来解决。
在该实施例中,当图抽象是非2连接图时,为网络计算115广义几乎有向无环图GADAG。以与RFC7811中描述的已知方法相同的方式计算生成GADAG。因而,多个网络元件是GADAG的顶点,并且连接多个网络元件的链路是GADAG的有向边。GADAG具有任意全局根和一个或几个局部根。
此后,通过将除所述任意全局根之外的所述局部根虚拟地复制成两个根来将GADAG转换120成几乎有向无环图ADAG。此后,复制的局部根之间的边可被添加到GADAG。对于L不是局部根的块中的每个节点X,可添加边或,其中在原始GADAG中分别存在边X→L或L→X。对于具有局部根L的块中的节点Y,如果分别存在边L→Y或Y→L,则添加边或。因此,GADAG被转换成ADAG。此后,通过在该ADAG上使用RFC7811中的方法来计算130沿MRT的下一跳。通过使用先前描述的方法,总是构造有效的ADAG,并且因此,除了切割顶点之外,路径被保证不相交。
先前描述的方法可被应用于图6中所图示的GADAG。图7示出了所得到的ADAG版本。局部根I被分成两个,I-和I+,并且节点之间的边如前所述被添加。
通过提供一种可能能够计算网络的GADAG并然后将GADAG转换成ADAG的方法,有可能也在非2连接网络中使用所描述的方法。因此,例如由于网络故障,有可能也为非2连接的网络提供冗余。因此,能提供一种甚至更有用的方法,该方法可在具有基于地址的路由选择的多源到多目的地系统中继续提供冗余。因此,可实现更安全的系统,由于网络故障导致不可用的风险可进一步降低,并且由于网络故障导致系统可能停机的时间可相应地进一步减少。因此,能实现更高的可靠性。
在一个实施例中,通过确定140 ADAG中多个源和多个目的地之间的所有可能关系来计算130 MRT。还如前所述,任何两个节点N、M之间的排序可采取三种可能的状态:N能小于或大于M,或者N和M能是无序的;N<M、N>M或N≸M。为了简单起见,假设可能有四个节点A、B、P和Q,其中A和B可以是源,而P和Q可以是目的地。由于四个节点可形成6对(A和B;A和P;A和Q;B和P;B和Q;以及P和Q),因此有36=729种可能的情况。
在一个实施例中,为了找出所有节点之间的排序,从每个网络元件执行两次图遍历直到找到所有网络元件之间的排序。图遍历是指拜访(更新或检查)图中每个顶点的过程。可使用图遍历来找到肯定小于和肯定大于它的节点。
在先前描述的示例性实施例中,当网络业务可从两个源被转发到两个目的地时,可通过从四个网络元件中的三个执行六次图遍历算法来确定关系。即,为了找到所有四个节点(两个源和两个目的地)之间的关系,需要3*2=6次图遍历。从第四节点可能不需要图遍历,因为如果A<B,则B>A跟随。该图遍历例如可以是最短路径优先(SPF)、广度优先搜索(breath first search)(BFS)或深度优先搜索(DFS)。取决于情形,可选择最合适的图遍历。
在一些实施例中,参考图5,通过对所计算的MRT使用矛盾和/或排序证据来确定150不相交的(一个或多个)有效路径对。在一个实施例中,矛盾和排序证据两者被使用。在另一个实施例中,仅使用矛盾证据。在又一个实施例中,仅使用排序证据。
执行矛盾证据的方法是要作出假设并证明该假设是错误的,这相应地意味着该路径对是不相交的。矛盾证据间接地假设路径不是不相交的,即,假设存在至少一个节点N,它是公共的。从而,矛盾证据假设还有更多排序。那些顺序可能引起自相矛盾。自相矛盾或者是关系中的循环,即,A<B和A>B同时,或者是两个无序的节点变成有序的,即A<B,而按最初的假设,A不与B排序。因而,如果是这种情况,则路径包括公共节点的假设为假,并且因此,该路径对是不相交的。因此,通过使用矛盾证据,可证明路径上不存在公共节点,并且该路径对是不相交的。
执行排序证据的方法使用所计算的MRT。如果有两条路径A->P(A<P)和B->Q(B<Q),并且已知P<B,那么在两条路径中不能存在节点N。A<N<P和B<N<Q两者不能为真。因而,区间(interval)[A,P]中的节点必须低于区间[B,Q]中的所有节点。因此,通过使用排序证据,可证明两条路径中的节点都是有序的,并且路径对是不相交的。
通过对所计算的MRT使用矛盾和/或排序证据来确定不相交的(一个或多个)有效路径对,总是可找到不相交的一个或多个路径对。有可能以可靠的方式确定多个源和多个目的地之间哪个(哪些)路径对是不相交的。
在其示例性实施例之一中,该方法附加地包括预先计算并在表中存储100多个源和多个目的地之间的所有可能的(一个或多个)路径对。然后可通过在预存表中执行查找以检索不相交的任何(一个或多个)路径对来确定150(一个或多个)有效路径对。因此,当在现实世界中需要解决方案时,找到网络中的关系,并且然后在预存表中执行查找。通过预先计算并在表中提前存储100多个源和多个目的地之间的所有可能的(一个或多个)路径对,在运行中(on-the-fly)需要更少的计算资源,因为计算已经被执行。在一些实施例中,(一个或多个)有效路径对的确定150可能比它们不是预先计算的情况更快,因为(一个或多个)有效路径对是直接从表中接收的。
有时,确定存在多个可接受的路径对。在这些情况下,该方法可附加地包括使用平局决胜(tie-breaking)规则来确定性地选择可接受的路径对之一。这个平局决胜规则可能将其它优化因素考虑进去。因而,通过允许该方法使用平局决胜规则,有可能针对当前条件优化该方法,这将使该方法更加动态和可定制。
在一个实施例中,该方法附加地包括选择要属于哪个源的哪条路径。因此,实现了一种动态方法,该方法有可能在要转发网络业务时将当前条件考虑进去。
该方法的所有公开实施例一般可能都要求来自网络中进行路径计算的所有节点的支持,这意味着对现有设备的改变。在软件定义的网络(SDN)中,这可能很简单,因为有一个或几个节点、控制器需要被改变。
对于分布式网络,其中每个节点都有它自己的控制平面软件,对于节点可能有一种方式来协商MRT计算方法。如果所有节点都支持所提出的方法,它们就能使用它。RFC7812和802.1Qca通常支持MRT简档(profile),该简档包括MRT计算方法的标识符,从而添加新的MRT方法变体是可能的。
然而,如果网络包括不能执行该提出的方法的节点,则可使用变通方法。注意,问题仅出现于当两条路径使用至少两个公共块,并且它们通过切割顶点进入它们的最终公共块时,该切割顶点不是局部根,并且其与该块中的目的地之一精确排序。如果这个最终切割顶点支持多源到多目的地的用例,则它可能会识别出该问题,并且对于那些它不与其排序的目的地,将所有分组从蓝色树放到红色树,并且反之亦然。
有基于控制平面的类似解决方案,来改变切割顶点处的链路状态通告(linkstate advertisement)。由于没有其它路径,因此所有控制平面消息都必须经过同一切割顶点。如果切割顶点对于它不与其排序的目的地交换属于红色树和蓝色树的数字(地址),那么先前的交换将由源完成。在这种情况下,只需要改变切割顶点。
如果最终切割顶点不支持多源到多目的地用例,则可使用遂穿(tunneling)。识别角情况的源可封装其分组,并将切割顶点设置为外部分组的目的地。切割顶点接收分组,将其解封装,并且分组可继续其沿正确树的路径。
当中央实体正在计算GADAG,并且剩余的节点将该GADAG用于选择沿树的下一跳时,对于802.1Qca有一种特殊情形。这个中央实体可将GADAG转换成ADAG,并且将其发送出去。这也意味着需要向网络添加伪节点,但它是可解决的。
根据第二方面,提供了一种用于实现根据第一方面的方法的网络元件。为此,提出了一种用于通过最大冗余树MRT在最大不相交路径上将网络业务从多个源转发到多个目的地的网络元件。
图8公开了被配置成执行上述方法的网络元件900的示例实现。为此,提出了一种用于通过最大冗余树MRT在最大不相交路径上将网络业务从多个源转发到多个目的地的网络元件。网络元件包括处理器910和存储器920。网络元件900可将路径计算软件924作为指令托管在存储器920内,并且可充当网络节点并且充当路径计算元件PCE。存储器920可包括由处理器910可执行的指令,由此网络元件900可操作以:计算网络的几乎有向无环图ADAG,其中ADAG是网络的图抽象。多个网络元件是ADAG的顶点,并且连接多个网络元件的链路是ADAG的有向边。ADAG具有任意根。存储器920可进一步包括由处理器910可执行的指令,由此网络元件900可操作以使用ADAG来计算沿MRT的下一跳。存储器920可进一步包括由处理器910可执行的指令,由此网络元件900可操作以确定所计算的MRT中不相交的(一个或多个)有效路径对。存储器920可进一步包括由处理器910可执行的指令,由此网络元件900然后可操作以使用MRT的(一个或多个)有效路径对来转发网络业务。
网络元件900可包括数据平面,该数据平面包括交换组构970、多个数据卡960、665、至少一接收器(Rx)接口930和至少一传送器(Tx)接口940。Rx接口930和Tx接口940与网络上的链路通过接口连接,数据卡960和965对通过接口930和940接收到的数据执行功能,并且交换组构970在数据卡960、965和/或其它输入/输出(I/O)卡之间交换数据。网络元件900还可包括控制平面,控制平面可包括一个或多个处理器910,该处理器包括被配置成转发网络业务的控制逻辑。
在一些实施例中,网络的图抽象是非2连接图。在这些实施例中,存储器920包括由所述处理器910可执行的指令,由此所述网络元件进一步可操作以通过计算网络的广义几乎有向无环图GADAG来计算网络的ADAG,并且然后通过将除任意全局根以外的局部根虚拟地复制成两个根,从而将GADAG转换为几乎有向无环图ADAG。GADAG是网络的图抽象,其中多个网络元件是GADAG的顶点,并且连接多个网络元件的链路是GADAG的有向边,并且其中GADAG具有任意全局根和一个或几个局部根。
在一个实施例中,存储器920包括由处理器910可执行的指令,由此所述网络元件900进一步可操作以通过确定ADAG中多个源和多个目的地之间的所有可能关系来计算MRT。网络元件可进一步可操作以通过从每个网络元件执行两次图遍历算法直到找到所有网络元件之间的排序来确定所述关系。
在先前描述的示例性实施例中,当网络业务从两个源转发到两个目的地时,存储器920包括由处理器910可执行的指令,由此网络元件900进一步可操作以通过从所述四个网络元件中的三个执行六次图遍历算法来确定所述关系。
在一些实施例中,网络节点900内的存储器920包括由处理器910可执行的指令,由此网络元件900进一步可操作以通过对所计算的MRT使用矛盾和/或排序证据来确定不相交的(一个或多个)有效路径对。在一个实施例中,矛盾和排序证据两者都被使用。在另一个实施例中,仅使用矛盾证据。在又一个实施例中,仅使用排序证据。
在其示例性实施例之一中,存储器920包括由处理器910可执行的指令,由此网络元件900进一步可操作以预先计算并在网络节点900的存储器920内的数据库923中的至少一个内的表中存储多个源和多个目的地之间的所有有效的可能的(一个或多个)路径对。网络元件900然后可进一步可操作以通过在预存表中执行查找以检索不相交的任何(一个或多个)路径对来确定(一个或多个)有效路径对。
有时,网络元件900确定存在多个可接受的路径对。存储器920包括由处理器910可执行的指令,由此网络元件900进一步可操作以当存在多个可接受路径对时,使用平局决胜规则来确定性地选择可接受路径对之一。
在一个实施例中,网络元件900进一步可操作以选择要属于哪个源的哪条路径。因此,当要转发网络业务时,网络节点900可将当前条件考虑进去。
图9是图示根据本发明的一个实施例的两个网络元件的框图,这两个网络元件实现了用于通过MRT在最大不相交路径上从多个源向多个目的地转发网络业务的方法。这两个网络元件可包括充当网络节点的网络元件1900和充当路径计算元件PCE 1950的另一个网络元件。如图所示,在网络元件1900和PCE 1950之间可存在通信。图9中图示的网络元件1900包括数据平面和控制平面。数据平面可包括交换组构1970、多个数据卡1960、1970、至少一接收器(Rx)接口1930和至少一传送器Tx接口1940。Rx接口1930和Tx接口1940可与网络上的链路通过接口连接。数据卡1960和1970可对通过接口1930、1940接收到的数据执行功能。交换组构1970在数据卡和类似的I/O卡之间交换数据。网络元件1900还可包括控制平面,该控制平面包括一个或多个处理器1910,该处理器包括控制逻辑,该控制逻辑被配置成通过MRT在最大不相交的路径上将网络业务从多个源转发到多个目的地。其它过程也可在控制逻辑中实现。网络元件1900可进一步包括可存储软件的存储器1920和一个或多个数据库1923。协议栈1922可存储由网络元件1900实现的协议和/或方法。
耦合到网络元件1900的PCE 1950可包括耦合到存储器1952的一个或多个处理器1951。处理器1951可包括执行路径计算操作和对于网络元件1900的指令的操作的逻辑。存储器1952可包括路径计算软件1953,该软件适用于计算如本文中所述的ADAG和MRT。存储器1952可包括数据库1954。数据库可包括由网络元件存储的数据库1923的副本,并且可包括另外的数据库,例如以用于ADAG和/或MRT计算。在一个实施例中,网络元件1900和PCE 1950可以是层2网络的部分,并且它们可与其它网络元件通信地耦合。
图10是图示根据第三、第四和第五方面的一个网络元件的框图。根据第三方面,根据本发明的一个实施例,网络元件2900适于实现用于通过MRT在最大不相交的路径上从多个源向多个目的地转发网络业务的方法。网络节点2900适于计算网络的几乎有向无环图ADAG。ADAG是所述网络的图抽象,其中所述多个网络元件是所述ADAG的顶点,并且连接多个网络元件的链路是ADAG的有向边。ADAG具有任意根。网络元件2900进一步适于使用ADAG来计算沿最大冗余树MRT的下一跳;确定所计算的MRT中不相交的(一个或多个)有效路径对;并使用MRT的(一个或多个)有效路径对来转发网络业务。
根据图10的网络元件2900可充当包括多个网络元件的网络的PCE和网络节点。网络元件2900包括计算单元2910、计算单元2930、确定单元2950和转发单元2970。可选地,网络元件2900可附加地包括转换单元2920、确定单元2940和选择单元2960。
根据第四方面,网络元件2900包括适于计算网络的几乎有向无环图ADAG的部件。ADAG是所述网络的图抽象,其中多个网络元件是所述ADAG的顶点,并且连接多个网络元件的链路是ADAG的有向边。ADAG具有任意根。网络元件2900进一步包括适于使用ADAG来计算沿最大冗余树MRT的下一跳的部件;适于确定所计算的MRT中不相交的(一个或多个)有效路径对的部件;以及适于使用MRT的(一个或多个)有效路径对来转发网络业务的部件。
根据第五方面,网络元件2900的计算单元2910是被配置成计算网络的几乎有向无环图ADAG的第一模块。ADAG是所述网络的图抽象,其中所述多个网络元件是所述ADAG的顶点,并且连接多个网络元件的链路是ADAG的有向边。ADAG具有任意根。计算单元2930是被配置成使用所述ADAG来计算沿最大冗余树MRT的下一跳的第二模块。确定单元2950是被配置成确定所计算的MRT中不相交的(一个或多个)有效路径对的第三模块。网络元件2900的转发单元2970是被配置成使用MRT的(一个或多个)有效路径对来转发网络业务的第四模块。
根据第六方面,提供了一种包括指令的计算机程序,所述指令当在至少一个处理器上执行时,可使所述至少一个处理器实行根据第一方面的方法。
根据第七方面,提供了一种包括第三方面的计算机程序的载体,其中该载体是电子信号、光信号、无线电信号或计算机可读存储介质之一。
各种详细的实现备选方案
在下面,为了便于读者的理解,现在将结合三个说明性示例来描述本公开。在下面,N→M将被用于描述N<M,并且N→M也将被用于它使理解更简单的地方。第二记号示出了关系描述了原始ADAG中的路径,因而,相同记号也将被用于描述路径N→M。
示例情况1
本文中将在下面结合示例描述所公开的方法。在这种情况下,网络是2连接的,并且两个源和两个目的地都不是ADAG的根。A和B是两个源,并且P和Q是两个目的地。假设A更喜欢使用P,而B更喜欢使用Q,然而,有时可能需要交换目的地以便提供不相交的路径。
如上所述,对于四个节点,它们中的任何两个之间可存在排序,这是由网络的ADAG定义的。因此,任何两个N、M节点之间的关系都能采取三种状态:N能小于或大于M,或者N和M能是无序的;N<M,N>M或N≸M。四个节点可形成6对,并且因而,有36=729种情况。这些情况中的大多数自相矛盾,但是然而,仍然有219个有效情况。为了找到最完整的解决方案,必须对所有这些情况进行检查,并且必须逐一找到它们中每个的证据。
参考图11图示了一示例。在图11中,A小于B,A不与P和Q排序,B大于P且小于Q,并且P小于Q。因此,A<B,A≸P,A≸Q,B>P,B<Q和P<Q。对于无序的节点对,没有明确绘制出边。
有可能这是无效的配置,因此,首先检查它是否自相矛盾。排序关系是传递性的,即A<B和B<Q意味着A<Q,即如果存在从A到Q的路径,则A<Q。为了找到自相矛盾,首先通过从每个节点执行例如广度优先搜索(BFS)来找到所有的关系。因此,发现A<Q,但由于最初A≸Q,这意味着图11是一个无效的配置。
在图12a中图示了类似但有效的配置。在图12a中,A不与B排序,A不与P排序,A不与Q排序,B大于P且小于Q,并且P小于Q。因此,A≸B,A≸P,A≸Q,B>P,B<Q,且P<Q。
由于A和P彼此不排序,因此沿两个树从A到P的路径将使用背景技术中描述的规则#3,即蓝色路径递减直到它到达比P小的节点XA,并且红色路径递增直到它到达比P大的节点YA。这些节点和属于它们的关系被添加到图,也如图12b所图示的那样。事实上,如果还添加了关系XA<Q或XA<YA,则图12b中的图示将是正式完整的,但是由于这些关系在这个说明性示例中并不重要,并且会使图过于复杂,所以它们被省去了。
为了证明从A到P的蓝色路径和从B到Q的蓝色路径是不相交的,使用排序和矛盾证据。蓝色路径A到P是路径,并且蓝色路径从B到Q是B→Q递增路径。
用矛盾证据,首先证明了路径A→XA与B→Q是不相交的。根据矛盾证据,间接地假设情况并非如此,即,存在某一节点N,对于XA<N<A的情况,N在XA→A有向路径上,而对于B<N<Q的情况,N在B→Q有向路径上。如果那为真,则这意味着XA<Q和B<A。然而,由于A≸B是初始假设,所以没有这样的N能存在。因而,矛盾证据确定路径是不相交的。
用排序证据,显示了路径XA→P和B→Q是不相交的。由于路径XA→P中的所有节点都在区间[XA,P]中,并且路径B→Q中的所有节点都在区间[B,Q]中且P<B,所以这两条路径必须是节点不相交的。因而,排序证据确定路径是不相交的。
一般来说,该算法在两个源和两个目的地之间采用初始6个排序。如果A和P是无序的,XA和YA被添加到这些节点,并且排序为A>XA,P>XA,A<YA,P<YA。类似地,如果B和Q是无序的,则添加XB和YB以及排序B>XB,Q>XB,B<YB,Q<YB。所计算的关系图/关系集只是网络的生成ADAG的一部分。因而,对于一般算法,将根节点添加到关系中。正常情况下,根既是最大节点又是最小节点,但是这将给我们的验证引入一些角情况,因此更简单的是,将根节点虚拟地分成Rmin和Rmax,将这两个节点添加到先前节点,并且对于每个节点,N具有关系Rmin<N和N<Rmax。
当添加所有需要的节点和关系时,如前所述扩展关系集:如果对于任何节点N<M且M<K,则添加关系N<K。这可例如由BFS执行。如果在相对于原始6个关系无序的节点之间形成关系,或者如果对于某个节点对N、M,N<M与N>M同时,则输入情况无效。通过检查全部729种情况,发现它们中的219个是有效的。
当输入情况有效时,从A到P和B到Q的蓝色路径和红色路径如下;必须检查这些子路径的不相交属性:
对于A和P:
1.如果A<P:
2. 如果A>P:
3.如果
类似地,对于B和Q:
1.如果B<Q:
2. 如果B>Q:
3. 如果:
例如,当时,但肯定是,沿路径A→R→P发送分组。由于描述了Rmin<A和P<Rmax以及要检查的关系,所以在另一个方向上使用了箭头。
因为A和B两者都有蓝色和红色路径,所以有四个可能的路径对,并且必须逐一检查它们中的全部。如果某个节点包括多于一个的关系/子路径,则每个子路径相对每个其它子路径进行检查。如果所有子路径都不相交,则两条路径就不相交。如前所述,通过使用矛盾和排序证据,两个子路径被确定为不相交的。
作为示例,考虑A>P和B>Q。为了检查(蓝色,蓝色)路径对是否可接受,需要检查(A→Rmax,B→Rmax)、(A→Rmax,Rmin→Q)、(Rmin→P,B→Rmax)和(Rmin→P,Rmin→Q)子路径/关系对是否不相交。为了判定这一点,使用了先面描述的矛盾和/或排序证据。
示例情况2
现在参考图13描述另一个示例性实施例。图13图示了网络。第一受控实体被连接到基站X和Y,使得节点A向X发送分组,而B向Y发送分组。受控实体在位置1 Pos#1。然而,该实体可移动到位置2 Pos#2,并释放(loose)与X的连接。然后,可使用基站Y和Z来到达该实体。仅针对A和X执行改变将是想要的,但是那具有不可能找到从A到Z和B到Y的不相交路径的后果。因而,必须交换Y和Z,并且必须找到从A到Y和B到Z的路径。注意,这种现象是普遍的:在某些情况下,有可能不能针对任何路径对证明那些路径是不相交的,但在这种情况下,交换目的地可能总是有帮助的。
当存在多个可接受的路径对时,必须使用某个平局决胜规则来确定性地从它们中选择一个,这可将其它优化因素考虑进去。而且,如果交换P和Q不是问题,那么也能选择“交换的”路径对。唯一的约束是A和B两者都必须选择相同的路径对,否则不能保证它们不相交。
示例情况3
在先前的示例中,假设两个源或两个目的地都不是ADAG的根,并且有两个源和两个目的地节点。在这个示例中,考虑到情况不是这样的时候。
尽管对于根来说,调整先前的方法来模拟来自根的路径将是一种有效的方法,但是这不是必需的。该根只是一个节点,并且先前的证据从未假设DAG模型中节点中的两个是不相同的。唯一的不同是该根由两个节点Rmin和Rmax表示,使得它既能是最小的节点又能是最大的节点。也就是说,当根R是源之一时,必须考虑A小于任何其它节点和A大于任何其它节点时的情况。在这两种情况下,A与所有其余3个节点排序。因此,可能解决方案的并集就是整个解决方案。当根是目的地之一(让它是目的地P)时,情形相同:举个例子,当P小于以及当P大于所有其它节点时,它们的并集就是解决方案。
为了完整起见,考虑一个源到两个目的地和两个源到一个目的地的问题。注意,在这些情况下,两个源中的任一个或两个目的地中的任一个是相同节点,即,这些是主焦点的简并情况。该问题可用以下简单方式来解决:在ADAG中,把节点X分成两个X-和X+节点,使得有边X-→X+,所有进入X的边现在都进入X-,并且所有从X出去的边现在都从X+出去。如果对于某个Y,Y≸X,令Y≸X-和Y≸X+。注意,所得到的图仍将是ADAG图,并且节点已经虚拟地翻倍。因此,当只有一个源或只有一个目的地时(令这是节点X),虚拟地使其翻倍(创建X+和X-),添加关系X-<X+,对于任何关系X<Y,添加X+<Y,对于任何关系Y<X,添加Y<X-,以及对于任何Y≸X,添加Y≸X-和Y≸X+。现在,有两个源和两个目的地。
在当根R是唯一源或唯一目的地时的情况下,使用这两种技巧。首先取Rmin,将其分成两个,并找到它的解决方案,也就是说,两个所得到的虚拟节点都将低于其它节点,并且它们中的一个甚至将比另一个更低。接下来,取Rmax,并做同样的事情。最后,取解决方案的并集。
本文中描述的各种实施例可提供几个优点。通过计算网络的ADAG,使用该ADAG来计算沿MRT的下一跳,确定所计算的MRT中不相交的一个或多个有效路径对,并且然后使用MRT的(一个或多个)有效路径对来转发网络业务,有可能通过MRT在最大不相交路径上将网络业务从多个源转发到多个目的地。使用基于地址的路由选择的益处是,只有源需要知道这些不相交路径,其它节点只安装MRT下一跳。只有源需要知道正确的树,因为它们使用例如正确的IP地址来标记分组。
在上文的详细描述中,出于解释而非限制的目的,阐述了特定细节,诸如特定架构、接口、技术等,以便提供对本发明各种实施例的透彻理解。在一些实例中,已经省略了对众所周知的装置、电路和方法的详细描述,以免用不必要的细节模糊了本文中公开的实施例的描述。本文中叙述本文中公开的原理、方面和实施例的所有陈述以及其特定示例旨在包括其结构和功能等同物两者。附加地,意图是,这样的等同物既包括当前已知的等同物又包括将来开发的等同物,即,所开发的执行相同功能的任何元件,而不管结构如何。从而,例如,由本领域技术人员将理解,本文中的框图能表示体现实施例原理的说明性电路或其它功能单元的概念视图。
尽管上面已经参考特定实施例描述了本发明,但是它不旨在受限于本文中阐述的特定形式。因此,本发明仅受所附权利要求的限制,并且在所附权利要求的范围内,除上面特定实施例之外的其它实施例同样是可能的。
Claims (22)
1.一种用于通过最大冗余树MRT在最大不相交路径上将网络业务从多个源转发到多个目的地的、在网络的路径计算元件PCE中实现多点到多点功能性的网络元件中实现的方法,其中所述网络包括多个网络元件,所述方法包括:
由所述网络元件计算(110)所述网络的几乎有向无环图ADAG,其中所述ADAG是所述网络的图抽象,其中所述多个网络元件是所述ADAG的顶点,并且连接所述多个网络元件的链路是所述ADAG的有向边,并且其中所述ADAG具有任意根;
由所述网络元件使用所述ADAG来计算(130)沿MRT的下一跳;
由所述网络元件确定(150)所计算的MRT中不相交的一个或多个有效路径对;以及
由所述网络元件使用所述MRT的所述一个或多个有效路径对来转发(170)网络业务,
其中当所述网络的所述图抽象是非2连接图时,所述网络的所述ADAG的计算(110)包括:
由所述网络元件计算(115)所述网络的广义几乎有向无环图GADAG,其中所述GADAG是所述网络的图抽象,其中所述多个网络元件是所述GADAG的顶点,并且连接所述多个网络元件的链路是所述GADAG的有向边,并且其中所述GADAG具有任意全局根和一个或几个局部根;以及
由所述网络元件通过将除所述任意全局根之外的所述局部根虚拟地复制成两个根将所述GADAG转换(120)成几乎有向无环图ADAG。
2.如权利要求1所述的方法,其中计算(130)所述MRT包括确定(140)所述ADAG中所述多个源和所述多个目的地之间的所有可能关系。
3.如权利要求2所述的方法,其中确定(140)所述关系包括从每个网络元件执行两次图遍历算法直到找到所有网络元件之间的排序。
4.如权利要求2所述的方法,其中所述网络业务从两个源被转发到两个目的地,并且其中所述确定(140)所述关系包括从四个网络元件中的三个执行六次图遍历算法。
5.如权利要求1所述的方法,其中通过对所述所计算的MRT使用矛盾和/或排序证据来执行确定(150)不相交的一个或多个有效路径对。
6.如权利要求1所述的方法,其中所述多个源和所述多个目的地之间的所有可能的一个或多个路径对被预先计算并存储(100)在表中。
7.如权利要求6所述的方法,其中确定(150)一个或多个有效路径对进一步包括在预存表中执行查找以检索不相交的任何一个或多个路径对。
8.如权利要求1所述的方法,其中当存在多个可接受路径对时,所述方法进一步包括使用平局决胜规则来确定性地选择所述可接受路径对之一。
9.如权利要求1所述的方法,其中所述方法进一步包括由所述网络元件选择(160)要属于哪个源的哪条路径。
10.一种用于通过最大冗余树MRT在最大不相交路径上将网络业务从多个源转发到多个目的地的、在网络的路径计算元件PCE中实现多点到多点功能性的网络元件(900),其中所述网络包括多个网络元件,所述网络元件(900)包括:
处理器(910);以及
存储器(920),所述存储器(920)包括由所述处理器(910)可执行的指令,由此所述网络元件(900)可操作以:
计算所述网络的几乎有向无环图ADAG,其中所述ADAG是所述网络的图抽象,其中所述多个网络元件是所述ADAG的顶点,并且连接所述多个网络元件的链路是所述ADAG的有向边,并且其中所述ADAG具有任意根;
使用所述ADAG来计算沿MRT的下一跳;
确定所计算的MRT中不相交的一个或多个有效路径对;以及
使用所述MRT的所述一个或多个有效路径对来转发网络业务,
其中当所述网络的所述图抽象是非2连接图时,所述存储器(920)包括由所述处理器(910)可执行的指令,由此所述网络元件(900)进一步可操作以通过以下方式计算所述网络的所述ADAG:
计算所述网络的广义几乎有向无环图GADAG,其中所述GADAG是所述网络的图抽象,其中所述多个网络元件是所述GADAG的顶点,并且连接所述多个网络元件的链路是所述GADAG的有向边,并且其中所述GADAG具有任意全局根和一个或几个局部根;以及
通过将除所述任意全局根之外的所述局部根虚拟地复制成两个根将所述GADAG转换成几乎有向无环图ADAG。
11.如权利要求10所述的网络元件,其中所述存储器(920)包括由所述处理器(910)可执行的指令,由此所述网络元件(900)进一步可操作以通过确定所述ADAG中所述多个源和所述多个目的地之间的所有可能关系来计算所述MRT。
12.如权利要求11所述的网络元件,其中所述存储器(920)包括由所述处理器(910)可执行的指令,由此所述网络元件(900)进一步可操作以通过从每个网络元件执行两次图遍历算法直到找到所有网络元件之间的排序来确定所述关系。
13.如权利要求11所述的网络元件,其中所述网络业务从两个源被转发到两个目的地,并且其中所述存储器(920)包括由所述处理器(910)可执行的指令,由此所述网络元件(900)进一步可操作以通过从四个网络元件中的三个执行六次图遍历算法来确定所述关系。
14.如权利要求10所述的网络元件,其中所述存储器(920)包括由所述处理器(910)可执行的指令,由此所述网络元件(900)进一步可操作以通过对所述所计算的MRT使用矛盾和/或排序证据来确定不相交的一个或多个有效路径对。
15.如权利要求10所述的网络元件,其中所述存储器(920)包括由所述处理器(910)可执行的指令,由此所述网络元件(900)进一步可操作以预先计算并在表中存储所述多个源和所述多个目的地之间的所有有效的可能的一个或多个路径对。
16.如权利要求15所述的网络元件,其中所述存储器(920)包括由所述处理器(910)可执行的指令,由此所述网络元件(900)进一步可操作以通过在预存表中执行查找以检索不相交的任何一个或多个路径对来确定一个或多个有效路径对。
17.如权利要求10所述的网络元件,其中所述存储器(920)包括由所述处理器(910)可执行的指令,由此所述网络元件(900)进一步可操作以当存在多个可接受路径对时,使用平局决胜规则来确定性地选择所述可接受路径对之一。
18.如权利要求10所述的网络元件,其中所述存储器(920)包括由所述处理器(910)可执行的指令,由此所述网络元件(900)进一步可操作以选择要属于哪个源的哪条路径。
19.一种用于通过最大冗余树MRT在最大不相交路径上将网络业务从多个源转发到多个目的地的、在网络的路径计算元件PCE中实现多点到多点功能性的网络元件(2900),其中所述网络包括多个网络元件,所述网络元件(2900)适于:
计算所述网络的几乎有向无环图ADAG,其中所述ADAG是所述网络的图抽象,其中多个网络元件是所述ADAG的顶点,并且连接所述多个网络元件的链路是所述ADAG的有向边,并且其中所述ADAG具有任意根;
使用所述ADAG来计算沿MRT的下一跳;
确定所计算的MRT中不相交的一个或多个有效路径对;以及
使用所述MRT的所述一个或多个有效路径对来转发网络业务,
其中当所述网络的所述图抽象是非2连接图时,计算所述网络的所述ADAG包括:
计算(115)所述网络的广义几乎有向无环图GADAG,其中所述GADAG是所述网络的图抽象,其中所述多个网络元件是所述GADAG的顶点,并且连接所述多个网络元件的链路是所述GADAG的有向边,并且其中所述GADAG具有任意全局根和一个或几个局部根;以及
通过将除所述任意全局根之外的所述局部根虚拟地复制成两个根将所述GADAG转换(120)成几乎有向无环图ADAG。
20.一种用于通过最大冗余树MRT在最大不相交路径上将网络业务从多个源转发到多个目的地的、在网络的路径计算元件PCE中实现多点到多点功能性的网络元件(2900),其中所述网络包括多个网络元件,所述网络元件包括:
适于计算所述网络的几乎有向无环图ADAG的部件,其中所述ADAG是所述网络的图抽象,其中多个网络元件是所述ADAG的顶点,并且连接所述多个网络元件的链路是所述ADAG的有向边,并且其中所述ADAG具有任意根;
适于使用所述ADAG来计算沿MRT的下一跳的部件;
适于确定所计算的MRT中不相交的一个或多个有效路径对的部件;以及
适于使用所述MRT的所述一个或多个有效路径对来转发网络业务的部件,
其中当所述网络的所述图抽象是非2连接图时,计算所述网络的所述ADAG包括:
计算(115)所述网络的广义几乎有向无环图GADAG,其中所述GADAG是所述网络的图抽象,其中所述多个网络元件是所述GADAG的顶点,并且连接所述多个网络元件的链路是所述GADAG的有向边,并且其中所述GADAG具有任意全局根和一个或几个局部根;以及
通过将除所述任意全局根之外的所述局部根虚拟地复制成两个根将所述GADAG转换(120)成几乎有向无环图ADAG。
21.一种用于通过最大冗余树MRT在最大不相交路径上将网络业务从多个源转发到多个目的地的、在网络的路径计算元件PCE中实现多点到多点功能性的网络元件(2900),其中所述网络包括多个网络元件,所述网络元件包括:
第一模块(2910),所述第一模块(2910)被配置成计算所述网络的几乎有向无环图ADAG,其中所述ADAG是所述网络的图抽象,其中多个网络元件是所述ADAG的顶点,并且连接所述多个网络元件的链路是所述ADAG的有向边,并且其中所述ADAG具有任意根;
第二模块(2930),所述第二模块(2930)被配置成使用所述ADAG来计算沿MRT的下一跳;
第三模块(2950),所述第三模块(2950)被配置成确定所计算的MRT中不相交的一个或多个有效路径对;以及
第四模块(2970),所述第四模块(2970)被配置成使用所述MRT的所述一个或多个有效路径对来转发网络业务,
其中当所述网络的所述图抽象是非2连接图时,计算所述网络的所述ADAG包括:
计算(115)所述网络的广义几乎有向无环图GADAG,其中所述GADAG是所述网络的图抽象,其中所述多个网络元件是所述GADAG的顶点,并且连接所述多个网络元件的链路是所述GADAG的有向边,并且其中所述GADAG具有任意全局根和一个或几个局部根;以及
通过将除所述任意全局根之外的所述局部根虚拟地复制成两个根将所述GADAG转换(120)成几乎有向无环图ADAG。
22.一种已存储指令的计算机可读存储介质,所述指令当在至少一个处理器上被执行时,使所述至少一个处理器实行如权利要求1至9中任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2017/084203 WO2019120549A1 (en) | 2017-12-21 | 2017-12-21 | Method and apparatus for forwarding network traffic on maximally disjoint paths |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111801914A CN111801914A (zh) | 2020-10-20 |
CN111801914B true CN111801914B (zh) | 2023-04-14 |
Family
ID=60935850
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780098311.8A Active CN111801914B (zh) | 2017-12-21 | 2017-12-21 | 用于在最大不相交路径上转发网络业务的方法和设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11394638B2 (zh) |
EP (1) | EP3729746A1 (zh) |
CN (1) | CN111801914B (zh) |
WO (1) | WO2019120549A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112991749B (zh) * | 2021-05-13 | 2021-07-20 | 腾讯科技(深圳)有限公司 | 车辆违章识别方法与装置、介质及电子设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1839594A (zh) * | 2003-08-19 | 2006-09-27 | 株式会社Ntt都科摩 | 准确控制特设网络中的传输信息 |
CN103026668A (zh) * | 2010-08-16 | 2013-04-03 | 瑞典爱立信有限公司 | 用于胖树网络的自动化业务工程 |
CN103081416A (zh) * | 2010-09-08 | 2013-05-01 | 瑞典爱立信有限公司 | 以链路利用作为到平局打破机制中的反馈的多协议标签交换(mpls)的自动化业务工程 |
US8861340B1 (en) * | 2012-03-12 | 2014-10-14 | Juniper Networks, Inc. | Fast reroute using maximally redundant trees |
US9270426B1 (en) * | 2012-09-11 | 2016-02-23 | Juniper Networks, Inc. | Constrained maximally redundant trees for point-to-multipoint LSPs |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101207560A (zh) | 2006-12-18 | 2008-06-25 | 中兴通讯股份有限公司 | 多协议标签交换网络中组播树的建立方法 |
US8958286B1 (en) * | 2012-03-12 | 2015-02-17 | Juniper Networks, Inc. | Fast reroute for multicast using maximally redundant trees |
US9571387B1 (en) * | 2012-03-12 | 2017-02-14 | Juniper Networks, Inc. | Forwarding using maximally redundant trees |
US9100328B1 (en) * | 2012-03-12 | 2015-08-04 | Juniper Networks, Inc. | Forwarding mechanisms for fast reroute using maximally redundant trees |
US8638659B2 (en) | 2012-06-01 | 2014-01-28 | Telefonaktiebolaget L M Ericsson (Publ) | Enhancements to PIM fast re-route with downstream notification packets |
WO2015059123A1 (en) * | 2013-10-21 | 2015-04-30 | Telefonaktiebolaget L M Ericsson (Publ) | Packet rerouting techniques in a packet-switched communication network |
US9614726B2 (en) | 2014-01-21 | 2017-04-04 | Telefonaktiebolaget L M Ericsson (Publ) | Method and system for deploying maximally redundant trees in a data network |
US9813340B2 (en) | 2015-06-30 | 2017-11-07 | Cisco Technology, Inc. | Class-aware load balancing using data-plane protocol in a loop-free multiple edge network topology |
US10554425B2 (en) * | 2017-07-28 | 2020-02-04 | Juniper Networks, Inc. | Maximally redundant trees to redundant multicast source nodes for multicast protection |
-
2017
- 2017-12-21 CN CN201780098311.8A patent/CN111801914B/zh active Active
- 2017-12-21 EP EP17825529.5A patent/EP3729746A1/en active Pending
- 2017-12-21 WO PCT/EP2017/084203 patent/WO2019120549A1/en unknown
- 2017-12-21 US US16/954,883 patent/US11394638B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1839594A (zh) * | 2003-08-19 | 2006-09-27 | 株式会社Ntt都科摩 | 准确控制特设网络中的传输信息 |
CN103026668A (zh) * | 2010-08-16 | 2013-04-03 | 瑞典爱立信有限公司 | 用于胖树网络的自动化业务工程 |
CN103081416A (zh) * | 2010-09-08 | 2013-05-01 | 瑞典爱立信有限公司 | 以链路利用作为到平局打破机制中的反馈的多协议标签交换(mpls)的自动化业务工程 |
US8861340B1 (en) * | 2012-03-12 | 2014-10-14 | Juniper Networks, Inc. | Fast reroute using maximally redundant trees |
US9270426B1 (en) * | 2012-09-11 | 2016-02-23 | Juniper Networks, Inc. | Constrained maximally redundant trees for point-to-multipoint LSPs |
Non-Patent Citations (1)
Title |
---|
可保障数据无中断传输的冗余树算法研究;夏怒等;《计算机研究与发展》;20160915(第09期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
WO2019120549A1 (en) | 2019-06-27 |
US20200403906A1 (en) | 2020-12-24 |
CN111801914A (zh) | 2020-10-20 |
EP3729746A1 (en) | 2020-10-28 |
US11394638B2 (en) | 2022-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11411853B2 (en) | Link-state advertisement LSA sending method, apparatus, and system | |
US9794167B2 (en) | Bicasting using non-congruent paths in a loop-free routing topology having routing arcs | |
CN103703727B (zh) | 用于分体式架构系统中控制业务的弹性路由的方法和设备 | |
CN113261245B (zh) | 网络链路或节点故障的恢复系统和方法 | |
US7334047B1 (en) | Method and system for selective link state advertisement blocking over a data network area | |
US8619785B2 (en) | Pre-computing alternate forwarding state in a routed ethernet mesh network | |
EP2671351B1 (en) | System and method for topology transparent zoning in network communications | |
JP6117911B2 (ja) | 802.1aqのための3段折り返しclosの最適化 | |
US9246794B2 (en) | Label distribution and route installation in a loop-free routing topology using routing arcs | |
CN107534611B (zh) | 用于逻辑到物理拓扑发现的系统和方法 | |
CN111698152B (zh) | 一种故障保护方法、节点及存储介质 | |
CN111385194B (zh) | 一种网络路径收敛的方法以及相关设备 | |
US7848240B2 (en) | Method and apparatus for forwarding data in a data communications network | |
CN111801914B (zh) | 用于在最大不相交路径上转发网络业务的方法和设备 | |
US20150036508A1 (en) | Method and Apparatus For Gateway Selection In Multilevel SPB Network | |
CN114430387B (zh) | 一种节点的配置方法、控制器和节点 | |
CN103916322A (zh) | 定义软件定义网络的网络元件的查找系统的方法和设备 | |
CN112039770B (zh) | 一种路由选择方法及装置 | |
EP3844915A1 (en) | System and method for backup flooding topology split | |
KR20060056982A (ko) | 자동보호 전환방법 |
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 |