CN103379042B - 路径加权的等价多路径 - Google Patents

路径加权的等价多路径 Download PDF

Info

Publication number
CN103379042B
CN103379042B CN201210564156.3A CN201210564156A CN103379042B CN 103379042 B CN103379042 B CN 103379042B CN 201210564156 A CN201210564156 A CN 201210564156A CN 103379042 B CN103379042 B CN 103379042B
Authority
CN
China
Prior art keywords
router
network
link
bandwidth
path
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
Application number
CN201210564156.3A
Other languages
English (en)
Other versions
CN103379042A (zh
Inventor
阿利亚·阿特拉斯
约翰·E·德雷克
戴维·沃德
罗斯·W·卡隆
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
Jungle Network
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 Jungle Network filed Critical Jungle Network
Publication of CN103379042A publication Critical patent/CN103379042A/zh
Application granted granted Critical
Publication of CN103379042B publication Critical patent/CN103379042B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/125Shortest path evaluation based on throughput or bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • 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
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/72Admission control; Resource allocation using reservation actions during connection setup
    • H04L47/726Reserving resources in multiple paths to be used simultaneously
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/82Miscellaneous aspects
    • H04L47/822Collecting or measuring resource availability data

Landscapes

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

Abstract

本发明提供路径加权的等价多路径。根据为每个路径算出的可在输出接口上发送的带宽量来在通过网络的多个路径之间进行网络流量平衡的路由器。例如,路由器接收位于所述网络的所述第一路由器和第二路由器之间的网络链路的链路带宽;以及选择所述第一路由器到所述第二路由器的多个转发路径。一旦确定由所述多个转发路径中的多个共享一个网络链路之后,路由器计算用于多个转发路径中的每个的路径带宽,以考虑在共享所述网络链路的多个转发路径之间分割所共享的网络链路的链路带宽的方式进行计算。路由器至少根据所算出的用于各个转发路径的带宽量,将数据包流分配给转发路径。

Description

路径加权的等价多路径
相关申请的交叉引用
本申请要求于2012年4月25日提交的美国临时专利申请第61/638,363号以及于2012年6月28日提交的美国专利申请第13/536,487号的权益,通过引证将每个的全部内容结合于本文中。
技术领域
本公开涉及计算机网络,更具体地,涉及在网络内分配流量负载。
背景技术
计算机网络为多个可交换数据并且共享资源的计算装置互相连接的集合。在基于数据包的网络内,计算装置通过将数据分成称为数据包的小块来通信数据,这些数据包经由网络被分别地从源装置路由到目的地装置。目的地装置从数据包中提取数据并且将数据组合成其原始的形式。将数据分成数据包使得源装置仅重新发送在传输过程中丢失的那些个别的数据包。
网络路由器保持用于描述通过网络可用的路径的路由信息。一旦接收到数据包,路由器检查数据包内的信息并且根据路由信息转发数据包。为了保持网络的精确表示,路由器根据一个或多个路由协议交换路由信息,例如,内部网关协议(IGP)或边界网关协议(BGP)。
计算网络可具有平行的数据路径。例如,网络可具有多个互连的中间装置,这些装置提供从入站边缘路由器到出站边缘路由器的连接。在普通的路由网络内,入站边缘路由器做出路由决定,以将流量转发给出站边缘路由器。根据每个数据包内的信息以及操作路由协议时所获悉的路由信息,入站边缘路由器选择相邻的“下一跳”路由器并且将数据包转发出至将路由器耦接至所选的下一跳路由器的出站物理链路上。例如,入站边缘路由器可在选择下一跳时,选择成本最低的物理链路。在某些情况下,入站边缘路由器在将数据包转发到下一跳路由器(即,耦接至其输出物理链路的相邻路由器)时,试图进行负载平衡。结果,在两个位置之间传输的某些数据包可使用一条路径,而其他数据包可使用一个或多个预备的路径。
发明内容
通常,描述了用于根据为每条路径计算的带宽量,对通过网络至目的地的多条路径之间的网络流量进行负载平衡的技术。所算出的带宽量限定了在网络装置的输出接口上可发送的带宽量,其中该输出接口用于将多个路径中的一个路径上的网络流量发送至目的地。
根据本公开的技术,计算路由器可通过考虑由多个路径共享的下游网络链路以及影响下游路由器如何在其自身至目的地的转发路径之间分割其流量的方式,计算用于每个转发路径的带宽量。例如,沿着等价转发路径的下游路由器并非均配置有本文中所述的加权等价多路径(ECMP)算法,而是可在与等价转发路径相关联的输出接口之间均匀地进行负载平衡,而无需考虑下游(即,朝向目的地)发生的事情。计算路由器在进行其自身路径带宽决定和相应的负载平衡分割时,可考虑下游路由器的行为。通过表示下游路由器是否具有解决在共享网络链路的多条转发路径之间分割共享网络链路的链路带宽的能力的能力通告,计算路由器可获悉下游路由器的能力。
网络装置(例如,路由器)可识别和选择通过网络至目的地的多条转发路径。多条转发路径可为均满足一个或多个约束条件的非环状路径,例如,至目的地表现出相同成本的多条转发路径。虽然在某些示例方面,所选的转发路径为并非所有均具有均等成本的非环状路径,但是多个所选的转发路径在本文中通常称为“等价”转发路径。路由器可从网络中的其他路由器接收关于沿着所选转发路径的每个网络链路的通告链路带宽或其他约束信息。
例如,一个以上等价转发路径可共享沿着等价转发路径的单个网络链路。即,源自不同下一跳路由器的路径可重叠并且需要共享下游的一个或多个共同链路。一方面,一旦确定由多个等价转发路径中的多个共享的一个网络链路时,计算路由器可计算在输出接口上可发送给下一跳路由器的带宽量,以实现在共享网络链路的多个等价转发路径之间分割共享网络链路的链路带宽。
在某些示例中,路由器随后可计算每个输出接口的权重,该权重与所算出的用于每个输出接口的带宽量成比例。路由器随后例如根据每个数据包流,以与路由器为输出接口所算出的各个权重成比例的方式将网络流量分配和转发给不同等价转发路径的相应下一跳。
本公开的技术可具有一个或多个优点。例如,将这些技术用于沿着路径,根据各自所有算出的路径带宽,在ECMP集合的等价转发路径之间分配网络流量,可使高路径带宽路径相对于低路径带宽路径所携带的网络流量增加。这可降低ECMP集合内发生拥塞的可能性,并且提高网络吞吐量。本公开的技术因此可允许使用不同的网络结构,并且也可减少同时进行相等链路升级的需要。本文中所描述的加权的ECMP技术不仅可用于互联网协议(IP)和标签分发协议(LDP)流量,而且还可用于基于流量工程扩展的资源预留协议(RSVP-TE)流量,包括当子LSP被信号通知不需要预留带宽时的RSVP-TE多路径流量。
在一个示例方面,一种方法包括由网络的第一路由器接收位于网络的第一路由器和第二路由器之间的网络的一个或多个网络链路中的每个的链路带宽;由所述第一路由器选择均满足约束条件的所述第一路由器到所述第二路由器的多个转发路径;以及一旦第一路由器确定由多条转发路径中的多个共享一个网络链路时,计算可在所述第一路由器的输出接口上向共享一个网络链路的多个转发路径上的相邻节点发送的带宽量,其中,计算所述带宽量包括考虑在共享所述网络链路的多个转发路径之间分割所共享的网络链路的链路带宽,以及当下游路由器算出可在所述下游路由器的输出接口上发送的带宽量时,考虑不将在共享所述网络链路的多个转发路径之间分割所共享的网络链路的链路带宽考虑的下游路由器。该方法还包括至少根据所算出的带宽量,由所述第一路由器选择地将数据包流分配给第一路由器的多个输出接口中的每个;由所述第一路由器接收数据包流的数据包;以及将每个数据包流的数据包转发给所述多个输出接口中该数据包流所分配给的输出接口。
在某些示例方面,该方法进一步包括接收表示下游路由器是否具有考虑在共享网络链路的多条转发路径之间分割共享网络链路的链路带宽的能力的能力通告。
在该方法的某些示例方面,选择性地分配数据包流包括识别要求至少一个性能特性的数据包流,以及将所识别的数据包流分配给多条转发路径中满足性能特性的转发路径。
在该方法的某些示例方面,识别多条转发路径包括识别多条转发路径直到所配置的最大数量的转发路径。
在该方法的某些示例方面,共享网络链路位于下游路由器和第二路由器之间,并且其中,共享网络链路直接耦接至下游路由器。
在另一个示例方面,一种网络装置包括:控制单元,包括一个或多个处理器;控制单元的路由协议软件,接收位于网络的网络装置和第二网络装置之间的网络的一个或多个网络链路中的每个的链路带宽,其中,路由协议软件用于执行路由协议,以选择均满足约束条件的从网络装置到第二网络装置的多个转发路径。网络装置还包括控制单元的路径权重计算器,用于在一旦确定由多个转发路径中的多个共享一个网络链路时,计算可在第一路由器的输出接口上向共享一个网络链路的多个转发路径上的邻近节点发送的带宽量,其中,计算所述带宽量时,所述路径权重计算器考虑在共享所述网络链路的多个转发路径之间分割所共享的网络链路的链路带宽,以及当下游路由器算出可在下游路由器的输出接口上发送的带宽量时,考虑不将在共享所述网络链路的多个转发路径之间分割所共享的网络链路的链路带宽考虑的下游路由器。网络装置进一步包括控制单元的多路径转发元件,用于至少根据所算出的带宽量,选择性地将数据包流分配给第一路由器的多个输出接口中的每个;以及一个或多个接口卡,用于接收数据包流的数据包,其中,所述多路径转发元件将每个数据包流的数据包转发给多个输出接口中该数据包流所分配给的相应的输出接口。
在另一个示例方面,一种计算机可读存储介质包括指令,所述指令用于使可编程的处理器执行以下步骤:接收位于网络的第一路由器和第二路由器之间的网络的一个或多个网络链路中的每个的链路带宽;选择均满足约束条件的第一路由器到第二路由器的多条转发路径;以及一旦确定由所述多个转发路径中的多个共享一个网络链路之后,计算可在所述第一路由器的输出接口上向共享一个网络链路的多个转发路径上的相邻节点发送的带宽量,其中,计算所述带宽量包括考虑在共享所述网络链路的多个转发路径之间分割所共享的网络链路的链路带宽,以及当下游路由器算出可在所述下游路由器的输出接口上发送的带宽量时,考虑不将在共享所述网络链路的多个转发路径之间分割所共享的网络链路的链路带宽考虑的下游路由器。该指令进一步包括以下指令:至少根据所算出的带宽量,选择性地将数据包流分配给第一路由器的多个输出接口中的每个;由所述第一路由器接收数据包流的数据包;以及将每个数据包流的数据包转发给所述多个输出接口中所述数据包流所分配给的输出接口。
在附图和以下描述中详细地阐述了本公开的一个或多个方面。从说明书和附图以及从权利要求书中,其他特征、目的地以及优点是显而易见的。
附图说明
图1为示出了用于执行本公开中所描述的加权等价多路径(ECMP)技术的示例网络系统的框图;
图2为示出了用于执行本公开中所描述的带宽可用性确定和加权ECMP流量分配技术的示例路由器的框图;
图3为示出了根据本公开所描述的技术的图2的示例路由器的示例操作的流程图,该示例操作通过分析接口传输队列特征通告邻近链路的可用带宽;
图4为示出了图2的示例路由器的示例操作的流程图,该示例操作根据本文所描述的方式的权重,计算ECMP集合的路径的各个权重并且将流量分配给ECMP路径;
图5为示出了具有路由器的示例网络系统的框图,这些路由器使用组合链路执行加权ECMP技术;
图6为示出了将本文中所述的可用带宽信息编码以用于路由协议的示例的框图;
图7为示出了执行本公开中所描述的加权ECMP技术的示例网络系统的框图;
图8为示出了图2的示例路由器的示例操作的流程图,该操作用于在到目的地装置的多个ECMP路径之间散布网络流量。
具体实施方式
图1是示出了执行本公开中描述的示例性加权等价多路径(ECMP)技术的示例网络系统2的框图。网络6包括路由器10A-10E(“路由器10”),用于将从源装置12A-12N(“源装置12”)接收到的网络数据包路由到目的地装置14。网络6可包括公共网络(例如,因特网)、专用网络(例如,企业或服务供应商所拥有和操作的那些专用网络)或公共和私用网络的组合。结果,在本文中,网络6可被可替换地称为服务供应商(SP)网络。网络6可包括一个或多个广域网(WAN)、局域网(LAN)、虚拟局域网(VLAN)、虚拟专用网络(VPN)和/或其他类型的网络。
在某些情况下,网络6可为互联网协议网络,其中,路由器10使用IP转发来传输网络数据包。在其他情况下,网络6可为标签交换网络,其中,网络装置(例如,路由器10,通常称为标签交换路由器或LSR)使用多协议标签交换(MPLS)信令协议,来建立标签交换路径(LSP)以传输从源装置12接收到的网络数据包。网络6的MPLS数据携带机制可视为位于开放式系统互连(OSI)模型的层2和层3之间,并且通常称为层2.5协议。所涉及的后面带数字的层可表示OSI模型的特定层。可在Hubert Zimmermann,“OSI Reference Model-the ISO Model of Architecturefor Open Systems Interconnection”,IEEE Transactions on Communications,vol.28,no.4,1980,4,中找到有关OSI模型的更多信息,通过引证将其全文结合于本文中。在互联网工程任务组(IETF)的网络工作组于2001年1月起草的题为“多协议标签交换体系结构(Multiprotocol Label SwitchingArchitecture)”的请求注释(RFC)3031内,可找出有关MPLS和MPLS的各种特征的其他信息以及有关MPLS的通用体系结构信息,通过引证将其结合于本文中。在某些情况下,网络6可提供通用MPLS(GMPLS)。虽然本文中在某些情况下关于MPLS进行描述,但是本公开的技术也可应用于GMPLS中。
因此,虽然图1中示出为单个网络6,但是网络6可包括任何数量互连的共用或专用网络,其中,各种网络互相连接以形成各种虚拟网络。此外,网络6可包括用于转发网络流量的各种其他网络装置,例如,额外的路由器、交换机或网桥。网络系统2的特定构造仅仅为示例,并且路由器10可位于单个网络内或多个网络内。虽然关于路由器进行描述,但是本技术的各方面可应用于其他网络装置,例如,网桥、交换机、网关、网络高速缓存器以及网络加速装置。
在图1的示例中,网络系统2包括耦接至中间网络6的多个源装置12和目的地装置14。每个源装置12和目的地装置14可为个人计算机、膝上型计算机、移动电话、网络电话、电视机顶盒、装入车辆内的网络装置、视频游戏系统、销售点装置、个人数字助理、中间网络装置、网络设备、超级计算机、大型计算机或能够与网络6接口以及通过网络6进行通信的其他类型的装置。
源装置12和目的地装置14通过接入链路5与网络6连接,这些接入链路可包括有线和/或无线通信链路。本文中所使用的术语“通信链路”包括任何形式的传输介质(有线或无线),并且可包括中间节点,例如,网络装置。每条接入链路5可包括例如非对称DSL网络、WiMAX、T-1线路、综合服务数字网(ISDN)或有线以太网的各方面。
网络6的多个物理和虚拟通信链路将路由器10互连,以有助于控制路由器之间进行的数据通信。网络6的物理链路可包括例如以太网PHY、同步光网络(SONET)/同步数字体系(SDH)、λ、或具有数据包传输功能的其他层2数据链路。网络6的逻辑链路可包括例如以太网虚拟LAN、MPLS LSP或MPLS-TE LSP。
路由器10使用一个或多个内部网关协议(IGP),来获悉网络6内部的通信链路的链路状态/度量值。例如,路由器10A可使用开放式最短路径优先(OSPF)或中间系统到中间系统(IS-IS)协议,来与路由器10B-10E交换路由信息。路由器10A将路由信息存储到路由信息库中,路由器使用该信息库计算至网络6内所通告的目的地地址的最佳路线。
在某些情况下,路由器10支持流量工程,以提高通过网络6的路径的利用率。通常,流量工程指的是将流量流从网络6的内部网关协议所算出的最短路径中移开,并且移向经由网络的拥塞潜在更少或以其他方式更期望的(从操作的观点来看)物理路径。例如,网络6管理员或路由器10可使用基于流量工程扩展的资源预留协议(RSVP-TE)或其他标签分发协议(例如,标签分发协议(LDP)),建立一个或多个LSP隧道,这些隧道使多对路由器10连接以将网络流量路由为远离网络故障、拥塞以及瓶颈。包括到LSP隧道的接口的路由器将度量值和LSP相关联。LSP度量值可采用LSP进行操作所经由的下面的IP路径的度量值,或者可由网络6的管理员配置为不同的值,以影响路由器10做出的路由决定。路由器10执行内部网关协议,以通过路由协议消息进行通信并且交换为LSP隧道所建立的度量值,并且将这些度量值存储在相应的路由信息库内,以用于计算至网络6内所通告的目的地地址的最佳路线。例如,路由器10可使用OSPF转发邻接(FA),通告LSP隧道作为网络6的IGP链路。因此,本文中所使用的术语“链路”或“通信链路”也可指的是通过层2通信链路进行操作的LSP。
建立RSVP-TE的LSP使用路由器10上的路径状态预留资源,从而确保这种资源可用于方便使用LSP转发的网络流量的服务类别(CoS)。例如,路由器10A可向路由器10D发布RSVP路径消息,以使用关于路由器10A和路由器10B的路径状态建立LSP并且预留用于LSP的带宽量。路由器10A、10B必须保持为映射到LSP的网络流量所预留的带宽量,直到LSP被抢占或被拆卸。在Awduche等人的、2001年12月的互联网工程任务组,网络工作组,请求注解3209的“RSVP-TE:为LSP隧道扩展RSVP(RSVP-TE:Extensions to RSVP for LSP Tunnels)”中,更完整地描述了RSVP-TE,其阐述的全部内容通过引证结合于本文中。
如本文中所述,路由器10可使用对IGP的扩展,另外分布有关网络负载的详细知识。例如,路由器10可执行本文所描述的基于流量工程扩展的IS-IS,流量工程扩展使用新的类型长度值(TLV)。作为另一个示例,路由器10可使用不透明链路状态通告(LSA),执行基于流量工程扩展的OSPF,以除了链路状态和度量值以外,还分布链路状态通告内的链路属性。在某些示例中,路由器10可通告网络6的链路目前可用的带宽,其考虑另外未计入的流量。即,路由器10监控并通告链路目前可用的带宽,表示为速率(例如,MB/s),其考虑未通过RSVP-TE被预留的并且目前未用于通过链路传输因特网协议(IP)数据包或LDP数据包的带宽,其中,LDP数据包为具有由LDP分布的贴附标签的数据包。因此,链路目前可用的带宽既未被预留也未用于传输使用未预留资源的流量。
路由器10测量用于通过出站链路传输IP和LDP数据包的带宽量,并且计算目前可用的带宽,作为链路容量与所预留的带宽和所测量的IP/LDP数据包带宽的总和之间的差值。路由器10将所算出的用于其各自的出站链路的可用带宽信息,作为链路状态内部网关协议所扩展的链路状态通告中的链路属性进行交换,并且将所接收到的链路属性存储到与通用路由信息库(包括例如IGP链路状态数据库)不同的相应流量工程数据库(TED)中。
路由器10A利用其路由信息库执行最短路径优先(SPF)算法,从而计算通过网络6进入路由器10D的最佳转发路径,通过该路径可到达目的地装置14。在某些情况下,路由器10A可通过其路由信息库及其流量工程数据库,执行受约束的SPF(CSPF)算法,以在诸如输入到CSPF算法的链路属性要求的各种约束条件下,计算用于LSP的路径。例如,路由器10A可在要求所算出的路由器10A到路由器10D的路径的每个链路具有RSVP-TE目前未预留的至少规定的带宽量的带宽约束条件下,执行CSPF算法。
在图1所述的示例中,路由器10A通过其路由信息和/或TED计算SPF或CSPF算法,该算法产生通过网络6的并具有相等成本的多个最短路径16A-16B(“路径16”)。即,路由器10A到路由器10D的路由成本在横穿路由器10A-10B-10D的路径16A和横穿路由器10A-10C-10E-10D的路径16B之间是相等的。例如,路径16均可表示LSP或IP路径。
已经确定至路由器10D的路径16具有相等的成本时,路由器10A可形成由两个路径16构成的等价多路径(ECMP)集合。在一个示例技术中,路由器10A基于沿着各个路径当前最小可用带宽,另外地计算每个路径16的权重。即,路由器10A访问其TED,并且确定当前可用于沿着每个路径16的链路的集合的最小可用带宽,然后,根据加权函数,基于所确定的最小可用带宽,计算各个路径的权重。例如,路由器10A可通过首先读取TED以确定路由器10A-路由器10B链路和路由器10B-路由器10D链路的可用带宽,然后,比较可用带宽以找出路径16A的最低可用带宽值,来确定路径16A的最小可用带宽。然后,路径的多个链路中的最低可用带宽值可用作路径16A的最小可用带宽。在一个示例中,当路径具有较高的最小可用带宽时,权重路由器10A为该个路径16计算一个较高的权重。
路由器10A接收源自源装置12并且通向目的地装置14的网络流量,将该流量分成数据包流22A-22D(“数据包流22”)中的一个。路由器10A根据所算出的用于路径16的相应权重,将各个数据包流22分配给到路由器10D的一个路径16,该路径16构成ECMP集合。通常,由于所计算的权重,所以权重值越高,路由器10A分配给路径的网络流量的相对比例就越大。在所说明的示例中,路径16A比路径16B具有更高的相对最小可用带宽,并且因此,与路径16B相比,路由器10A为路径16A计算出的权重更大。而且,一旦识别各个数据包流22,路由器10A根据所算出的用于路径的权重,将各个数据流22分配给路径16。由于路由器10A将更高的权重值和路径16A相关联,所以路由器10A将多个数据包流(即,在该示例中,为数据包流22A、22B和22C)分配给路径16A,而将少量的数据包流(仅仅为数据包流22D)分配给路径16B。可连续地执行所描述的技术,以促进数据包流随着时间的动态负载平衡,该动态负载平衡响应于ECMP集合内路径的下面链路的可用带宽状态而变化。
这可改善网络6内的负载平衡,以同时减少拥塞并且提高网络性能。例如,假设每个数据包流22在尺寸和速率方面与分成数据包流的数据包具有相似的配置,根据沿着每个路径16的最小可用带宽而非根据轮叫调度(Round-robin)技术分配数据包流22,可在路径16之间提供更公平的负载平衡,这是由于与路径16B相比,路由器10A将更多的流分配给具有相对更高的最小可用带宽的路径16A。这就使路径16A相对于路径16B携带流22的流量中的更多量,从而相对于等流分发技术,减少了路径16B上的负载。
图2为示出用于执行本公开中所描述的带宽可用性确定和加权ECMP流分配技术的示例路由器28的框图。路由器28可表示图1的路由器10、和/或图7的路由器210、源路由器212、目的地路由器214中的任一个的示例实施方式。
路由器28包括控制单元30和通过内部链路54A-54N与控制单元30耦接的接口卡48A-48N(“IFC48”)。控制单元30可包括一个或多个处理器(图2中未示出),这些处理器执行软件指令,例如,用于限定软件或计算机程序的、存储到计算机可读存储介质(图2中未示出)的那些指令,计算机可读存储介质例如,包括存储装置(例如,硬盘驱动器或光盘驱动器)或存储器(例如,闪速存储器、随机存取存储器或RAM)或任何其他类型的易失性或非易失性存储器的永久性计算机可读介质,计算机可读存储介质存储指令以使一个或多个处理器执行本文中所述的技术。或者/此外,控制单元30可包括用于执行本文中所描述的技术的专用硬件,例如,一个或多个集成电路、一个或多个专用集成电路(ASIC)、一个或多个专用特殊处理器(ASSP)、一个或多个现场可编程门阵列(FPGA)、或专用硬件的前述示例的一个或多个的任意组合。而且,尽管关于特定的网络装置(例如,路由器)进行了描述,但本公开的技术可用于其他类型的网络装置,例如,交换机、内容服务器、网桥、多机箱路由器或能够执行所述技术的其他装置。
在这个示例中,将控制单元30分成两个逻辑或物理“平面”,从而包括第一控制或路由平面32A和第二数据或转发平面32B。即,控制单元30执行两个分离的功能,例如,逻辑上的路由和转发功能,例如,作为在同一组硬件元件上执行的不同软件实例,或者物理上的路由和转发功能,例如,作为静态上实施硬件功能或动态上执行软件或计算机程序以执行该功能的分离物理专用硬件元件。
控制单元30的控制平面32A执行路由器28的路由功能。在这方面,控制平面32A表示执行路由协议(图2中未示出)的控制单元30的硬件或控制单元30的硬件和软件的组合,通过该路由协议可确定存储在路由信息库38(“RIB38”)内的路由信息。RIB38可包括限定网络(例如,图1的网络6)拓扑的信息,该网络拓扑通过基于流量工程扩展的内部网关协议42(“IGP-TE42”)的路由协议守护进程(daemon)40(“表示为RP守护进程40”)执行时获悉。例如,RIB38可包括物理和逻辑链路(例如,通告为转发邻接的LSP)的链路状态数据库。RIB38还包括转发数据库,其存储RP守护进程40为不同的目的地所算出的路线。IGP-TE42可表示任何内部路由协议的实施方式,该协议通知并且接收网络链路的链路属性。例如,IGP-TE42可表示OSPF-TE或IS-IS-TE。RIB38还可包括MPLS路由表,其存储MPLS路径以及通过网络的LSP的标签信息。在这种情况下,IGP-TE42将LSP和相关的度量值作为转发邻接通告至该网络的额外路由器上执行的IGP-TE的其他实例。
RP守护进程40(例如,在路由器28的控制单元30上执行的路由协议软件)可分析RIB38内的路由信息所限定的拓扑,以选择或确定通过网络到不同目的地的一个或多个活动路线。然后,控制平面32A使用这些路线更新数据平面32B,其中,数据平面32B将这些路线作为将网络目的地映射到一个或多个出站接口52的转发信息70来保持。转发或数据平面32B表示控制单元30的硬件或控制单元30的硬件和软件的组合,其根据转发信息70和/或流表72,将接口卡48经由入站链路50A-50N接收的网络流量通过接口卡48的出站链路52A-52N转发。例如,在路由器28内可将数据平面32B的各方面实施为一个或多个数据包转发引擎(“PET”),这些数据包转发引擎与IFC48中不同的一个相关联并且通过交换机结构彼此互连。
控制平面32A还包括RSVP-TE36、IP37以及LDP39。路由器28使用IP37支持基于IP的转发,该转发不使用MPLS标签或LSP。LDP39为用于在网络内分发与LSP相关的标签的信令协议。
控制平面32A的RSVP-TE36为可用于建立通过网络的显式路由LSP的信令协议。RSVP-TE36可从管理员接收例如用于新LSP隧道的显式路由路径,以及为LSP隧道配置的度量值。RSVP-TE36请求下游路由器将标签绑定到路由器28所建立的特定LSP隧道中,并且可引导LSP隧道的下游理由器为LSP隧道的操作预留带宽。此外,RSVP-TE36将MPLS转发状态安装到转发信息70中,以为LSP隧道的IFC48的一个出站链路52预留带宽,并且一旦建立LSP,将LSP的标签映射到网络流量,然后,数据平面32B根据LSP的MPLS转发状态转发该网络流量。路由器28将LSP隧道的相同标签值所分配给的数据包的集合属于特定的转发等效类(FEC)并且限定RSVP流。
数据平面32B的流量分析模块60可监测通过数据平面32B并与预留的带宽不相关的的流量(例如,LDP或IP流量),并且生成流量统计62。流量分析模块60可例如监测每个出站链路52上输出的LDP流量的量。在某些实施方式中,流量分析模块60可控制流量统计36的粒度。例如,在一个实施方式中,流量分析模块60可仅仅监测和生成关于从路由器28输出到各个出站链路52上的LDP流量的总量的统计。然而,在其他实施方式中,流量分析模块60通过监测不同类型的流量,可生成更多的粒度流量统计。例如,流量分析模块60可跟踪各个出站链路52上输出的LDP流量的量以及各个出站链路52上输出的IP流量的量。在路由器28的各种示例中,可将流量分析模块60的各方面分配给控制平面32A。
根据本公开的各方面,流量分析模块60计算与路由器28相关的一个或多个出站链路52上可用的带宽量。流量分析模块60使用流量统计36内所存储的统计(即,非预留带宽的当前消耗的统计)和转发信息70内所存储的预留请求,计算可用带宽。这样,流量分析模块60考虑预留给RSVP-TE流量的带宽量以及LDP量或当前使用出站链路52的带宽的其他流量。结果,流量分析模块60可生成用于每个出站链路52的带宽可用信息。例如对于每个出站链路52而言,流量分析模块60可通过对LDP流量的量进行时间平均化,并且从与每个链路相关的总容量中减去平均LDP流量和所预留的带宽量,计算可用的带宽信息。可替换地/此外,这些技术可用于考虑(account for)IP流量或出站链路52上输出的与预留资源无关联的其他流量。例如,对于每个出站链路52而言,流量分析模块60可监测IP流量,并且流量分析模块60计算可配置的时间段内IP流量的平均量。流量分析模块60可通过将链路的容量减去所监测的流量统计减去RSVP预留,计算可用带宽。流量分析模块60将所算出的带宽可用信息存储到流量工程数据库(“TED46”)中。
流量分析模块60可通过监测出站接口的传输队列63(表示为“传输队列63”),来监测至出站链路52的流量。在数据平面32B将数据包发送给出站接口时,包括与出站接口相关联的出站链路52的一个接口卡48将用于传输的数据包排队在一个传输队列63上。可将表示不同服务类别的多个不同传输队列63映射到每个出站链路52中,并且数据包保持在队列中的时间量与相应链路的可用带宽量密切相关。每个物理或逻辑链路(例如,LSP)在转发信息70内与链路的出站接口的一个传输队列63相关联。通过在转发信息70内安装预留状态,RSVP-TE28为面向预留的转发类别预留出站链路的带宽的一些部分。实际上,这就使RSVP LSP和具有确定的(即,预留的)带宽的一个传输队列63相关联。
流量分析模块60可通过监测没有确定带宽的服务类别的传输队列63,定期监测出站链路的可用带宽。流量分析模块60例如可定期确定传输队列63中带宽未确定的传输队列的队列尺寸,并且对队列尺寸应用用于基于队列尺寸的链路返回可用带宽量的函数。作为另一个示例,流量分析模块60可定期设置定时器,以首先测量用于传输的特定数据包排队和退出队列之间的时间长度,然后,应用用于基于所测量的长度返回链路的可用带宽量的函数。该函数可包括链路容量和所保留的带宽参数,以计算可用带宽,作为链路容量与所保留的带宽和目前使用的IP/LDP带宽的总和之间的差值。
在某些示例中,流量分析模块60将所确定的可用带宽复制到TED46。在某些情况下,流量分析模块60将为每个出站链路52定期确定的可用带宽的时间序列存储到流量统计62中,并且将平滑函数(例如,滑动平均滤波器、加权滑动平均滤波器、或者指数加权滑动平均滤波器)用于时间序列的集合中,以减少出站链路上的流量突发。对于任一个出站接口52,当流量分析模块60确定滑动平均超过先前复制到TED46中的可用带宽值的阈值增加量或阈值减小量时,流量分析模块60复制滑动平均至TED46中,作为相应链路的新的可用带宽值。由流量分析模块60将新的可用带宽值复制到TED46中,可引发IGP-TE42进行链路的可用带宽的IGP通告。在某些情况下,IGP-TE42读取流量统计62,以确定链路的可用带宽。
如上所述,IGP-TE42可将位于TED46中的所算出的带宽可用性信息作为相应链路的最小带宽链路属性,通告给其他路由装置。此外,IGP-TE42从网络内其他链路的其他路由装置中接收带宽可用信息,并且用所接收的带宽可用信息更新TED46。这样,路由器28保持整个网络(例如,图1的网络6)的链路的精确带宽可用信息。
在提供区分服务(“DiffServ TE”)的网络2的示例中,RSVP-TE可根据多个流量类别,预留资源。在Minei等人的、2006年6月的、互联网工程任务组,网络工作组,互联网草案中的“区分服务意识流量工程LSP的扩展(Extensions for Differentiated Services-aware Traffic EngineeredLSPs)”中,描述了流量工程背景下的区分服务,通过引证将其全部内容结合于本文中。在某些情况下,流量分析模块60确定与数据平面内DiffServ代码点关联的每个流量类别的可用带宽,并且IGP-TE42将用于流量类别的每个可用带宽通告给在其他路由器内执行的IGP-TE的其他实例。下面进一步详细地进行描述,当对类别的网络流量进行负载平衡时,分类器74和多路径转发元件56然后使用基于类别的可用带宽进行操作。
路由器28使用等价多路径(ECMP)路由技术,以在经过网络的多个等价路径之间分布网络流量负载。RP守护进程40利用RIB38的链路状态数据库执行SPF算法(或者,除了RIB38的链路状态数据库以外,还利用TED46执行CSPF算法),以识别到同一个目的地的多个等价路径。RP守护进程40形成由等价路径构成的ECMP集合,并且从所算出的路径获得一个或多个转发结构,从而以到同一个目的地的多个可能的下一跳的形式保持等价路径。然后,RP守护进程40将这些转发结构安装到转发信息70中,并且数据平面32B在向目的地转发网络流量流时,可使用从ECMP集合中获得的任何可用转发结构。然而,如上所述,在某些示例中,可选择不必为等价路径的多个路径的集合。RP守护进程40可选择可接受的非环状路径的集合,其中,可根据其他约束条件进行选择。
一旦识别出ECMP集合时,RP守护进程40就另外促使控制平面32A的路径权重计算器44根据该路径的最小可用带宽或根据下面示例中所述的出站接口的带宽量,计算ECMP集合内每个路径的权重。路径权重计算器44确定构成ECMP内的每个路径的网络链路,并且对于路径的每个链路,读取TED46以识别链路的可用带宽。为了确定路径的最小可用带宽,路径权重计算器44识别构成该路径的所有链路的最小可用带宽值。
根据为ECMP集合内各个路径确定的最小可用带宽值或路径带宽值,路径权重计算器然后确定多路径转发元件56将为每个路径应用的相对权重。例如,路径权重计算器44可根据每个路径的最小可用带宽或路径带宽与ECMP集合内任一个路径的最小最低可用带宽的比,设定用于ECMP集合内每个路径的相对权重。例如,如果ECMP集合的路径A的最小可用带宽为10MB/s,ECMP集合的路径B的最小可用带宽为50MB/s,ECMP集合的路径C的最小可用带宽为25MB/s,那么路径权重计算器44可将路径A、B、C的权重分别计算为2、10以及5,以反映ECMP集合的最小可用带宽比。在其他示例中,路径权重计算器44可使用其他公式来计算ECMP集合内路径的权重。路径权重计算器44将所算出的用于ECMP集合的权重安装到多路径转发元件56的权重58中。
在某些方面,分类器74识别新的数据包流,并且将入站链路50上所接收的入站数据包分类为被流表72提及的数据包流。本文中所使用的“数据包流”表示数据包报头字段值和/或数据包数据的集合,数据包报头字段值使包含这种值的任何数据包被分配给ECMP集合内朝向该数据包的目的地的特定路径。此外,数据包流为最小粒度,路由器28以该粒度在流表72内保持状态,以转发被分类为流表72内所提及的网络数据包。例如,通过其各自的<源IP地址、目的地IP地址、协议标识符>3元组值或通过其各自的<源IP地址、目的地IP地址、源端口、目的地端口、协议标识符>5元组值,分类器74可将数据包分类成流表72内所提及的数据包流。
流表72包括数据结构,例如,用于在数据流入口内存储信息或数据的表,这些数据流入口均属于穿过路由器28的不同数据包流。在某些情况下,这种数据包括对转发信息70内的下一跳结构的索引,其指定ECMP集合内的路径。虽然作为表格进行说明和描述,但是流表72内的数据可存储到任何其他数据结构中,例如,图表、链接表等等。流表72存储描述先前由分类器74识别的每个流的数据,例如,5元组值以及与每个流有关的其他信息。即,流表72可执行与每个活动数据包流相关的网络元素,例如,与数据包流相关联的源和目的地装置和端口。流表72还可包括用于每个流的唯一应用标识符(ID),该标识符唯一地标识每个流所对应的应用。
当分类器74识别新流时,多路径转发元件56可确定转发信息70包括到流的目的地的多个可能的下一跳。换言之,多路径转发元件56确定存在流可用的ECMP集合。因此,多路径转发元件56对ECMP集合的下一跳应用相应的权重58,并且根据权重,将新流分配给一个下一跳。多路径转发元件56可应用根据新流目的地的ECMP集合的权重58参数化的算法,并且使用该函数的结果,选择用于流分配的一个可能的下一跳。例如,在某些情况下,多路径转发元件56应用根据ECMP集合的权重58进行加权的加权轮叫算法,以为指向ECMP集合所提供的目的地的新数据包流选择一个可能的下一跳。作为另一个示例,在某些情况下,多路径转发元件56应用加权的散列模型技术,以首先根据路径的权重58,增大ECMP集合内路径的散列桶的数量,并且然后,对例如新流的源/目的地地址进行散列,以选择散列桶和与ECMP集合内用于新流的相关路径。
为了使新流与所选的下一跳相关联,多路径转发元件56在分类器74所生成的用于新流的流表72入口内,将索引(例如,转为下一跳或指标的指示器)加入转发信息70内所选的下一跳。用于新流的流表72入口内所选的下一跳的索引,使数据平面32B的多路径转发元件将新流的数据包转发给所选的下一跳。结果,根据用于为数据包流的目的地服务的ECMP集合的不同路径的最小可用带宽,路由器28分配数据包流并且平衡网络流量负载。
图3是示出了图2的路由器28的示例操作的流程图,该操作用于通过根据本公开中所描述的技术分析接口传输队列特性,通告邻近链路的可用带宽。为了确定供未预留的(例如,IP和LDP)流量所使用的带宽,流量分析模块60读取一个出站链路52的接口的传输队列的尺寸(例如,传输所排队的数据包数量)(100)。流量分析模块60将所读取的尺寸值存储到流量统计62中,并且使用额外的数据点(即,读取尺寸)重新计算传输队列尺寸的滑动平均(200)。如果滑动平均超过流量分析模块60所使用的先前滑动平均值的阈值差(例如,5%或绝对值差),据此更新链路的可用带宽值(104的“是”分支),那么流量分析模块60使用滑动平均,计算链路的可用带宽(106),其中,链路上的可用带宽与链路的传输队列的尺寸的滑动平均反相关。流量分析模块例如可计算物理或逻辑链路的可用带宽,作为链路容量和所预留的带宽与所测量的IP/LDP数据包带宽的总和之间的差值。流量分析模块60将可用带宽存储到TED46中,以由IGP-TE42通告给其他路由器中的路由处理的其他实例。
图4为示出了图2的路由器28的示例操作的流程图,根据本文中所描述的一个示例实施方式,该操作用于计算ECMP集合内的路径的各个权重并且基于权重将流分配给ECMP的路径。在图4的示例中,RP守护进程40执行IGP-TE42,以接收根据流量工程扩展所形成的通告,从而包括通告链路可用的未预留的带宽(120)。IGP-TE42存储用于TED46内所通告的链路的通告的可用带宽值(122)。
RP守护进程40利用RIB38内的链路状态信息执行最短路径优选算法,以计算从路由器28到不同目的地的最佳(根据RIB38内的IGP度量值)转发路径。在某些情况下,RP守护进程40识别至特定的目的地或目的地集合的多个最佳等价转发路径,并且在这种情况下,创建由多个等价转发路径构成的ECMP集合(124)。
路径权重计算器44分析构成ECMP内的各个转发路径的各个链路,以确定路径的最小可用带宽(126)。例如,路径权重计算器44读取路径内每个链路的可用带宽值,并且确定不同链路的所有这种值之中最小的可用带宽值。该最小可用带宽值为相应路径的最小可用带宽值。路径权重计算器44使用为ECMP集合内的每个路径所确定的最小可用带宽,计算路径的相对权重,并且将这种权重存储到权重58中(128)。所算出的相对较高的权重表示,与其他路径相比,ECMP集合内路径的最小可用带宽量更大。多路径转发元件56根据路径的相应权重58,将目的地为由ECMP集合所服务的目的地并且由分类器74所识别的新数据包流分配给ECMP集合内的路径(130)。
图5为示出了具有使用组合链路执行加权ECMP技术的路由器82A–82F的示例网络系统80的框图。组合链路将MPLS网络的两个路由器之间的多个平行元件链路绑定在一起,作为单个逻辑网络链路。元件链路在组合链路内可不同种的,并且可具有不同的IGP或TE度量值,例如,成本和容量。组合链路的入口路由器可以以IGP的链路状态通告将该链路通告给网络的其他路由器。组合链路的元件链路可为从组合链路的入口路由器到组合链路的出口路由器的等价多路径的集合。因此,本文中所描述的加权ECMP技术可改善组合链路的元件链路之间的网络负载平衡,并且因此提高组合链路的整体性能。
所述网络系统80提供组合链路的两个示例。路由器82B到路由器82E的组合链路83B包括元件链路86B、86A,这些元件链路均为路由器82B到路由器82E的LSP。路由器82A到路由器82E的组合链路83B包括元件链路84A、84B,这些元件链路均为路由器82A到路由器82E的LSP。组合链路83A包括作为元件链路84A的传输链路的组合链路83B,因此说明了在组合链路和元件链路之间的递归可能性。
根据组合链路的各个元件链路的最小可用带宽,路由器82使用本公开的技术,通告组合链路83A-83B(“组合链路83”)的可用带宽。路由器82B使用本文中所描述的技术,确定用于组合链路83B的每个元件链路86A、86B的最小可用带宽。例如,通过分别从路由器82C、82D接收关于路由器82C-82E链路和路由器82D-82E链路的可用带宽通告,路由器82B可确定每个元件链路86A、86B的最小可用带宽。例如,通过分析链路的相应的传输队列,路由器82B可独立地确定路由器82B–82C链路和路由器82B–82D链路上的可用带宽。在一个示例中,路由器82B将组合链路83B的可用带宽计算为元件链路86A、86B的最小可用带宽的总和,并且在到路由器82A的IGP-TE通告88内将作为组合链路83B的链路属性的可用带宽通告。对于接收IGP-TE通告88的路由器82A而言,组合链路83B表现上为朝向路由器82E的元件链路84A的单个链路,并且在确定最短路径优先时,可由路由器82A使用。
然后,在路由器82A执行WECMP技术以对组合链路83A的元件链路84A、84B上的网络流量进行负载平衡时,路由器82A可使用以IGP-TE通告88所接收的所通告的组合链路83B的可用带宽。例如,组合链路83B的可用带宽可表示组合链路83A的元件链路84A的任何子链路的最小可用带宽。结果,路由器82A可使用组合链路83B的可用带宽,计算元件链路84A的相对权重,并且根据使用本文中所描述的技术所算出的相对权重,负载平衡组合链路83A的元件链路84A、84B之间的网络流量。
由于添加或删除其内的各个元件链路,组合链路83的组成可改变。在这种情况下,路由器82可使用组合链路的元件链路的相应新集合,重新计算和通告所修改的组合链路83的可用带宽。
网络服务供应商或其他管理员80可建立路由器82A到路由器82E的RSVP-TE信令LSP,其穿过路由器82B并通过组合链路83B而朝向路由器82E。作为RSVP-TE信令的一方面,路由器82B和路由器82E将LSP分配给组合链路83B的两个元件链路86A、86B。换言之,与从路由器82B到路由器82E的LSP相关的标签在两个元件链路86A、86B上是有效的,以通过从路由器82B到路由器82E的元件链路隧穿。由于RSVP-TE信令LSP的标签标识路由器82B处的转发等效类别,所以路由器82B可使用本公开中所描述的加权ECMP技术,在元件链路86A、86B之间负载平衡LSP所携带的每个单独的网络数据包流,其中,组合链路83B有效地表示ECMP集合。在某些情况下,元件链路86A可具有不同的流量特性,不能支持RSVP-TE信令LSP的资源要求。在这种情况下,当在组合链路83B的元件链路之间进行负载平衡时,将元件链路86A排除在ECMP集合之外。
而且,由于可将从路由器82B到路由器82E的RSVP-TE信令LSP分配给组合链路83B的两个元件链路86A、86B,所以路由器82B使用组合链路83B的可用带宽,对PATH资源预留请求执行呼叫进入控制(CAC)。路由器82B可响应于PATH资源预留请求,使用加权的ECMP技术,来为元件链路86A、86B的相应出站接口分配不同比例的资源。例如,路由器82B根据使用元件链路86的最小可用带宽所算出的各个权重,响应于对组合链路83B上的40MB/s带宽的请求,可从元件链路86A的出站接口中预留30MB/s,同时从元件链路86B的出站接口中预留10MB/s。路由器82B确保响应于特定请求所预留的带宽小于元件链路86中特定链路的可用带宽。
由于路由器82B动态地应用上述加权的ECMP技术,所以路由器82B可动态地重新分配元件链路82A与元件链路82B之间的RSVP-TE信令LSP。路由器82B应用以上所引用的Awduche等人所描述的先接后断(MBB)技术以及LSP缝合,以应用从元件链路82A到元件链路82B的单跳缝合。在Ayyangar等人的、2008年2月的网络工作组,请求注释5150中的“基于通用多协议标签交换流量工程的标签交换路径缝合(LabelSwitched Path Stitching with Generalized Multiprotocol Label SwitchingTraffic Engineering)(GMPLS TE)”中,更完整地描述了LSP缝合,通过引证将其全部内容结合于本文中。路由器82B检测到元件链路86A和/或元件链路86B上的拥塞时,路由器82B还可减少为分配给组合链路83B的RSVP-TE信令LSP所预留的带宽。这样,路由器82B可避免被LSP完全抢占,以有利于部分抢占,在Polk等人、2006年5月的网络工作组,请求注释4495,“用于减少预留量的带宽的资源预留协议(RSVP)扩展(AResource Reservation Protocol(RSVP)Extension for the Reduction ofBandwidth of a Reservation Flow)”中,对此进行了更完整的描述,通过引证将其全部内容结合于本文中。
图6为示出了将本文中所述的可用带宽信息编码以用于IS-IS路由协议的示例的框图。通常IS-IS链路状态PDU由固定的报头以及多个元组构成,每个元组包括类型、长度以及值(TLV)。通常,图1的路由器10使用泛洪路由协议,来彼此通告拓扑信息,并且同步每个路由器所保持的链路状态数据库。如本文中所述,路由器10支持以本文中所描述的方式扩展后的增强内部网关协议,通过该协议,路由器10可通告路由器所确定的关于邻近链路的可用带宽信息。
在所述示例中,定义各种链路状态消息可携带的新的、不透明类型、长度以及值(TLV),这些链路状态消息已经用于图1的网络系统2内。TLV140包括TYPE(类型)字段144、LENGTH(长度)字段146以及包括AVAILABLEBANDWIDTH(可用带宽)字段148的VALUE(值)字段142。
TYPE字段144的长度为一个八位字节,其指定本文中所定义的新TLV的唯一标识符,以携带泛洪路由协议的突发速率和平均速率控制信息。LENGTH字段146的长度为一个八位字节,并且表示VALUE字段142长度为八位字节,即,在该示例的TLV中为4。
VALUE字段142携带的AVAILABLEBANDWIDTH字段148指定与TLV140相关的链路的可用带宽的速率。AVAILABLEBANDWIDTH字段148具有带有单精度浮点值的四个八位字节的值,以将可用带宽的速率存储为例如千字节/秒。利用提供链路的链路状态的IS-IS消息内的包含物,可将TLV140与链路相关联。IS-IS允许在任何类型的IS-IS消息内包含TLV,并且协议规范要求路由器忽略未识别的TLV。这样,TLV140在本文中称为不透明的TLV,并且本文中所描述的技术允许路由器10提取并且记录相关联链路目前可用的带宽。
网络系统2内使用的多种不同类型的链路状态消息可携带TLV140。例如,路由器10通常交换最初的链路状态消息,以建立邻接关系。例如,路由器10可交换IS-IS HELLO协议数据单元(PDU),以建立与其他路由器的邻接关系。路由器10可在这些最初的PDU内包括本文中所描述的TLV140,以将邻近链路上可用的带宽通知给其他路由器。此外/可替换地,路由器10在泛洪链路状态消息内不透明地包括TLV140,以同步每个路由器所保持的流量工程数据库。每个链路状态消息通常在网络上被定期刷新,并且由接收路由器确认。例如,路由器10可使用定期IS-IS状态链路PDU来同步其链路状态数据库,并利用部分序列号PDU(PSNP)和完整序列号PDU(CSNP)来确认信息的接收。路由器10可将TLV140嵌入在链路状态PDU内,或者更可能地嵌入在确认PDU内。
作为另一个示例,路由器10可交换携带TLV140的不透明OSPF链路状态通告(LSA),例如,流量工程LSA。在2003年9月的网络工作组的RFC3630中的“流量工程(TE)扩展至OSPF版本2(Traffic Engineering(TE)Extensions to OSPF Version2)”内,描述了流量工程LSA,通过引证将其全部内容结合于本文中。在流量工程LSA内,链路TLV描述了单个链路,并且包括子TLV的集合。TLV140可定义为用于链路TLV的新子TLV类型,其规定所述链路目前可用的带宽,该带宽既未被预留也未被目前用于通过链路传输互联网协议(IP)数据包或LDP数据包。这样,路由器10交换网络6链路的可用带宽,以能够使用本文中所描述的加权ECMP技术。
图7为示出了执行本公开中所描述的示例加权等价多路(ECMP)技术的示例网络系统200的框图。网络206包括路由器210A–210F(“路由器210”)、源路由器212以及目的地路由器214,这些路由器将从源装置220A-220N(源装置220)接收的网络数据包路由到目的地装置222。网络206可包括公共网络(例如,因特网)、专用网络(例如,企业或服务供应商所拥有和操作的那些专用网络)或公共和专用网络的组合。结果,在本文中,网络206可被替换地称为服务供应商(SP)网络。网络206可包括一个或多个广域网(WAN)、局域网(LAN)、虚拟局域网(VLAN)、虚拟专用网络(VPN)、和/或其他类型的网络。
在某些情况下,网络206可为互联网协议(IP)网络,其中,路由器210使用IP转发来将从源路由器212接收的网络数据包传输。在其他示例中,网络206可为MPLS网络,其中,路由器210可使用MPLS信令协议(例如LDP或RSVP)来建立LSP以传输网络数据包。在某些示例中,网络206可包括RSVP多路流量,其中,子LSP被信号通知为不需要预留带宽。K.Kompella的、2011年10月31日的网络工作组互联网草案中的“使用RSVP-TE进行多路径标签交换信号通知(Multi-path Label SwitchedPaths Signaled Using RSVP-TE)”中,以及在2009年7月22日提交的题为“Load Balancing Network Traffic on a Label Switched Path Using ResourceReservation Protocol with Traffic Engineering”的美国专利申请号12/507,200中,记载了使用子LSP的RSVP多路径的更多细节,这两者的全部内容通过引证结合于本文中。
因此,虽然图7中示出为单个网络206,但网络206可包括任何数量的公共的或专用的互连网络,其中,各种网络互相连接以形成各种虚拟网络。此外,网络206可包括用于转发网络流量的各种其他网络装置,例如,附加的路由器、交换机或网桥。网络系统206的特定配置仅仅为示例,并且路由器210、212、214可位于单个网络内或多个网络内。例如,路由器210、212、214可实施为图2的路由器28,并且路由器28的元件可根据以下关于图7所阐述的技术进行操作。虽然相对于路由器作为示例进行描述,但是本文中所描述的这些技术的各方面可用于其他网络装置(例如,网桥、交换机、网关、网络高速缓存存取器以及网络加速装置)中并且可由其他网络装置实施。
每个源装置220A-220N和目的地装置222可为个人计算机、膝上型计算机、移动电话、网络电话、电视机顶盒、装入车辆内的网络装置、视频游戏系统、销售点装置、个人数字助理、中间网络装置、网络设备、超级计算机、大型计算机、或能够与路由器212、214接口以及通过网络206进行通信的其他类型的装置。源装置220可将网络流量发送给源路由器212,以通过网络206传输并最终到达目的地装置222。
在图7的示例中,源路由器212、路由器210以及目的地路由器214通过链路205A-205I(“链路205”)互相连接。在某些方面,源路由器212和目的地路由器214通过接入链路207连接至源装置220和目的地装置222,这些接入链路可包括有线和/或无线通信链路。本文中所使用的术语“通信链路”包括任何形式的传输介质(有线或无线),并且可包括中间节点,例如,网络装置。每个接入链路可包括例如非对称的DSL网络、WiMAX、T-1线路、综合业务数字网(ISDN)或有线以太网的各方面。
链路205可包括网络206的多个物理和虚拟通信链路,用于将路由器10互连以有助于控制路由器之间的数据通信。网络206的物理链路可包括例如以太网PHY、同步光网络(SONET)/同步数字体系(SDH)、λ、或具有数据包传输功能的其他层2数据链路。网络206的逻辑链路可包括例如以太网虚拟LAN、MPLS LSP或MPLS-TE LSP。
路由器210可使用一个或多个内部网关协议(IGP),以获悉关于网络206内部的通信链路的链路状态/度量值。例如,路由器210A可使用开放式最短路径优先(OSPF)或中间系统到中间系统(IS-IS)协议,以与路由器210B–210F交换路由信息。路由器210A将路由信息存储到路由信息库中,路由器使用该信息库计算到网络206内所通告的目的地地址的最佳路线。路由器210执行内部网关协议,以通过路由协议消息进行通信并且交换为链路205所建立的度量值,以及将这些度量值存储在相应路由信息库内,以用于计算到网络206内所通告的目的地地址的最佳路线。
在某些情况下,路由器210、212、214支持流量工程,以提高通过网络206的路径的利用率。通常,流量工程指的是使流量远离内部网关协议算出的网络206的最短路径流动并且流向拥塞可能更少的或以其他方式更可取的(从操作的观点来看)物理路径的操作。例如,使用基于流量工程扩展的资源预留协议(RSVP-TE)或另一个标签分发协议(例如,标签分发协议(LDP)),路由器210、212、214或网络206管理员可建立一个或多个LSP隧道,这些隧道连接多对路由器10,以将网络流量路由为远离网络故障、拥塞以及瓶颈。包括到LSP隧道的接口的路由器将度量值和LSP相关联。LSP度量值可采用LSP进行操作所经由的下面IP路径的度量值,或可由网络206的管理员配置为不同的值,以影响路由器210、212、214做出的路由决定。
路由器210、212、214执行内部网关协议,以通过路由协议消息进行通信并且交换为LSP隧道所建立的度量值,以及将这些度量值存储在相应的路由信息库内,以用于计算到网络6内所通告的目的地地址的最佳路线。例如,路由器210、212、214可使用OSPF转发邻接(FA),通告作为网络206的IGP链路的LSP隧道。因此,本文中所使用的术语“链路”或“通信链路”在某些示例中还指的是通过层2通信链路进行操作的LSP。
如本文中所述,源路由器212、路由器210以及目的地路由器214可使用到IGP的扩展,另外分发有关网络负载的详细知识。例如,源路由器212、路由器210以及目的地路由器214可执行本文中所描述的基于流量工程扩展的IS-IS,这些扩展使用新的类型长度值(TLV),例如,图6中所示的TLV140。作为另一个示例,源路由器212、路由器210以及目的地路由器214可使用不透明的链路状态通告(LSA),执行基于流量工程扩展的OSPF,以除了链路状态和度量值之外,还将链路属性分布在链路状态通告中。
根据本公开的技术,源路由器212计算与源路由器212和目的地路由器214之间的多个所选路径中的每个相关的带宽量,并且根据所算出的要发送给这些路径的下一跳的带宽量,成比例地负载平衡至每个下一跳的流量。源路由器212根据所算出的带宽量确定如何负载平衡至下一跳的流量所使用的方法在本文中称为“加权的ECMP”技术。本文中所描述的WECMP技术可用于IP和LDP流量,以及在子LSP被信号通知不需要预留带宽时,还可用于RSVP多路径流量。
虽然本文中关于“等价”路径作为示例进行描述,但是本公开的技术并不限于使用等价路径,而是可更广泛地用于以其他为基础所选择的路径中。因此,在本文中所涉及的等价路径或ECMP仅仅为举例说明,而非限制性的。例如,所选的路径可不均为等价,而是可更一般选择为非环状路径。非环状路径指的是不通过计算路由器返回的路径,即,第一路由器(计算路由器)和第二路由器之间的路径,每个非环状路径沿着非环状路径具有各自的下一跳路由器,该下一跳路由器具有到第二路由器最短路径,其中该最短路径的成本比从第一路由器到第二路由器的最短路径的成本更低。例如,到目的地的每个路径表现出不同的成本,其中,每个下一跳路由器比计算路由器具有更低成本的最短路径。实质上,这会使用下游邻居来提供非环状路径。作为另一个示例,对于显式路由的路径(例如,RSVP-TE),计算路由器可计算转发路径的任意集合,以基于多个约束条件中的任一个进行使用。
通常,源路由器212可如下考虑带宽。在运行最短路径优先算法时,源路由器212存储每个路径上所使用的链路。源路由器212对路径进行后处理,以计算最后的下一跳带宽。源路由器212根据通过WECMP算法为那些输出接口算出的带宽比,在输出接口之间分割流量。下面更详细地描述用于确定如何在输出接口之间分割流量的一个示例算法。该目的如下:对于每个目的地而言,如果除了计算路由器和目的地之间的流量以外,网络内没有其他流量,那么应该能够发送带宽量等于WECMP算出的与每个初始下一跳相关的带宽的流量,而不会造成网络内任何链路超负载。
本文中所描述的加权ECMP技术可使用多个通告的链路带宽中的任一个,来计算在每个输出接口上向每个下一跳发送的带宽量。作为一个示例,所通告的链路带宽可为“最大链路带宽”。最大链路带宽限定与网络链路相关的带宽容量的最大量。作为另一个示例,所通告的链路带宽可为“剩余带宽”,即,最大链路带宽减去资源预留协议操作时当前预留(例如,预留给RSVP-TE LSP)的带宽。这是链路上可用于非RSVP流量的带宽。剩余带宽根据控制平面预留而变化。
作为另一个示例,所通告的链路带宽可为“可用带宽”(在本文中还称为“当前可用带宽”)。可用带宽为剩余带宽减去所测量出的用于转发非RSVP-TE数据包的带宽。换言之,可用带宽限定既不被资源预留协议进行操作时预留也不被第一路由器当前转发使用未预留的资源的流量使用的网络链路的带宽容量的量。链路上可用的带宽量会随着SPF以及加权的ECMP决定的结果而变化,但是该带宽量可为具有有限通告频率的轮叫平均。
作为一个示例,计算路由器可确定操作资源预留协议时所预留的网络链路的带宽容量的量,并且可确定第一路由器当前用于转发使用未预留资源的流量的带宽容量的量,使用流量分析模块60监测通过数据平面32B的流量,并且可计算上面关于图2所描述的剩余带宽和/或可用带宽的量。
在当前可用带宽的示例中,源路由器212、路由器210以及目的地路由器214可将网络206的链路205目前可用的带宽通告,其考虑另外未计入的流量。即,路由器210可监控以及通告链路目前可用的带宽,表示为速率(例如,MB/s),其考虑以下带宽:既未通过RSVP-TE预留并且目前也不用于通过链路传输因特网协议(IP)数据包或LDP数据包的带宽,其中,LDP数据包为具有由LDP分发的贴附标签的数据包。因此,链路的目前可用带宽既不被预留,也不用于传输使用未预留资源的流量。路由器210可测量用于通过出站链路传输IP和LDP数据包的带宽量,并且计算目前可用带宽,作为链路容量与所预留的带宽和所测量的IP/LDP数据包带宽的和之间的差。
路由器210可将所算出的用于各个出站链路的可用带宽信息作为链路状态内部网关协议的扩展链路状态通告内的链路属性进行交换,并且将所接收的链路属性存储到与通用路由信息库(包括例如IGP链路状态数据库)不同的相应流量工程数据库(TED)中。计算装置(例如,源路由器212)可执行IGP-TE协议42,例如,已经扩展成包括支持本公开的WECMP技术的新功能的OSPF-TE或IS-IS-TE。例如,源路由器212、路由器210以及目的地路由器214可使用关于图6所描述的TLV140,通告网络206的链路205的最大链路带宽、剩余带宽或者当前可用带宽。作为另一个示例,OSPF-TE协议可扩展成包括OSPF-TE快速路径,其通告最大链路带宽、剩余带宽和/或当前可用带宽。在S.Giacalone的2011年9月网络工作组的互联网草案中的“OSPF流量工程(TE)快速路径(OSPF TrafficEngineering(TE)Express Path)”中,可找出有关OSPF-TE快速路径的详情,通过引证将其全部内容结合于本文中。
源路由器212通过其路由信息库,执行最短路径优先(SPF)算法,从而计算通过网络206至目的地路由器214的最佳转发路径。在某些情况下,源路由器212可通过其路由信息库及其流量工程数据库,在诸如输入到CSPF算法内的链路属性要求的各种约束条件下,执行受约束的SPF(CSPF)算法,以计算LSP的路径。例如,源路由器212可在要求所算出的从源路由器212到目的地路由器214的路径的每个链路具有最大链路带宽、剩余带宽或可用带宽中的至少规定量的约束条件下,执行CSPF算法。
在所述示例中,源路由器212通过其路由信息和/或TED计算SPF或CSPF算法,该算法产生位于源路由器212和目的地路由器214之间并具有相等成本的多个最短路径216A、216B以及216C(“路径216”)。即,源路由器212到目的地路由器214的路由成本在横穿装置212-210B-210E-210D-214之间的路径的路径216C、横穿装置212-210A-210C-210D-214之间的路径的路径216B、以及横穿装置212-210B-210E-210F-214之间路径的路径216C之间相等。路由器210E还计算SPF或CSPF算法,该算法产生从路由器212E到目的地路由器214的多个最短路径218A和218B(“路径218”)。即,路由器210E到目的地路由器214的路由成本在横穿装置210E-210D-214和装置210E-210F-214的路径218A之间相等。例如,路径216和218均可表示LSP或IP路径。路径216A可包括点到多点(P2MP)IP路径或LSP。
在图7的示例中,每个路径具有其自身的整体路径带宽,但是源自不同下一跳路由器的路径可重叠并且需要共享下游链路。例如,路径216B与路径216B和路径218A重叠,并且与这些路径共享链路205F。作为另一个示例,路径216A和路径216C共享共同的子路径,即,共享沿着212-210B-210E路径的部分的链路。更靠近目的地的路由器仅仅看到共享计算路由器看到的限制链路的路径的子集。例如,路由器210C仅看到链路205F上的路径216B,而源路由器212看到链路205F上的路径216B、218A以及216C。
根据本公开的技术,源路由器212运行WECMP算法,以识别源路由器212和目的地路由器214之间的等价转发路径,计算在输出接口上向与等价转发路径相关的下一跳发送的带宽的量,以及根据所计算的该下一跳所代表的带宽的量,成比例地负载平衡至每个下一跳的流量。例如,源路由器212根据与沿着路径的每个链路相关的最小带宽,计算最初的带宽量。这样做时,计算路由器(例如,源路由器212)还考虑路径上共享的链路,例如,链路205F、链路205G以及链路205F。
一旦确定多个等价转发路径中的多个共享的一个网络链路时,源路由器212通过以下方式计算每个输出接口的带宽量:该方式考虑在共享该网络链路的多个等价转发路径之间分割所共享的网络链路的链路带宽。考虑在多个等价转发路径之间这样分割所共享的网络链路的链路带宽的一种示例算法,包括:将与位于网络的第一路由器和第二路由器之间的网络的网络链路相关的节点的集合分类;以及针对与位于网络的第一路由器和第二路由器之间的网络的网络链路相关的每个节点,从网络中具有至第二路由器的最小成本的节点开始,计算从每个节点经由每个网络链路到达目的地的网络流量的一部分。计算路由器在对于等价转发路径内使用的每个网络链路,该网络链路上的网络流量的量小于或等于该网络链路的容量的约束条件下,将自第一路由器的下一跳网络链路上流量的总和最大化,其中,计算每个网络链路上的网络流量的量,作为流到特定的邻近节点的网络流量的量乘以任何特定下游节点上负载的网络流量的一部分的乘积。以下,将关于图8描述该算法的进一步细节。
在另一个示例中,根据每个路径“然后计算的”带宽,可在路径之间成比例地分配共享的链路带宽。即,源路由器212在多个等价转发路径之间成比例地分配共享的网络链路的链路带宽,这些路径与然后(在计算时)分配给多个等价转发路径中的每个的路径带宽成比例地共享网络链路。源路由器212然后将用于多个等价转发路径中的一个的路径带宽设置为以下中的最小值,(i)随后分配给多个等价转发路径中的一个的路径带宽;以及(ii)根据按比例分配链路带宽,提供给多个等价转发路径中的一个的路径的链路带宽。换言之,路径“然后计算的”带宽以及提供给该路径的共享的链路带宽的最小值然后成为该路径的新带宽。源路由器212可循环地重复以下步骤:按比例地分配链路带宽以及设置每个路由器210的路径带宽,从网络206内最靠近(例如,具有最小的成本)目的地路由器214的节点开始直到到达计算路由器。
在计算用于等价转发路径的输出接口的带宽量时,计算路由器(例如,源路由器212)还可考虑下游路由器210的行为。网络206内的其他路由器210可或不可运行WECMP算法,并且可运行ECMP的较早形式。即使另一个路由器210运行WECMP,其他路由器210也仅仅可看到路径的子集,通过这些路径,计算路由器看到共享的链路。因此,这可有助于计算路由器考虑下游路由器210的行为,例如,通过计算下游路由器的负载平衡分割以及考虑经过该特定的下游路由器210的所有路径的这种分割。计算带宽量时,源路由器212可考虑下游路由器,这些下游路由器并不考虑在共享网络链路的多个等价转发路径之间,分割所共享的网络链路的链路带宽,这可减少不必要的拥塞。
可连续地执行所描述的技术,以促进数据包流随着时间动态负载平衡,该动态负载平衡响应于ECMP集合内路径的下面链路的带宽状态而变化。作为一个示例,可以以合理地隔开的间隔执行这些技术,以不在网络内造成反馈环路和振荡。
源路由器212的IGP-TE协议(例如,IGP-TE协议42(图2))可扩展成包括将额外功能(例如,ECMP功能)通告给邻近路由器的能力,并且了解从邻近路由器接收ECMP功能通告的时间。源路由器212因此可发送和接收功能通告,其表示源路由器212或下游路由器能够计算带宽量,以考虑在共享网络链路的多个等价转发路径之间分割共享网络链路的链路带宽。例如,IGP-TE协议42可扩展成通告功能,包括路由器是否支持均匀加权的ECMP、与接口带宽成比例地加权的ECMP、根据路径带宽加权的ECMP或者通告与IGP-TE协议42所使用的ECMP算法相关的其他功能。作为一个示例,节点功能的两比特可用于通告ECMP功能,并且可如下进行限定:00-非特定的ECMP功能、01进行均匀加权的ECMP、10-与接口带宽成比例地加权的ECMP、11-根据路径带宽加权的ECMP。与TE扩展一样,IS-IS可扩展成通告平行链路。
此外,能够识别需要某些性能特征(例如,最小等待时间)的流量,并且源路由器212可明确地将该流量转发到最佳满足这些要求的等价路径上。对于涉及最小化或消弱拓扑(例如,包括所有的/包括任何的/排除管理颜色、链路、节点或SRLG)的任何特征,都可进行此。可由源路由器212例如用IPv4报头或IPv6报头内的区别服务代码点(DSCP)字段,或者由MPLS标签堆栈入口的EXP字段或流量类别字段标识这种流量。
本文中所描述的基本示例WECMP算法不假设计算路由器具有流量矩阵的任何知识。流量矩阵表示在时间T1到时间T2的指定时间间隔(例如,15分钟)内,从路由器X发送多少流量到路由器Y。局部流量矩阵表示多少流量X希望发送到每个目的地。然而,如果已知流量矩阵,那么计算路由器可在考虑下游路由器的性能下使用该流量矩阵,来更新所使用的带宽。例如,如果已知下游路由器X具有至Y的流量为T,那么计算路由器S可将通过X的路径带宽减小至T,这就提供了分层效果。这还未解决考虑到多个目的地的流量,但是通过将目的地以及额外的复杂性进行排序,可解决该问题。作为一个示例,可将目的地从最大流量到最小流量进行排序。也可使用整体流量矩阵,而非局部流量矩阵。
现在描述一种示例算法,该算法用于确定如何将至目的节点D的流量在可用于节点D的两个以上ECMP路径之间分布,以将可到达节点D的流量最大化,或者可替换地,如何尽可能多地将流量分布到节点D中,以将网络拥塞最小化。提供以下算法中所使用的变量的描述符。“Ci,j”表示链路Li,j的容量。“d”表示节点的集合中的索引,以D表示节点(即,D=Nd)。“D”表示计算路由器进行负载分割流量所至的“目的地”节点。“f”表示从特定节点到D的可能的下一跳的数量。“F”表示从特定节点到D的可能的下一跳的集合,从而F={Fi;1<i<f}。“g,h,i,j,k”表示可用于各个集合/列表/矩阵内的索引的索引变量。“L”表示网络内的链路的集合。“Li,j”表示从节点Ni到节点Nj的链路。对于每个目的地而言,“L′i,j”表示从计算路由器N1到目的地D的任何ECMP路径内所使用的链路的集合。“L′”表示L的子集。
“Mi,j”表示与Li,j相关的IGP度量值。“n”表示网络内节点的数量。“N”表示网络内节点的集合。“Ni”为第i个节点。“N1”表示进行这种计算的节点。假设N′为从计算路由器到目的地的路径上所使用的所有路由器。将节点从N1到Nd进行编号,并且D为Nd。“p”表示从N1到D中存在的ECMP路径的数量。“P”表示从N1到D中存在的ECMP路径的集合,将其定义为{Pi;1≤i≤p}。“s”表示集合S内节点的数量。“S”表示从N1到D的ECMP路径中的任一个中出现的节点{Si;1<i<m}的集合。根据与节点D相距的距离,对集合S进行分类。在算法中,将从集合S中逐渐去除节点。“S-first”表示S内的第一节点(即,S内具有的节点中最靠近D的节点,)。“SumY”表示每当运行线性编程问题时,所算出的最大值。“x”表示链路流量矩阵。“Xi,j,k”表示经由链路Lj,k从Ni到D的流量部分。“Y”和“Yi”表示线性编程算法中使用的变量。
如下定义该问题。假设n个节点Ni(N1,N2,...Nn),链路的集合L,链路Li,j在节点i和j之间,其中,链路Li,j的容量表示为Ci,j,并且与链路Li,j相关的IGP度量值表示为Mi,j。已经运行“标准的”狄克斯特拉(Dijkstra),以计算节点之间的路径,包括ECMP路径。
假设节点N1为计算路由器,并且已经算出至IGP区域内所有其他节点的ECMP路径;节点N1具有指向节点D(其中,D=Nd、1<d≤n)的数据流量;具有两个以上可用于节点D的ECMP路径;并且节点N1希望在多个路径之间分布流量,以将可到达节点D的流量最大化(或者,将流量尽可能多地分布给节点D,以将网络拥塞最小化)。然而,在该示例中,还假设,这些节点使用IP转发或LDP流量(具体而言,未使用RSVP-TE或显式路由的路径),并且当节点N1在由算法所示的多个下一跳之间分布流量时,其他节点仅仅散布其流量,以将他们到D的流量均衡,并且不会注意到这些节点仅仅需要转发部分流量这一事实。最初,假设所有节点使用同一个算法分布流量。在其他示例中,该算法可扩展为处理某些下游节点仅仅在等价路径之间均等地分割流量的情况。假设计算路由器意识到哪些下游节点正使用这种算法以及哪些下游节点正使用均等分割,例如,通过在IGP内通告接收能量。在图2、7和8的背景下示意性地描述了该示例,但是基本原理可用于各种不同的情况中。
源路由器212接收指向目的地路由器214的网络流量,将该网络流量分为数据包流222A-222D(“数据包流222”)中的一个。根据所算出的用于路径216的相应权重,源路由器212将各个数据包流222分配给至目的地路由器214的路径216中的一条,其中路径216构成ECMP集合,其中,根据在路径216的输出接口上发送的全部带宽,计算这些权重。通常,由于所算出的权重,使得权重值越高,源路由器212分配给输出接口(下一跳接口)的网络流量的相对比例越大。在所示出的示例中,与下一跳路由器210A和链路205A相关的输出接口比与下一跳路由器210B和链路205B相关的输出接口具有相对更高的路径带宽,并且因此,相比于与下一跳路由器210B相关的输出接口,源路由器212为与下一跳路由器210A相关的输出接口计算的权重更高。而且,在识别各个数据包流222之后,源路由器212根据所算出的输出接口的权重,将各个数据包流222分配给与下一跳路由器210A相关的输出接口。由于源路由器212将更高的权重值和与下一跳路由器210A相关的输出接口相关联,所以源路由器212将多个数据包流(即,在该示例中,为数据包流222A、222B和222C)分配给与下一跳路由器210A和路径216A相关的输出接口,同时将少量的数据包流(仅仅为数据包流22D)分配给与下一跳路由器210B和路径216B相关的输出接口。
可连续地执行所描述的技术,以随着时间促进数据包流的动态负载平衡,该动态负载平衡响应于ECMP集合内路径的下面链路的可用带宽状态而变化。本公开的技术可改进网络6内的负载平衡,以同时减少拥塞并且提高网络性能。例如,假设各个数据包流222对于被分类成数据包流的数据包的尺寸和速率具有相似的配置,根据算出的沿着每个路径216的路径带宽,而不是根据轮叫技术,分配数据包流222时,可在路径216之间提供更均等的负载平衡,这是由于与和下一跳路由器210B相关联的输出接口相比,源路由器212将更多的流量分配给与下一跳路由器210A相关联的输出接口,该输出接口具有的所算出的带宽量相对更高。这使路径216A相对于路径216B,携带相应更大的流量流222,从而相对于等流量分布技术,减少了路径216B上的负载。
图8为示出了图2的示例路由器28的示例操作的流程图,该示例操作用于在至目的地装置的多个ECMP路径之间分布网络流量。虽然关于图2的路由器28作为示例进行描述,但是图7的路由器210、212或214也可应用这些技术。路由器28的RP守护进程40执行最短路径优先算法,例如,Dijkstra算法,以计算网络内从N1到每个其他节点(包括目的地D)的一个或多个路径。RP守护进程40可通过RIB38内的链路状态信息,执行最短路径优先算法,以根据RIB38内的IGP度量值计算ECMP路径。在某些情况下,RP守护进程40识别满足一个或多个约束条件的、至特定目的地或目的地集合的多个等价转发路径,并且在这种情况下,创建由多个等价转发路径构成的ECMP集合(230)。
RP守护进程40计算从N1到D的p个路径,由P1,P2,…Pp表示。将集合P定义为从N1到D的所有路径的集合{Pi;1<i<p}。RP守护进程40计算s个节点的集合S={Si;1<i<s},其等于N1和D(包括N1和D)之间的p个路径中的任一个上出现的网络内的所有节点(232)。对于从N1到D的两个以上路径内出现的任何节点而言,该节点在集合S内仅仅出现一次,因此s≤n。计算S时,要注意的是,所有路径为等价路径。因此,对于从N1到D的两个以上路径内出现的任何节点Si,该节点以与N1相距相同距离出现在所有路径内,并且还以与D相距相同距离出现在所有路径上。路径权重计算器44利用到D的距离对节点进行分类,从而第一节点S1实际上为D,并且第s个节点实际上为N1(234)。因此,明确定义利用到D的距离将S的元素分类的概念,这是因为这相当于利用到N1的距离的逆序进行分类。而且,要注意的是,这种顺序刚好为在标准的Dijkstra算法中将节点从TENT(试验性)列表移动到PATHS(路径)列表中的逆序。因此,假设RP守护进程40运行Dijkstra,来计算ECMP路径,则路径权重计算器44将集合S内出现的节点进行分类时基本上不需要额外的工作。
路径权重计算器44计算路径P的集合内的链路L′的集合(236)。为了将从N1到D的流量分布在ECMP路径之间,因此L′内的链路集合为“感兴趣的”链路(L′内不存在的链路不位于从N1到D的任何ECMP路径上,并且因此对于该算法的剩余部分而言,其可被忽略)。在该算法的每个步骤中,在S的起初,路径权重计算器44从S中去除节点S-first(即,S内保留的最靠近D的节点),并且路径权重计算器44计算两件事情:(i)从S-first到D的流量在从S-first到D的每个ECMP路径的第一跳上的负载分割方式;(ii)对于从S-first到D的任何流量,L′内的每个链路上出现的流量的量(238)。
如下所述,路径权重计算器44计算矩阵X的元素,其中,X的元素Xi,j,k为从N1到D的流量要经过链路Li,k到达D的部分(240)。因此,对于所有i,j,k而言,O≤xi,j,k≤1。最初,路径权重计算器44从S中去除节点D。对于所有而言j,k,定义Xd,j,k=O。接下来,路径权重计算器44在集合S的开始,去除下一个节点Nh。要注意的是,该节点最靠近S内所保留的节点中的D节点。因此,要注意的是,对于比Nh更靠近D的任何节点i(对于所有j和k而言,使链路Li,k以L′呈现),已经计算出Xi,j,k。要注意的是,Nh可出现在从N1到D的一个或多个路径上。而且,如果出现在多个路径内,那么对于每个路径而言,Nh之后的下一跳可相同(例如,这些路径可在别处分叉)或可不同(这些路径可在Nh处分叉)。此时,路径权重计算器44需要知道在到D的路径上Nh之后可能的下一跳的集合。RP守护进程40可将这个信息存储在TED46内,用于Dijkstra计算过程中的每个节点,使得该信息此时是可用的。
如果从Nh到D仅仅具有一个下一跳,那么假设在Nh的这个路径上的下游链路进入邻近节点Ng。在这种情况下,路径权重计算器44设定:
Xh,h,g=1 (1)
对于与(h,g)不同的所有(j,k)而言,Xh,j,k:Xg,j,k (2)
这暗示,在这种情况下,从Nh到D的所有流量将经过从Nh到Ng的链路,并且然后进一步下游该流量将精确地使用节点Ng选择的那条路径。如果从Nh到D具有多个(两个以下)下一跳,那么路径权重计算器44需要计算Nh到D的流量在Nh的所有下游链路之间分布的方式。路由器28会限制路由器28使用的下一跳的数量。假设Nh使用的下一跳的数量以及所使用的线路中断器(例如,下一跳回送地址高或低)是已知的。考虑到这种知识,Nh潜在的下一跳的集合可精确地缩小到f个可能的下一跳。
路径权重计算器44将F定义为从Nh到D的可能下一跳的集合,从而F={Fi;1<i<f}。具体而言,F为节点索引的列表。因此,Fi为整数,其表示可能下一跳的集合内第i个节点的索引。因此,对于从Nh到D的下一跳的链路的第i个选择为Lh,Fi,并且这导向至节点NFi。同样,第i个链路的容量为Ch,Fi。路径权重计算器44将Yi定义为路由器28在从Nh到其
直接邻居NFi的路径上发送(以将总流量最大化)的流量总量,1<i<f。由于以下线性编程问题,路径权重计算器44然后计算从Nh到D的最大可能的流量:
将Y=∑1≤i≤f[Yi]最大化 (3)
在对于集合L′内的每个链路L′j,k而言,:
1≤i≤f[Yi*XFi,j,k]≤Cj,k,Yi≥0 (4)的条件下
路径权重计算器44使用式子(3)和(4)的该线性编程问题,以通过在对于ECMP路径的集合内所使用的每个链路,该链路上的流量小于或等于该链路的容量的约束条件下,将Nh的“下一跳”链路上的流量总和最大化,来将从Nh流到D的流量最大化。计算每个链路上的流量的量,作为流向特定的邻近节点的流量的量乘以任何特定下游节点上负载的该流量的一部分的乘积。
已算出至每个邻居的流量Yi,路径权重计算器44然后设定:
限定SumY=Sum[Yi]1≤i≤f (5)
Xh,h,Fi=Yi/SumY 1≤i≤f (6)
Xh,j,k=Sum[Xh,h,Fi*XFi,j,k]1≤i≤f (7)
对于所有(j,k),j不等于h。
式子(5)限定可发送的总流量,与式子(3)和(4)的线性编程问题所算出的一样。式子(6)设置自节点h经由其每个下游链路发送的流量部分。式子(7)设置更处于下游的所有链路上、源自节点h的流量的流量负载。
式子(7)表示,由始于Nh的流量所引起的每条下游链路上出现的流量只是经过所有直接下游邻居的流量的量的总和,该流量的量是Nh要发送给这些邻居的,并且是从节点Nh到D的总流量的一部分乘以到该邻居并随后经由下游链路的流量部分的总和。因此,路径权重计算器44设定路径的相对权重,作为自节点h经由每个下游链路发送的流量部分(242)。这样,路径权重计算器44可以以下的方式设定ECMP路径接口的权重,该方式考虑下游路由器的行为。路径权重计算器44将权重存储到权重58中。所算出的相对较高的权重表示,与其他路径相比,ECMP集合内的路径的最小可用带宽的量更大。根据路径的各个权重58,多路径转发元件56将指向ECMP集合所服务的以及分类器74所识别的目的地的新数据包流分配给ECMP集合内的路径(244)。
下面在表1中示出了针对图7的示例网络所算出的示例矩阵X。
表1
在图7的示例中,表1所表示的矩阵X的每个元素表示X的元素Xi,j,k,其为经由链路Lj,k从节点Ni到D的流量部分。因此,例如,元素XSD212,SD212,R210A为穿过从SD212到路由器210A的链路(图7的链路205A)的节点源装置(SD)212的流量部分。如下计算元素Xi,j,k,以表1为例。从路由器210F开始,路由器210F经由R210F→DD214之间的链路205I发送来自源装置212的其所有流量,因此,元素XR210F,R210F,DD214的值为1,并且列R210F内的所有其他元素的值为0。同样,路由器210D经由R210F→DD214之间的链路205I发送来自源装置212的其所有流量,因此,元素XR210D,R210D,DD214的值为1,并且列R210F内的所有其他元素的值为0。在图7的示例中,路由器210D不通过链路205H发送任何流量,这是因为假设所有链路205等价时,路由器210D采用至目的地路由器214的最短路径,而该最短路径为链路205F。
路由器210E通过链路205G将其一半流量发送给路由器210F(R210E→R210F),并且通过链路205H将其一半流量发送给路由器210D(R210E→R210D)。因此,元素XR210E,R210E,R210F和XR210E,R210E,R210D的值均为0.5。反过来,如上所述,路由器210F将所有这种流量从路由器210E发送到目的地路由器210,所以通过乘法0.5*1=0.5,可算出元素XR210E,R210F, DD214。同样,通过乘法0.5*1=0.5,可算出元素XR210E,R210D,DD214
路由器210C通过链路205D将其所有流量发送给路由器210D,因此,元素XR210C,R210C,R210D的值为1,然后,如上所述,路由器210D反过来通过链路205F将所有这种流量发送给路由器214,因此,元素XR210C,R210D,DD 214的值为1*1=1。同样,路由器210A通过链路205C将其所有流量发送给路由器210C,因此,元素XR210A,R210A,R210C的值为1,然后,反过来,如上所述,路由器210C通过链路205D将所有这种流量发送给路由器210D,因此,元素XR210A,R210C,R210D的值为1*1=1。
路由器210B通过链路205E将其所有流量发送给路由器210E,因此,元素XR210B,R210B,R210E的值为1。根据与上面所计算的比相同的比,路由器210E分布路由器210B的流量,从而可从路由器210E列中,复制路由器210B列的元素的剩余部分。
源路由器212通过链路205A将其一半流量发送给路由器210A,并且通过链路205B将其一半流量发送给路由器210B,因此,元素XSD212,SD 212,R210A和XSD212,SD212,R210B的值均为0.5。根据上述式子(7),表1中示出了剩余的值。
由于式子(2)和(3)的线性编程问题的本性,不存在单个唯一的解,即,多个解是可能的。结果,下游节点碰巧提出与上游节点所期望的解不同的解。通过首先计算从Nh到D可支持的最大流量,然后,利用总流量(Yi的总和)正是如此大的所添加的约束条件,将Nh中最繁忙的链路上的流量最小化,可潜在地减小这个问题的影响。原则上,使用两个单独的线性编程计算可实现此。然而,这会浪费计算资源,并且会遇到舍入误差这一潜在的问题(由于这涉及增加仅仅勉强可行的约束条件,所以舍入误差会使得其明显不可行)。可通过算法中相对直接部分的方式来增加约束条件并且改变目的地函数。虽然这并非线性,但是另一个解决方法在于,将所使用的下一跳数量最大化,同时将任何两个Yi之间的比最小化。
如下找出确定解的一个示例方法,该确定解试图均衡流量并且具有最小数量的不同值。该理念在于不断地尝试发送等量的流量。
a)开始于所有的Xi相等并且等于Zj的假设。
b)求解Z。
c)在相等的式子中,从该问题中去除任何Yi,也去除这些式子。为等于Zj的那些Yi求解。
d)从(a)开始,重复剩余的值,假设这些值等于Zj+1≥Zj。
e)Yi均具有解集时,完成问题。
用于找出试图均衡流量的确定解的另一个示例方法在于,开始于固定的带宽单元,然后反过来进行将该固定的带宽单元添加至要发送至每个邻居的带宽的循环操作。如果所添加的带宽造成违反链路容量,那么去除所添加的带宽,并且从循环中去除邻居,继续进行这种操作直到所有的邻居被去除。
如上所述,路由器所使用的IGP-TE可扩展到包括将ECMP功能通告给邻近路由器的能力。以上示例算法可被增强为处理以下可能性:某些下游节点仅仅能够在所有可能的等价的直接下游邻居之间进行平等的负载分割。处理根本不进行负载分割的下游节点时遇到以下问题:如果下游节点具有进入D的两种等价方式,那么计算路由器不知道下游节点使用哪种方式。同样,如果下游节点仅能够在两个邻居之间进行均等地分割,而下游节点实际上具有四个等价的下游邻居,那么计算路由器不知道下游节点将选择这四个下游邻居中的哪两个。
在路由器实施时,仅仅具有如此多可使用的不同下一跳,这是由转发平面的限制以及配置造成的。在SPF计算动态地分配下一跳并不是起因。如论如何,来自所有下一跳的这种限制存在于SPF内,并且在ECMP流量加权算法中,需要考虑这种限制。通常,路由器可做以下三件事情之一:(1)将下一跳路由器的回路地址用作线路中断器,并且保持与数字最低的回路地址相对应的下一跳;(2)将下一跳路由器的回路地址用作线路中断器,并且保持与数字最高的回路地址相对应的下一跳;(3)保持遇到的第一下一跳并且丢弃剩余下一跳。如果已知路由器执行(1)或(2)以及下一跳的最大计数为多少,那么可使用该信息选择Nh会挑选的始于Nh的可能下一跳的子集。然后,可使用这个减少的集合来代替。由于Nh已经运行,所以选项(3)需要运行相同的SPF算法,这可能不太实际。这还要求该算法不删除等价路径并且保持反向指示器(back-indicator)的列表,从而可获悉整个路径集合。
在一个示例方面,一种网络装置包括:控制单元,包括一个或多个处理器;控制单元的路由协议软件,接收位于网络的网络装置和第二网络装置之间的网络的一个或多个网络链路中的每个的链路带宽,其中,所述路由协议软件用于执行路由协议,以选择均满足约束条件的、自网络装置到第二网络装置的多条转发路径。网络装置还包括控制单元的路径权重计算器,用于在确定出由多条转发路径中的多个共享的一个网络链路时,计算可在第一路由器的输出接口上发送给多条转发路径上的邻近节点的带宽量,所述多条转发路径共享一个网络链路,其中,计算所述带宽量时,所述路径权重计算器考虑在共享所述网络链路的多条转发路径之间分割所述共享的网络链路的链路带宽,以及当下游路由器计算可在下游路由器的输出接口上发送的带宽量时,考虑这样的下游路由器,该下游路由器并不考虑在共享所述网络链路的多条转发路径之间分割所述共享的网络链路的链路带宽。网络装置进一步包括控制单元的多路径转发元件,用于至少根据所算出的带宽量,选择性地将数据包流分配给第一路由器的多个输出接口中的每个;以及一个或多个接口卡,用于接收数据包流的数据包,其中,多路径转发元件将每个数据包流的数据包转发给多个输出接口中数据包流所分配给的相应一个输出接口。
在这个和其他示例中,网络装置可包括一个接口卡,其接收功能通告,该功能通告表示下游路由器是否具有考虑将所共享的网络链路的链路带宽在共享网络链路的多条转发路径之间分割的功能。
在这个和其他示例中,网络装置的路径加权计算器可用于,为始于网络中具有至第二路由器的最少成本的节点并与位于网络的第一路由器和第二路由器之间的网络的网络链路相关联的每个节点,计算从各个节点经过各条网络链路到达目的地的网络流量部分;以及在对于等价转发路径内使用的每个网络链路,网络链路上的网络流量量小于或等于该网络链路的容量的约束条件下,将始于第一路由器的下一跳网络链路上的流量的总和最大化,其中,计算每个网络链路上的网络流量量,作为流向特定的邻近节点的网络流量乘以在与邻近节点相关联的任何特定下游链路上负载的网络流量部分的乘积。
在这个和其他示例中,网络链路的容量包括链路的总容量、链路的剩余带宽容量以及链路的可用带宽容量中的一个。在这个和其他示例中,网络装置的路径加权计算器可用于为多条转发路径中的一个,成比例地分配多条转发路径之间所共享的网络链路的链路带宽,成比例分配的链路带宽以随后分配给多条转发路径中的每个的带宽量成比例;以及将用于多条转发路径中的一个的带宽量设定为以下中的最小值,(i)随后分配给多条转发路径中的一个的带宽量;以及(ii)根据按比例分配链路带宽,分配给多条转发路径中的一条转发路径的路径链路带宽部分。
在这个和其他示例中,网络装置的路径加权计算器可用于为始于网络内具有至第二路由器的最小成本距离的节点并与位于网络的第一路由器和第二路由器之间的网络的网络链路相关联的每个节点,重复以下步骤:按比例地分配链路带宽以及设定带宽量。
在这个和其他示例中,网络装置的路径加权计算器可用于至少根据所算出的用于多条转发路径中的每个的带宽量,确定多条转发路径中的每个的权重;以及至少根据多条转发路径中的每个的权重,将数据包流选择性地分配给多条转发路径中的每个。
在这个和其他示例中,多条转发路径包括多个等价转发路径,并且路由协议软件用于生成等价多路径(ECMP)集合,其包括多个等价转发路径。
在这个和其他示例中,网络装置可进一步包括转发信息以及含有每个数据包流的相应数据包流入口的流表,其中,路径加权计算器至少根据所算出的关于ECMP集合内多个等价转发路径中的每个的带宽量,确定ECMP集合内多个等价转发路径中的每个的权重,并且其中,路由协议软件生成用于ECMP集合内多个等价转发路径中的每个的相应下一跳结构并将下一跳结构安置到转发信息中。此外,多路径转发元件将用于ECMP集合内多个等价转发路径中的每个的权重和用于转发路径的下一跳结构相关联;以及至少根据与下一跳结构相关联的权重,将数据包流选择性地分配给下一跳结构,以及对于每个数据包流,在用于数据包流的各个数据包流入口内,设置在转发信息内为数据包流所分配的下一跳结构的索引。
在这个和其他示例中,链路带宽可包括:一个或多个网络链路中的每个的一个最大链路带宽,其中,最大链路带宽限定了与网络链路相关联的带宽容量的最大量;一个或多个网络链路中的每个的剩余带宽,其中,剩余带宽限定了最大链路带宽减去资源预留协议操作所预留的网络链路的带宽后的网络链路的带宽容量的量;以及一个或多个网络链路的每个的可用带宽,其中,可用带宽限定了既非资源预留协议操作所预留的也非第一路由器当前用于转发使用未预留资源的流量的网络链路的带宽容量的量。
已经描述了各个示例。这些以及其他示例在所附权利要求书的范围内。

