CN112311675A - 用于分段路由(sr)路径的保证型带宽 - Google Patents

用于分段路由(sr)路径的保证型带宽 Download PDF

Info

Publication number
CN112311675A
CN112311675A CN201911403267.4A CN201911403267A CN112311675A CN 112311675 A CN112311675 A CN 112311675A CN 201911403267 A CN201911403267 A CN 201911403267A CN 112311675 A CN112311675 A CN 112311675A
Authority
CN
China
Prior art keywords
csg
path
segment
bandwidth
per
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
CN201911403267.4A
Other languages
English (en)
Other versions
CN112311675B (zh
Inventor
R·托维
S·文卡塔拉曼
T·萨德
V·P·勃拉姆
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.)
Juniper Networks Inc
Original Assignee
Juniper Networks Inc
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 Juniper Networks Inc filed Critical Juniper Networks Inc
Publication of CN112311675A publication Critical patent/CN112311675A/zh
Application granted granted Critical
Publication of CN112311675B publication Critical patent/CN112311675B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/34Source routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2379Updates performed during online database operations; commit processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • 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
    • H04L45/124Shortest path evaluation using a combination of metrics
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/033Topology update or discovery by updating distance vector protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/036Updating the topology between route computation elements, e.g. between OpenFlow controllers
    • 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
    • H04L45/125Shortest path evaluation based on throughput or bandwidth

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开的实施例涉及用于分段路由(SR)路径的保证型带宽。通过以下步骤来确定通过网络的至少一个带宽保证型分段路由(SR)路径:(a)接收带宽需求值作为输入;(b)获得网络信息;(c)确定受约束的最短多路径(CSGi);(d)确定引导流量通过CSGi所需的一组SR分段列表
Figure DDA0002346691440000011
以及(e)使用Si和每个分段列表负载分配
Figure DDA0002346691440000012
每个分段相等成本多路径(“ECMP”)以及每个链路残余容量来调整Li中的负载分配,使得能够通过CSGi承载的带宽容量被最大化。

Description

