CN115733791A - 对支持分段路由的多路径网络的优化 - Google Patents
对支持分段路由的多路径网络的优化 Download PDFInfo
- Publication number
- CN115733791A CN115733791A CN202111383592.6A CN202111383592A CN115733791A CN 115733791 A CN115733791 A CN 115733791A CN 202111383592 A CN202111383592 A CN 202111383592A CN 115733791 A CN115733791 A CN 115733791A
- Authority
- CN
- China
- Prior art keywords
- multipaths
- paths
- network
- path
- link
- 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.)
- Pending
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/64—Routing or path finding of packets in data switching networks using an overlay routing layer
-
- 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/02—Topology update or discovery
-
- 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/02—Topology update or discovery
- H04L45/04—Interdomain routing, e.g. hierarchical 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/12—Shortest path evaluation
- H04L45/123—Evaluation of link metrics
-
- 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
- H04L45/125—Shortest path evaluation based on throughput or bandwidth
-
- 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/34—Source 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/42—Centralised 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/50—Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
描述了用于优化支持分段路由的网络的多路径的技术。例如,计算设备被配置为:针对多层网络的网络层中的每条链路,计算第一多条多路径中的所有路径对所述链路的使用(度量),以计算所述第一多条多路径的总体使用,所述第一多条多路径被设置在所述网络层中,所述第一多条多路径已经被计算并且以第一顺序放置到所述网络层的模型;计算第二多条多路径,其中,所述第二多条多路径被计算并且以第二不同顺序放置到所述网络层的所述模型;以及响应于确定所述第二多条多路径的总体使用小于所述第一多条多路径的所述总体使用,在所述网络层中设置所述第二多条多路径。
Description
本申请要求2021年8月30日提交的美国专利第17/446,375号的权益,该申请的全部内容整体并入本文中。
技术领域
本发明涉及计算机网络,并且更具体地,涉及用于计算网络的分段路由。
背景技术
计算机网络是交换数据和共享资源的所互连的计算设备的类集。在基于分组的网络(诸如,互联网)中,计算设备通过将数据划分成被称作分组的小块来传送数据,跨网络将这些小块从源设备单独路由到目的地设备。目的地设备从分组中提取数据并且将数据汇编成其原始形式。
网络内的某些设备(诸如,路由器)使用路由协议来交换并且积累描述了通过网络的可用路线的拓扑信息。这允许路由器构建其自身的网络路由拓扑图。在接收到传入数据分组后,路由器检查分组内的信息并且根据所积累的拓扑信息来转发该分组。
许多路由协议属于被称为内部网关协议(IGP)的协议类别,其中使用基于洪泛的分布机制来向网络内的路由器公布拓扑信息。这些路由协议通常依赖于路由算法,路由算法要求路由器中的每个路由器都具有被称为IGP区域或域的给定域的同步路由拓扑信息。根据链路状态路由协议维护的链路状态数据库(LSDB)或业务工程数据库(TED)的内容具有IGP域的范围。IGP路由协议通常要求IGP路由域中的所有路由器在内部LSDB或TED内存储已经根据IGP协议分布的所有路由信息。在操作中,每个路由器通常维护内部链路状态数据库并且以所定义的间隔扫描整个数据库以生成和输出链路状态消息,以将数据库同步到路由域内的相邻路由器。以这种方式,链路状态跨整个路由域传播并且完整地存储在域内的每个路由器处。
基于分组的网络将标签交换协议用于业务工程和其他目的。多协议标签交换(MPLS)是用于根据由网络中的路由器维护的路由信息策划互联网协议(IP)网络内的业务模式的机制。通过利用MPLS协议(诸如,标签分布协议(LDP)、具有业务工程扩展的资源保留协议(RSVP)(RSVP-TE)或分段路由(SR)扩展),标签交换路由器可以使用前置于业务的标签沿着通过网络到达目的地设备的特定路径(即,标签交换路径(LSP))转发业务。LSP定义了通过网络的不同路径以将MPLS分组从源设备携载到目的地设备。使用MPLS协议,沿着LSP的每个路由器与目的地相关联地分配标签并且沿着路径将标签传播给最靠近的上游路由器。沿着路径的路由器添加(推送)、移除(弹出)或交换标签并且执行其他MPLS操作以沿着已建立的路径转发MPLS分组。
路由器可以采用分段路由技术来利用网络中的源分组路由(SPRING)范例。利用分段路由,前端网络节点可以通过以有序分段标识符列表扩充分组的报头来沿着任何路径引导分组流,以用于实施分段路由策略。分段路由可以减少常规MPLS路由中固有的中间每流状态,并且在一些情况下消除该中间每流状态。
发明内容
一般而言,描述了用于优化支持分段路由的多路径网络的技术。例如,网络可以具有路由在传输层上的基础传输层(例如,光网络或其他服务层)和逻辑或覆盖网络层(例如,互联网协议(IP)网络或其他客户端层)。具有多个层的网络被称为多层网络。多层网络的逻辑网络包括路由器,诸如第3层(L3)路由器和第2层(L2)交换机或L2/L3交换机,该路由器提供L2/L3业务转发服务,诸如经由分段路由进行的业务工程。例如,逻辑网络的路由器可以实施分段路由策略,以通过逻辑网络层中的一条或多条逻辑链路(例如,IP层中的IP链路)沿着路径引导分组流,这些逻辑链路对应于包括一条或多条物理链路的底层传输网络中的路径。以这种方式,逻辑网络实际上是“构建在”底层传输网络“顶部”的覆盖网络。
控制器可以控制逻辑网络的路由和业务工程操作,并且还可以提供对传输网络内传输设备的分配或利用的集成控制。在一些示例中,控制器可以基于业务需求来计算和设置多路径(例如,针对分段路由隧道实施的多路径)以实现分段路由策略。网络可以通常在相同的源与目的地之间针对多个分段路由策略计算和设置多路径。针对给定分段路由策略,控制器可以按初始顺序计算网络层中的多路径。然后可以将多路径的业务需求“放置”到沿着多路径的网络层的模型。通往多路径的业务的计算和放置在本文中可以被称为多路径在网络层中的“放置”。控制器然后可以将多路径设置在网络中。
根据本公开中所描述的技术,控制器可以提供对支持分段路由的多路径网络的优化。例如,控制器可以提供用于路由多路径(例如,SR隧道)中的路径的备选方式,该备选方式可以导致比被设置在逻辑网络中的路径更少地使用度量(例如,带宽)。作为一个示例,控制器计算第一多条多路径(对应于相应分段路由策略)并且以第一顺序将该第一多条多路径放置到网络层的模型,并且可以将第一多条多路径设置在逻辑网络中。控制器计算第二多条多路径对度量(例如,带宽)的总体使用。控制器(例如,基于启发式算法和/或对策)计算第二多条多路径(也对应于相应分段路由策略)并且以不同的第二顺序放置该第二多条多路径,计算第二多条多路径对度量的总体使用。如果第二多条多路径的总体使用小于第一多条多路径的总体使用,那么控制器可以将第二多条多路径设置在逻辑网络中。备选地或附加地,如果第二多条多路径的总体使用不小于第一多条多路径的总体使用,那么控制器可以使被设置在逻辑网络中的多路径保持不变和/或执行启发式算法和/或对策的下一次迭代。
技术可以提供实现实际应用的一个或多个技术优点。例如,通过计算被设置在网络中的多条多路径并且以不同顺序放置该多条多路径,结果可以提供使用比被设置在网络层中的多条多路径更少的资源的多条多路径,这可以由在网络层内最初计算和设置多路径中的路径的顺序引起。
在示例中,本公开描述了一种方法,包括:由具有多层网络的模型的计算系统针对多条链路中的每条链路计算第一多条多路径中的所有路径对链路的度量的使用,以计算第一多条多路径的总体使用,该多层网络包括具有多条链路的网络层,该第一多条多路径被设置在网络层中,其中第一多条多路径中的多路径已经被计算并且以第一顺序放置到网络层的模型,并且其中第一多条多路径中的多路径对应于不同的相应分段路由策略;由计算系统针对相应分段路由策略计算第二多条多路径,其中计算第二多条多路径包括:计算第二多条多路径中的多路径并且以不同的第二顺序将该第二多条多路径中的多路径放置到网络层的模型;由计算系统针对多条链路中的每条链路计算第二多条多路径中的所有路径对链路的度量的使用,以计算第二多条多路径的总体使用;以及响应于确定第二多条多路径的总体使用小于第一多条多路径的总体使用,由计算系统在网络层中设置第二多条多路径。
在示例中,本公开描述了一种包括具有多条链路的网络层的多层网络的计算设备,包括:存储器;以及处理电路系统,与存储器通信,该处理电路系统和存储器被配置为:针对多条链路中的每条链路,计算第一多条多路径中的所有路径对链路的度量的使用,以计算第一多条多路径的总体使用,该第一多条多路径被设置在网络层中,其中第一多条多路径中的多路径已经被计算并且以第一顺序放置到网络层的模型,并且其中第一多条多路径中的多路径对应于不同的相应分段路由策略;针对相应分段路由策略计算第二多条多路径,其中计算第二多条多路径包括:计算第二多条多路径中的多路径并且以不同的第二顺序将该第二多条多路径中的多路径放置到网络层的模型;以及响应于确定第二多条多路径的总体使用小于第一多条多路径的总体使用,在网络层中设置第二多条多路径。
在示例中,本公开描述了一种编码有指令的非暂时性计算机可读存储介质,该指令在被执行时使一个或多个可编程处理器执行以下操作:针对多层网络的网络层的多条链路中的每条链路,计算第一多条多路径中的所有路径对链路的度量的使用,以计算第一多条多路径的总体使用,该第一多条多路径被设置在网络层中,其中第一多条多路径中的多路径已经被计算并且以第一顺序放置到网络层的模型,并且其中第一多条多路径中的多路径对应于不同的相应分段路由策略;针对相应分段路由策略计算第二多条多路径,其中计算第二多条多路径包括:计算第二多条多路径中的多路径并且以不同的第二顺序将该第二多条多路径中的多路径放置到网络层的模型;以及响应于确定第二多条多路径的总体使用小于第一多条多路径的总体使用,在网络层中设置第二多条多路径。
在附图和以下描述中阐述了技术的细节。技术的其他特征、目的以及优点将通过说明书和附图以及权利要求书而变得显而易见。
附图说明
图1是图示了根据本公开中所描述的技术的具有多层网络和控制器的示例系统的框图,该多层网络和控制器被配置为提供对支持分段路由的多路径网络的优化。
图2是图示了根据本公开中所描述的技术的具有多层网络和控制器的示例系统的框图,该多层网络和控制器被配置为提供对支持分段路由的多路径网络的优化。
图3是图示了根据本公开的技术的示例控制器的框图。
图4是更详细地图示了根据本公开的技术的示例控制器的框图。
图5是更详细地图示了根据本公开的技术的控制器的路径引擎的示例实施方式的框图。
图6是图示了根据本公开的一种或多种技术的计算设备的示例操作的流程图。
图7是图示了根据本公开中所描述的技术的用于确定多路径的总体使用的数据模型的框图。
图8是图示了根据本公开中所描述的技术的用于优化支持分段路由的多路径网络的数据模型的框图。
贯穿图和文本,类似的附图标记指类似地的元件。
具体实施方式
图1是图示了根据本公开中所描述的技术的具有多层网络60和控制器52的示例系统100的框图,该多层网络60和控制器52被配置为提供对支持分段路由的多路径网络的优化。在图1的示例中,多层网络60包括逻辑网络层6(“逻辑网络6”)和传输网络层54(“传输网络54”)。传输网络54表示例如光传输网络(OTN)或位于逻辑网络6之下的其他传输网络。传输网络54通过高速光纤链路传输、复用以及交换基于分组的通信。传输网络54可以包括多个光通信设备(例如,分组光传输设备),诸如光节点7A-7E(被统称为“光节点7”),这些光节点7A-7E分别经由光链路8A-8E(被统称为“光链路8”)互连并且控制携载分组数据的光信号沿着光链路的传输。以这种方式,传输网络54提供物理层,该物理层将逻辑网络6的路由器4A-4F(被统称为“路由器4”)物理地互连。
尽管出于简单起见而在图1中未示出,但是分组光传输设备可以是例如PCX、波分复用(WDM)/密集WDM(DWDM)以及基于时分复用(TDM)的设备、光交叉连接(OXC)、光分插复用器(OADM)、可重构OADM(ROADM)、复用设备、或者其他类型的设备、或者传输、交换和/或复用光信号的其他设备。作为一个示例,路由器4可以是由传输网络54的中间OXC(诸如,路由器4具有访问链路的权限的OXC)光学连接的第三层(L3)路由器。
传输网络54通常包括许多其他组件,诸如放大器、转发器、OTT、中继器以及用于控制沿着光链路(同样未示出)传输光分组数据的其他装备。大型光传输系统可以具有影响光传输的大量此类设备。尽管仅相对于光链路描述了传输系统54,但是传输系统54也可以包括其他类型的物理链路,诸如以太网PHY、同步光网络(SONET)/同步数字体系(SDH)、Lambda、或者包括分组传输能力的其他第2层数据链路。
逻辑网络6包括路由器4以控制分组流的交换和路由。例如,逻辑网络6可以表示互联网协议(IP)网络。路由器4的示例包括共同提供逻辑网络6的第3层(L3)路由器和第2层(L2)交换机或L2/L3交换机。也就是说,逻辑网络6通常提供L2/L3业务转发服务,诸如经由多协议标签交换业务工程(MPLS-TE)进行的业务工程,包括标签交换路径(LSP)、虚拟局域网(VLAN)等。逻辑网络6的各种示例可以涵盖数百或甚至数千个路由器/交换机。
逻辑网络6实际上是“构建在”底层传输网络54“顶部”的覆盖网。路由器4由虚拟或逻辑链路(图1中用逻辑链路9A-9H(被统称为“逻辑链路9”)示出的示例拓扑)连接,该虚拟或逻辑链路中的每条虚拟或逻辑链路对应于底层传输网络54中的路径。每条路径可以包括传输网络54的一条或多条物理链路(例如,物理链路8)。
在该示例中,路由器4可以采用分段路由(SR)技术。分段路由(SR)(其也可以被称为源分组路由或网络中的源分组路由(SPRING))是控制面架构,该控制面架构使得入口路由器能够引导分组通过网络中的特定网络节点和链路集合,而不依赖于网络中的中间网络节点来确定其应该采取的路径。SPRING转发的基础是分段标识符(SID)的概念。Filsfils和Previdi于2018年7月在互联网工程任务组(IETF)RFC 8402上编辑的“分段路由架构(Segment Routing Architecture)”;Sivabalan于2020年11月1日在SPRING工作组第09版编辑的“分段路由策略架构(Segment Routing Policy Architecture)”;以及Talaulikar于2019年10月9日在SPRING工作组第04版编辑的“SR策略实施方式和部署注意事项(SRPolicy Implementation and Deployment Considerations)中更详细地描述了分段路由和SID;这些申请中的每个申请的全部内容以引用的方式并入本文中。“分组路由策略架构(Segment Routing Policy Architecture)”将SR策略定义为“支持节点上的有序分段列表的实例化的框架”,该框架用于实施针对来自该节点的业务引导具有特定意图的源路由策略。
使用分段路由,路由器4沿着分段路由路径将分组流的网络分组从源转发给目的地,该分段路由路径被编码为扩充网络分组报头的分段标识符列表并且被路由器4用于识别下一个分段以转发每个网络分组。例如,有序分段列表可以由针对业务引导具有特定意图的SR策略实例化。
由路由器4接收和转发的网络分组的源可以包括一个或多个设备(未示出)和/或任何公共网络或专用网络或互联网。由路由器4转发的网络分组的目的地可以包括一个或多个目的地设备和/或网络,该目的地设备和/或网络可以包括LAN或广域网(WAN),该LAN或广域网包括多个设备。例如,目的地设备可以包括个人计算机、膝上型电脑、工作站、个人数字助理(PDA)、无线设备、网络就绪用具、文件服务器、打印服务器、或者从源接收网络分组的其他设备。
分段路由具有多种类型的分段。这些分段包括前缀分段,该前缀分段表示路由器4中的任何路由器与指定前缀之间的最短路径(例如,根据IGP度量)。前缀分段包括节点分段和任播分段,在该节点分段中指定前缀识别特定路由器4(例如,特定路由器4的回送地址),该任播分段强制执行朝向任播组的最靠近的路由器4转发的等成本多路径(ECMP)感知最短路径。任播组包括一个或多个路由器4,并且指定前缀可以由任播组中的路由器4中的任何路由器通告。分段可以由其分段标识符(SID)引用。
其他分段类型包括邻接分段(其是路由器4之间的IGP邻接)、绑定分段以及邻接集合。绑定分段可以表示通过路由器4的隧道。隧道可以包括SR策略。邻接集合表示多个邻接,并且针对多个邻接使用相同SID。这是任播SID的邻接并行版本,其中相同SID指示网络中的多个节点。一般而言,可以用于将业务同时引导到多条路径的SID产生更优选的SID减少或最小化解决方案。邻接集合SID和任播SID是重要的此类SID。
在一些示例中,路由器4使用多协议标签交换(MPLS)架构来应用分段路由。在此类示例中,每个分段被编码为MPLS标签,并且SR策略可以被实例化为附加到网络分组的标签堆栈。有源分段位于标签堆栈顶部。在完成分段后,路由器4从标签堆栈中弹出对应标签。
在一些示例中,路由器4使用IPv6架构和SR报头(SRH)来应用分段路由。在此类示例中,指令可以与分段相关联并且被编码为映射到SID的IPv6地址。SR策略被实例化为路由报头中的有序SID列表。分组的目的地地址(DA)指示有源分段。SRH中的SegmentsLeft(SL)指针指示下一个有源分段。当路由器4完成分段时,路由器对SL指针进行减量并且将下一个分段复制到目的地地址。网络分组在SR策略上被引导、用针对SR策略的对应SRH进行了扩充。
在一些示例中,路由器4可以作为标签交换路由器(LSR)操作以向网络6内的相邻LSR分布标签。例如,可以存在多种不同的标签类型,包括“邻接”标签和“节点”标签。此类标签可以是或以其他方式对应于局部地或全局地识别网络6中的分段的分段标识符。为了通过网络6转发分组,路由器4可以推送、弹出或交换分段标识符列表中的一个或多个标签,该分段标识符列表在通过网络转发时被应用于该分组。标签堆栈可以在SR策略下对分组的拓扑和服务源路由进行编码。
邻接标签可以具有对特定分段路由节点(诸如,路由器4中的一个路由器)的局部语义。具体地,邻接标签将业务引导到邻接(例如,通信链路和/或接口)或邻接集合中。因此,邻接标签可以与特定路由器4相关。为了使用邻接标签,特定路由器4最初可以将邻接标签指派给特定邻接,并且使用IGP(诸如,中间系统-中间系统(IS-IS)或开放式最短路径优先(OSPF))将邻接标签通告给分段路由域中的其他路由器。特定路由器4可以是SR域中使用特定邻接标签的唯一网络节点。当路由器4使用邻接标签转发分组时,路由器4可以使分组使用与邻接标签相关联的特定路由器4的邻接。以这种方式,可以使用邻接标签来为分段建立一跳隧道。
相比之下,节点标签可以在SR域内具有全局语义。也就是说,路由器4中的每个路由器可以被指派所定义的节点标签范围(通常被称为分段路由全局块(SRGB)),该节点标签范围对于SR域内的每个路由器4是唯一的。网络6的运营商可以确保从全局范围到不同路由器4的不同节点标签范围的唯一分配。除了节点标签范围之外,每个特定路由器4还可以具有唯一地识别SR域中的特定路由器4的特定节点标识符。每个路由器4可以例如使用IGP来将其对应节点标识符和节点标签范围通告给SR域中的其他路由器4。
如上文所描述,基于使用例如最短路径路由而确定的路由,路由器4中的每个路由器可以配置其转发状态以使用MPLS或使用IPv6架构和SR报头(SRH)来实施分段路由。例如,使用MPLS,路由器4中的每个路由器可以使用通过IGP获知的拓扑信息执行路径选择,以基于由路由器4维护的路由信息来在逐跳的基础上计算网络6内的最短路径。路由器4中的每个路由器然后可以沿着局部计算得到的最短路径选择下一跳,并且在网络节点的转发平面中安装与所选择的下一跳相关联的转发信息,其中转发信息识别要在转发业务时使用的网络接口以及要在将业务转发出接口时应用的一个或多个标签。路由器4使用具有所指派的标签的下一跳来逐跳转发业务。
系统100可以使用分布式或集中式控制来实施分段路由。利用分布式控制,路由器4使用路由协议(诸如,IS-IS或OSPF或边界网关协议(BGP))分配和用信号通知分段。路由器4单独地决定在使用一条或多条路径实施的SR策略上引导分组。路由器4单独地计算SR策略。利用分布式控制,控制器52可以不是系统100的一部分。在分布式控制场景中,路由器4是计算设备,该计算设备可以计算一个或多个SID列表,该一个或多个SID列表满足多条路径中的每条路径以实施SR策略。
利用集中式控制,控制器52分配并且用信号通知分段。控制器52决定在其上引导映射到SR策略的分组的路由器4。控制器52应用路径计算来计算用于满足SR策略的候选路径。此外,控制器52用转发信息对逻辑网络6(特别是路由器4)进行编程,以用于使用SID列表来实施候选路径。控制器52可以使用网络配置协议(NETCONF)、路径计算元件通信协议(PCEP)、BGP或其他协议对路由器4进行编程。控制器52可以表示一个或多个SR控制器并且可以是WAN控制器,其不仅管理SR域,而且还管理逻辑网络6的运营商的路径计算、业务工程、设置以及其他网络控制任务。控制器52可以在各种路由器4实例化的SID并且发现局部(SRLB)标签集合和全局(SRGB)标签集合。控制器52可以使用路由协议来侦听其他拓扑信息。
在该示例中,控制器52是可以计算一个或多个SID列表的计算设备,该SID列表满足多条路径中的每条路径(被称为“多路径”)以实施SR策略的路径中的每条路径是从多路径的源到多路径的目的地,并且在本文中可以被称为分段路由隧道。控制器52可以计算从一个或多个源到一个或多个目的地的多路径以便实现SR策略。例如,控制器52可以计算满足一个或多个SR策略的多路径,该SR策略分别指定业务需求(例如,业务需求32)以及源集合(例如,路由器4A或4B)和目的地集合(例如,路由器4F)。在一些示例中,控制器52可以计算多条多路径,多路径中的每条多路径对应于不同的相应分段路由策略。
在已经计算了一个或多个SID列表后,控制器52然后可以对逻辑网络6进行编程,以至少基于一个或多个SID列表来转发给定多路径上的网络业务。当由路由器4使用来自一个或多个SID列表的SID列表转发的业务沿着路径中的一条路径转发或并未在不是路径中的一条路径的路径上转发时,一个或多个SID列表满足多条路径中的每条路径以实施SR策略。而且,一个或多个SID列表在其完全使用多条路径时是令人满意的,即,路由器4可以使用一个或多个SID列表沿着路径中的任何路径转发业务。例如,第一SID列表可以使被引导到SR策略的网络分组遍历多条路径中的第一路径,而第二SID列表可以使被引导到SR策略的网络分组遍历多条路径中的第二路径,或单个SID列表可以使被引导到SR策略的网络分组遍历多条路径中的第一路径和第二路径两者。路由器可以使用加权或非加权等成本多路径(ECMP)来将业务转发给下一个分段和/或选择一个或多个SID列表中的一个SID列表。
在一些示例实施方式中,控制器52相对于分组数据通过光链路和其他装备的传输提供对路由器4和位于传输网络54之下的分组光传输设备两者的集成控制。例如,控制器52不仅可以控制逻辑网络6的路由和业务工程操作,而且还可以提供对光谱和波长的分配或利用的集成控制,该光谱和波长由传输网络54内的每个分组光传输设备利用,该每个分组光传输设备覆盖逻辑网络6的元件,或者控制器52可以使用来自传输层的路径或抽象链路信息来选择候选链路以在传输网络54上进行路由。
控制器52可以表示用于配置和管理逻辑网络6的高级控制器。控制器52可以表示一个或多个通用服务器;用于计算路径的用具、控制器或其他专用设备;由计算设备执行的应用;路由器4的分布式控制面,该分布式控制面针对由路由器管理的LSP计算路径;等。在一些情况下,控制器52的方面可以分布在一个或多个真实或虚拟计算设备之间。就逻辑网络6而言,上文所列出的任何此类设备可以是网络内的或网络外的。用于软件定义网络的软件定义网络(SDN)控制器(其可以执行本文中所描述的操作以计算路径和路由LSP)的示例细节被描述于2013年6月5日提交的名称为“虚拟网络分组流的物理路径确定(PHYSICALPATH DETERMINATION FOR VIRTUAL NETWORK PACKET FLOWS)”的PCT国际专利申请PCT/US2013/044378中,该申请整体并入本文中。用于软件定义网络的SDN控制器(其用于获得网络的拓扑信息并且设置网络)的附加示例细节被描述于2013年9月30日提交的名称为“软件定义网络控制器(SOFTWARE DEFINED NETWORK CONTROLLER)”的美国专利申请第14/042,614号和2014年9月29日提交的名称为“资源约束网络中的批处理路径计算(BATCHED PATHCOMPUTATION IN RESOURCE-CONSTRAINED NETWORKS)”的美国专利申请第14/500,736号中,这些申请整体并入本文中。
控制器52可以通过执行一个或多个网络路由协议来获得逻辑网络6的业务工程信息21,该网络路由协议被扩展为携载业务工程信息,以侦听携载此业务工程信息的路由协议通告。业务工程信息可以包括路由器4的节点和接口标识符;链路的每个优先级级别的管理权重和可用带宽;虚拟链路的LSP标识符和状态信息;以及用于针对业务工程LSP计算路径的其他信息。控制器52可以将业务工程信息存储到业务工程数据库(TED)。
在该示例中,控制器52呈现北向接口20,该北向接口20可以由控制器层级排列中的其他控制器或由编排器、管理员、应用、或者其他实体调用,以呈现逻辑网络6的业务需求32。接口20可以用于与编排系统(诸如,OpenStack)集成;接口20还可以由其他应用或运营商的运营支持系统(OSS)/业务支持系统(BSS)使用或备选地由其他应用或运营商的运营支持系统(OSS)/业务支持系统(BSS)可使用。在一些情况下,接口20可以呈现RESTful应用编程接口(API)。接口20还可以呈现GUI/CLI,网络运营商可以由GUI/CLI访问网络管理工具,该网络管理工具包括例如路径计算模块58,以获得关于多层网络60的操作的信息并且对多层网络60进行编程。
控制器52包括路径计算模块58,并且在一些情况下,包括用于分别计算和设置路径的路径设置模块26,该路径位于网络中的路径计算客户端(例如,路由器)之间。如下文进一步描述的,路径计算模块58可以通过路径计算域(例如,逻辑网络6)智能地计算并且建立所请求的路径。在计算路径时,路径计算模块58调度路径以供路径设置模块26设置。
例如,控制器52确定逻辑网络6的网络链路9的拓扑,路由器4可以通过该拓扑来交换网络业务流30以便满足对应于业务流30的SR策略。控制器52可以确定逻辑网络6的逻辑网络拓扑以确保传输网络54的组件的足够容量并且促进了针对逻辑网络6的用于传输业务的优化的总资源成本。控制器52获得可供用作逻辑网络6中的网络链路的候选链路集合。附加地,在一些情况下,控制器52获得抽象链路数据56,该抽象链路数据56描述了由这些候选链路在其物理(传输)路径上遇到的共享风险。在一些情况下,抽象链路数据56还定义了可用候选链路,并且可以定义已经在逻辑网络6中配置和激活的附加抽象链路。换句话说,在此类情况下,抽象链路数据56是拓扑计算模块58获得候选链路集合的机制。在一些情况下,抽象链路数据56还可以包括与路径优化相关的信息,诸如链路的物理长度或延迟。
以这种方式,抽象链路数据56表示以某种方式从传输网络54“泄漏”到控制器52的数据,以使得能够将控制器52的其他约束应用到路径的目的地和对应候选链路,在该对应候选链路上路由业务。此类约束可以对应于抽象链路数据56的类型,该抽象链路数据56可以包括可用候选链路、链路长度、链路度量(其可以是基于链路长度)、链路成本(其也可以是基于链路长度)以及链路的共享风险链路组(SRLG)列表。描述候选链路的信息可以包括可用链路和相关联的链路度量、链路成本和/或链路上的SRLG。逻辑网络6的拓扑信息与所获得的候选链路的组合定义了逻辑网络6的网络拓扑模型。该模型可以包括度量图,该度量图以源网络节点为根并且在表示多路径的路径树旁边示出。
路径计算模块58决定在其上引导映射到SR策略的分组的路由器4。路径计算模块58基于业务工程数据21和/或抽象链路数据56来应用路径计算以计算满足SR策略的候选路径,诸如多路径。多路径的计算路径可以被放置到逻辑网络层6的模型,使得链路9可以被映射到多路径中的路径。路径计算模块58然后调度计算得到的和所放置的路径以供路径设置模块26设置,该路径设置模块26又设置网络中的计算路径。
在一些示例中,控制器52可以计算并且设置逻辑网络6中对应于不同的相应SR策略的多条多路径。多条多路径可以被计算并且以特定顺序放置到逻辑网络6的模型。通常,控制器52可以基于接收SR策略的顺序来计算并且放置多条多路径。例如,控制器52可以接收第一SR策略并且计算满足第一SR策略的第一多路径。控制器52可以将由SR策略指定的业务需求放置到逻辑网络6的模型。控制器52可以接收第二SR策略,并且计算第二多路径并且放置到逻辑网络6的模型。然而,在一些示例中,计算多路径并且以初始(“第一”)顺序放置多路径可能不会导致被设置在逻辑网络6中的多路径对资源(例如,带宽)的最高效使用。例如,假设控制器52最初接收指定业务需求(例如,业务需求32)的第一SR策略,该业务需求对应于端到端业务流,该端到端业务流针对非优先级业务(例如,低带宽业务)遍历了从路由器4A或4B到路由器4F的逻辑网络6。控制器52使用逻辑网络6的链路9中的一条或多条链路计算并且设置第一多条多路径,该第一多条多路径对应于第一SR策略。在该示例中,控制器52可以任意地映射一条或多条链路9以实施用于非优先级业务的第一多条多路径。在该示例中,第一多条多路径对链路的带宽使用可以消耗这些链路的大部分(如果不是全部)可用带宽。如果控制器52随后接收第二SR策略,该第二SR策略指定对应于另一端到端业务流的业务需求,该另一端到端业务流针对高优先级业务(例如,高带宽业务)遍历了从路由器4A或4B到路由器4F的逻辑网络6,那么路径计算模块58可能无法映射第一多条多路径中的某些链路以实施第二多条多路径,即使这些链路可能更适合于第二多条多路径。因而,路径计算模块58可以映射不同的一条或多条链路9以实施第二多条多路径,该第二多条多路径对于高优先级业务(例如,高带宽业务)可能不太合乎需要。因为第一多条多路径的计算和放置可以在第二多条多路径的计算和放置之前发生,所以第二多条多路径中的路径可以被放置在不太理想的路径上。在这些示例中,可能需要计算多路径中的路径并且以不同顺序放置多路径中的路径,这可以造成多路径对资源的更佳使用。
根据本公开中所描述的技术,控制器52可以包括优化模块57以提供对支持分段路由的多路径的优化。假设例如逻辑网络6被设置有第一多条多路径。在该示例中,优化模块57可以计算第一多条多路径对度量(例如,带宽)的总体使用,该第一多条多路径被设置在逻辑网络层6中。例如,优化模块57可以针对逻辑网络6中的链路9中的每条链路计算第一多条多路径中的所有路径对链路的带宽使用,该第一多条多路径被设置在逻辑网络层6中。例如,优化模块57可以获得业务工程信息21,该业务工程信息21包括如下信息:诸如链路9的每个优先级级别的管理权重和可用带宽和/或抽象链路数据56,该抽象链路数据56描述了由被设置在逻辑网络6中的路径的链路9在其物理(传输)路径上遇到的共享风险和/或关于链路的物理长度或延迟的信息。基于该信息,优化模块57可以确定第一多条多路径中的所有路径对链路9的带宽使用,该第一多条多路径被设置在逻辑网络层6中。在一些示例中,优化模块57可以通过如下操作来计算第一多条多路径的总加权带宽使用:计算第一多条多路径对链路的总带宽使用与第一多条多路径所使用的链路的总带宽容量之比。
作为一个示例,链路9H用于实施多路径,该多路径包括路由器4A、路由器4D以及路由器4F的第一路径(“4A-4D-4F路径”)以及路由器4B、路由器4D以及路由器4F的第二路径(“4B-4D-4F路径”)。链路9H可以针对被放置在4A-4D-4F路径上的业务消耗贡献给链路的带宽的一部分(例如,带宽容量),并且还可以针对被放置在4B-4D-4F路径上的业务消耗贡献给链路的带宽的另一部分。在该示例中,优化模块57可以确定多路径中的第一路径和第二路径对链路9H的总带宽使用,并且可以类似地确定多路径中的所有路径的其他链路的总带宽使用,以确定多路径的总带宽使用。备选地或附加地,优化模块57可以计算第一多条多路径的延迟。度量的总体使用可以包括与第一多条多路径相关联的带宽、延迟、或者其他度量。
优化模块57可以通过计算多路径并且以不同顺序放置多路径(在本文中被称为“第二多条多路径”)来优化被设置在网络层中的第一多条多路径。例如,优化模块57可以实施一个或多个启发式算法和/或对策以将第一多条多路径中的一条或多条路径的计算和放置重新排序为逻辑网络层6的模型。启发式算法和/或对策可以包括贪婪算法、随机化函数、或者任何其他算法和/或对策来将多路径的计算和放置重新排序,诸如基于指派给多路径的优先级来对多路径进行排序。
因为路径被计算并且放置在逻辑网络层6中的顺序可以使控制器52计算具有不同链路的第二多条多路径中的路径,所以这可以导致第二多条多路径对度量的不同总体使用。在该示例中,优化模块57可以针对链路9中的每条链路计算第二多条多路径中的所有路径对链路的带宽使用,以计算第二多条多路径的总体使用。在一些示例中,优化模块57可以计算加权带宽使用(例如,第二多条多路径的总带宽使用与第二多条多路径所使用的链路的总带宽容量之比)。
优化模块57然后可以将第二多条多路径的总带宽使用与第一多条多路径的总带宽使用进行比较。如果第二多条多路径的总带宽使用小于第一多条多路径的总带宽使用,那么优化模块57可以使控制器52将第二多条多路径设置在逻辑网络6中。如果第二多条多路径的总带宽使用不小于第一多条多路径的总带宽使用,那么控制器57可以执行启发式算法和/或对策的下一次迭代和/或使被设置在逻辑网络6中的多路径保持不变。在下图2中描述了优化过程的附加示例。
在一些示例中,优化模块57可以将相应优先级指派给一条或多条多路径以优化(或者,不优化)多路径。例如,优化模块57可以使用优先级模块(未示出)来将优先级指派给一条或多条多路径(其被设置在逻辑网络6中),以防止对这些多路径的任何改变或修改。备选地或附加地,优化模块57可以将优先级指派给一条或多条多路径(其被设置在逻辑网络6中),以支持对这些多路径的计算和放置的改变或修改。
在一些示例中,优化模块57可以附加地或备选地确定多路径的质量。例如,早前被计算并且放置到逻辑网络6的模型的多路径可以在链路故障方面更为稳健(例如,具有许多备选路径),并且稍后被计算并且放置到逻辑网络6的模型的多路径可以留下较少数目的路径。在这些示例中,优化模块57可以识别具有更大数目的路径的多路径,优化模块57可以从这些多路径将链路带宽移动到具有更少路径的多路径,或者提供对早前发生的多路径的计算和放置的限制。例如,优化模块57可以计算并且放置具有均等的资源分布和/或路径数目的所有多路径,以避免一些多路径具有更大数目的路径,而一些多路径具有更小数目(例如,只有一个)的路径的实例。
图2是图示了根据本公开中所描述的技术的具有多层网络60和控制器52的示例系统200的框图,该多层网络60和控制器52被配置为提供对支持分段路由的多路径网络的优化。系统200是图1的系统100的示例实施方式。例如,系统200通过计算并且设置逻辑网络6中从源路由器4A和4B到目的地路由器4F的第一多路径来实施SR策略202(“具有带宽约束的4A/4B-4F”)。
被设置在逻辑网络6中的第一多路径可以包括从源路由器4A或4B到目的地路由器4F的路径206。在该示例中,路径206分别包括位于链路9C和9H上的路由器4A、路由器4D以及路由器4F的路径(“4A-4D-4F路径”);分别包括位于链路9E和9H上的路由器4B、路由器4D以及路由器4F的路径(“4B-4D-4F路径”);分别包括位于链路9B、9F以及9I上的路由器4A、路由器4C、路由器4E以及路由器4F的路径(“4A-4C-4E-4F路径”);分别包括位于链路9C、9G以及9I上的路由器4A、路由器4D、路由器4E以及路由器4F的路径(“4A-4D-4E-4F路径”);分别包括位于链路9D、9F以及9I上的路由器4B、路由器4C、路由器4E以及路由器4F的路径(“4B-4C-4E-4F路径”);并且分别包括位于链路9E、9G以及9I上的路由器4B、路由器4D、路由器4E以及路由器4F的路径(“4B-4D-4E-4F路径”)。为了便于说明,图2被图示为具有被设置在逻辑网络6中的单条多路径,但逻辑网络6还可以设置有多条多路径,该多路径对应于不同的相应分段路由策略。被设置在逻辑网络6中的多条多路径可以在本文中被称为“第一多条多路径”。
根据本公开中所描述的技术,控制器52可以包括优化模块57以提供对支持分段路由的多路径的优化。在该示例中,优化模块57可以确定多路径中的路径(例如,第一多路径中的路径206和其他多路径中的其他路径)的总带宽使用,该多路径被设置在网络层6中。在该示例中,优化模块57可以获得链路9B、9C、9D、9E、9F、9G、9H以及9I(被统称为“路径链路9”)的业务工程信息21和/或抽象链路数据56,该抽象链路数据56描述了由路径链路9在其物理(传输)路径上遇到的共享风险和/或关于路径链路9的物理长度或延迟的信息。基于该信息,优化模块57可以针对路径链路9中的每条路径链路计算第一多条多路径中的所有路径206对链路的带宽使用,以计算第一多条多路径的总体使用。作为一个示例,优化模块57可以使用以下函数来计算链路的总体使用:
LinkDir.use=∑(pm∈LinkDir.PathMem)pm.BWFrac*pm.PathLinks.PathsOption.LinkDir.cap
在以上示例中,“LinkDir.use”表示网络层(例如,逻辑网络6)内有向链路的所有使用,以实施多路径。“LinkDir.use”是例如通过多路径中使用链路的所有路径的链路对带宽的所有使用的总和来计算的。例如,“pm”表示路径成员(例如,对应于SR策略的特定路径),并且“LinkDir.PathMem”表示路径的特定链路。链路的带宽使用是由链路所使用的带宽的部分(例如,“pm.BWFrac”)与所有路径选项的链路的带宽容量的乘积计算得出的,该带宽容量由“pm.PathLinks.PathsOption.LinkDir.cap”表示。
为了确定第一多路径(其被设置在逻辑网络6中)中的所有路径206对路径链路9的总带宽使用,优化模块57计算路径链路9中的每条路径链路的带宽使用。在图2的示例中,第一多路径中的路径206对链路9B的带宽使用是由链路9B的带宽部分(例如,0.125)乘以带宽容量(例如,1吉比特(Gb)的业务)计算的,这是链路9B的125兆字节(MB)的总带宽使用。类似地,第一多路径中的路径206对链路9D的带宽使用是由链路9D的带宽部分(例如,0.375)乘以带宽容量计算的,这是链路9D的375MB的总带宽使用。路径链路9中的每条路径链路的总带宽使用被计算并且聚合以计算被设置在逻辑网络6中的多路径的总带宽使用。如上文所描述,优化模块57可以类似地计算被设置在逻辑网络6中的其他多路径的总体使用。
优化模块57可以通过如下操作来优化被设置在逻辑网络6中的多路径(在本文中被称为“第二多条多路径”):计算第一多条多路径中的一条或多条路径并且以不同顺序放置该第一多条多路径中的一条或多条路径。例如,优化模块57可以针对相应分段路由策略计算第二多条多路径。例如,优化模块57可以计算第二多条多路径中的路径并且以与第一多条多路径不同的第二顺序将该第二多条多路径中的路径放置到逻辑网络6的模型。在一些示例中,优化模块57可以实施一个或多个启发式算法和/或对策来将被设置在网络中的多路径的一条或多条路径的计算和放置重新排序。
作为一个示例,优化模块117可以实施贪婪算法,其中优化模块57可以计算并且放置多路径中的路径,该路径从最大路径(例如,具有最高带宽使用的路径)开始一直到最小路径(例如,具有最低带宽使用的路径)。优化模块57然后可以针对路径链路9中的每条路径链路计算第二多条多路径中的所有路径对链路的带宽使用,以计算第二多条多路径的总体使用。
优化模块57然后可以确定第二多条多路径的总带宽使用是否小于第一多条多路径的总带宽使用。如果第二多条多路径的总带宽使用小于第一多条多路径的总带宽使用,那么优化模块57可以使控制器52将第二多条多路径设置在逻辑网络6中。如果第二多条多路径的总带宽使用不小于第一多条多路径的总带宽使用,那么优化模块57可以执行贪婪算法的下一次迭代,例如计算并且放置多路径中的路径(该路径从次最大路径(例如,具有次最高带宽使用的路径)开始一直到最小路径(例如,具有最低带宽使用的路径)),并且确定第二多条多路径的总带宽使用是否小于第一多条多路径的总带宽使用。在一些示例中,如果第二多条多路径的总带宽使用不小于第一多条多路径的总带宽使用并且已经超过了给定时间限制,那么使被设置在逻辑网络6中的多路径保持不变。
备选地或附加地,优化模块117可以基于随机顺序来计算和放置第二多条路径中的一条或多条路径。例如,优化模块57可以选择被设置在逻辑网络6中的多路径中的路径子集,然后随机化计算和放置路径子集的顺序。优化模块57然后可以针对路径链路9中的每条路径链路计算第二多条多路径中的所有路径对链路的带宽使用,以计算第二多条多路径的总体使用。
优化模块57然后可以确定第二多条多路径的总带宽使用是否小于第一多条多路径的总带宽使用。如果第二多条多路径的总带宽使用小于第一多条多路径的总带宽使用,那么优化模块57可以使控制器52将第二多条多路径设置在逻辑网络6中。如果第二多条多路径的总带宽使用不小于第一多条多路径的总带宽使用,那么优化模块57可以执行随机函数的下一次迭代,例如选择被设置在逻辑网络6中的另一路径子集,然后随机化计算和放置路径子集的顺序,并且确定第二多条多路径的总带宽使用是否小于第一多条多路径的总带宽使用。在一些示例中,如果第二多条多路径的总带宽使用不小于第一多条多路径的总带宽使用并且已经超过了给定时间限制,那么使被设置在逻辑网络6中的多路径保持不变。
在一些示例中,优化模块57可以将相应优先级指派给多路径中的一条或多条路径以优化(或者,不优化)路径。例如,优化模块57可以使用优先级模块(未示出)来将优先级指派给一条或多条多路径(其被设置在逻辑网络6中),以防止对这些多路径的任何改变或修改。例如,包括路径206的多路径可以被指派优先级(例如,作为高优先级多路径)以防止对多路径的任何改变和修改。备选地或附加地,优化模块57可以将优先级指派给一条或多条多路径(其被设置在逻辑网络6中),以支持对这些多路径的计算和放置的改变或修改。
在一些示例中,如果使用贪婪算法,计算和放置路径的顺序也可以由所指派的优先级来定义。例如,优化模块57可以计算并且放置多路径中的路径,该路径从最高优先级路径开始一直到最低优先级路径。
图3是图示了根据本公开的技术的示例控制器的框图,该示例控制器被配置为提供对支持分段路由的多路径的优化。响应于接收到需求,控制器100计算并且输出满足逻辑网络6的业务需求的逻辑网络拓扑。例如,控制器100可以包括服务器或网络控制器,并且可以表示图1的控制器52的示例实例。在一些情况下,控制器100可以表示示例网络管理系统,该示例网络管理系统可能无法设置路径,但是被网络运营商用于网络规划和分析目的。在这种情况下,控制器100可以不包括路径设置模块118并且可以包括与接口23类似的接口以用于输出解决方案的所选择的链路的表示。
控制器100包括控制单元102,该控制单元102耦合至网络接口110以通过一条或多条入站链路122以及一条或多条出站链路124与其他网络设备交换分组。控制单元102的主存储器108表示一种或多种计算机可读存储介质,该计算机可读存储介质可以包括随机存取存储器(RAM),诸如各种形式的动态RAM(DRAM),例如DDR2SDRAM;或静态RAM(SRAM);闪速存储器;或者任何其他形式的固定或可移除存储介质,该存储介质可以用于以指令或数据结构的形式携载或存储期望程序代码和程序数据并且可以被计算机访问。主存储器108提供物理地址空间,该物理地址空间由模块112、104可访问的可寻址存储器位置组成。
主存储器108耦合至磁盘127,该磁盘127可以包括计算机可读存储介质,该计算机可读存储介质包括利用用于存储信息(诸如,处理器可读指令、数据结构、程序模块、或者其他数据)的任何方法或技术实施的易失性和/或非易失性、可移除和/或不可移除介质。计算机可读存储介质包括但不限于随机存取存储器(RAM)、只读存储器(ROM)、EEPROM、闪速存储器、CD-ROM、数字多功能光盘(DVD)或其他光存储器、磁带盒、磁带、磁盘存储装置或其他磁性存储设备,或者可以用于存储数据和指令的任何其他介质。
该示例中的控制单元102包括多核计算平台111以执行模块104、112。多核计算平台包括多个处理核,这些处理核分别包括独立执行单元以执行符合用于核的指令集架构的指令。多核计算平台111的核可以分别被实施为单独集成电路(IC)或可以被组合在一个或多个多核处理器(或者,“多核”处理器)内,该多核处理器分别使用单个IC(即,芯片多处理器)来实施。
多核计算平台111执行软件指令,诸如用于定义存储到主存储器108的软件或计算机程序的那些指令。备选地或附加地,控制单元102可以包括用于执行本文中所描述的技术的专用硬件,诸如一个或多个集成电路、一个或多个专用集成电路(ASIC)、一个或多个专用特殊处理器(ASSP)、一个或多个现场可编程门阵列(FPGA)或前述专用硬件示例中的一个或多个专用硬件示例的任何组合。
控制单元102为网络服务应用104和拓扑元件112提供操作环境。在一些示例中,这些模块可以被实施为一个或多个过程,该一个或多个过程在一个或多个服务器的一个或多个虚拟机上执行。也就是说,虽然模块104、112通常被图示并且描述为在单个控制器100上执行,但模块104、112的方面可以在其他计算设备上或一个或多个计算设备的不同虚拟机上执行。
网络服务应用104表示一个或多个过程,这些过程向包括逻辑网络6和控制器100的服务提供方网络的客户端提供服务,以管理路径计算域中的连接性。网络服务应用104可以提供例如电影、电视或其他介质内容分布、IP语音(VoIP)、视频点播(VOD)、批量传输、围墙/开放花园、IP移动性子系统(IMS)和其他移动性服务以及至少部分地由控制器100控制的服务提供方网络的客户端的互联网服务。网络服务应用104可以向拓扑元件112发布对请求逻辑网络6的传输服务的需求。网络服务应用104中的一个或多个网络服务应用可以包括或以其他方式利用客户端接口106,一个或多个客户端应用通过该客户端接口106请求传输服务。例如,客户端接口106可以表示命令行界面(CLI)或图形用户界面(GUI)。客户端接口106还可以或备选地向客户端应用提设置用编程接口(API),诸如web服务。
网络服务应用104可以向拓扑元件112发布对请求由控制器100控制的、从源到目的地的路径计算域中的相应路径的需求。例如,需求可以包括所需带宽或其他约束以及两个端点,该两个端点表示通过由控制器100管理的路径计算域通信的源和目的地。控制单元102将需求作为需求列表存储在需求128数据结构(“需求128”)中。在一些情况下,逻辑网络6的服务提供方或其他管理员可以经由管理接口配置一个或多个需求128。在一些情况下,拓扑元件112可以附加地或备选地基于逻辑网络6先前所经历的需求模式来导出预测需求128。
拓扑元件112针对对路径计算域的需求接受在端点之间路由业务的需求。可以针对不同的时间和日期以及不同的带宽要求来请求需求。拓扑元件112可以基于需求参数和网络资源可用性来调和来自网络服务应用104的需求,以将对应业务的所请求的路径复用到逻辑网络6路径计算域上。
为了智能地计算逻辑网络6的拓扑,拓扑元件112在一些情况下可以包括拓扑模块116以接收业务工程信息(诸如,图1的业务工程信息21),该业务工程信息描述了逻辑网络6的可用资源,该逻辑网络6包括路由器4及其接口以及互连网络链路9。拓扑模块116可以执行一个或多个南向协议(诸如,具有业务工程扩展的开放式最短路径优先(OSPF-TE)、具有业务工程扩展的中间系统到中间系统(ISIS-TE)、BGP链路状态(BGP-LS))以学习逻辑网络6的业务工程信息。
业务工程数据库(TED)126存储业务工程信息,该业务工程信息由拓扑模块116针对逻辑网络6接收,该逻辑网络构成了控制器100的路径计算域。TED 126可以包括一个或多个链路状态数据库(LSDB),其中链路和节点数据在路由协议通告中被接收、从拓扑服务器接收和/或由链路层实体(诸如,覆盖控制器)发现,然后向拓扑模块116提供该链路和节点数据。在一些情况下,服务提供方或其他管理实体可以经由管理接口在TED 126内配置业务工程或其他拓扑信息。
拓扑元件112的路径计算模块114可以计算满足网络层(例如,图1的逻辑网络6)的需求128的路径。在一些情况下,路径计算模块114可以表示图1的路径计算模块58的示例实例。路径计算模块114获得抽象链路数据56,该抽象链路数据56描述了逻辑网络6的候选链路和这些候选链路在其物理(传输)路径上遇到的共享风险以及与路径优化相关的信息,诸如链路的物理长度或延迟。抽象链路数据56可以存储在TED 126中。在一些示例中,路径计算模块114获得光传输网络54的光网络数据750。光网络数据750包括描述光传输网络54的光装备并且由控制器100可用于确定光路损伤的值的数据。控制器100可以基于光网络数据750来确定候选链路,该候选链路用于在具有可行光路的逻辑网络6中进行路由。路径计算模块114可以计算被映射到候选链路的路径并且将该路径放置到网络层的模型。
路径计算模块114已经为逻辑网络6选择并且路由了候选链路,路径设置模块118试图将候选链路的路由路径设置在逻辑网络6上。控制器100的路径设置模块118可以将路径编程到逻辑网络6中以使逻辑网络6的状态与如由路径计算模块114确定的逻辑网络6的状态相匹配。路径设置模块118可以表示图1的路径设置模块26的示例。在提交路径以提供分组传输之前,设置路径可能需要路径验证。路径设置模块118执行用于路径设置的一个或多个南向协议,以将状态注入逻辑网络6的元件(诸如,路由器4中的任何一个或多个路由器)中。南向协议是指如下协议:控制器100的组件可以通过该协议与网络6元件(诸如,路由器4)通信,以获得或注入拓扑信息、转发以及确定逻辑网络6的操作的其他网络信息。例如,南向协议可以包括路径计算元件(PCE)通信协议(PCEP)、具有业务工程扩展的开放式最短路径优先(OSPF-TE)、具有业务工程扩展的中间系统到中间系统(ISIS-TE)、BGP链路状态(BGP-LS)、NETCONF/Yang、路由系统接口(I2RS)协议、网络元件的CLI、简单网络管理协议(SNMP)以及OpenFlow(或者,其他SDN配置协议)。
根据本公开中所描述的技术,路径计算模块114可以包括优化模块117以通过如下操作鉴于需求128来提供对支持分段路由的多路径(例如,第一多条多路径)的优化:计算多路径(例如,第二多条多路径)中的一条或多条路径并且以不同顺序放置该多路径中的一条或多条路径,并且在第二多条多路径对度量的总体使用小于第一多条多路径对度量的总体使用的情况下设置第二多条多路径。优化模块117可以表示图1的优化模块57的示例。
优化模块117可以使用数据(例如,业务工程信息21和/或抽象链路数据56)来确定被设置在逻辑网络6中的多路径对度量(例如,带宽)的总体使用,该数据描述了用于实施多路径中的路径的链路。优化模块117可以针对用于实施多路径中的路径的链路中的每条链路计算多路径中的所有路径对链路的度量的使用,以计算多路径对度量的总体使用。如上文所描述,优化模块117可以实施一个或多个启发式算法和/或对策(“对策134”)以定义计算和放置多路径中的一条或多条路径的顺序。对策134可以包括算法和/或对策(诸如,贪婪算法、随机化函数、或者任何其他算法和/或对策)来对路径的计算和放置进行排序,诸如基于指派给路径的优先级。优化模块117然后可以计算第二多条多路径的总体使用,并且在第二多条多路径对度量的总体使用小于第一多条多路径对度量的总体使用的情况下设置第二多条多路径。如果第二多条多路径的总带宽使用不小于第一多条多路径的总带宽使用,那么优化模块117可以使被设置在逻辑网络6中的多路径保持不变和/或执行启发式算法和/或对策的下一次迭代。
在一些示例中,优化模块117包括优先级器模块132以将优先级指派给多路径中的一条或多条路径,以控制被设置在网络层中的哪些路径将被优化(或者,不被优化)。例如,优化模块117可以使用优先级器模块132(未示出)来将优先级指派给多路径(其被设置在逻辑网络6中)中的一条或多条路径,以防止对这些路径的任何改变或修改。备选地或附加地,优先级器模块132可以将优先级指派给多路径(其被设置在逻辑网络6中)中的一条或多条路径,以支持对这些路径的计算和放置的改变或修改。
在一些示例中,优化模块117可以附加地或备选地确定多路径的质量。例如,早前被计算并且放置到逻辑网络6的模型的多路径可以在链路故障方面更为稳健(例如,具有许多备选路径),并且稍后被计算并且放置到逻辑网络6的模型的多路径可以留下较少数目的路径。在这些示例中,优化模块117可以识别具有更大数目的路径的多路径,优化模块117可以从这些多路径将链路带宽移动到具有更少路径的多路径,或者提供对早前发生的多路径的计算和放置的限制。例如,优化模块117可以计算并且放置具有均等的资源分布和/或路径数目的所有多路径,以避免一些多路径具有更大数目的路径,而一些多路径具有更小数目(例如,只有一个)的路径的实例。
图4是更详细地图示了根据本公开的技术的控制器的示例的框图。控制器100可以表示图3的控制器100的示例实施方式。例如,控制器100可以是或实施WAN控制器、软件定义网络(SDN)控制器和/或路径计算元件。
一般而言,控制器100的路径计算模块414和路径设置模块418可以使用协议来实例化网络中的路径计算客户端(例如,路由器)之间的路径。南向API 432允许控制器100使用例如ISIS、OSPFv2、BGP-LS以及PCEP协议与支持SR的网络节点和其他网络节点(例如,网络的路由器和交换机)通信。通过提供网络中的全局网络状态和带宽需求的视图,控制器100能够计算最佳路径并且设置网络以使用SR范例中的SID列表进行转发。
在一些示例中,应用服务向控制器100发布对请求由控制器100控制的路径计算域中的路径的路径请求。例如,路径请求包括所需带宽或其他约束以及表示接入节点和边缘节点的两个端点,该接入节点和边缘节点通过由控制器100管理的路径计算域通信。路径请求可以进一步指定路径必须可操作的时间/日期和CoS参数(例如,某些路径的每种类别所需的带宽)。
控制器100接受来自应用服务的路径请求以在路径计算域内的端点之间建立路径。可以针对不同的时间和日期以及不同的带宽要求来请求路径。控制器100可以基于所请求的路径参数和所预期的网络资源可用性来调和来自应用服务的路径请求以将所请求的路径复用到路径计算域上。
为了智能地计算和建立通过路径计算域的路径,控制器100包括拓扑模块416以维护拓扑信息(例如,在业务工程数据库442内),该拓扑信息描述了路径计算域的可用资源,包括接入、聚合以及边缘节点、其接口以及互连通信链路。
控制器100的路径计算模块414计算通过路径计算域的所请求的路径。一般而言,路径是单向的。在计算路径后,路径计算模块414调度路径以供路径设置模块418设置。计算路径包括由路径设置模块418可用于在网络中建立路径的路径信息。在提交路径以提供分组传输之前,设置路径可能需要路径验证。
分布式WAN控制器的其他示例细节可以在名称为“软件定义网络控制器(SoftwareDefined Network Controller)”的美国专利9,450,817中找到,该专利的全部内容以引用的方式并入本文中。这仅仅是一个示例,并且控制器100可以以其他方式计算和设置路径。
在该示例中,控制器100包括呈南向应用编程接口(API)430和南向API 432形式的北向接口和南向接口。南向API 430包括方法和/或可访问的数据结构,如上文所提到,应用服务可以通过该方法和/或可访问的数据结构来在路径计算域内配置和请求路径计算并且查询已建立的路径。南向API 432包括方法和/或可访问的数据结构,控制器100通过该方法和/或可访问的数据结构来接收路径计算域的拓扑信息并且通过访问和编程路径计算域内的聚合节点和/或接入节点的数据面来建立路径。
路径计算模块414包括数据结构以存储路径信息以供计算和建立所请求的路径。这些数据结构包括约束434、路径要求436、操作配置438以及路径出口440。应用服务可以调用北向API 430以安装/查询来自这些数据结构的数据。约束434表示在路径计算后描述外部约束的数据结构。约束434允许应用服务例如在路径计算模块414计算路径集合之前修改链路属性,诸如度量。
应用服务可以修改链路的属性以影响所产生的业务工程计算。在此类情况下,链路属性可以覆盖从拓扑指示模块450接收到的属性并且在拓扑中的节点/伴随端口的持续时间内保持有效。约束434的链路编辑消息可以包括链路描述符以及链路属性,该链路描述符指定节点标识符和端口索引,该链路属性指定例如带宽、预期传输时间、共享链路组以及命运共享组。链路编辑消息可以由控制器100发送。
操作配置438表示数据结构,该数据结构向控制器100提供配置信息以相对于例如服务类别(CoS)描述符和迂回行为配置路径计算算法。操作配置438可以根据CCP接收操作配置信息。例如,操作配置消息指定CoS值、队列深度、队列深度优先级、调度规则、过度设置因素、迂回类型、路径故障模式以及迂回路径故障模式。单个CoS配置文件可以用于整个路径计算域。示例CoS值被描述于2013年3月15日提交的名称为“具有集中式控制的聚合网络(Aggregation Network with Centralized Control)”的美国申请第13/842,453号中,该申请的全部内容以引用的方式并入本文中。指派给服务类别的服务类别可以作为路径计算域的属性而独立于节点。
路径出口440表示接口,该接口存储当前在路径计算域中提交或建立的所有路径的路径描述符。响应于经由北向API 430接收到的查询,路径出口440返回一个或多个路径描述符。接收到的查询可以请求任何两个边缘与终止(多条)路径的接入节点之间的路径。在一些示例中,路径描述符可以由应用服务用于在边缘和终止(多条)路径的接入节点处建立转发配置。路径描述符可以包括显式路由对象(ERO)。响应于来自感兴趣方的查询,可以发送路径描述符或“路径信息”。路径出口消息传递路径信息,包括路径类型(主要或迂回);每个CoS值的带宽。响应于接收到路径描述符,接收设备可以使用RSVP-TE来将MPLS LSP从路径的入口用信号通知给出口。
路径要求436表示接口,该接口接收对要由路径计算模块436计算的路径的路径请求并且向路径引擎444提供这些路径请求(包括路径要求)以供计算。路径要求436可以由控制器接收或可以由控制器处置。在此类情况下,路径要求消息可以包括路径描述符,该路径描述符具有终止指定路径的节点的入口节点标识符和出口节点标识符;以及包括CoS值和带宽的请求参数。路径要求消息可以添加到指定路径的现有路径要求或从指定路径的现有路径要求中删除。
拓扑模块416包括拓扑指示模块450以处置拓扑发现并且在需要时维护控制器100与路径计算域的节点之间的控制信道。拓扑指示模块450可以包括用于描述针对路径计算模块414的接收到的拓扑的接口。
拓扑指示模块450可以使用拓扑发现协议来向路径计算模块414描述路径计算域拓扑。在一个示例中,使用用于拓扑发现的云控制协议机制,拓扑指示模块450可以接收节点邻居列表,其中每个邻居包括节点标识符、本地端口索引和远程端口索引以及链路属性列表,例如,该链路属性分别指定端口索引、带宽、预期传输时间、共享链路组以及命运共享组。
拓扑指示模块450可以与拓扑服务器(诸如,路由协议路由反射器)通信,以接收网络的网络层的拓扑信息。拓扑指示模块450可以包括路由协议过程,该路由协议过程执行路由协议以接收路由协议通告,诸如开放式最短路径优先(OSPF)或中间系统到中间系统(IS-IS)链路状态通告(LSA)或边界网关协议(BGP)UPDATE消息。在一些情况下,拓扑指示模块450可以是既不转发路由协议通告也不创立路由协议通告的无源侦听器。在一些情况下,拓扑指示模块450可以备选地或附加地执行拓扑发现机制,诸如用于应用层业务优化(ALTO)服务的接口。拓扑指示模块450因此可以接收由拓扑服务器(例如,ALTO服务器)收集到的拓扑信息的摘要,而非执行路由协议以直接接收路由协议通告。
在一些示例中,拓扑指示模块450接收包括业务工程(TE)信息的拓扑信息。拓扑指示模块450可以例如执行具有TE扩展的中间系统到中间系统(IS-IS-TE)或具有TE扩展的开放式最短路径优先(OSPF-TE)以接收用于通告链路的TE信息。这种TE信息包括以下一项或多项:链路状态、管理属性以及度量,诸如可用于链路的各种LSP优先级级别的带宽,该链路连接路径计算域的路由器。在一些情况下,指示模块450执行BGP-TE以接收用于自主系统间链路和其他网络外链路的通告TE信息。
业务工程数据库(TED)442针对网络存储由拓扑指示模块450接收到的拓扑信息,该网络构成了针对控制器100的通往计算机可读存储介质(未示出)的路径计算域。TED 442可以包括一个或多个链路状态数据库(LSDB),其中链路和节点数据在路由协议通告中被接收、从拓扑服务器接收和/或由链路层实体(诸如,覆盖控制器)发现,然后向拓扑指示模块450提供该链路和节点数据。在一些情况下,运营商可以经由客户端接口在TED 442内配置业务工程或其他拓扑信息。在一些情况下,TED 442还可以存储抽象链路数据(例如,图1的抽象链路数据56),该抽象链路数据描述了路径计算域的候选链路和这些候选链路在其物理(传输)路径上遇到的共享风险以及与路径优化相关的信息,诸如链路的物理长度或延迟。
路径引擎444以TED 442的形式接受路径计算域的当前拓扑快照,并且使用TED442计算节点之间的业务工程路径,如由配置的节点特定策略(约束434)(诸如,SR策略)所指示的和/或通过经由API与外部模块动态联网。
一般而言,为了计算所请求的路径,路径引擎444基于TED 442和所有指定的约束来确定在网络层中是否存在路径,该路径在所请求的时间的持续时间内满足所请求的路径的TE规范。路径引擎444可以使用Dijkstra约束的SPF(CSPF)路径计算算法来识别通过路径计算域的令人满意的路径。如果不存在TE约束,那么路径引擎444可以恢复到SPF。如果存在所请求的路径的令人满意的计算路径,路径引擎444向路径管理器448提供计算路径的路径描述符以使用路径设置模块418建立路径。由路径引擎444计算得到的路径可以被称为“计算”路径,直到路径设置418将调度路径编程到网络中,于是调度路径变为“有源”或“提交”路径的时间为止。调度或有源路径是针对调度时间的临时专用带宽信道,在调度时间内,路径对于传输流为可操作的或将变为可操作的。
路径管理器448使用路径设置模块518建立计算得到的调度路径,在这种情况下,该路径设置模块518包括转发信息库(FIB)配置模块452(被图示为“FIB CONFIG.552”)、策略器配置模块554(被图示为“POLICER CONFIG.554”)以及CoS调度器配置模块556(被图示为“COS SCHEDULER CONFIG.556”)。已经在路径计算域(例如,图1的逻辑网络6)内建立的路径可以被称为“所放置的”路径。
FIB配置模块452对将信息转发给路径计算域的聚合节点或接入节点的数据面进行编程。聚合节点或接入节点的FIB包括MPLS交换表、每个主要LSP的迂回路径、每接口的CoS调度器以及LSP入口处的策略器。FIB配置模块452可以实施例如软件定义网络(SDN)协议(诸如,OpenFlow协议或I2RS协议)以提供和引导节点将转发信息安装到其相应数据面。因此,“FIB”可以是指例如呈一个或多个OpenFlow流表形式的转发表,这些OpenFlow流表分别包括指定匹配分组的处置的一个或多个流表条目。FIB配置模块452可以另外或备选地实施其他接口类型,诸如简单网络管理协议(SNMP)接口、路径计算元件协议(PCEP)接口、设备管理接口(DMI)、CLI、至路由系统(I2RS)的接口、或者任何其他节点配置接口。FIB配置模块452与聚合节点或接入节点建立通信会话以安装转发信息以接收路径建立事件信息,诸如接收到的转发信息已经成功安装或接收到的转发信息无法安装(指示FIB配置故障)的确认。
FIB配置模块452可以根据从路径计算模块414接收到的信息添加、改变(即,隐式添加)或删除转发表条目。从路径计算模块414到FIB配置模块452的FIB配置消息可以指定事件类型(添加或删除);节点标识符;路径标识符;一个或多个转发表条目,这些转发表条目分别包括入口端口索引、入口标签、出口端口索引以及出口标签;以及指定路径标识符和CoS模式的迂回路径。
策略器配置模块454可以由路径计算模块414调用以请求将策略器安装在特定聚合节点或接入节点上以用于特定LSP入口。如上文所提及,聚合节点或接入节点的FIB包括LSP入口处的策略器。策略器配置模块454可以接收策略器配置请求。策略器配置请求消息可以指定事件类型(添加、改变或删除);节点标识符;LSP标识符;并且针对每种服务类别,指定策略器信息列表,该策略器信息列表包括CoS值、最大带宽、突发以及丢弃/评论。FIB配置模块452根据策略器配置请求来配置策略器。
CoS调度器配置模块456可以由路径计算模块414调用以请求在聚合节点或接入节点上对CoS调度器的配置。CoS调度器配置模块456可以接收CoS调度器配置信息。例如,调度配置请求消息可以指定事件类型(改变);节点标识符;端口身份值(端口索引);以及指定带宽、队列深度以及调度规则的配置信息。
路径引擎444可以计算分段标识符(SID)列表,该分段标识符列表满足分段路由(SR)策略的多路径解决方案中的每条路径。路径设置模块418可以向支持SR的网络节点输出SID列表以设置网络来沿着多路径转发业务。
控制器100包括硬件环境,该硬件环境包括用于执行机器可读软件指令以实施模块、接口、管理器以及相对于控制器100图示和描述的其他组件的处理电路系统451。这些组件可以单独利用软件或硬件来实施或可以被实施为软件、硬件或固件的组合。例如,控制器100可以包括一个或多个处理器,该处理器包括执行呈软件指令形式的程序代码的处理电路系统451。在那种情况下,各种软件组件/模块可以包括存储在计算机可读存储介质(诸如,计算机存储器或硬盘(未示出))上的可执行指令。
根据本公开中所描述的技术,路径计算模块414包括优化模块445以提供对支持分段路由的多路径的优化。优化模块445可以表示图1的优化模块57和图3的优化模块117的示例实施方式。优化模块117可以实施用于确定多路径的总体使用的数据模型,诸如图7中所示出的“PathsLinks”的数据模型。
在该示例中,路径引擎444可以使用优化模块445来优化支持分段路由的多路径。优化模块445可以实施用于优化支持分段路由的多路径的数据模型,诸如图8中所示出的数据模型。例如,优化模块445可以使用数据(例如,存储在TED 442中的业务工程信息和/或抽象链路数据)来确定被设置在逻辑网络6中的多路径对度量(例如,带宽)的总体使用,该数据描述了用于实施多路径中的路径的链路。优化模块445可以针对用于实施多路径中的路径的链路中的每条链路计算多路径中的所有路径对链路的度量的使用,以计算多路径对度量的总体使用。如上文所描述,优化模块445可以实施一个或多个启发式算法和/或对策(“对策447”)以定义计算和放置多路径中的一条或多条路径的顺序。对策447可以包括算法和/或对策(诸如,贪婪算法、随机化函数、或者任何其他算法和/或对策)来对路径的计算和放置进行排序,诸如基于指派给路径的优先级。
路径引擎444可以基于对策447的实施方式以一定顺序计算第二多条多路径中的路径并且将该第二多条多路径中的路径放置到逻辑网络的模型。优化模块445然后可以计算第二多条多路径的总体使用,并且在第二多条多路径对度量的总体使用小于第一多条多路径对度量的总体使用的情况下设置第二多条多路径。如果第二多条多路径对度量的总体使用不小于第一多条多路径对度量的总体使用,那么优化模块445可以使被设置在逻辑网络中的多路径保持不变和/或执行启发式算法和/或对策的下一次迭代。
在一些示例中,优化模块445可以具有计时模块(未示出)以控制执行优化过程的持续时间。例如,如果尚未超过由计时模块设置的时间限制,优化模块445可以执行对策447的下一次迭代,例如以针对下一次迭代将多路径中的路径的计算和放置重新排序。如果已经超过了由计时模块设置的时间限制并且没有找到优化场景,使被设置在网络层中的多路径保持不变。
在一些示例中,优化模块445包括优先级器模块446以将优先级指派给一条或多条多路径,以控制被设置在网络层中的哪些多路径将被优化(或者,不被优化)。例如,优化模块445可以使用优先级器模块446来将优先级指派给一条或多条多路径(其被设置在逻辑网络6中),以防止对这些多路径的任何改变或修改。备选地或附加地,优先级器模块446可以将优先级指派给一条或多条多路径(其被设置在逻辑网络6中),以支持对这些多路径的计算和放置的改变或修改。
在一些示例中,优化模块445可以附加地或备选地确定多路径的质量。例如,早前被计算并且放置到逻辑网络6的模型的多路径可以在链路故障方面更为稳健(例如,具有许多备选路径),并且稍后被计算并且放置到逻辑网络6的模型的多路径可以留下较少数目的路径。在这些示例中,优化模块445可以从路径计算模块414的数据结构(其存储计算路径的路径信息)识别具有更大数目的路径的多路径,优化模块445可以从这些多路径将链路带宽移动到具有更少路径的多路径,或者提供对早前发生的多路径的计算和放置的限制。例如,优化模块445可以计算并且放置具有均等的资源分布和/或路径数目的所有多路径,以避免一些多路径具有更大数目的路径,而一些多路径具有更小数目的路径的实例。
图5是更详细地图示了路径引擎444的示例实施方式的框图。路径引擎444可以在网络堆栈的不同层执行各种路由协议570。路径引擎444负责维护路由信息560以反映网络的当前拓扑。路由信息560可以包括TED 442和LSDB 580。具体地,路由协议周期性地更新路由信息560以基于由控制器100接收到的路由协议消息来准确地反映网络和其他实体的拓扑。协议可以是在一个或多个处理器上执行的软件过程。例如,路径引擎444包括在网络堆栈的网络层操作的网络协议,该网络协议通常被实施为可执行软件指令。操作可以重叠,或者替代地,由拓扑模块416执行。
协议570可以包括边界网关协议(BGP)571以在网络中的路由域之间交换路由和可达性信息并且包括BGP-LS 572以在网络中的路由域之间交换业务工程和分段路由策略信息。协议570还可以包括IGP 573以交换链路状态信息并且促进在路由域中的每个路由域内的路由器之间转发分组或其他数据单元。在一些示例中,IGP 573可以包括实施用于在路由域内交换路由和可达性信息的IGP的IS-IS路由协议。IGP 573可以包括支持业务工程的IS-IS扩展。在一些示例中,协议570可以包括OSPF组件和IS-IS组件两者。协议570还可以包括配置协议。例如,协议570可以包括PCEP 574或NETCONF。
路径引擎444包括SR组件,该SR组件用于实施本文中所描述的技术来生成多路径的SID列表。SID列表586包括以这种方式生成的一个或多个SID列表,该SID列表可以由控制器100设置给网络以用于分段路由隧道。入口路由器可以通过在分段路由报头或MPLS标签堆栈中为分组附加SID标签堆栈来使用SID通过受控指令集(被称作分段)引导分组。协议570可以包括其他路由协议(未示出),诸如标签分布协议(LDP)、具有业务扩展的资源保留协议(RSVP-TE)、路由信息协议(RIP)、或者其他网络协议。
在该示例中,路径引擎444包括命令行界面(CLI)578,该命令行界面578为管理员提供访问以监测、配置或以其他方式管理控制器100。管理员可以经由CLI 578配置控制器100的方面,包括与路由以及计算和设置多路径的SID列表相关的方面。CLI 578可以支持指定源、目的地、用户约束、偏好、SR策略以及其他可配置信息。
图6是图示了根据本公开的技术的计算设备的示例操作的流程图。相对于图1的控制器52以及图2和图3的控制器100描述了计算设备的操作。尽管相对于控制器52描述了计算设备的操作,但是计算设备的操作可以应用于图1的优化模块57、图3的优化模块117和/或图4的优化模块445的操作。
在图6的示例中,图1的控制器52可以针对网络层中的多条链路中的每条链路计算第一多条多路径中的所有路径对链路的度量的使用,以计算第一多条多路径的总体使用,该第一多条多路径被设置在网络层中(602)。例如,控制器52可以获得业务工程信息21,该业务工程信息21包括如下信息:诸如链路的每个优先级级别的管理权重和可用带宽和/或抽象链路数据56,该抽象链路数据56描述了由被设置在逻辑网络6中的多路径的链路9在其物理(传输)路径上遇到的共享风险和/或关于链路的物理长度或延迟的信息。基于该信息,优化模块57可以计算第一多条多路径并且以第一顺序将第一多条多路径放置到网络层的模型,其中第一多条多路径对应于不同的相应分段路由策略。控制器52可以使用业务工程信息21和/或抽象链路数据56来诸如通过使用图2中所描述的函数计算第一多条多路径的总带宽使用。在一些示例中,控制器52可以备选地或附加地计算第一多条多路径的延迟。
控制器52可以针对相应分段路由策略计算不同的(“第二”)多条多路径(604)。例如,控制器52可以计算第二多条多路径并且以不同的第二顺序将该第二多条多路径放置到网络层的模型。在一些示例中,控制器52可以实施一个或多个启发式算法和/或对策来将多路径的一条或多条路径的计算和放置重新排序。启发式算法和/或对策可以包括贪婪算法、随机化函数、或者任何其他算法和/或对策来将网络层中的路径的放置重新排序。在一些示例中,控制器52可以将相应优先级指派给一条或多条多路径以优化(或者,不优化)多路径。例如,控制器52可以将优先级指派给一条或多条多路径(其被设置在逻辑网络6中),以防止对这些多路径的任何改变或修改。备选地或附加地,优化模块57可以将优先级指派给一条或多条多路径(其被设置在逻辑网络6中),以支持对这些多路径的计算和放置的改变或修改。
控制器52可以针对多条链路中的每条链路计算第二多条多路径中的所有路径对链路的度量的使用,以计算第二多条多路径的总体使用(606)。控制器52可以确定第二多条多路径的总体使用是否小于第一多条多路径的总体使用(608)。如果控制器52确定第二多条多路径的总体使用小于第一多条多路径的总体使用(步骤608的“是”),那么控制器52可以将第二多条多路径设置为最佳的多条多路径(610)。在一些示例中,控制器52可以包括配置有时间限制的计时器,在该时间限制中,控制器52将执行如上文所描述的优化过程。例如,如果计时器已经到期(步骤612的“是”),那么控制器52可以使控制器52将第二多条多路径设置在网络层中(614)。如果计时器尚未到期(步骤612的“否”),那么在一些示例中,控制器52可以执行算法和/或对策的下一次迭代(例如,计算多路径中的路径并且以不同顺序放置多路径中的路径)(604)并且评估计算得到的多条多路径以确定计算得到的多条多路径是否有所改善。也就是说,控制器52可以继续生成对多路径的候选改变并且追踪最佳选项,直到计时器到期为止。
如果控制器52确定第二多条多路径的总体使用不小于第一多条多路径的总体使用(步骤608的“否”),那么优化模块57可以确定计时器是否已经到期(616)。例如,如果计时器尚未到期(步骤616的“否”),那么优化模块57可以执行算法和/或对策的下一次迭代(例如,计算多路径中的路径并且以不同顺序放置多路径中的路径)(604)。在一些示例中,如果计时器已经到期(步骤616的“是”)并且没有找到优化场景,那么控制器52不改变被设置在网络层中的第一多条多路径(618)。
在一些示例中,控制器52可以附加地或备选地确定度量的总体使用,确定多路径的质量。例如,早前被计算并且放置到逻辑网络6的模型的多路径可以在链路故障方面更为稳健(例如,具有许多备选路径),并且稍后被计算并且放置到逻辑网络6的模型的多路径可以留下较少数目的路径。在这些示例中,控制器52可以确定第一多条多路径的质量(例如,确定第一条多路径是否具有不均等的路径分布)。控制器52可以确定第一多条多路径具有不均等的数目的路径。响应于确定第一多条多路径具有不均等的数目的路径,控制器52可以针对相应分段路由策略计算不同(第三)多条多路径,其中计算第三多条多路径包括:计算第三多条多路径中的多路径并且以与第一多条多路径中的多路径不同的第三顺序将第三多条多路径中的多路径放置到网络层的模型。控制器52可以响应于确定第三多条多路径具有均等数目的路径,在网络层中设置第三多条多路径。
本文中所描述的技术可以利用硬件、软件、固件或他们的任何组合来实施。被描述为模块、单元或组件的各种特征可以在集成逻辑设备中一起实施,或单独实施为离散但可互操作的逻辑设备或其他硬件设备。在一些情况下,电子电路系统的各种特征可以被实施为一个或多个集成电路设备,诸如集成电路芯片或芯片集。
如果在硬件中实现,那么本公开可以涉及诸如处理器或集成电路设备(诸如,集成电路芯片或芯片集)的装置。备选地或附加地,如果利用软件或固件实施,那么这些技术可以至少部分地通过包括指令的计算机可读数据存储介质来实现,该指令在被执行时使处理器执行上文所描述的方法中的一种或多种方法。例如,计算机可读数据存储介质可以存储此类指令以供处理器执行。
计算机可读介质或计算机可读存储设备可以形成计算机程序产品的一部分,其可以包括封装材料。计算机可读介质可以包括计算机数据存储介质,诸如随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪速存储器、磁性或光学数据存储介质等。在一些示例中,制品可以包括一种或多种计算机可读存储介质。
在一些示例中,计算机可读存储介质可以包括非暂时性介质。术语“非暂时性”可以指示存储介质并不实施为载波或传播信号。在某些示例中,非暂时性存储介质可以存储可以随着时间变化的数据(例如,在RAM或缓存中)。
代码或指令可以是由包括一个或多个处理器(诸如,一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等效的集成或离散逻辑电路系统)的处理电路系统执行的软件和/或固件。因此,如本文中所使用的术语“处理器”可以是指任何前述结构或适合于实施本文中所描述的技术的任何其他结构。此外,在一些方面中,可以在软件模块或硬件模块内提供本公开中所描述的功能性。
Claims (20)
1.一种方法,包括:
由具有多层网络的模型的计算系统针对多条链路中的每条链路计算第一多条多路径中的所有路径对所述链路的度量的使用,以计算所述第一多条多路径的总体使用,所述多层网络包括具有所述多条链路的网络层,所述第一多条多路径被设置在所述网络层中,
其中,所述第一多条多路径中的多路径已经被计算并且以第一顺序被放置到所述网络层的模型,以及
其中,所述第一多条多路径中的所述多路径对应于不同的相应分段路由策略;
由所述计算系统针对所述相应分段路由策略计算第二多条多路径,其中,计算所述第二多条多路径包括:计算所述第二多条多路径中的所述多路径并且以与所述第一多条多路径中的所述多路径不同的第二顺序将所述第二多条多路径中的所述多路径放置到所述网络层的所述模型;
由所述计算系统针对所述多条链路中的每条链路计算所述第二多条多路径中的所有路径对所述链路的所述度量的使用,以计算所述第二多条多路径的总体使用;以及
响应于确定所述第二多条多路径的所述总体使用小于所述第一多条多路径的所述总体使用,由所述计算系统在所述网络层中设置所述第二多条多路径。
2.根据权利要求1所述的方法,其中,计算所述第一多条多路径的所述总体使用包括:计算所述第一多条多路径的总加权带宽使用和总加权带宽容量。
3.根据权利要求1所述的方法,其中,计算所述第一多条多路径中的所有路径对所述链路的所述度量的所述使用包括:
确定由所述第一多条多路径中的特定路径使用的所述链路的带宽的部分和针对所述第一多条多路径可用于所述链路的带宽容量。
4.根据权利要求1所述的方法,
其中,所述多层网络包括传输层,以及
其中,计算所述第一多条多路径中的所有路径对所述链路的所述度量的所述使用包括:获得所述传输层中被映射到所述第一多条多路径中的所述路径的一条或多条链路的所述度量的使用。
5.根据权利要求1至4中的任一项所述的方法,其中计算所述第二多条路径中的所述多路径并且以所述不同的第二顺序将所述第二多条路径中的所述多路径放置到所述网络层的所述模型以生成所述第二多条多路径是基于贪婪算法的。
6.根据权利要求1至4中的任一项所述的方法,其中,计算所述第二多条路径中的所述多路径并且以所述不同的第二顺序将所述第二多条路径中的所述多路径放置到所述网络层的所述模型以生成所述第二多条多路径是基于随机顺序的。
7.根据权利要求1至4中的任一项所述的方法,其中,计算所述第二多条路径中的所述多路径并且以所述不同的第二顺序将所述第二多条路径中的所述多路径放置到所述网络层的所述模型以生成所述第二多条多路径是基于被指派给所述分段路由策略的相应优先级的。
8.根据权利要求7所述的方法,其中,被指派给所述分段路由策略的所述相应优先级包括以下至少一项:用于支持对所述第一多条多路径中的对应多路径的修改的优先级、或用于防止对所述第一多条多路径中的对应多路径的修改的优先级。
9.根据权利要求1所述的方法,还包括:
响应于确定所述第二多条多路径的所述总体使用不小于所述第一多条多路径的所述总体使用,使被设置在所述网络层中的所述第一多条多路径保持不变。
10.一种多层网络的计算设备,所述多层网络包括具有多条链路的网络层,所述计算设备包括:
存储器;以及
处理电路系统,与所述存储器通信,所述处理电路系统和所述存储器被配置为:
针对所述多条链路中的每条链路,计算第一多条多路径中的所有路径对所述链路的度量的使用,以计算所述第一多条多路径的总体使用,所述第一多条多路径被设置在所述网络层中,
其中,所述第一多条多路径中的多路径已经被计算并且以第一顺序被放置到所述网络层的模型,以及
其中,所述第一多条多路径中的所述多路径对应于不同的相应分段路由策略;
针对所述相应分段路由策略计算第二多条多路径,其中,计算所述第二多条多路径包括:计算所述第二多条多路径中的所述多路径并且以与所述第一多条多路径中的所述多路径不同的第二顺序将所述第二多条多路径中的所述多路径放置到所述网络层的所述模型;以及
响应于确定所述第二多条多路径的所述总体使用小于所述第一多条多路径的所述总体使用,在所述网络层中设置所述第二多条多路径设置。
11.根据权利要求10所述的计算设备,其中,为了计算所述第一多条多路径的所述总体使用,所述处理电路系统还被配置为:
计算所述第一多条多路径的总加权带宽使用和总加权带宽容量。
12.根据权利要求10所述的计算设备,其中,为了计算所述第一多条多路径的所述总体使用,所述处理电路系统还被配置为:
确定由所述第一多条多路径中的特定路径使用的所述链路的带宽的部分和针对所述多条多路径可用于所述链路的带宽容量。
13.根据权利要求10所述的计算设备,
其中,所述多层网络包括传输层,以及
其中,为了计算所述第一多条多路径中的所有路径对所述链路的所述度量的所述使用,所述处理电路系统还被配置为:获得所述传输层中被映射到所述第一多条多路径中的所述路径的一条或多条链路的所述度量的使用。
14.根据权利要求10至13中的任一项所述的计算设备,其中,计算所述第二多条路径中的所述多路径并且以所述不同的第二顺序将所述第二多条路径中的所述多路径放置到网络层的所述模型以生成所述第二多条多路径是基于贪婪算法的。
15.根据权利要求10至13中的任一项所述的计算设备,其中,计算所述第二多条路径中的所述多路径并且以所述不同的第二顺序将所述第二多条路径中的所述多路径放置到网络层的所述模型以生成所述第二多条多路径是基于随机顺序的。
16.根据权利要求10至13中的任一项所述的计算设备,其中,计算所述第二多条路径中的所述多路径并且以所述不同的第二顺序将所述第二多条路径中的所述多路径放置到所述网络层的所述模型以生成所述第二多条多路径是基于被指派给所述分段路由策略的相应优先级的。
17.根据权利要求16所述的计算设备,其中,被指派给所述分段路由策略的所述相应优先级包括以下至少一项:用于支持对所述第一多条多路径中的对应多路径的修改的优先级、或用于防止对所述第一多条多路径中的对应多路径的修改的优先级。
18.根据权利要求10所述的计算设备,其中,所述处理电路系统还被配置为:
响应于确定所述第二多条多路径的所述总体使用不小于所述第一多条多路径的所述总体使用,使被设置在所述网络层中的所述第一多条多路径保持不变。
19.根据权利要求10、17至18中的任一项所述的计算设备,其中,所述处理电路系统还被配置为:
确定所述第一多条多路径具有不均等数量数目的路径;
响应于确定所述第一多条多路径具有不均等数目的路径,针对所述相应分段路由策略计算第三多条多路径,其中,计算所述第三多条多路径包括:计算所述第三多条多路径中的所述多路径并且以与所述第一多条多路径中的所述多路径不同的第三顺序将所述第三多条多路径中的所述多路径放置到所述网络层的所述模型;以及
响应于确定所述第三多条多路径具有均等数目的路径,在所述网络层中设置所述第三多条多路径。
20.一种编码有指令的计算机可读存储介质,所述指令用于使一个或多个可编程处理器执行根据权利要求1至9中的任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/446,375 | 2021-08-30 | ||
US17/446,375 US11677659B2 (en) | 2021-08-30 | 2021-08-30 | Optimization of segment routing-enabled multipath network |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115733791A true CN115733791A (zh) | 2023-03-03 |
Family
ID=78725369
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111383592.6A Pending CN115733791A (zh) | 2021-08-30 | 2021-11-22 | 对支持分段路由的多路径网络的优化 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11677659B2 (zh) |
EP (1) | EP4142245A1 (zh) |
CN (1) | CN115733791A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11894978B1 (en) * | 2022-11-04 | 2024-02-06 | Beijing University Of Posts And Telecommunications | Computing power scheduling methods, apparatus, electronic devices and storage media |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230261976A1 (en) * | 2022-02-15 | 2023-08-17 | Federated Wireless, Inc. | Systems and methods for providing multipath connectivity intelligence |
CN116437409B (zh) * | 2023-06-13 | 2023-08-22 | 微网优联科技(成都)有限公司 | 一种无线路由器的信道切换方法及装置 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4451027B2 (ja) * | 2001-07-11 | 2010-04-14 | 富士通株式会社 | 複数経路探索方法及びこれを適用するネットワーク装置 |
US8750288B2 (en) | 2012-06-06 | 2014-06-10 | Juniper Networks, Inc. | Physical path determination for virtual network packet flows |
US8711855B1 (en) | 2012-12-18 | 2014-04-29 | Juniper Networks, Inc. | Topology discovery, control channel establishment, and datapath provisioning within an aggregation network with centralized control |
US9450817B1 (en) | 2013-03-15 | 2016-09-20 | Juniper Networks, Inc. | Software defined network controller |
US9160651B2 (en) * | 2013-07-24 | 2015-10-13 | Telefonaktiebolaget L M Ericsson (Publ) | Metric biasing for bandwidth aware tie breaking |
US9215164B2 (en) * | 2013-11-08 | 2015-12-15 | Alcatel Lucent | Multi-source correlation of network topology metrics |
US9794165B1 (en) | 2014-09-29 | 2017-10-17 | Juniper Networks, Inc. | Batched path computation in resource-constrained networks |
US9602387B2 (en) * | 2014-12-29 | 2017-03-21 | Juniper Networks, Inc. | Network topology optimization |
US10326830B1 (en) * | 2016-09-02 | 2019-06-18 | Amazon Technologies, Inc. | Multipath tunneling to a service offered at several datacenters |
US10148564B2 (en) | 2016-09-30 | 2018-12-04 | Juniper Networks, Inc. | Multiple paths computation for label switched paths |
US10212088B2 (en) | 2016-11-07 | 2019-02-19 | Cisco Technology, Inc. | Tactical traffic engineering based on segment routing policies |
US10230605B1 (en) | 2018-09-04 | 2019-03-12 | Cisco Technology, Inc. | Scalable distributed end-to-end performance delay measurement for segment routing policies |
-
2021
- 2021-08-30 US US17/446,375 patent/US11677659B2/en active Active
- 2021-11-22 EP EP21209663.0A patent/EP4142245A1/en active Pending
- 2021-11-22 CN CN202111383592.6A patent/CN115733791A/zh active Pending
-
2023
- 2023-06-12 US US18/332,864 patent/US20230327980A1/en active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11894978B1 (en) * | 2022-11-04 | 2024-02-06 | Beijing University Of Posts And Telecommunications | Computing power scheduling methods, apparatus, electronic devices and storage media |
Also Published As
Publication number | Publication date |
---|---|
US20230327980A1 (en) | 2023-10-12 |
US11677659B2 (en) | 2023-06-13 |
EP4142245A1 (en) | 2023-03-01 |
US20230062080A1 (en) | 2023-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10374747B2 (en) | Point-to-multipoint path computation for wide area network optimization | |
EP3817446B1 (en) | Method and apparatus for creating network slices | |
US9712447B2 (en) | Point-to-multipoint path computation for wide area network optimization | |
CN109905277B (zh) | 用于广域网优化的点到多点路径计算 | |
CN109257278B (zh) | 用于非分段路由启用的路由器的分段路由标签交换路径方法 | |
EP3570506B1 (en) | Dynamic end-to-end network path setup across multiple network layers with network service chaining | |
US9258238B2 (en) | Dynamic end-to-end network path setup across multiple network layers | |
US11677659B2 (en) | Optimization of segment routing-enabled multipath network | |
US11818032B2 (en) | Bandwidth constraint for multipath segment routing | |
US11695688B2 (en) | Computing segment identifier lists for multipaths in a segment routing-enabled network | |
CN114363250B (zh) | 支持分段路由的网络中的多路径的重新计算 | |
US10554543B1 (en) | Migrating data traffic between label switched paths (LSPs) based on per-LSP protocol priority value | |
US11575572B2 (en) | Network controller horizontal scaling for network device configuration sessions management | |
EP4075751B1 (en) | Network controller horizontal scaling for network device configuration sessions management | |
EP4297358A1 (en) | Link behavior prediction for use in path selection |
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 |