Claims (15)

1.一种在通过网络的多个转发路径之间进行网络流量平衡的方法,所述方法包括:
由网络的第一路由器接收位于所述网络的所述第一路由器和第二路由器之间的所述网络的一个或多个网络链路中的每个的链路带宽;
由所述第一路由器选择均满足约束条件的所述第一路由器到所述第二路由器的多个转发路径;
所述第一路由器确定由所述多个转发路径中的多个共享一个网络链路之后,计算可在所述第一路由器的输出接口上向共享一个网络链路的多个转发路径上的相邻节点发送的带宽量,其中,计算所述带宽量包括考虑在共享所述网络链路的多个转发路径之间分割所共享的网络链路的链路带宽,以及考虑这样的下游路由器,该下游路由器在计算可在所述下游路由器的输出接口上发送的带宽量时,并不考虑在共享所述网络链路的多个转发路径之间分割所共享的网络链路的链路带宽;
所述第一路由器至少根据所算出的带宽量,选择性地将数据包流分配给所述第一路由器的多个输出接口中的相应输出接口;
由所述第一路由器接收所述数据包流的数据包;以及
将每个所述数据包流的数据包转发给所述多个输出接口中所述数据包流所分配给的相应一个输出接口。
2.根据权利要求1所述的方法,其中,计算所述带宽量以考虑分割链路带宽,包括:
对于与位于所述网络的所述第一路由器和第二路由器之间的所述网络的所述网络链路相关联的每个节点,从网络内至所述第二路由器具有最小成本的节点开始,计算从每个节点穿过每个网络链路而达到目的地的网络流量的部分;以及
在对于等价转发路径内使用的各个网络链路,网络链路上的网络流量的量小于或等于该网络链路的容量的约束条件下,将自所述第一路由器的下一跳网络链路上的流的总和最大化,其中,计算每个网络链路上的网络流量的量,作为流向特定的相邻节点的网络流量的量乘以在与相邻节点相关的任何特定下游链路上负载的网络流量的部分的乘积。
3.根据权利要求1-2中任一项所述的方法,其中,所述网络链路的容量包括所述链路的总容量、所述链路的剩余带宽容量以及所述链路的可用带宽容量中的一个。
4.根据权利要求1所述的方法,其中,对于多个转发路径中的一个,计算带宽量包括:
在共享网络链路的多个转发路径之间成比例地分配所共享的网络链路的链路带宽,该链路带宽与随后为多个转发路径中的每个分配的带宽量成比例;以及
将用于多个转发路径中的一个的带宽量设定为以下中的最小值,(i)随后为多个转发路径中的一个分配的带宽量;以及(ii)根据链路带宽的按比例分配,分配给多个转发路径中的一个的路径的链路带宽的一部分。
5.根据权利要求4所述的方法,进一步包括:
对于与位于网络的第一路由器和第二路由器之间的网络的所述网络链路相关的每个节点,从网络中至第二路由器具有最小成本的节点开始,重复以下步骤:按比例地分配链路带宽以及设定带宽量。
6.根据权利要求1所述的方法,
其中,所述数据包流包括第一数据包流和第二数据包流,
其中,所述第一数据包流和所述第二数据包流的每个数据包包括互联网协议(IP)报头,
其中,至少根据所算出的用于输出接口的带宽量,所述第一路由器将所述第一数据包流选择性地分配给输出接口,以及
其中,至少根据所算出的用于第二输出接口的带宽量,所述第一路由器将所述第二数据包流选择性地分配给所述第一路由器的第二输出接口。
7.根据权利要求1所述的方法,
其中,所述数据包流包括第一数据包流和第二数据包流,
其中,所述第一数据包流和所述第二数据包流的每个数据包包括用于单个基于流量工程扩展的资源预留协议(RSVP-TE)信令的标签交换路径(LSP)的标签,
其中,至少根据所算出的用于多个转发路径中的第一个转发路径的路径带宽,所述第一路由器将第一数据包流选择性地分配给多个转发路径中的第一个转发路径,以及
其中,至少根据所算出的用于多个转发路径中的第二个转发路径的路径带宽,所述第一路由器将第二数据包流选择性地分配给多个转发路径中的第二个转发路径。
8.根据权利要求1所述的方法,进一步包括:
所述第一路由器至少根据所算出的用于多个转发路径中的每个的带宽量,确定多个转发路径中的每个的权重;以及
所述第一路由器至少根据用于多个转发路径中的每个的权重,将数据包流选择性地分配给多个转发路径中的每个。
9.根据权利要求1所述的方法,其中,选择均满足约束条件的多个转发路径,包括选择从第一路由器到第二路由器的多个非环状路径,其中,多个非环状路径中的每个具有沿着各自的非环状路径的相应下一跳路由器,其中,每个相应下一跳路由器具有到第二路由器的相应最短路径,相应下一跳路由器到第二路由器的最短路径的成本比第一路由器到第二路由器的最短路径的成本低。
10.根据权利要求1所述的方法,其中,选择均满足约束条件的多个转发路径,包括选择从第一路由器到第二路由器的多个等价转发路径,进一步包括:
创建包括多个等价转发路径的等价多路径(ECMP)集合;
第一路由器至少根据所算出的用于ECMP集合中多个等价转发路径中的每个的带宽量,确定ECMP集合内多个等价转发路径中的每个的权重;
第一路由器生成用于ECMP集合中多个等价转发路径中的每个的相应的下一跳;
由第一路由器将下一跳安装入第一路由器的转发信息中;
由第一路由器将用于ECMP集合中多个等价转发路径中的每个的权重和所述转发路径的下一跳相关联;以及
第一路由器至少根据与下一跳相关联的权重,将数据包流选择性地分配给下一跳。
11.根据权利要求1所述的方法,其中,接收所述链路带宽包括以下中的一个:
接收用于一个或多个网络链路中的每个的最大链路带宽,其中,所述最大链路带宽限定与网络链路相关的带宽容量的最大量,
接收用于一个或多个网络链路中的每个的剩余带宽,其中,所述剩余带宽限定用于网络链路的带宽容量的量,该带宽容量的量为最大链路带宽减去资源预留协议操作时所预留的网络链路的带宽,以及
接收用于一个或多个网络链路中的每个的可用带宽,其中,所述可用带宽限定用于网络链路的带宽容量的量,该带宽容量的量既不被资源预留协议操作所预留且当前未被第一路由器用于转发使用未预留资源的流量。
12.根据权利要求1所述的方法,其中,转发数据包包括以下中的一个:
转发具有IP报头的互联网协议(IP),
转发具有标签分发协议(LDP)标签的数据包,其中,网络链路包括LDP标签交换路径(LSP),或者
转发具有基于流量工程扩展的资源预留协议(RSVP-TE)标签的数据包,其中,所述网络链路包括RSVP-TE标签交换路径(LSP)。
13.一种网络装置,包括:
控制单元,包括一个或多个处理器;
控制单元的路由协议软件,接收位于网络的网络装置和第二网络装置之间的网络的一个或多个网络链路中的每个的链路带宽;
其中,所述路由协议软件用于执行路由协议,以选择均满足约束条件的从网络装置到第二网络装置的多个转发路径;
控制单元的路径权重计算器,用于在一旦确定由多个转发路径中的多个共享一个网络链路时,计算可在所述网络装置的输出接口上向共享一个网络链路的多个转发路径上的邻近节点发送的带宽量,其中,计算所述带宽量时,所述路径权重计算器考虑在共享所述网络链路的多个转发路径之间分割所共享的网络链路的链路带宽,以及考虑这样的下游网络装置,所述下游网络装置在计算可在下游网络装置的输出接口上发送的带宽量时,不考虑在共享所述网络链路的多个转发路径之间分割所共享的网络链路的链路带宽;
控制单元的多路径转发元件,至少根据所算出的带宽量,选择性地将数据包流分配给所述网络装置的多个输出接口中的每个;以及
一个或多个接口卡,接收数据包流的数据包;
其中,所述多路径转发元件将每个数据包流的数据包转发给多个输出接口中所述数据包流所分配给的相应一个输出接口。
14.根据权利要求13所述的装置,其中,所述路径权重计算器被配置为对于与位于所述网络的所述网络装置和所述第二网络装置之间的所述网络的所述网络链路相关联的每个节点,从网络内至所述第二网络装置具有最小成本的节点开始,计算从每个节点穿过每个网络链路而达到目的地的网络流量的部分,在对于等价转发路径内使用的各个网络链路,网络链路上的网络流量的量小于或等于该网络链路的容量的约束条件下,将自所述网络装置的下一跳网络链路上的流的总和最大化,其中,计算每个网络链路上的网络流量的量,作为流向特定的相邻节点的网络流量的量乘以在与相邻节点相关的任何特定下游链路上负载的网络流量的部分的乘积。
15.根据权利要求13所述的装置,其中,所述网络链路的容量包括所述链路的总容量、所述链路的剩余带宽容量以及所述链路的可用带宽容量中的一个。
CN201210564156.3A 2012-04-25 2012-12-21 路径加权的等价多路径 Active CN103379042B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201261638363P 2012-04-25 2012-04-25
US61/638,363 2012-04-25
US13/536,487 US9071541B2 (en) 2012-04-25 2012-06-28 Path weighted equal-cost multipath
US13/536,487 2012-06-28