用于分段路由(SR)路径的保证型带宽
相关申请
本申请要求于2019年7月24日提交的并将Raveendra Torvi、Abhishek Deshmukh、Tarek Saad和Vishnu Pavan Beeram列为发明人的标题为“GUARANTEED BANDWIDTH FORSEGMENT ROUTED(SR)PATHS”的美国临时专利第62/877,845号(也被称为“845临时申请文件”并通过引用并入本文)的权益。本发明的范围不限于‘845临时申请文件’中的具体实施例的任何要求。
技术领域
本说明书涉及通信网络。更具体地,本发明涉及采用分段路由的通信网络中的路径计算和带宽分配。
背景技术
§1.2背景信息
§1.2.1分段路由
互联网最初被设计为通过最低成本路径提供最大努力的连接性。然而,在当今的互联网中,许多应用不仅仅需要通过最低成本路径的最大努力的连接性。现今,网络操作员的任务是传递高级服务,诸如,流量工程和大规模快速重新路由。为了大规模传递这些高级服务,网络操作员必须降低网络复杂性。分段路由(SR)提供了用于流量引导(steering)的创新方法。其可以被应用于诸如流量工程和快速重新路由的长期问题。SR在被应用于这些问题时可以简化路由协议、网络设计和网络操作。
分段路由(也被称为联网中的源分组路由(“SPRING”)是一种控制平面架构,该控制平面架构使得入口路由器能够在不依赖网络中的中间节点的情况下引导分组通过网络中的一组特定节点和链路,以确定该分组应该采取的实际路径。在此上下文中,术语“源”是指施加显式路由的点。分段路由在“Segment Routing Architecture(分段路由架构)”, 求评注8402(2018年7月,互联网工程任务组)(被称为“RFC 8402”并且通过引用并入本文)中被定义。SPRING通过使用软件定义网络(“SDN”)控制器来实现网络的自动化,该控制器用于在广域网(“WAN”)分组网络中进行流量引导和流量工程。
分段路由利用源路由范例。节点通过被称作“分段”的有序指令列表来引导分组。例如,入口路由器(也被称为“头端路由器”)可以通过预先考虑具有包含适当隧道组合的分段的分组,来引导分组通过一组期望节点和链路。
§1.2.1.1 SR域
SR域是参与SR协议的节点类集。在SR域内,节点可以执行入口、传输或出口过程。图1描绘了源节点将分组发送到目的地节点的网络。源节点和目的地节点驻留在SR域外部,但这些节点之间的路径遍历SR域。更具体地,当分组到达SR入口节点(R1)时,入口节点使分组受到策略限制。策略可以将分组与SR路径相关联。策略包括匹配条件和动作。如果分组满足匹配条件,那么SR入口节点(R1)可以将分组封装在SR隧道中。SR隧道遍历通向出口节点(R6)的SR路径。
SR路径可以被设计成满足任何数目的约束(例如,最小链路带宽、最大路径延时)。虽然SR路径可以遵循通向出口节点的最低成本路径,但约束可以使得其遵循另一路径。
源节点和SR入口节点可以驻留在独立硬件平台上(例如,分别驻留在膝上型电脑和路由器上),或者源节点和SR入口节点可以驻留在相同硬件上(例如,分别驻留在虚拟机和管理程序上)。类似地,SR出口节点和目的地节点可以驻留在独立硬件平台上或者驻留在单个平台上。在不太典型的配置中,源节点驻留在SR域内。在这种情况下,源节点也是SR入口节点,这是因为该节点执行了SR入口过程。类似地,目的地节点可以驻留在SR域内,在这种情况下,目的地节点也是SR出口节点,这是因为该节点执行了SR出口过程。
§1.2.1.2 SR路径
SR路径是将SR入口节点连接到SR出口节点的有序分段列表。虽然SR路径可以遵循从入口到出口的最低成本路径,但其也可以遵循另一路径。
不同SR路径可以共享相同分段。例如,参照图2,路径A将入口节点A连接到出口节点Z,而路径B将入口节点B连接到相同出口节点Z。路径A和路径B二者都遍历分段3。
当SR入口节点将分组封装在SR隧道中时,其将在隧道报头中编码相关联的分段列表。然后,SR入口节点将分组转发到下游。传输节点处理隧道报头,从而将分组从当前分段转发到下一分段。由于SR入口节点在隧道报头中编码路径信息,因此传输节点不需要维持关于其支持的每个路径的信息。而是,仅需要传输节点处理隧道报头,从而将分组从当前分段转发到下一分段。这是SR的主要益处。更具体地,由于不需要传输节点来维持路径信息,因此消除了与维持该信息相关联的开销,简化了路由协议,改善了缩放特性,并且网络操作更少产生问题。
§1.2.1.3 SR分段和分段类型
SR分段是使分组遍历网络拓扑的部分的指令。虽然分段(即,指令)使分组遍历网络拓扑的部分,但其与网络拓扑的该部分不同。SR定义了许多SR分段类型。在这些分段类型中有“邻接分段”和“前缀分段”。下文描述了这些分段类型中的每一种。
§1.2.1.3.1邻接分段
邻接分段是使分组遍历指定链路(即,与IGP邻接相关联的链路)的指令。图3描绘了将R1连接到R6的SR路径。路径包含以下邻接分段:(1)在R1上被实例化的分段1使分组遍历链路R1->R2;(2)在R2上被实例化的分段2使分组遍历链路R2->R3;以及在R3上被实例化的分段3使分组遍历链路R3->R6。如果上述链路中的任何链路变得不可用,那么相关联的邻接分段也会变得不可用。因此,如果上述邻接分段中的任何邻接分段变得不可用,那么整个路径也会变得不可用。
因此,不论链路成本如何,邻接分段是通过两个节点之间的特定链路承载分组的严格转发的单跳隧道。
§1.2.1.3.2前缀分段
前缀分段是使分组遍历通向节点或前缀的最低成本路径的指令。参照图4A,假设所有链路配置有相同的内部网关协议(IGP)度量并且假设SR路径应为最低成本(且因此)最短路径。SR路径将R1连接到R6,并且包含以下前缀分段:(1)在R1上被实例化的分段1,其使分组遍历从R1到R2的最低成本路径;(2)在R2和R3上被实例化的分段2,其使分组遍历从实例化节点到R6的最低成本路径。因此,当链路全部可用时,SR路径指导分组通过上述链路和分段。
参照图3,假设链路R1->R2变得不可用。当这种情况发生时,网络在R1与R2之间建立新最低成本路径。该新最低成本路径包括链路R1->R4和R4->R2。由于网络已在R1与R2之间建立新最低成本路径,因此分段1仍然可用并使分组遍历新最低成本路径。分段2的行为未改变。因此,路径现在遍历链路R1->R4、R4->R2、R2->R3以及R3->R6。
因此,前缀分段是使用相等成本多跳感知最短路径链路到达前缀的多跳隧道。前缀分段标识符(SID)支持IPv4和IPv6前缀二者。节点分段是前缀分段的特殊情况,该前缀分段使用两个特定节点之间的最短路径链路。
§1.2.1.3.3任播分段
IGP任播分段是标识一组路由器的IGP前缀分段。任播分段基于朝向任播集合的最接近节点的相等成本多路径感知最短路径来强制转发。在任播组内,所有路由器都通告具有相同分段标识符(SID)值的相同前缀,这有助于负载平衡。因此,任播分段也是一种类型的前缀分段,该前缀分段标识一组路由器以通告具有相同SID值的相同前缀。
§1.2.1.4 SR MPLS
在SR-MPLS中,SR路径被编码为MPLS标签堆栈,其中每个标签堆栈条目表示SR路径中的分段。下文描述了如何使用MPLS标签对邻接分段和前缀分段进行编码。
§1.2.1.4.1使用MPLS标签对邻接分段进行编码
参照图5,SR路径将R1连接到R4。SR路径包含三个邻接分段。分段1使分组遍历链路R1->R2,而分段2使分组遍历链路R2->R3,并且分段3使分组遍历链路R3->R4。当R1从SR域的外部接收分组时,其使分组受到策略限制。策略可以使R1通过图5中所示的SR路径转发分组。当这种情况发生时,R1施加了包含两个条目的MPLS标签堆栈。堆栈顶部的条目表示分段2并且承载MPLS标签1002。堆栈底部的条目表示分段3并且承载MPLS标签1003。
在已经施加了MPLS标签堆栈之后,R1通过分段1(即,链路R1->R2)转发分组。当分组到达R2时,R2从标签堆栈中提取顶部标签(即,1002),并且在其转发信息库(“FIB”)中搜索对应条目。对应FIB条目包括指令(即,POP)和下一跳(即,R3)。因此,R2从标签堆栈中弹出最顶部标签,并且通过分段2(即,链路R2->R3)转发分组。
当分组到达R3时,R3从剩余标签堆栈中提取标签(即,1003),并且在其FIB中搜索对应条目。对应FIB条目包括指令(即,POP)和下一跳(即,R4)。因此,R3从标签堆栈中弹出剩余条目,并且通过分段3(即,链路R3->R4)转发分组。如图5中所示,分组在不具有MPLS封装的情况下到达R4。
§1.2.1.4.2使用MPLS标签对前缀分段进行编码
在图6中,SR路径经由R4将R1连接到R7。SR路径包含两个前缀分段。分段1是使分组遍历从R1到R4的最低成本路径的前缀分段。分段2是使分组遍历从R4到R7的最低成本路径的前缀分段。在这种网络中,假设所有链路都配置有相同IGP度量(例如,10)。因此,针对从R1到R4的第一分段的最低成本路径遍历链路R1->R2、R2->R3以及R3->R4,而针对从R4到R7的第二分段的最低成本路径遍历链路R4->R8和R8->R7。
当R1从SR域的外部接收分组时,其使分组受到策略限制。策略可以使R1通过图6中所示的SR路径转发分组。当这种情况发生时,R1施加了包含两个条目的MPLS标签堆栈。标签堆栈的顶部条目表示分段1并且承载标签2001。标签堆栈的底部条目表示分段2并且承载标签2002。在已经施加了MPLS标签堆栈之后,R1经由链路R1->R2将分组转发到分段1中。
当分组到达R2时,R2从标签堆栈中提取顶部标签(即,2001),并且在其FIB中搜索对应条目。对应FIB条目包括指令(即,SWAP-3001)和下一跳(即,R3)。因此,R2用新值(即,3001)重写最顶部标签并将分组转发到R3。
当分组到达R3时,R3从标签堆栈中提取顶部标签(即,3001),并且在其FIB中搜索对应条目。对应FIB条目包括指令(即,POP)和下一跳(即,R4)。因此,R3从标签堆栈中弹出最顶部条目,并且经由链路R3->R4将分组转发到分段2中。
当分组到达R4时,R4从标签堆栈中提取剩余标签(即,2002),并且在其FIB中搜索对应条目。对应FIB条目包括指令(即,SWAP-3002)和下一跳(即,R8)。因此,R4用新值(即,3002)重写剩余标签并将分组转发到R8。
当分组到达R8时,R8从标签堆栈中提取剩余标签(即,3002),并且在其FIB中搜索对应条目。对应FIB条目包括指令(即,POP)和下一跳(即,R7)。因此,R8从标签堆栈中弹出剩余条目并且在不具有MPLS封装的情况下将分组转发到R7。
§1.2.1.4.3倒数第二跳弹出(PHP)和显式空值标签
在以上示例中,每个分段执行PHP过程。即,当分组遍历分段时,分段的倒数第二节点弹出与分段相关联的标签。如果SR路径包含尚待遍历的另一分段,那么当前分段的出口节点也是下一分段的入口节点。在这种情况下,分组到达该节点,节点具有暴露于堆栈的顶部的下一分段的标签。如果SR路径不包含尚待遍历的另一分段,那么分段出口节点也是路径出口节点。在那种情况下,分组在不具有MPLS封装的情况下到达路径出口节点。
在一些情况下,SR路径中的最终链路可能不能够在不具有MPLS封装的情况下承载分组。例如,分组可以是IPv6,而链路仅支持IPv4。为了防止这种问题,SR入口节点可以将MPLS显式空值标签添加到MPLS标签堆栈的顶部。
当最终分段中的倒数第二节点弹出与最终分段相关联的标签时,其暴露显式空值标签。然后,倒数第二节点将分组转发到路径出口节点。路径出口节点弹出显式空值标签并且继续处理分组。
§1.2.1.5分段标识符(SID)的配置和分布
相对于图5和图6所描述的前述示例假设MPLS标签是分布式的,并且每个节点的FIB都已被填充。本质上,分段路由占用内部网关协议(“IGP”)(比如,中间系统(“IS-IS”))和开放式最短路径优先(“OSPF”),以用于通告两种类型的网络分段或隧道——(1)严格转发的单跳隧道(被称为“邻接分段”,其在上面的§1.2.1.3.1节中进行了描述),该单跳隧道通过两个节点之间的特定链路承载分组,而不论链路成本如何以及(2)使用两个特定节点之间的最短路径链路的多跳隧道(被称为“节点分段”,其在上面的§1.2.1.3.2节中进行了描述)。
每个分段与标识符相关联,该标识符被称为分段标识符(“SID”)。如上文已经提到的,有序分段列表被编码成标签的堆栈。分段可以表示基于任何指令:拓扑的或基于服务的。分段可以具有分段路由域内的分段路由节点或全局节点的本地语义。分段路由强制通过任何拓扑路径和服务链的流,同时仅在通向分段路由域的入口节点处维持每流(per-flow)状态。分段路由可以被直接应用于转发平面上无变化的多协议标签交换(“MPLS”)架构。分段被编码成MPLS标签。有序分段列表被编码成标签的“堆栈”或“标签堆栈”。待处理的分段位于堆栈的顶部(即,标签堆栈的最外部标签)。在完成分段后,从堆栈中“弹出”(即,移除)相关标签。
分段路由可以用一种新类型的路由扩展报头应用于IPv6架构。分段被编码成IPv6地址。有序分段列表被编码成路由扩展报头中的有序IPv6地址列表。要处理的分段由路由扩展报头中的指针指示。在完成分段后,对指针进行递增。
§1.2.1.5.1可配置的分段路由全局块
如上文已经提到的,分段被编码成MPLS标签。有序分段列表被编码成标签的堆栈。分段路由域中的每个节点由节点标签管理器基于为源分组路由配置的索引范围而被分配标签。这些标签基于由节点标签管理器管理的动态标签范围的可用性而被分配给节点分段。分段路由全局块(“SRGB”)是用于分段路由中的标签值的范围。可用SRGB标签范围可以被配置用于IS-IS和OSPF协议,使得标签跨分段路由域可预测。因此,分段路由域中的每个节点基于动态标签范围的可用性而被分配标签,并且SRGB是为分段路由预留的标签值的范围。SID可以被提供作为要被添加到SRGB基本值以获得标签值的索引。
IS-IS协议按邻接、等级和地址族创建邻接分段(各自针对IPv4和IPv6)。为所创建的每个邻接分段分配MPLS标签。在分段的邻接状态变为可用状态之后分配这些标签。OSPF协议按邻接创建邻接分段。
§1.2.1.6带宽分配
服务提供方想要部署带宽保证型服务,且因此希望能够配置其网络以传递带宽保证型路径。流量工程是通过在提供所请求的服务保证的同时以最小化网络拥塞的方式跨(多条)可用路径适当地放置网络流来优化网络利用率的工具。为了采用流量工程,入口路由器或外部服务器(例如,路径计算元件(“PCE”))使用流量工程数据库(TED),已使用协议(比如,IGP-TE(参照例如,“IGP Routing Protocol Extensions for Discovery ofTraffic Engineering Node Capabilities(用于发现流量工程节点能力的IGP路由协议扩展)”,请求评注5073(互联网工程任务组,2007年12月,(被称为“RFC 5073”并通过引用并入本文)))或BGP-LS(参照例如,“BGP-Link State(BGP-LS)Advertisement of IGP TrafficEngineering Performance Metric Extensions(IGP流量工程性能度量扩展的BGP-链路状态(BGP-LS)通告)”,请求评注8571(互联网工程任务组,2019年3月,(被称为“RFC 8571”并通过引用并入本文)))等来填充该流量工程数据库,以计算受到特定服务约束(例如,带宽、延迟和/或其他拓扑约束,比如,SRLG和密切关系)限制的(多条)可行路径。然后,通过计算出的严格路径来建立MPLS LSP。传统上,已经通过利用解决方案(比如,RSVP-TE(参照例如,“RSVP-TE:Extensions to RSVP for LSP Tunnels(RSVP-TE:针对LSP隧道的RSVP扩展)”,请求评注3209(互联网工程任务组,2001年12月)(被称为“RFC 3209”并通过引用并入本文)))来建立这种MPLS LSP。
自动带宽还用于允许入口路由器基于传入流量的量来自动调整网络中的每个LSP请求的带宽分配。这允许LSP路径放置反映最新需求要求和当前网络状态。
如上文已经引入的,分段路由(“SR”)是通过将路径表达为拓扑子路径的序列(被称作“分段”)来允许灵活定义端到端路径的相对较新的技术。入口路由器或外部服务器(例如,PCE)以(多个)SR分段列表的形式对计算出的(多条)路径进行编码。然后,通过将分段列表中的分段施加在SR报头中,流量被引导从入口通过SR路径,该SR报头在被转发之前已经添加到数据分组上。沿着路径的(多个)传输SR节点不维持关于SR路径的任何状态,而是仅处理SR报头以执行相应的预编程的分段指令(例如,弹出和转发,或弹出/施加和转发)。SR目前在网络操作员中日益受到青睐。
然而,遗憾的是,迄今为止,SR流量工程缺乏用于计算(多条)带宽保证型SR路径的手段,该带宽保证型SR路径考虑到支持多路径(例如,相等成本多路径(“ECMP”)(参照例如,“Multipath Issues in Unicast and Multicast Next-Hop Selection(单播和多播下一跳选择中的多路径问题)”,请求评注2991(互联网工程任务组,2000年11月)(被称为“RFC2991”并通过引用并入本文)))并且映射已遍历的(多条)链路上的每个SR路径资源利用率的一个或多个SR分段。更具体地,不同于用RSVP-TE计算并且用信号通知的(多条)显式路径,(多条)SR流量工程路径可以利用具有多路径能力的SR分段(例如,可以负载平衡ECMP中的流量)。
因此,需要提供考虑到流量分割的流量工程(例如,带宽计算),该流量分割由于待由数据分组遍历的分段的一个或多个ECMP而可能发生。
发明内容
上文所阐述的目标中的一个或多个可以通过以下方式来实现:通过以下步骤来确定通过网络的至少一个带宽保证型分段路由(SR)路径:(a)接收带宽需求值作为输入;(b)获得网络信息;(c)确定受约束的最短多路径(CSGi);(d)确定引导流量通过CSGi所需的一组SR分段列表
Figure BDA0002346691420000101
以及(e)使用Si和每个分段列表负载分配
Figure BDA0002346691420000102
每个分段相等成本多路径(“ECMP”)以及每个链路残余容量来调整Li中的负载分配,使得能够通过CSGi承载的带宽容量被最大化。
在根据本说明书的至少一些示例实施例中,CSGi由最小累积路径度量的相等成本路径形成。
在根据本说明书的至少一些示例实施例中,在由于任何托拓扑约束(例如,链路密切关系)而排除(多条)链路之后,CSGi由最小累积路径度量的相等成本路径形成。
在根据本说明书的至少一些示例实施例中,在修剪掉零残余带宽链路之后,CSGi由最小累积路径度量的相等成本路径形成。
在根据本说明书的至少一些示例实施例中,CSGi由最小累积路径度量的相等成本路径形成。
在根据本说明书的至少一些示例实施例中,通过访问流量工程数据库(TED)中的信息来执行获得网络信息的动作。在这些示例实施例中,计算机实现的方法还可以包括:(f)更新TED或包括来自TED的信息的工作空间,以推导出CSGi上使用的带宽容量。在这些示例实施例中,计算机实现的方法还可以包括:(g)确定(剩余)带宽需求是否可以由CSGi满足;以及(h)响应于CSGi的容量小于(剩余)需求的确定,重复上述动作(a)接收;(b)获得;(c)确定;(d)确定;以及(e)调整。
在根据本说明书的至少一些示例实施例中,使用Si和每个分段列表负载分配
Figure BDA0002346691420000111
每个分段相等成本多路径(“ECMP”)以及每个链路残余容量来调整Li中的负载分配,使得能够通过CSGi承载的带宽容量被最大化的动作使用顺序最小二乘法编程过程。
附图说明
图1是用于说明SR域的示例网络。
图2是用于说明通过SR域的SR路径的示例网络。
图3是用于说明SR域中的邻接分段的示例网络。
图4A和图4B是用于说明SR域中的前缀分段的示例网络。
图5是用于说明从邻接分段中推导出的MPLS标签的使用的示例网络。
图6是用于说明从前缀分段中推导出的MPLS标签的使用的示例网络。
图7是用于以根据本说明书的方式确定(多条)SR带宽约束路径的示例方法的流程图。
图8图示了图7的示例方法的操作的第一示例。
图9图示了图7的示例方法的操作的第二示例。
图10图示了经由通信链路耦合的两个数据转发系统,这两个数据转发系统可以用作SR域中的节点。
图11是可以用作SR域中的节点的路由器的框图。
图12是ASIC可以分布在分组转发组件中以划分分组转发的责任的示例架构。
图13A和图13B是图12的示例架构的操作的示例。
图14是用于在示例路由器中提供分组转发的示例方法的流程图。
图15是示例性机器1500的框图,该示例性机器可以执行所描述的过程中的一个或多个过程和/或存储由这些过程使用和/或生成的信息。
图16和图17分别图示了用于确定引导流量通过第i个受约束的缩短的多路径所需的一组SR分段列表的示例方法的伪代码和流程图。
图18至图20图示了根据本说明书的用于实现示例方法的备选架构。
具体实施方式
本公开可以涉及用于确定带宽保证型SR路径的新颖方法、装置、消息格式和/或数据结构。呈现以下描述以使本领域的技术人员能够制造和使用所描述的实施例,并且在特定应用及其要求的上下文中提供以下描述。因此,示例实施例的以下描述提供了说明和描述,但并不旨在是详尽的或将本公开限制于所公开的精确形式。对本领域的技术人员而言,对所公开的实施例的各种修改将是明显的,并且下文所阐述的一般原理可以适用于其他实施例和应用。例如,尽管可以参照流程图描述一系列动作,但当一个动作的执行不依赖于另一动作的完成时,动作的顺序可以在其他实现中不同。另外,非依赖动作可以并行执行。除非另有明确描述,否则在说明书中所使用的元件、动作或指令不应被解释为对本说明书为关键的或必需的。此外,如本文中所使用,冠词“一”旨在包括一个或多个项。在仅旨在表示一项的情况下,使用术语“一个”或类似语言。因此,本公开内容不旨在限于所示的实施例,并且发明人将其发明视为所描述的任何可取得专利权的主题内容。
§4.1定义和术语
SG(R,D);从根R到目的地D的最短多路径有向非循环图。这类似于在没有对拓扑的约束并且当对IGP度量进行优化时的情况下,从R到D的IGP计算的最短多路径图。
CSG(R,D);从R到目的地D的受约束的最短多路径有向非循环图。(经典CSPF算法通过根据本说明书的示例方法被扩展,以变成多路径感知的并且支持对拓扑的约束和对任意路径度量(诸如,TE、延时、跳等)的优化)。
sl:SR分段列表,其由类似于数据流将遵循的(多条)路径的分段的有序集合组成。在分段路由报头(SRH)中复制分段列表中的分段,该分段路由报头被施加在被引导通过SR路径的数据分组的顶部。
§4.2示例方法
根据本说明书的示例方法确定带宽保证型SR路径。这种方法可以被称为“SR带宽约束的路径算法”(“SR-BCPA”)。这些示例方法的目标包括例如:
-确定(多条)链路上的传入流量需求的放置,其中足够的所需资源可用于承载流量份额,因此这使拥塞的机会最小化;
-确定尽可能地利用具有ECMP能力的SR分段的SR路径,并且考虑(多条)可用ECMP路径上流量的负载平衡;以及
-在选择可行路径集合时,针对所选路径度量(例如,延迟、TE度量、跳等)进行优化。
参照图7,根据本说明书的示例方法700可以被用来确定带宽保证型SR路径。示例方法700接收带宽需求值作为输入。(框710)示例方法700还将索引初始化(例如,i=0)。(框720)示例方法还从流量工程数据库(TED)(或从工作空间)获得网络信息。(框730)然后,示例方法700确定受约束的最短多路径(CSGi)。(框740)CSGi可以由最小累积路径度量的相等成本路径形成(例如,在由于任何拓扑约束(例如,链路密切关系)而排除(多条)链路并且修剪掉零残余带宽链路之后)。然后,示例方法700确定引导流量通过CSGi(例如,使用对分段列表分段压缩算法的任何已知的SR路径)所需的一组SR分段列表
Figure BDA0002346691420000141
(框750)接着,使用Si和每个分段列表负载分配
Figure BDA0002346691420000142
每个分段ECMP以及每个链路残余容量,来调整Li中的负载分配,使得能够通过CSGi承载的带宽容量被最大化(或至少增加到超过阈值)。(框760)示例方法700然后可以更新TED(或工作空间)以推导出在CSGi上使用的资源(例如,带宽容量)。(框770)这可以使用上i和CSGi的链路上的每个链路流量比率来完成。接着,确定(剩余)带宽需求是否可以由CSGi满足。(决策780)如果不满足(决策780,否)(即,当CSGi的容量小于(剩余)需求时,那么对索引进行递增(例如,i=i+1)(框790),并且该方法返回到框740。另一方面,如果(剩余)带宽需求可以由CSGi满足(决定780,是),那么离开方法700。(节点799)
再次参照框730,根据本说明书的示例方法可以使用由TED和每个链路残余容量(或可用带宽)组成的拓扑信息。出于SR路径计算的目的,假设每个链路残余容量由资源管理器管理,该资源管理器追踪每个遍历链路上的每个SR路径资源分配,并且反映在用于新路径计算的TED上。
可以推导出关于所确定的CSGi的以下特性:
Figure BDA0002346691420000143
其中:
ci:是第i个CSG的成本,
Xi:是第i个CSG的带宽容量,该带宽容量将被最大化(或增加到至少所确定的阈值),
Si:是引导流量通过由第i个CSG描述的(多条)路径所需的分段列表集合,
Li:是每个分段列表负载分配,入口使用该分段列表负载分配向Si引导部分传入需求。通过优化问题来调整这些负载分配,以将第i个CSG的容量最大化。
通向每个CSG上的总传入流量的权重分布可以被表示为:
W=[w1,w2,...wk],并且
Figure BDA0002346691420000151
其中,
wi:是由第i个CSG承载的流量的负载分配。
由每个分段列表sl承载的有效负载可以被计算为:
Figure BDA0002346691420000152
§4.2.1示例方法的操作的示例
§4.2.1.1第一示例
参照图8,考虑从“H”去往“T”的以下传入流量需求D=12U。在第一次迭代中,H运行示例方法700来查找CSG1并且成功引导10U通过CSG1
Figure BDA0002346691420000153
然而,由于尚未满足带宽需求(召回例如780,否)(10U<12U),因此方法700执行第二次迭代。在第二次迭代中,H运行示例方法700来查找CSPG2且因此引导剩余2U通过CSG2
Figure BDA0002346691420000154
H将权重分布更新为:
W×L,其中,W=[w1,w2]且
Figure BDA0002346691420000155
Figure BDA0002346691420000156
且L=[L1,L2]且S=[S1,S2]描述了针对每次迭代找到的分段列表集合。
§4.2.1.2第二示例
图9A描绘了示例网络拓扑。标记每个链路的残余带宽(例如,可从TED或工作空间获得)。例如,将节点(R1)连接到节点(R2)的链路和将节点(R1)连接到节点(R3)的链路分别具有3个单元和4个单元的残余带宽。
执行示例方法700来确定节点(R1)可以通过(多条)最佳路径发送到节点(R8)的最大容量X。所涉及的步骤包括:
步骤描述
Figure BDA0002346691420000161
约束方程组可以推导为:
Figure BDA0002346691420000162
Figure BDA0002346691420000163
Figure BDA0002346691420000164
e25→l1x≤3 (4)
Figure BDA0002346691420000171
Figure BDA0002346691420000172
Figure BDA0002346691420000173
e58→l1x≤6 (8)
e68→l2x≤4 (9)
其中,exy是将节点(x)连接到节点(y)的单向边缘(或链路)。从离开节点R1的三(3)个链路推导出不等式(1)至(3)。分母3指示三个链路上的ECMP。从进入节点R6的三(3)个链路推导出不等式(5)至(7)。再次,分母3指示三个链路上的ECMP。
以上不等式或方程可以进一步被简化为:
l1+l2=1 (10)
l1x≤3 (11)
l2x≤4 (12)
l2x+3l1x≤9 (13)
方程(10)是从如下事实中推导出的:负载的总和始终为1。不等式(11)对应于不等式(6),而不等式(12)对应于不等式(9)。不等式(13)是从不等式(1)推导出的。表达式(10)至(14)可以按照编程方式进行求解(例如,使用非线性编程,诸如,顺序最小二乘法编程(“SLSQP”))。以下示例使用python。($python compute_cap_weigths.py)。在图9A至图9C的示例中,生成以下值:
容量(X)=6.333333327495734
12=0.7894736842874963
11=0.21052631571250358
即,在此示例中,最大容量为6.333333327495734个单位,第一分段列表(例如,图9C的左侧)接收约79%的流量,而第二分段列表(例如,图9C的右侧)接收约21%的流量。
§4.3示例架构和装置
节点可以是例如转发设备,诸如路由器。图10图示了经由通信链路1030耦合的两个数据转发系统1010和1020。这些链路可以是物理链路或“无线”链路。例如,数据转发系统1010、1020可以是路由器。如果数据转发系统1010、1020是示例路由器,那么每个路由器可以包括控制组件(例如,路由引擎)1014、1024和转发组件1012、1022。每个数据转发系统1010、1020包括终止一个或多个通信链路1030的一个或多个接口1016、1026。
如上所述并且参照图11,一些示例路由器1100包括控制组件(例如,路由引擎)1110和分组转发组件(例如,分组转发引擎)1190。
控制组件1110可以包括操作系统(OS)内核1120、(多个)路由协议过程1130、(多个)基于标签的转发协议过程1140、(多个)接口过程1150、(多个)用户界面(例如,命令行界面)过程1160以及(多个)机架过程1170,并且可以存储(多个)路由表1139、标签转发信息1145以及(多个)转发(例如,基于路由和/或基于标签的)表1180。如图所示,(多个)路由协议过程1130可以支持路由协议,诸如,路由信息协议(“RIP”)1131、中间系统到中间系统协议(“IS-IS”)1132、开放式最短路径优先协议(“OSPF”)1133、增强型内部网关路由协议(“EIGRP”)1134以及边界网关协议(“BGP”)1135,并且(多个)基于标签的转发协议过程1140可以支持协议,诸如,BGP 1135、标签分布协议(“LDP”)1136以及资源预留协议(“RSVP”)1137。一个或多个组件(未示出)可以允许用户1165与(多个)用户界面过程1160交互。类似地,一个或多个组件(未示出)可以允许外部设备经由SNMP 1185与(多个)路由器协议过程1130、(多个)基于标签的转发协议过程1140、(多个)接口过程1150以及(多个)机架过程1170中的一个或多个交互,并且这些过程可以经由SNMP 1185将信息发送到外部设备。根据本说明书的示例实施例可以在一个或多个路由协议过程1130中被实现。
分组转发组件1190可以包括微内核1192、(多个)接口过程1193、分布式ASIC1194、(多个)机架过程1195以及(多个)转发(例如,基于路由的和/或基于标签的)表1196。
在图11的示例路由器1100中,控制组件1110处理诸如执行路由协议、执行基于标签的转发协议、控制分组处理等的任务,这释放了分组转发组件1190以快速转发接收到的分组。即,接收到的控制分组(例如,路由协议分组和/或基于标签的转发协议分组)并未在分组转发组件1190本身上被完全处理,而是被传递到控制组件1110,从而减少了分组转发组件1190必须完成的工作量并且释放了分组转发组件来处理要高效转发的分组。因此,控制组件1110主要负责运行路由协议和/或基于标签的转发协议,维持路由表和/或标签转发信息,向分组转发组件1190发送转发表更新以及执行系统管理。示例控制组件1110可以处理路由协议分组,提供管理接口,提供配置管理,执行计费以及提供警报。过程1130、1140、1150、1160和1170可以是模块化的,并且可以与OS内核1120交互。即,几乎所有的过程都与OS内核1120直接通信。使用将过程彼此顺利分离的模块化软件隔离了给定过程的问题,使得这些问题不会影响可能正在运行的其他过程。另外,使用模块化软件有助于更容易地缩放。
仍然参照图11,示例OS内核1120可以包含用于外部程序召回和脚本能力的应用编程接口(“API”)系统。控制组件1110可以基于运行来自闪速存储器的OS的Intel PCI平台,其中,替换副本被存储在路由器的硬盘上。OS内核1120分层布置在Intel PCI平台上,并且在Intel PCI平台与控制组件1110的过程之间建立通信。OS内核1120还确保了由分组转发组件1190使用的转发表1196与控制组件1110中的那些转发表1180同步。因此,除了提供控制组件1110软件过程的底层基础设施之外,OS内核1120还提供了控制组件1110与分组转发组件1190之间的链路。
参照图11的(多个)路由协议过程1130,该(多个)过程1130提供平台内的路由和路由控制功能。在该示例中,提供了RIP 1131、ISIS 1132、OSPF 1133以及EIGRP 1134(和BGP1135)协议。自然地,可以另外或备选地提供其他路由协议。类似地,(多个)基于标签的转发协议过程1140提供标签转发和标签控制功能。在该示例中,提供了LDP 1136和RSVP 1137(以及BGP 1135)协议。自然地,可以另外或备选地提供其他基于标签的转发协议(例如,MPLS、SR等)。在示例路由器1100中,由(多个)路由协议过程1130产生(多个)路由表1139,而由(多个)基于标签的转发协议过程1140产生标签转发信息1145。
仍然参照图11,(多个)接口过程1150执行物理接口(召回例如图9的916和926)和封装的配置。
示例控制组件1110可以提供用于管理路由器的若干方式。例如,示例控制组件1110可以提供(多个)用户界面过程1160,该用户界面过程允许系统操作员1165通过配置、修改以及监测来与系统交互。SNMP 1185允许具有SNMP能力的系统与路由器平台进行通信。这还允许平台向外部代理提供必要SNMP信息。例如,SNMP 1185可以通过框架(诸如,惠普的OpenView)从运行软件的网络管理站(诸如,惠普的网络节点管理器(“HP-NNM”))来允许系统的管理。分组计费(通常被称为流量统计)可以由控制组件1110执行,从而避免了减慢分组转发组件1190进行的流量转发。
尽管未示出,但示例路由器1100可以提供带外管理,用于串行控制台和远程管理访问的RS-232DB9端口以及使用可移除PC卡的三级存储装置。另外,尽管未示出,但定位于机架前方的工艺接口提供了路由器的内部工作方式的外部视图。可以将工艺接口用作故障排除工具、监测工具或两者。工艺接口可以包括LED指示器、警报指示器、控制组件端口和/或显示屏。最后,工艺接口可以经由控制台端口、辅助端口和/或管理以太网端口提供与命令行接口(“CLI”)1160的交互。
分组转发组件1190负责尽可能快速地适当输出接收到的分组。如果在转发表中不存在用于给定目的地或给定标签的条目并且分组转发组件1190本身不能执行转发,那么分组转发组件1190可以将通往该未知目的地的分组发送给控制组件1110进行处理。示例分组转发组件1190被设计为执行层2和层3交换、路由查找以及快速分组转发。
如图11中所示,示例分组转发组件1190具有嵌入式微内核1192、(多个)接口过程1193、分布式ASIC 1194和(多个)机架过程1195,并且存储(多个)转发(例如,基于路由的和/或基于标签的)表1196。微内核1192与(多个)接口过程1193和(多个)机架过程1195交互以监测和控制这些功能。(多个)接口过程1193与控制组件1110的OS内核1120具有直接通信。该通信包括将异常分组和控制分组转发到控制组件1110,接收待转发的分组,接收转发表更新,将关于分组转发组件1190的状况的信息提供给控制组件1110,并且允许来自控制组件1110的(多个)用户界面(例如,CLI)过程1160的接口的配置。所存储的(多个)转发表1196是静态的,直到从控制组件1110接收到新转发表为止。(多个)接口过程1193使用(多个)转发表1196来查找下一跳信息。(多个)接口过程1193也与分布式ASIC 1194具有直接通信。最后,(多个)机架过程1195可以与微内核1192和分布式ASIC 1194直接通信。
再次参照图11的分布式ASIC 1194,图12是在分组转发组件1190中ASIC可以如何分布以划分分组转发的责任的示例。如图12中所示,分组转发组件1190的ASIC可以分布在物理接口卡(PIC)1210、灵活PIC集中器(“FPC”)1220、中间面或背面1230以及(多个)系统控制板1240(用于交换和/或转发)上。交换结构还被示出为系统交换板(“SSB”)或交换和转发模块(“SFM”)1250。每个PIC 1210包括一个或多个PIC I/O管理器1215。每个FPC 1220包括一个或多个I/O管理器1222,每个I/O管理器具有相关联的存储器1224。中间面/背面1230包括缓冲器管理器1235a、1235b。最后,系统控制板1240包括互联网处理器1242和转发表1244的实例(召回例如图11的1196)。
仍然参照图12,PIC 1210包含接口端口。每个PIC 1210可以被插入FPC 1220中。每个单独PIC 1210可以包含处理介质特定功能(诸如,成帧或封装)的ASIC。一些示例PIC1210提供SDH/SONET、ATM、千兆以太网、快速以太网和/或DS3/E3接口端口。
如图12中所示,FPC 1220可以包含一个或多个PIC 1210,并且可以将信号从PIC1210承载到中间面/背面1230。
中间面/背面1230保持线卡。当线卡从前面插入示例路由器的机架时,线卡可以连接到中间面/背面1230。控制组件(例如,路由引擎)1110可以从机架的后部插入中间面/背面1230的后部。中间面/背面1230可以承载电(或光)信号和电力到每个线卡和控制组件1110。
系统控制板1240可以执行转发查找。系统控制板1240还可以将错误传送到路由引擎。另外,系统控制板1240还可以基于其从传感器接收到的信息来监测路由器的情况。如果检测到异常情况,那么系统控制板1240可以立即通知控制组件1110。
参照图12、图13A以及图13B,在一些示例性路由器中,每个PIC 1210、1110′包含至少一个I/O管理器ASIC 1215,该I/O管理器ASIC负责介质特定任务,诸如,封装。分组在进入和离开路由器的途中传递通过这些I/O ASIC。PIC 1210、1110′上的I/O管理器ASIC 1215负责管理与FPC 1220、1120′上的I/O管理器ASIC 1222的连接,管理链路层成帧并且创建比特流,执行循环冗余校验(CRC),并且在适当情况下检测链路层错误并生成警报。FPC 1220包括另一I/O管理器ASIC 1222。该ASIC 1222从PIC 1210获取分组并且将其分成(例如,74字节)存储器块。该FPC I/O管理器ASIC 1222将这些块发送到第一分布式缓冲器管理器(DBM)1235a′,对封装和协议特定信息进行译码,对每个逻辑电路的分组和字节进行计数,验证分组完整性,并且将服务类别(CoS)规则应用于分组。此时,首先将分组写入存储器。更具体地,示例DBM ASIC 1235a′管理在所有FPC 1220上的分组并且将这些分组写入共享存储器1224。并行地,第一DBM ASIC 1235a′还提取关于分组的目的地的信息并且将该与转发相关的信息传递到互联网处理器1242/1142′。互联网处理器1242/1142′使用转发表1244来执行路由查找,并且将信息发送到第二DBM ASIC 1235b′。互联网处理器ASIC 1242/1142′还收集异常分组(即,不具有转发表条目的那些分组),并且将其发送到控制组件1110。然后,第二DBM ASIC 1235b′采取此信息和74字节的块,并且将其转发到出口FPC 1220/1120′(或在多播的情况下为多个出口FPC)的I/O管理器ASIC 1222进行重组。(因此,DBM ASIC 1235a′和1235b′负责管理分布在所有FPC 1220/1120′上的分组存储器1224,从分组中提取与转发相关的信息,并且指示FPC将分组转发到何处。)
出口FPC 1220/1120′上的I/O管理器ASIC 1222可以执行一些增值服务。除了对生存时间(“TTL”)值进行递增并且重新封装分组以供PIC 1210处理之外,还可以应用服务类别(CoS)规则。为此,在将规则应用于分组之前,可以在可用队列中的一个中将分组的指针进行排队,每个可用队列具有链路带宽的份额。可以基于各种规则来排队。因此,出口FPC1220/1120′上的I/O管理器ASIC 1222可以负责从第二DBM ASIC 1235b′接收块,对TTL值进行递增,若需要,在应用CoS规则之前,对分组的指针进行排队,重新封装这些块并且将封装后的分组发送到PIC I/O管理器ASIC 1215。
图14是用于提供示例路由器中的分组转发的示例方法1400的流程图。当在入口(传入)端口或接口上接收到分组时,触发方法1400的主要动作。(事件1410)其服务的介质的类型所需的类型的校验和与帧校验被执行,并且分组被输出作为串行比特流。(框1420)然后,分组被解封装并且解析为(例如,64字节)块。(框1430)分组被写入缓冲器存储器,并且转发信息在互联网处理器上被传递。(框1440)然后,所传递的转发信息被用来在转发表中查找路由。(框1450)注意,转发表通常可以处理未设置选项(例如,计费)的单播分组以及已具有缓存条目的多播分组。因此,如果确定符合这些条件(决策1460的“是”分支),那么分组转发组件找到下一跳和出口接口,并且在离开方法1400之前(节点1490),经由出口接口将分组转发(或排队转发)到下一跳(框1470)。否则,如果不符合这些条件(决策1460的“否”分支),那么在离开方法1400之前(节点1490),将转发信息发送到控制组件1110以用于高级转发分辨率(框1480)。
再次参照框1470,可以对分组进行排队。实际上,如先前参考图12所陈述的,可以对分组的指针进行排队。分组本身可以保留在共享存储器中。因此,可以在不存在实际分组的情况下应用所有排队决策和CoS规则。当用于分组的指针到达线的前部时,I/O管理器ASIC 1222可以将对分组的请求发送到第二DBM ASIC 1235b。DBM ASIC 1235从共享存储器读取块,并且将块发送到FPC 1220上的I/O管理器ASIC 1222,然后该I/O管理器ASIC将这些比特序列化并其将其发送到出口接口的介质特定ASIC。出口PIC 1210上的I/O管理器ASIC1215可以应用物理层成帧,执行CRC并且通过链路将比特流发送出去。
再次参照图14的框1480以及图12,关于控制分组和异常分组的传送,系统控制板1240处理几乎所有的异常分组。例如,系统控制板1240可以将异常分组传递到控制组件1110。
尽管可以在图10或图11的示例路由器上实现根据本发明的示例实施例,但可以在具有不同架构的通信网络节点(例如,路由器、交换机等)上或者甚至是在远程服务器(例如,路径计算元件(“PCE”))上实现根据本发明的实施例。更一般地,根据本发明的实施例可以在如图15所图示的示例系统1400上被实现。
图15是示例性机器1500的框图,该示例性机器可以执行所描述的过程中的一个或多个和/或存储由这些过程使用和/或生成的信息。示例性机器1500包括一个或多个处理器1510、一个或多个输入/输出接口单元1530、一个或多个存储设备1520以及用于有助于耦合元件之间的信息通信的一个或多个系统总线和/或网络1540。一个或多个输入设备1532和一个或多个输出设备1534可以与一个或多个输入/输出接口1530耦合。一个或多个处理器1510可以执行机器可执行指令(例如,在自多个供应方(诸如,北卡罗来纳州达勒姆市的红帽公司)可获得的Linux操作系统上运行的C或C++)以实现本发明的一个或多个方面。机器可执行指令的至少一部分(暂时地或更持久地)可以被存储在一个或多个存储设备1520上和/或可以经由一个或多个输入接口单元1530从外部源接收。机器可执行指令可以被存储作为各种软件模块,每个模块执行一个或多个操作。功能性软件模块是本发明的组件的示例。
在根据本发明的一些实施例中,处理器1510可以是一个或多个微处理器和/或ASIC。总线1540可以包括系统总线。存储设备1520可以包括系统存储器,诸如,只读存储器(ROM)和/或随机存取存储器(RAM)。存储设备1520还可以包括用于从硬盘读取和写入硬盘的硬盘驱动器、用于从(例如,可移除)磁盘读取或写入(例如,可移除)磁盘的磁盘驱动器、用于从可移除(磁)光盘(诸如,压缩盘或其他(磁)光介质或固态非易失性存储装置)读取或写入该可移除(磁)光盘的光盘驱动器。
根据本发明的一些示例实施例还可以被提供作为用于存储机器可执行指令的机器可读介质。机器可读介质可以是非瞬态的,并且可以包括但不限于,闪速存储器、光盘、CD-ROM、DVD ROM、RAM、EPROM、EEPROM、磁卡或光卡或适用于存储电子指令的任何其他类型的机器可读介质。例如,根据本发明的示例实施例可以被下载为计算机程序,该计算机程序可以通过通信链路(例如,调制解调器或网络连接)从远程计算机(例如,服务器)被传输到请求计算机(例如,客户端)并且被存储在非瞬态存储介质上。机器可读介质也可以被称为处理器可读介质。
根据本发明的示例实施例(或其组件或模块)可以在硬件实现,该硬件诸如一个或多个现场可编程门阵列(“FPGA”)、一个或多个集成电路(诸如,ASIC)、一个或多个网络处理器等。备选地或另外,根据本发明的实施例(或其组件或模块)可以被实现为由处理器执行的所存储的程序指令。这种硬件和/或软件可以被设置在寻址数据(例如,分组、小区等)转发设备(例如,交换机、路由器等)、膝上型计算机、台式计算机、平板计算机、移动电话或具有计算和联网能力的任何设备中。
§4.4改进、备选方案以及扩展
再次参照图7的框750,可以使用图16和图17所图示的技术来确定引导流量通过第i个CSG所需的SR分段列表的集合。将图17的流程图中所使用的块参考标记注释在图16的伪代码上。
再次参照图7的框760,可以调整负载分配以将可以通过第i个CSG承载的带宽容量最大化,这是可以使用顺序最小二乘法编程(“SLSQP”)解决的非线性编程问题。
图18至图20图示了根据本说明书的可以用于实现示例方法的不同架构。更具体地,图18图示了集中式架构,其中,集中式控制器包括路径计算元件(PCE)、资源管理器(RM)以及BGP路由反射器(RR)。PCE可以使用例如谷歌的开源远程过程调用(gRPC)和/或PCE协议(PCEP)来与RM和BGP RR通信。PCE包括分段路由(SR)带宽(BW)路径计算引擎,其使用和/或生成流量工程数据库(TED)和标签交换路径(LSP)数据库中的信息。RM包括链路CAC(呼叫准入控制,用于对构成SR路径的(多条)链路执行准入控制)数据库。更具体地,RM包括网络中的(多个)SR链路的链路数据库,并且其中,在所遍历的(多个)链路上执行并且维持(多个)SR路径预留和准入。BGP RR可以存储BGP链路状态信息。如图所示,域1中的R1可以使用例如PCEP来与PCE通信。可以将本地状态信息(诸如,链路容量、链路利用率以及每个SID流量速率)从每个域传送到RM。这可以使用例如RGP-LS、遥测和/或SNMP来完成。另外,可以使用例如BGP-LS在每个域与BGP RR之间交换信息。
图19图示了使用分布式计算和分布式CAC的架构。在该示例中,集中式节点包括RM和BGP RR的中央实例。如图所示,域1包括PCE和具有CAC的本地实例的本地RM,而域2包括具有CAC的本地实例的本地RM。SR BW路径计算模块可以使用例如BGP-LS来与BGP RR通信。RM的本地实例可以使用例如gRPC、PCEP和/或BGP来与集中式RM通信。最后,可以将本地状态信息(诸如,链路容量、链路利用率以及每个SID流量速率)从每个域传送到BGP-RR。这可以使用例如BGP-LS来完成。
最后,图20图示了使用分布式计算和集中式CAC的架构。在该示例中,集中式节点包括RM和BGP RR。如图所示,域1包括PCE。SR BW路径计算模块可以使用例如BGP-LS来与BGPRR通信。SR BW路径计算模块可以与RM通信以请求某些分配,并且接收对其(多个)请求的响应。可以将本地状态信息(诸如,链路容量、链路利用率以及每个SID流量速率)从每个域传送到BGP-RR。这可以使用例如BGP-LS来完成。
§4.5结论
根据本说明书的示例实施例允许在SR网络中建立具有带宽保证的(多个)SR路径。
根据本说明书的示例实施例适用于SRv6和SR-MPLS数据面技术。
根据本说明书的示例实施例使得自动带宽能够对(多个)SR路径起作用。
根据本说明书的示例实施例可以在中央计算服务器上起作用,在该中央计算服务器中,对每个路径预留进行集中管理。
根据本说明书的示例实施例与相同网络中的RSVP-TE LSP和带宽预留可兼容。

Claims (17)

1.一种用于确定通过网络的至少一个带宽保证型分段路由(SR)路径的计算机实现的方法,所述计算机实现的方法包括:
a)接收带宽需求值作为输入;
b)获得网络信息;
c)确定受约束的最短多路径(CSGi);
d)确定引导流量通过CSGi所需的一组SR分段列表
Figure FDA0002346691410000011
以及
e)使用Si和每个分段列表负载分配
Figure FDA0002346691410000012
每个分段相等成本多路径(“ECMP”)以及每个链路残余容量来调整Li中的所述负载分配,使得能够通过CSGi承载的带宽容量被最大化。
2.根据权利要求1所述的计算机实现的方法,其中所述CSGi由最小累积路径度量的相等成本路径形成。
3.根据权利要求1所述的计算机实现的方法,其中在由于任何拓扑约束而排除一个或多个链路之后,所述CSGi由最小累积路径度量的相等成本路径形成。
4.根据权利要求1所述的计算机实现的方法,其中在修剪掉零残余带宽链路之后,所述CSGi由最小累积路径度量的相等成本路径形成。
5.根据权利要求1所述的计算机实现的方法,其中所述CSGi由最小累积路径度量的相等成本路径形成。
6.根据权利要求1所述的计算机实现的方法,其中获得网络信息的动作通过访问流量工程数据库(TED)中的信息而被执行,所述计算机实现的方法还包括:
f)更新所述TED或包括来自所述TED的信息的工作空间,以推导出CSGi上所使用的带宽容量。
7.根据权利要求6所述的计算机实现的方法,还包括:
g)确定(剩余)带宽需求是否能够由CSGi满足;以及
h)响应于CSGi的所述容量小于(剩余)需求的确定,重复动作(a)至(e)。
8.根据权利要求1所述的计算机实现的方法,其中使用Si和所述每个分段列表负载分配
Figure FDA0002346691410000021
所述每个分段相等成本多路径(“ECMP”)以及所述每个链路残余容量来调整Li中的所述负载分配,使得能够通过CSGi承载的所述带宽容量被最大化的动作使用顺序最小二乘法编程过程。
9.一种路由器,所述路由器充当SR路径的入口并且包括:
a)至少一个路由处理器;以及
b)非瞬态计算机可读介质,所述非瞬态计算机可读介质存储处理器可执行指令,所述处理器可执行指令在由所述至少一个路由处理器执行时使所述至少一个路由处理器通过执行方法来确定通过网络的至少一个带宽保证型分段路由(SR)路径,所述方法包括:
a)接收带宽需求值作为输入;
b)获得网络信息;
c)确定受约束的最短多路径(CSGi);
d)确定引导流量通过CSGi所需的一组SR分段列表
Figure FDA0002346691410000022
以及
e)使用Si和所述每个分段列表负载分配
Figure FDA0002346691410000023
每个分段相等成本多路径(“ECMP”)以及每个链路残余容量来调整Li中的所述负载分配,使得能够通过CSGi承载的带宽容量被最大化。
10.根据权利要求9所述的路由器,其中所述CSGi由最小累积路径度量的相等成本路径形成。
11.根据权利要求9所述的路由器,其中在由于任何拓扑约束而排除一个或多个链路之后,所述CSGi由最小累积路径度量的相等成本路径形成。
12.根据权利要求9所述的路由器,其中在修剪掉零残余带宽链路之后,所述CSGi由最小累积路径度量的相等成本路径形成。
13.根据权利要求9所述的路由器,其中所述CSGi由最小累积路径度量的相等成本路径形成。
14.根据权利要求9所述的路由器,其中获得网络信息的所述动作通过访问流量工程数据库(TED)中的信息而被执行,所述方法还包括:
f)更新所述TED或包括来自所述TED的信息的工作空间,以推导出CSGi上所使用的带宽容量。
15.根据权利要求14所述的路由器,其中所述方法还包括:
g)确定(剩余)带宽需求是否能够由CSGi满足;以及
h)响应于CSGi的所述容量小于(剩余)需求的确定,重复动作(a)至(e)。
16.根据权利要求9所述的路由器,其中使用Si和所述每个分段列表负载分配
Figure FDA0002346691410000031
所述每个分段相等成本多路径(“ECMP”)以及所述每个链路残余容量来调整Li中的所述负载分配,使得能够通过CSGi承载的所述带宽容量被最大化的所述动作使用顺序最小二乘法编程过程。
17.一种与充当SR路径的入口的路由器通信的服务器,所述服务器包括:
a)至少一个路径计算元件(PCE);以及
b)非瞬态计算机可读介质,所述非瞬态计算机可读介质存储处理器可执行指令,所述处理器可执行指令在由所述至少一个PCE执行时使所述至少一个PCE通过执行方法来确定通过网络的至少一个带宽保证型分段路由(SR)路径,所述方法包括:
a)接收带宽需求值作为输入;
b)获得网络信息;
c)确定受约束的最短多路径(CSGi);
d)确定引导流量通过CSGi所需的一组SR分段列表
Figure FDA0002346691410000032
以及
e)使用Si和所述每个分段列表负载分配
Figure FDA0002346691410000033
每个分段相等成本多路径(“ECMP”)以及每个链路残余容量来调整Li中的所述负载分配,使得能够通过CSGi承载的带宽容量被最大化。
CN201911403267.4A 2019-07-24 2019-12-30 用于分段路由(sr)路径的保证型带宽 Active CN112311675B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201962877845P 2019-07-24 2019-07-24
US62/877,845 2019-07-24
US16/589,115 2019-09-30
US16/589,115 US11070463B2 (en) 2019-07-24 2019-09-30 Guaranteed bandwidth for segment routed (SR) paths