Publications (2)

Publication Number Publication Date
CN103379042A CN103379042A (zh) 2013-10-30
CN103379042B true CN103379042B (zh) 2016-12-28

Family

ID=47602974

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210564156.3A Active CN103379042B (zh) 2012-04-25 2012-12-21 路径加权的等价多路径

Country Status (3)

Country Link
US (1) US9071541B2 (zh)
EP (2) EP3073684B1 (zh)
CN (1) CN103379042B (zh)

Families Citing this family (178)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9319302B2 (en) * 2012-03-23 2016-04-19 Futurewei Technologies, Inc. System and method for traffic engineering information summary of a zone in network communications
US8972602B2 (en) * 2012-06-15 2015-03-03 Citrix Systems, Inc. Systems and methods for using ECMP routes for traffic distribution
US9350665B2 (en) * 2012-08-31 2016-05-24 Cisco Technology, Inc. Congestion mitigation and avoidance
CN103825834B (zh) * 2012-11-16 2017-08-08 新华三技术有限公司 一种evi中调整流量负载分担的方法及网络交换装置
US9444712B2 (en) 2012-11-21 2016-09-13 Cisco Technology, Inc. Bandwidth on-demand services in multiple layer networks
US9015438B2 (en) 2012-12-03 2015-04-21 Aruba Networks, Inc. System and method for achieving enhanced performance with multiple networking central processing unit (CPU) cores
US10263916B2 (en) 2012-12-03 2019-04-16 Hewlett Packard Enterprise Development Lp System and method for message handling in a network device
US9794130B2 (en) 2012-12-13 2017-10-17 Coriant Operations, Inc. System, apparatus, procedure, and computer program product for planning and simulating an internet protocol network
US9553794B1 (en) * 2013-01-10 2017-01-24 Google Inc. Traffic engineering for network usage optimization
US9237089B2 (en) 2013-01-30 2016-01-12 Cisco Technology, Inc. Enhanced path selection scheme for equal cost paths in communication networks
US9304902B2 (en) 2013-03-15 2016-04-05 Saratoga Speed, Inc. Network storage system using flash storage
US9743047B2 (en) * 2013-05-27 2017-08-22 Center For Integrated Smart Sensors Foundation Network camera using hierarchical event detection and data determination
US10454714B2 (en) 2013-07-10 2019-10-22 Nicira, Inc. Method and system of overlay flow control
US10749711B2 (en) 2013-07-10 2020-08-18 Nicira, Inc. Network-link method useful for a last-mile connectivity in an edge-gateway multipath system
US9967191B2 (en) * 2013-07-25 2018-05-08 Cisco Technology, Inc. Receiver-signaled entropy labels for traffic forwarding in a computer network
WO2015016919A1 (en) * 2013-07-31 2015-02-05 Adaptive Spectrum And Signal Alignment, Inc. Method and apparatus for continuous access network monitoring and packet loss estimation
US9843520B1 (en) 2013-08-15 2017-12-12 Avi Networks Transparent network-services elastic scale-out
US10110684B1 (en) 2013-08-15 2018-10-23 Avi Networks Transparent network service migration across service devices
US10050895B2 (en) * 2013-10-11 2018-08-14 Nec Corporation Terminal device, terminal-device control method, and terminal-device control program
US9363162B1 (en) 2013-10-21 2016-06-07 Google Inc. Determining WCMP link capacities in multi-stage networks
CN103685072B (zh) * 2013-11-27 2016-11-02 中国电子科技集团公司第三十研究所 一种网络流量快速分配的方法
WO2015080749A1 (en) * 2013-11-29 2015-06-04 New Jersey Institute Of Technology Management of bandwidth efficiency and fairness in cloud computing
US9906618B2 (en) * 2013-12-06 2018-02-27 Fastly Inc. Return path selection for content delivery
US11038922B2 (en) 2013-12-06 2021-06-15 Fastly, Inc. Secure traffic optimization in an edge network
US9967199B2 (en) 2013-12-09 2018-05-08 Nicira, Inc. Inspecting operations of a machine to detect elephant flows
US10193771B2 (en) 2013-12-09 2019-01-29 Nicira, Inc. Detecting and handling elephant flows
CN104717700B (zh) * 2013-12-12 2018-09-21 中国移动通信集团上海有限公司 一种基于无线小区的网络加速方法及装置
US9967183B2 (en) 2013-12-20 2018-05-08 Huawei Technologies Co., Ltd. Source routing with entropy-header
US9369338B1 (en) * 2013-12-30 2016-06-14 Google Inc. Network link capacity determination
US9973424B1 (en) 2013-12-31 2018-05-15 Sanmina Corporation Storage system with flow based services for flash storage
US9503374B2 (en) * 2014-01-22 2016-11-22 Futurewei Technologies, Inc. Apparatus for hybrid routing in SDN networks to avoid congestion and achieve good load balancing under fluctuating traffic load
US9246821B1 (en) 2014-01-28 2016-01-26 Google Inc. Systems and methods for implementing weighted cost multi-path using two-level equal cost multi-path tables
US9467362B1 (en) 2014-02-10 2016-10-11 Google Inc. Flow utilization metrics
CN103780515B (zh) * 2014-02-12 2017-02-08 华为技术有限公司 一种通告集群系统带宽的方法及控制器
US9571400B1 (en) 2014-02-25 2017-02-14 Google Inc. Weighted load balancing in a multistage network using hierarchical ECMP
US9654401B2 (en) 2014-03-30 2017-05-16 Juniper Networks, Inc. Systems and methods for multipath load balancing
US9407555B2 (en) 2014-03-31 2016-08-02 Juniper Networks, Inc. Systems and methods for load balancing multicast traffic
US10326699B2 (en) 2014-04-08 2019-06-18 Telefonaktiebolaget Lm Ericsson (Publ) LDP switchover threshold TLV to denote LSP switchover threshold
US9736067B2 (en) * 2014-05-12 2017-08-15 Google Inc. Prefix-aware weighted cost multi-path group reduction
CN105897584B (zh) 2014-06-09 2018-11-30 华为技术有限公司 路径规划方法和控制器
CN104202246A (zh) * 2014-07-09 2014-12-10 北京东土科技股份有限公司 一种链路拥塞时的动态路径调整方法及装置
CN104092628B (zh) * 2014-07-23 2017-12-08 新华三技术有限公司 一种流量分配方法和网络设备
US9672180B1 (en) 2014-08-06 2017-06-06 Sanmina Corporation Cache memory management system and method
US20160065449A1 (en) * 2014-08-29 2016-03-03 Cisco Technology, Inc. Bandwidth-Weighted Equal Cost Multi-Path Routing
US10785515B2 (en) * 2014-09-10 2020-09-22 Sony Corporation Communication control device, communication control method, and communication system
US9819573B2 (en) 2014-09-11 2017-11-14 Microsoft Technology Licensing, Llc Method for scalable computer network partitioning
US9544225B2 (en) 2014-09-16 2017-01-10 Microsoft Technology Licensing, Llc Method for end point identification in computer networks
CN105515981A (zh) * 2014-10-17 2016-04-20 中兴通讯股份有限公司 算路方法、隧道建立方法、pcc、pce及算路系统
US10033641B2 (en) * 2014-11-06 2018-07-24 Juniper Networks, Inc. Deterministic and optimized bit index explicit replication (BIER) forwarding
US20160164734A1 (en) * 2014-12-01 2016-06-09 Stateless Networks, Inc. System and method of optimizing paths in a network
WO2016087001A1 (en) * 2014-12-04 2016-06-09 Huawei Technologies Co., Ltd. Load allocation in a data communication network
US20160212055A1 (en) * 2015-01-21 2016-07-21 International Business Machines Corporation Host-based load balancing of network traffic
US9843508B2 (en) 2015-03-06 2017-12-12 Juniper Networks, Inc. RSVP make-before-break label reuse
US11283697B1 (en) 2015-03-24 2022-03-22 Vmware, Inc. Scalable real time metrics management
US9838306B2 (en) * 2015-03-31 2017-12-05 Juniper Networks, Inc. RSVP make-before-break label reuse
US10135789B2 (en) 2015-04-13 2018-11-20 Nicira, Inc. Method and system of establishing a virtual private network in a cloud service for branch networking
US10425382B2 (en) 2015-04-13 2019-09-24 Nicira, Inc. Method and system of a cloud-based multipath routing protocol
US10498652B2 (en) 2015-04-13 2019-12-03 Nicira, Inc. Method and system of application-aware routing with crowdsourcing
CN106209635B (zh) * 2015-04-30 2019-06-11 深圳市中兴微电子技术有限公司 一种加权多路径wcmp的路由控制方法、装置和系统
US9756116B2 (en) * 2015-05-01 2017-09-05 General Electric Company Data communication using vehicle data carriers
US9860350B2 (en) * 2015-05-12 2018-01-02 Huawei Technologies Co., Ltd. Transport software defined networking (SDN)—logical to physical topology discovery
US10015053B2 (en) 2015-05-21 2018-07-03 Huawei Technologies Co., Ltd. Transport software defined networking (SDN)—logical link aggregation (LAG) member signaling
US10425319B2 (en) 2015-05-21 2019-09-24 Huawei Technologies Co., Ltd. Transport software defined networking (SDN)—zero configuration adjacency via packet snooping
CN106330386B (zh) * 2015-06-15 2019-10-25 华为技术有限公司 一种传输层参数调整方法和装置
EP3432513B1 (en) * 2015-06-29 2020-12-02 Juniper Networks, Inc. Deterministic and optimized bit index explicit replication (bier) forwarding
US10003522B2 (en) * 2015-08-27 2018-06-19 Facebook, Inc. Routing with flow over shared risk link groups
CN106803812B (zh) * 2015-11-26 2020-12-01 华为技术有限公司 一种用于实现负载分担的方法和装置
TWI621343B (zh) * 2015-12-07 2018-04-11 Chunghwa Telecom Co Ltd Multi-path packet shunting and routing method based on software-defined network
CN105681130B (zh) * 2016-01-27 2019-04-19 北京百度网讯科技有限公司 传输控制协议链接构建方法及装置
CN105721307A (zh) * 2016-02-19 2016-06-29 华为技术有限公司 一种多路径转发报文方法及装置
US10397117B2 (en) * 2016-03-10 2019-08-27 Sandvine Corporation System and method for packet distribution on a network
CN107181697B (zh) * 2016-03-11 2022-05-20 中兴通讯股份有限公司 一种链路负载均衡方法及装置
CN107306192B (zh) * 2016-04-18 2020-12-18 中国移动通信集团广东有限公司 一种业务数据传输方法、装置和系统
US10205651B2 (en) * 2016-05-13 2019-02-12 128 Technology, Inc. Apparatus and method of selecting next hops for a session
US10110468B2 (en) * 2016-06-01 2018-10-23 Huawei Technologies Co., Ltd. System and method for semi-static traffic engineering
JP6631415B2 (ja) * 2016-06-15 2020-01-15 株式会社デンソー 中継装置
US20170366460A1 (en) * 2016-06-19 2017-12-21 E8 Storage Systems Ltd. Rdma-over-ethernet storage system with congestion avoidance without ethernet flow control
US10291531B2 (en) * 2016-06-30 2019-05-14 Juniper Networks, Inc. Bandwidth management for resource reservation protocol LSPS and non-resource reservation protocol LSPS
CN107634912B (zh) * 2016-07-19 2020-04-28 华为技术有限公司 负载均衡方法、装置及设备
US10027571B2 (en) * 2016-07-28 2018-07-17 Hewlett Packard Enterprise Development Lp Load balancing
US10153988B2 (en) * 2016-08-10 2018-12-11 Arista Networks, Inc. Load balancing on multi-chip network switch without full bi-section bandwidth
CN107819681A (zh) * 2016-09-12 2018-03-20 中兴通讯股份有限公司 伪线分载转发方法及边缘路由器
CN106453130A (zh) * 2016-09-30 2017-02-22 杭州电子科技大学 一种基于大象流精确识别的流量调度系统及方法
GB2555445B (en) * 2016-10-28 2020-07-15 Canon Kk Multi-copy data transmission with rate adaptation
CN106506396A (zh) * 2016-11-29 2017-03-15 迈普通信技术股份有限公司 流量负载分担方法及汇聚设备
TWI632790B (zh) 2016-12-06 2018-08-11 財團法人工業技術研究院 通訊路徑管理方法及通訊路徑管理系統
CN106534360A (zh) * 2016-12-13 2017-03-22 重庆大学 一种基于软件定义的内容中心网络路由方法
US10992568B2 (en) 2017-01-31 2021-04-27 Vmware, Inc. High performance software-defined core network
US20180219765A1 (en) 2017-01-31 2018-08-02 Waltz Networks Method and Apparatus for Network Traffic Control Optimization
US20200036624A1 (en) 2017-01-31 2020-01-30 The Mode Group High performance software-defined core network
US11252079B2 (en) 2017-01-31 2022-02-15 Vmware, Inc. High performance software-defined core network
US11121962B2 (en) 2017-01-31 2021-09-14 Vmware, Inc. High performance software-defined core network
US10992558B1 (en) 2017-11-06 2021-04-27 Vmware, Inc. Method and apparatus for distributed data network traffic optimization
US11706127B2 (en) 2017-01-31 2023-07-18 Vmware, Inc. High performance software-defined core network
US10778528B2 (en) 2017-02-11 2020-09-15 Nicira, Inc. Method and system of connecting to a multipath hub in a cluster
CN106656800B (zh) * 2017-02-21 2020-04-14 网宿科技股份有限公司 一种路径选取方法及系统、网络加速节点及网络加速系统
CN106911569B (zh) * 2017-03-28 2019-10-08 东软集团股份有限公司 路由方法、装置及节点设备
US10341228B1 (en) 2017-03-29 2019-07-02 Juniper Networks, Inc. RSVP make-before-break label reuse
US10523539B2 (en) 2017-06-22 2019-12-31 Nicira, Inc. Method and system of resiliency in cloud-delivered SD-WAN
US11089111B2 (en) 2017-10-02 2021-08-10 Vmware, Inc. Layer four optimization for a virtual network defined over public cloud
US11115480B2 (en) 2017-10-02 2021-09-07 Vmware, Inc. Layer four optimization for a virtual network defined over public cloud
US10959098B2 (en) 2017-10-02 2021-03-23 Vmware, Inc. Dynamically specifying multiple public cloud edge nodes to connect to an external multi-computer node
US10999165B2 (en) 2017-10-02 2021-05-04 Vmware, Inc. Three tiers of SaaS providers for deploying compute and network infrastructure in the public cloud
US10958479B2 (en) 2017-10-02 2021-03-23 Vmware, Inc. Selecting one node from several candidate nodes in several public clouds to establish a virtual network that spans the public clouds
US10999100B2 (en) 2017-10-02 2021-05-04 Vmware, Inc. Identifying multiple nodes in a virtual network defined over a set of public clouds to connect to an external SAAS provider
US11051270B2 (en) 2017-11-03 2021-06-29 Regents Of The University Of Minnesota Single lamp localization system and method
US11223514B2 (en) 2017-11-09 2022-01-11 Nicira, Inc. Method and system of a dynamic high-availability mode based on current wide area network connectivity
US11190437B2 (en) * 2017-12-21 2021-11-30 Telefonaktiebolaget Lm Ericsson (Publ) Methods, apparatus and computer programs for allocating traffic in a telecommunications network
CN109951738B (zh) * 2017-12-21 2022-02-01 腾讯数码(天津)有限公司 传输路径获取方法、第一电子设备以及可读存储介质
CN109981455A (zh) * 2017-12-28 2019-07-05 中兴通讯股份有限公司 一种隧道实现方法及装置
CN108322388B (zh) * 2018-01-31 2022-03-01 新华三技术有限公司 一种报文转发方法及装置
US20190253341A1 (en) 2018-02-15 2019-08-15 128 Technology, Inc. Service Related Routing Method and Apparatus
CN111837368B (zh) 2018-02-23 2022-01-14 华为技术有限公司 使用内部网关协议通告和编程优选路径路由
WO2019190699A1 (en) 2018-03-28 2019-10-03 Futurewei Technologies, Inc. Method and apparatus for preferred path route information distribution and maintenance
CN110365507B (zh) * 2018-04-10 2022-03-01 中国电信股份有限公司 用于实现链路权重自动赋值的方法和装置
US11658909B2 (en) * 2018-04-10 2023-05-23 Kentik Technologies, Inc. Analyzing network traffic by enriching inbound network flows with exit data
WO2019209480A1 (en) * 2018-04-26 2019-10-31 Futurewei Technologies, Inc. Resource reservation and maintenance for preferred path routes in a network
WO2019212678A1 (en) 2018-05-04 2019-11-07 Futurewei Technologies, Inc. Explicit backups and fast re-route mechanisms for preferred path routes in a network
WO2019236221A1 (en) 2018-06-04 2019-12-12 Futurewei Technologies, Inc. Preferred path route graphs in a network
US11431648B2 (en) * 2018-06-11 2022-08-30 Intel Corporation Technologies for providing adaptive utilization of different interconnects for workloads
FR3081645A1 (fr) * 2018-06-28 2019-11-29 Orange Procede de communication mis en œuvre par un premier routeur d'un systeme autonome utilisant un protocole de routage interne
WO2020018704A1 (en) * 2018-07-18 2020-01-23 The Mode Group High performance software-defined core network
TWI821373B (zh) 2018-08-23 2023-11-11 美商阿爾克斯股份有限公司 網路運算環境中的第一跳轉閘道的冗餘機制系統
CN108881035B (zh) * 2018-09-13 2020-11-06 杭州迪普科技股份有限公司 一种报文转发方法和装置
US10833991B2 (en) * 2018-09-26 2020-11-10 Itron, Inc. Partial source routing for cross-network routing
US10924384B2 (en) * 2018-11-19 2021-02-16 Ciena Corporation Traffic engineering for border gateway protocol
US10868731B2 (en) * 2019-02-06 2020-12-15 Cisco Technology, Inc. Detecting seasonal congestion in SDN network fabrics using machine learning
US10924383B1 (en) * 2019-03-29 2021-02-16 Juniper Networks, Inc. Utilizing segment routing data and network data to determine optimized network plans and to implement an optimized network plan
US11669468B2 (en) * 2019-06-28 2023-06-06 Hewlett Packard Enterprise Development Lp Interconnect module for smart I/O
US11593140B2 (en) * 2019-06-28 2023-02-28 Hewlett Packard Enterprise Development Lp Smart network interface card for smart I/O
US11128541B2 (en) * 2019-07-22 2021-09-21 Cisco Technology, Inc. Evaluating the impact of transceiver temperature on interface utilization
US11070463B2 (en) * 2019-07-24 2021-07-20 Juniper Networks, Inc. Guaranteed bandwidth for segment routed (SR) paths
US11252105B2 (en) 2019-08-27 2022-02-15 Vmware, Inc. Identifying different SaaS optimal egress nodes for virtual networks of different entities
CN110620683B (zh) * 2019-08-30 2021-03-23 华为技术有限公司 一种应用于分布式路由器组网的报文发送方法、设备及系统
US11038793B2 (en) * 2019-10-15 2021-06-15 Cisco Technology, Inc. Service assurance of ECMP using virtual network function hashing algorithm
US11611507B2 (en) 2019-10-28 2023-03-21 Vmware, Inc. Managing forwarding elements at edge nodes connected to a virtual network
CN112751763A (zh) * 2019-10-30 2021-05-04 北京华为数字技术有限公司 一种报文转发方法、设备、存储介质及系统
US11178046B2 (en) 2019-11-27 2021-11-16 Google Llc Weighted bandwidth allocation for adaptive routing
US11489783B2 (en) 2019-12-12 2022-11-01 Vmware, Inc. Performing deep packet inspection in a software defined wide area network
US11394640B2 (en) 2019-12-12 2022-07-19 Vmware, Inc. Collecting and analyzing data regarding flows associated with DPI parameters
US12041479B2 (en) 2020-01-24 2024-07-16 VMware LLC Accurate traffic steering between links through sub-path path quality metrics
US11343188B2 (en) * 2020-02-25 2022-05-24 Cisco Technology, Inc. Systems and methods for maintaining consistency between interfaces of locally sourced packets
US11502942B1 (en) 2020-02-27 2022-11-15 Aviatrix Systems, Inc. Active mesh network system and method
US11388227B1 (en) * 2020-02-27 2022-07-12 Aviatrix Systems, Inc. Multi-cloud active mesh network system and method
US11228528B2 (en) * 2020-03-04 2022-01-18 Arista Networks, Inc. Adaptive load balancing between routers in wan overlay networks using telemetry information
CN111478808B (zh) * 2020-04-02 2021-05-25 清华大学 协助配置更新验证的方法、系统、电子设备及存储介质
US11658902B2 (en) * 2020-04-23 2023-05-23 Juniper Networks, Inc. Session monitoring using metrics of session establishment
US11962518B2 (en) 2020-06-02 2024-04-16 VMware LLC Hardware acceleration techniques using flow selection
US11824640B2 (en) * 2020-06-17 2023-11-21 Hewlett Packard Enterprise Development Lp System and method for reconfiguring a network using network traffic comparisions
US11245641B2 (en) 2020-07-02 2022-02-08 Vmware, Inc. Methods and apparatus for application aware hub clustering techniques for a hyper scale SD-WAN
US11363124B2 (en) 2020-07-30 2022-06-14 Vmware, Inc. Zero copy socket splicing
CN114268584A (zh) * 2020-09-16 2022-04-01 华为技术有限公司 转发报文的方法和相关装置
US11425030B2 (en) * 2020-10-08 2022-08-23 Cisco Technology, Inc. Equal cost multi-path (ECMP) failover within an automated system (AS)
US11943150B2 (en) * 2020-10-08 2024-03-26 Cisco Technology, Inc. Tracking application scaling for network bandwidth allocation
US11444865B2 (en) 2020-11-17 2022-09-13 Vmware, Inc. Autonomous distributed forwarding plane traceability based anomaly detection in application traffic for hyper-scale SD-WAN
US11575600B2 (en) 2020-11-24 2023-02-07 Vmware, Inc. Tunnel-less SD-WAN
US11558295B2 (en) * 2020-12-08 2023-01-17 Cisco Technology, Inc. Forwarding table validation
FR3118374B1 (fr) * 2020-12-23 2023-02-10 Thales Sa Procede de routage pour router un flux elastique dans un reseau de transport
US11929903B2 (en) 2020-12-29 2024-03-12 VMware LLC Emulating packet flows to assess network links for SD-WAN
US11792127B2 (en) 2021-01-18 2023-10-17 Vmware, Inc. Network-aware load balancing
US11979325B2 (en) 2021-01-28 2024-05-07 VMware LLC Dynamic SD-WAN hub cluster scaling with machine learning
WO2022174924A1 (en) * 2021-02-22 2022-08-25 Huawei Technologies Co., Ltd. Entities and methods for predictive load balancing
CN113285923B (zh) * 2021-04-23 2022-10-28 中国电子科技集团公司电子科学研究院 基于空海跨域通信网关的数据安全传输方法及存储介质
US11582144B2 (en) 2021-05-03 2023-02-14 Vmware, Inc. Routing mesh to provide alternate routes through SD-WAN edge forwarding nodes based on degraded operational states of SD-WAN hubs
US12009987B2 (en) 2021-05-03 2024-06-11 VMware LLC Methods to support dynamic transit paths through hub clustering across branches in SD-WAN
US11729065B2 (en) 2021-05-06 2023-08-15 Vmware, Inc. Methods for application defined virtual network service among multiple transport in SD-WAN
US11489720B1 (en) 2021-06-18 2022-11-01 Vmware, Inc. Method and apparatus to evaluate resource elements and public clouds for deploying tenant deployable elements based on harvested performance metrics
US12015536B2 (en) 2021-06-18 2024-06-18 VMware LLC Method and apparatus for deploying tenant deployable elements across public clouds based on harvested performance metrics of types of resource elements in the public clouds
US11375005B1 (en) 2021-07-24 2022-06-28 Vmware, Inc. High availability solutions for a secure access service edge application
US11677649B1 (en) * 2021-09-13 2023-06-13 Amazon Technologies, Inc. Backbone network performance analysis
US11943146B2 (en) 2021-10-01 2024-03-26 VMware LLC Traffic prioritization in SD-WAN
US11909815B2 (en) 2022-06-06 2024-02-20 VMware LLC Routing based on geolocation costs
CN115022231B (zh) * 2022-06-30 2023-11-03 武汉烽火技术服务有限公司 一种基于深度强化学习的最优路径规划的方法和系统
CN115378866A (zh) * 2022-08-17 2022-11-22 深圳美克拉网络技术有限公司 移动通信数据传输方法、终端及系统
CN115987873A (zh) * 2022-12-30 2023-04-18 迈普通信技术股份有限公司 数据传输方法、装置、交换机和存储介质
CN115865796B (zh) * 2023-03-03 2023-04-21 深圳市欣博跃电子有限公司 路由器标签交换的路径规划方法
US12034587B1 (en) 2023-03-27 2024-07-09 VMware LLC Identifying and remediating anomalies in a self-healing network
US11949596B1 (en) 2023-07-17 2024-04-02 Cisco Technology, Inc. Localized congestion mitigation for interior gateway protocol (IGP) networks

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6831895B1 (en) * 1999-05-19 2004-12-14 Lucent Technologies Inc. Methods and devices for relieving congestion in hop-by-hop routed packet networks
CN101420383A (zh) * 2008-12-12 2009-04-29 北京邮电大学 一种mpls-tp分组传送网络中的ecmp路径软恢复方法
US7889652B1 (en) * 2004-08-27 2011-02-15 Juniper Networks, Inc. Traffic engineering using extended bandwidth accounting information