Publications (2)

Publication Number Publication Date
CN112311675A true CN112311675A (zh) 2021-02-02
CN112311675B CN112311675B (zh) 2022-05-27

Family

ID=69005442

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911403267.4A Active CN112311675B (zh) 2019-07-24 2019-12-30 用于分段路由(sr)路径的保证型带宽

Country Status (3)

Country Link
US (1) US11070463B2 (zh)
EP (1) EP3771162B1 (zh)
CN (1) CN112311675B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114448868A (zh) * 2022-02-28 2022-05-06 百果园技术(新加坡)有限公司 一种基于分段路由策略的路径调度方法、装置及设备
CN115277536A (zh) * 2022-06-10 2022-11-01 新华三技术有限公司 一种路径选择方法及装置

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11240355B2 (en) 2019-05-17 2022-02-01 Arista Networks, Inc. Platform agnostic abstraction for forwarding equivalence classes with hierarchy
US11991075B2 (en) * 2020-06-04 2024-05-21 Telefonaktiebolaget Lm Ericsson (Publ) Methods, apparatus and machine-readable media related to routing in a communication network
US11411876B2 (en) 2020-11-30 2022-08-09 Cisco Technology, Inc. Optimizing segment routing paths using segment identifiers
CN112688872B (zh) * 2021-03-22 2021-06-29 中国人民解放军国防科技大学 联合多域系统及基于联合多域系统的低时延路径传输方法
CN112804149B (zh) * 2021-04-13 2021-08-31 新华三技术有限公司 一种寻找路径的方法及装置
CN113542126B (zh) * 2021-05-24 2022-11-18 新华三信息安全技术有限公司 广义SRv6全路径压缩方法及装置
US11700201B2 (en) * 2021-07-26 2023-07-11 Arista Networks, Inc. Mechanism to enforce consistent next hops in a multi-tier network
CN113824632B (zh) * 2021-09-03 2023-04-18 比威网络技术有限公司 安全分级多径路由中的途径点压缩方法和装置
US11722400B2 (en) * 2021-11-08 2023-08-08 Ciena Corporation Centralized approach to SR-TE paths with bandwidth guarantee using a single SID

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103379042A (zh) * 2012-04-25 2013-10-30 丛林网络公司 路径加权的等价多路径
US20170111261A1 (en) * 2015-10-15 2017-04-20 Cisco Technology, Inc. Latency optimized segment routing tunnels
CN107566274A (zh) * 2016-06-30 2018-01-09 丛林网络公司 资源预留协议lsp和非资源预留协议lsp的带宽管理
US20180131616A1 (en) * 2016-11-07 2018-05-10 Cisco Technology, Inc. Tactical traffic engineering based on segment routing policies
CN108370333A (zh) * 2015-12-09 2018-08-03 华为技术有限公司 用于分段路由网络中性能测量的系统、方法和节点
CN108429685A (zh) * 2018-04-28 2018-08-21 电子科技大学 一种基于分段路由技术的服务功能链寻路方法
EP3402140A1 (en) * 2017-05-09 2018-11-14 Juniper Networks, Inc. Varying a per-hop-bandwidth constraint in multi-path label switched paths
US20180343189A1 (en) * 2017-05-25 2018-11-29 Fang Hao Hop constrained maximum flow with segment routing

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7990877B2 (en) * 2008-05-15 2011-08-02 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for dynamically runtime adjustable path computation
US10404576B2 (en) * 2016-10-13 2019-09-03 Futurewei Technologies, Inc. Constrained shortest path determination in a network
US10348610B2 (en) * 2017-05-25 2019-07-09 Alcatel Lucent Method and apparatus for minimum label bandwidth guaranteed path for segment routing
CN110890994B (zh) * 2018-09-11 2022-06-28 华为技术有限公司 一种报文转发路径的确定方法、设备和系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103379042A (zh) * 2012-04-25 2013-10-30 丛林网络公司 路径加权的等价多路径
US20170111261A1 (en) * 2015-10-15 2017-04-20 Cisco Technology, Inc. Latency optimized segment routing tunnels
CN108370333A (zh) * 2015-12-09 2018-08-03 华为技术有限公司 用于分段路由网络中性能测量的系统、方法和节点
CN107566274A (zh) * 2016-06-30 2018-01-09 丛林网络公司 资源预留协议lsp和非资源预留协议lsp的带宽管理
US20180131616A1 (en) * 2016-11-07 2018-05-10 Cisco Technology, Inc. Tactical traffic engineering based on segment routing policies
EP3402140A1 (en) * 2017-05-09 2018-11-14 Juniper Networks, Inc. Varying a per-hop-bandwidth constraint in multi-path label switched paths
US20180343189A1 (en) * 2017-05-25 2018-11-29 Fang Hao Hop constrained maximum flow with segment routing
CN108429685A (zh) * 2018-04-28 2018-08-21 电子科技大学 一种基于分段路由技术的服务功能链寻路方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114448868A (zh) * 2022-02-28 2022-05-06 百果园技术(新加坡)有限公司 一种基于分段路由策略的路径调度方法、装置及设备
CN114448868B (zh) * 2022-02-28 2024-02-27 百果园技术(新加坡)有限公司 一种基于分段路由策略的路径调度方法、装置及设备
CN115277536A (zh) * 2022-06-10 2022-11-01 新华三技术有限公司 一种路径选择方法及装置

Also Published As

Publication number Publication date
CN112311675B (zh) 2022-05-27
US11070463B2 (en) 2021-07-20
EP3771162A1 (en) 2021-01-27
US20210029021A1 (en) 2021-01-28
EP3771162B1 (en) 2023-05-24

Similar Documents

Publication Publication Date Title
CN112311675B (zh) 用于分段路由(sr)路径的保证型带宽
CN112583717B (zh) 用于构建下一跳属性变化标签的方法、对等设备和介质
US11277334B2 (en) Using and processing per slice segment identifiers in a network employing segment routing
EP2713567B1 (en) Maintaining load balancing after service application with a network device
CN113347091B (zh) 灵活算法感知边界网关协议前缀分段路由标识符
US11909556B2 (en) Resilient multiprotocol label switching (MPLS) rings using segment routing
US7843918B2 (en) Selectively forwarding traffic through tunnels in a computer network
US20230018292A1 (en) Packet transmission method and apparatus, and network device
US11765077B1 (en) Ping and traceroute in inter-autonomous system (AS) segment routing (SR) networks without requiring headend router or path monitoring system (PMS) controller knowledge of topology outside of origin AS
US11876706B2 (en) Avoiding loops by preventing further fast reroute (FRR) after an earlier FRR
CN111953605B (zh) 发信号通知支持标签交换路径(lsp)的节点或节点组件的计划的脱机以及使用这种信令
US11070468B1 (en) Serverless segment routing (SR)-label distribution protocol (LDP) stitching
CN109861912B (zh) 优化用于电子设备内的虚拟节点的结构路径转发
US12034635B2 (en) Using and processing per slice segment identifiers in a network employing segment routing
US20240195741A1 (en) Segment Routing over Internet Protocol Version 6 (“IPv6”) Data Plane (“SRv6”) Replication Segment Identifier (SID) for use with Point to Multipoint (P2MP) Signaling Protocols Such as mLDP and RSVP-TE
CN117527668A (zh) 数据传输方法、装置、网络设备及存储介质
CN117792978A (zh) 一种路径故障检测的方法以及相关装置

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