Family Cites Families (67)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0785652A4 (en) 1995-07-03 2001-07-11 Nippon Telegraph & Telephone COMMUNICATION NETWORK WITH VARIABLE WIDTH
US6697333B1 (en) * 1998-03-04 2004-02-24 Alcatel Canada Inc. Bandwidth load consideration in network route selection
US6538416B1 (en) 1999-03-09 2003-03-25 Lucent Technologies Inc. Border gateway reservation protocol for tree-based aggregation of inter-domain reservations
US6363319B1 (en) 1999-08-31 2002-03-26 Nortel Networks Limited Constraint-based route selection using biased cost
JP3817400B2 (ja) 2000-01-11 2006-09-06 富士通株式会社 ラベルスイッチングシステムにおける明示ルート指定方法及びパケット中継装置
US7068624B1 (en) 2000-02-25 2006-06-27 Cisco Technology, Inc. Wireless router and method for processing traffic in a wireless communications network
US7031266B1 (en) 2000-02-25 2006-04-18 Cisco Technology, Inc. Method and system for configuring wireless routers and networks
CN1183724C (zh) 2000-04-13 2005-01-05 奥帕雷克斯公司 网络优化方法
US6765921B1 (en) 2000-06-28 2004-07-20 Nortel Networks Limited Communications network
US7046669B1 (en) 2000-06-28 2006-05-16 Nortel Networks Limited Communications network
US7082102B1 (en) 2000-10-19 2006-07-25 Bellsouth Intellectual Property Corp. Systems and methods for policy-enabled communications networks
KR100703499B1 (ko) 2000-12-09 2007-04-03 삼성전자주식회사 다중 프로토콜 레이블 교환 시스템에서 트래픽 엔지니어링기능을 구현하기 위한 데이터구조 및 구축 방법
US6956821B2 (en) 2001-01-30 2005-10-18 Telefonaktiebolaget L M Ericsson (Publ) Path determination in a data network
JP3695362B2 (ja) 2001-07-12 2005-09-14 日本電気株式会社 通信コネクション迂回システム
US6785737B2 (en) 2001-07-31 2004-08-31 Tropic Networks Inc. Network resource allocation methods and systems
US7031312B1 (en) 2001-10-10 2006-04-18 Cicso Technology, Inc. Method and system for assigning multiprotocol label switching (MPLS) VC (VC) labels when transporting asynchronous transfer mode (ATM) data over MPLS network
US7221675B2 (en) 2001-12-07 2007-05-22 Nortel Networks Limited Address resolution method for a virtual private network, and customer edge device for implementing the method
US20030117950A1 (en) 2001-12-26 2003-06-26 Huang Gail G Link redial for mesh protection
US20030137971A1 (en) 2002-01-22 2003-07-24 Mark Gibson Telecommunications system and method
US20040042398A1 (en) 2002-02-28 2004-03-04 Seriqa Networks Method and apparatus for reducing traffic congestion by preventing allocation of the occupied portion of the link capacity and for protecting a switch from congestion by preventing allocation on some of its links
US7277393B1 (en) * 2002-03-13 2007-10-02 Packet Design, Inc. System and method for identifying cost metrics for a network
US7039706B1 (en) 2002-03-21 2006-05-02 Sprint Communications Company L.P. Session admission control for communication systems that use point-to-point protocol over ethernet
CA2379594C (en) 2002-03-28 2010-03-09 Tropic Networks Inc. Label distribution protocol supporting multiple classes of service in a multi protocol label switching (mpls) network, methods and mpls network using thereof
CA2428517A1 (en) 2002-05-13 2003-11-13 Tropic Networks Inc. System and method for distributed resource reservation protocol - traffic engineering (rsvp-te) hitless restart in multi-protocol label switching (mpls) network
DE60220549T2 (de) 2002-05-17 2008-02-07 Telefonaktiebolaget Lm Ericsson (Publ) Dynamische Wegeleitung in einem paketvermittelden mehrschichtigen Kommunikationsnetzwerk
US7376125B1 (en) 2002-06-04 2008-05-20 Fortinet, Inc. Service processing switch
US8014380B2 (en) 2002-07-03 2011-09-06 Alcatel Lucent Method and system for automatically establishing a return label switched path
JP3923863B2 (ja) 2002-07-09 2007-06-06 株式会社日立製作所 リクエストルータ装置
US7327675B1 (en) 2002-08-01 2008-02-05 At&T Corp. Fairness of capacity allocation for an MPLS-based VPN
US7324453B2 (en) 2002-08-30 2008-01-29 Alcatel Lucent Constraint-based shortest path first method for dynamically switched optical transport networks
US7418493B1 (en) 2002-09-30 2008-08-26 Cisco Technology, Inc. Method for computing FRR backup tunnels using aggregate bandwidth constraints
DE10252487B4 (de) * 2002-11-05 2012-10-11 Wilhelm Stahlecker Gmbh Offenend-Spinnrotor
CN100426733C (zh) 2003-01-16 2008-10-15 华为技术有限公司 网络通信中实现资源分配的系统及其方法
US20050169270A1 (en) 2003-03-19 2005-08-04 Ryoichi Mutou Router, frame forwarding method, and lower layer frame virtual forwarding system
US6970464B2 (en) 2003-04-01 2005-11-29 Cisco Technology, Inc. Method for recursive BGP route updates in MPLS networks
US20050010685A1 (en) 2003-07-11 2005-01-13 Agency For Science, Technology And Research Method and a system for enabling data to be stored in a computer network; a method and a system for storing data in a computer network
US7697417B2 (en) 2003-07-18 2010-04-13 Alcatel-Lucent Usa Inc. Methods and devices for re-routing MPLS traffic
US7336617B1 (en) 2003-08-01 2008-02-26 Verizon Laboratories Inc. Bit-field-encoded resource record for determining a transmission path in a communications network
GB2421158B (en) * 2003-10-03 2007-07-11 Avici Systems Inc Rapid alternate paths for network destinations
CN100454887C (zh) 2003-11-24 2009-01-21 中兴通讯股份有限公司 在MPLS网络中实现QoS保证的方法、装置和系统
US7174427B2 (en) 2003-12-05 2007-02-06 Intel Corporation Device and method for handling MPLS labels
US7164679B2 (en) 2004-01-12 2007-01-16 Ciena Corporation Scalable abstraction of topology across domain boundaries
US7599349B2 (en) 2004-01-29 2009-10-06 Cisco Technology, Inc. Computing inter-autonomous system MPLS traffic engineering LSP paths
JP4829474B2 (ja) 2004-01-30 2011-12-07 富士通株式会社 ネットワーク制御装置およびそのパス制御方法
WO2005104467A1 (en) 2004-04-20 2005-11-03 Nortel Networks Limited Method and system for quality of service support for ethernet multiservice interworking over multiprotocol label switching
US7369571B2 (en) 2004-04-30 2008-05-06 Ericsson Ab Method and system for sending E-LSP packets having QoS across a cell ATM based network
US7957266B2 (en) 2004-05-28 2011-06-07 Alcatel-Lucent Usa Inc. Efficient and robust routing independent of traffic pattern variability
US7606235B1 (en) 2004-06-03 2009-10-20 Juniper Networks, Inc. Constraint-based label switched path selection within a computer network
US7643425B2 (en) 2004-07-23 2010-01-05 Ericsson Ab LSP path selection
US7489695B1 (en) 2004-10-12 2009-02-10 Juniper Networks, Inc. Automatic LSP stitching with protocol signaling
US7558199B1 (en) 2004-10-26 2009-07-07 Juniper Networks, Inc. RSVP-passive interfaces for traffic engineering peering links in MPLS networks
KR100693052B1 (ko) 2005-01-14 2007-03-12 삼성전자주식회사 Mpls 멀티캐스트의 고속 재경로 설정 장치 및 방법
US9306831B2 (en) * 2005-02-14 2016-04-05 Cisco Technology, Inc. Technique for efficient load balancing of TE-LSPs
US7710872B2 (en) 2005-12-14 2010-05-04 Cisco Technology, Inc. Technique for enabling traffic engineering on CE-CE paths across a provider network
US7839850B2 (en) 2006-01-30 2010-11-23 Juniper Networks, Inc. Forming equal cost multipath multicast distribution structures
EP1816799A1 (en) 2006-02-01 2007-08-08 Siemens AG Method for creating a path for data transmission in a network based on network element reliability.
US20070268821A1 (en) 2006-05-17 2007-11-22 Corrigent Systems, Ltd. Rpr representation in ospf-te
US7889641B2 (en) 2006-07-18 2011-02-15 Opnet Technologies, Inc. Path flow formulation for fast reroute bypass tunnels in MPLS networks
US8107366B2 (en) 2006-08-22 2012-01-31 Embarq Holdings Company, LP System and method for using centralized network performance tables to manage network communications
US8094555B2 (en) 2006-11-27 2012-01-10 Cisco Technology, Inc. Dynamic weighted-fair load-balancing
US20080168510A1 (en) 2007-01-10 2008-07-10 At&T Knowledge Ventures, Lp System and method of routing video data
US8427959B2 (en) * 2007-01-22 2013-04-23 Cisco Technology, Inc. Bandwidth based selection for routing data
US9276842B2 (en) 2007-03-30 2016-03-01 Alcatel Lucent Methods and apparatus for routing using bifurcated network flows
US7826367B2 (en) 2007-06-28 2010-11-02 Verizon Patent And Licensing Inc. Systems and methods for protecting a trunk with multiple trunks
US8395989B2 (en) 2008-04-23 2013-03-12 Verizon Patent And Licensing Inc. Method and system for network backbone analysis
US8218553B2 (en) * 2009-02-25 2012-07-10 Juniper Networks, Inc. Load balancing network traffic on a label switched path using resource reservation protocol with traffic engineering
US8175006B2 (en) 2009-12-08 2012-05-08 At&T Intellectual Property I, L.P. Multi-path load balancing using route controller

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6831895B1 (en) * 1999-05-19 2004-12-14 Lucent Technologies Inc. Methods and devices for relieving congestion in hop-by-hop routed packet networks
US7889652B1 (en) * 2004-08-27 2011-02-15 Juniper Networks, Inc. Traffic engineering using extended bandwidth accounting information
CN101420383A (zh) * 2008-12-12 2009-04-29 北京邮电大学 一种mpls-tp分组传送网络中的ecmp路径软恢复方法

Also Published As

Publication number Publication date
EP2658192B1 (en) 2018-10-31
CN103379042A (zh) 2013-10-30
US9071541B2 (en) 2015-06-30
EP3073684A1 (en) 2016-09-28
EP2658192A1 (en) 2013-10-30
EP3073684B1 (en) 2020-02-05
US20130286846A1 (en) 2013-10-31

Similar Documents

Publication Publication Date Title
CN103379042B (zh) 路径加权的等价多路径
Awduche et al. Internet traffic engineering using multi-protocol label switching (MPLS)
CN103746931B (zh) 一种用于计算机网络的方法、网络设备及服务卡
JP4828865B2 (ja) トラフィック・パターン可変性と独立な効率的で堅牢なルーティング
US9197544B2 (en) Comprehensive multipath routing for congestion and quality-of-service in communication networks
Awduche et al. Overview and principles of Internet traffic engineering
CN107276897A (zh) 网络设备、集中控制器设备及其方法
CN108989213A (zh) 使用虚拟节点之间的所选择的结构路径传输lsp设置
CN108989203A (zh) 通告用于虚拟节点中的服务路由的选定结构路径
US20090135815A1 (en) Hierarchical segmented label switched paths
CN107566274A (zh) 资源预留协议lsp和非资源预留协议lsp的带宽管理
US11134007B2 (en) Network congestion reduction using boolean constrained multipath routing
Awduche et al. RFC3272: Overview and principles of Internet traffic engineering
CN105323168A (zh) 多协议标签切换环
CN105282030A (zh) 多协议标签切换环
Chen et al. Max progressive network update
Degrande et al. Inter-area traffic engineering in a differentiated services network
Nayyer et al. Issues with routing in software defined networks
Chim et al. BGP Ingress-to-Egress Route Configuration in a Capacity-constrained AS
Hasan Enhancing performance of conventional computer networks employing selected SDN principles
Mustafa et al. A review of routing optimization using ospf
Raman et al. Reducing power consumption using the Border Gateway Protocol
Kebria Analyzing IP/MPLS as Fault Tolerant Network Architecture
Heidari Quality of service routing using decentralized learning
da Fonte Intelligent route control for inter-domain routing

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP01 Change in the name or title of a patent holder

Address after: California, USA

Patentee after: Juniper Networks, Inc.

Address before: California, USA

Patentee before: Jungle network

CP01 Change in the name or title of a patent holder