[go: up one dir, main page]

CN103746931B - A kind of method for computer network, the network equipment and service card - Google Patents

A kind of method for computer network, the network equipment and service card Download PDF

Info

Publication number
CN103746931B
CN103746931B CN201310452253.8A CN201310452253A CN103746931B CN 103746931 B CN103746931 B CN 103746931B CN 201310452253 A CN201310452253 A CN 201310452253A CN 103746931 B CN103746931 B CN 103746931B
Authority
CN
China
Prior art keywords
packet
forwarding component
service
forwarding
entrance
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
CN201310452253.8A
Other languages
Chinese (zh)
Other versions
CN103746931A (en
Inventor
J·格兰希
G·克里施纳
A·萨斯雅纳拉雅纳
A·巴拉萨布拉玛尼安
B·万达洛瑞
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.)
Peribit Networks Inc
Original Assignee
Peribit 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 Peribit Networks Inc filed Critical Peribit Networks Inc
Publication of CN103746931A publication Critical patent/CN103746931A/en
Application granted granted Critical
Publication of CN103746931B publication Critical patent/CN103746931B/en
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/22Alternate routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/50Routing or path finding of packets in data switching networks using label swapping, e.g. multi-protocol label switch [MPLS]
    • 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/50Queue scheduling
    • H04L47/52Queue scheduling by attributing bandwidth to queues
    • 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/724Admission control; Resource allocation using reservation actions during connection setup at intermediate nodes, e.g. resource reservation protocol [RSVP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • 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/824Applicable to portable or mobile terminals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/02Processing of mobility data, e.g. registration information at HLR [Home Location Register] or VLR [Visitor Location Register]; Transfer of mobility data, e.g. between HLR, VLR or external networks
    • H04W8/04Registration at HLR or HSS [Home Subscriber Server]

Landscapes

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

Abstract

一般地,描述了用于在服务应用后维持负载均衡的技术。包括入口转发组件和出口转发组件以及服务卡的网络设备可以实施该技术。入口转发组件接收分组,并且响应于服务将被应用到该分组的确定,更新该分组以包括识别该入口转发组件的入口识别符,其后将更新的分组传输到服务卡。服务卡将该服务应用到更新的分组以生成经服务的分组,并且将经服务的分组传输到由该入口识别符所识别的入口转发组件,以便于跨多个转发组件维持分组流的负载均衡。入口转发组件确定向其转发经服务的分组的下一跳,并且出口转发组件将经服务的分组转发到所确定的下一跳。

In general, techniques for maintaining load balancing after service applications are described. A network device including an ingress forwarding component and an egress forwarding component and a service card may implement the technique. The ingress forwarding component receives the packet, and in response to a determination that a service is to be applied to the packet, updates the packet to include an ingress identifier identifying the ingress forwarding component, and thereafter transmits the updated packet to the service card. The service card applies the service to the updated packet to generate a serviced packet, and transmits the serviced packet to the ingress forwarding component identified by the ingress identifier so as to maintain load balancing of the packet flow across the plurality of forwarding components . The ingress forwarding component determines a next hop to forward the serviced packet to, and the egress forwarding component forwards the serviced packet to the determined next hop.

Description

一种用于计算机网络的方法、网络设备及服务卡Method, network equipment and service card for computer network

技术领域technical field

本公开内容涉及计算机网络,并且更特别地涉及计算机网络内的负载均衡。This disclosure relates to computer networks, and more particularly to load balancing within computer networks.

背景技术Background technique

计算机网络是能够交换数据并共享资源的互相连接的计算设备的合集。在基于分组的网络中,计算设备通过将数据分成称为分组的小块而通信数据,分组个别地跨网络从源设备到目的地设备而被路由。目的地设备从分组提取数据,并且将数据汇集成它的最初形式。将数据分成分组使得源设备能够仅重发在传输期间可能丢失的那些个别的分组。A computer network is a collection of interconnected computing devices capable of exchanging data and sharing resources. In a packet-based network, computing devices communicate data by dividing the data into small chunks called packets, which are individually routed across the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form. Dividing the data into packets enables the source device to retransmit only those individual packets that may have been lost during transmission.

网络路由器维持路由信息,路由信息描述了通过网络的可用路由。当接收分组时,路由器检查分组内的信息,并根据路由信息转发分组。为了维持网络的准确表征,路由器根据一个或多个路由协议交换路由信息,诸如内部网关协议(IGP)或边界网关协议(BGP)。Network routers maintain routing information, which describes available routes through the network. When a packet is received, a router examines the information within the packet and forwards the packet based on the routing information. In order to maintain an accurate representation of the network, routers exchange routing information according to one or more routing protocols, such as Interior Gateway Protocol (IGP) or Border Gateway Protocol (BGP).

在一些实例中,路由器可以实施被指代为加权的等价多路径(WECMP)的负载均衡形式,以跨多个路径通过网络将分组流分派给相同的目的地设备。就是说,计算机网络可以为入口路由器和出口路由器之间的多个路径做准备。入口路由器可以为特定分组流选择这些路径之一,并且为另一个分组流选择另一个路径,这两个路径在成本或其它指标方面可以是相等的。在选择这些路径中,入口路由器可以尝试跨路径分发这些分组流,以便于避免将分组流过度分配到任何一个路径。该形式的负载均衡可以被加权,因为入口路由器可以将权重分配给每条路径,并根据所分配的权重分派分组流。In some instances, routers may implement a form of load balancing referred to as Weighted Equal Cost Multi-Path (WECMP) to distribute packet flows across multiple paths through the network to the same destination device. That is, a computer network can provide for multiple paths between ingress routers and egress routers. An ingress router may choose one of these paths for a particular packet flow and another path for another packet flow, which may be equal in cost or other metrics. In selecting these paths, the ingress router may attempt to distribute the packet flows across the paths in order to avoid overdistributing the packet flows to any one path. This form of load balancing can be weighted because the ingress router can assign weights to each path and dispatch packet flows according to the assigned weights.

路由器还可以实施服务,诸如安全服务、网络地址转换(NAT) 服务、隧道服务、防火墙服务等。典型地,通过将分组流重定向到一个或多个包括在路由器内的服务卡,以在将流中的分组转发到它们的计划目的地之前将服务应用到分组流的分组,入口路由器应用该些服务。然而,这些服务的应用可能扰乱根据WECMP的分组转发,从而路由器不根据所定义的权重执行适当的负载均衡来分发流的分组。Routers may also implement services such as security services, network address translation (NAT) services, tunneling services, firewall services, and the like. Typically, an ingress router applies the some services. However, application of these services may disturb packet forwarding according to WECMP, so that routers do not perform proper load balancing to distribute packets of flows according to defined weights.

发明内容Contents of the invention

一般地,描述了一种技术,该技术用于在对分组流的一个或多个服务的应用之后,使得网络设备能够执行分组流的负载均衡。不是更新服务卡以执行路径选择,或者以其它方式散列至少一部分的分组以伪随机地识别能够执行路径选择的转发组件,而是接收分组的、网络设备的入口转发组件可以标记、加标签或以其它方式更新这个分组以指定识别该入口转发组件的入口识别符。作为结果,网络设备的服务卡可以在将一个或多个服务应用到所接收的分组后,将经服务的分组传输回到由入口识别符所识别的转发组件。这个入口转发组件可以配置为,当确定了经服务的分组沿其转发的多个路径(经常具有相等的成本)中的一个路径时,适当地应用加权等价多路径算法(WECMP)。Generally, a technique is described for enabling a network device to perform load balancing of a packet flow following application of one or more services to the packet flow. Rather than updating the service card to perform routing, or otherwise hashing at least a portion of the packet to pseudo-randomly identify a forwarding component capable of performing routing, an ingress forwarding component of a network device that receives a packet may mark, tag, or This packet is otherwise updated to specify an ingress identifier identifying the ingress forwarding component. As a result, the service card of the network device may transmit the serviced packet back to the forwarding component identified by the ingress identifier after applying one or more services to the received packet. This ingress forwarding component may be configured to appropriately apply a Weighted Equivalent Multi-Path Algorithm (WECMP) when one of multiple paths (often of equal cost) along which a served packet is forwarded is determined.

通过潜在地避免服务卡的更新以执行这个路径选择,该技术可以增进成本的节约。另外,通过使得服务卡能够放弃分组的散列以伪随机地识别将充当用于分组的入口转发组件、但不配置为根据WECMP算法执行路径选择的转发组件,该技术可以促进根据WECMP的负载均衡。尽管关于WECMP来描述,该技术可以一般地关于任何负载均衡算法来执行,诸如在执行链路聚合和其它形式的多路径或多链路负载均衡中所利用的那些算法。This technique can enhance cost savings by potentially avoiding service card updates to perform this routing. Additionally, the technique may facilitate load balancing in accordance with WECMP by enabling the service card to discard a hash of a packet to pseudo-randomly identify a forwarding component that will act as an ingress forwarding component for the packet, but is not configured to perform path selection in accordance with the WECMP algorithm . Although described with respect to WECMP, the technique may generally be performed with respect to any load balancing algorithm, such as those utilized in performing link aggregation and other forms of multipath or multilink load balancing.

在一个方面,一种方法包括:用包括在网络设备内的多个转发组件中的第一转发组件来接收分组,其中多个转发组件中的该第一转发组件充当用于所接收的分组所对应的分组流的入口转发组件。 该方法进一步包括:用该入口转发组件确定服务将被应用到该分组;用入口转发组件更新该分组,来包括识别该入口转发组件的入口识别符,作为对确定服务将被应用到该分组的响应;以及用该入口转发组件将更新的分组传输到应用服务的服务卡。该方法还包括:用服务卡将该服务应用到更新的分组以生成经服务的分组;并且用服务卡将经服务的分组传输到由该入口识别符所识别的入口转发组件,以便于跨多个转发组件维持分组流的负载均衡。另外地,该方法包括:用该入口转发组件确定向其转发经服务的分组的多个下一跳中的下一跳;并且用多个转发组件中的第二转发组件将经服务的分组转发到所确定下一跳,其中多个转发组件中的该第二转发组件充当用于经服务的分组所对应的分组流的出口转发组件。In one aspect, a method includes receiving a packet with a first forwarding component of a plurality of forwarding components included in a network device, wherein the first forwarding component of the plurality of forwarding components acts as a forwarding component for the received packet. The ingress forwarding component of the corresponding packet flow. The method further includes: determining, with the ingress forwarding component, that a service is to be applied to the packet; updating, with the ingress forwarding component, the packet to include an ingress identifier identifying the ingress forwarding component as a reference to determining that the service is to be applied to the packet responding; and transmitting the updated packet to the service card of the application service with the ingress forwarding component. The method also includes: applying the service to the updated packet with the service card to generate a serviced packet; and transmitting, with the service card, the serviced packet to the ingress forwarding component identified by the ingress identifier, so as to A forwarding component maintains load balancing of the packet flow. Additionally, the method includes: determining, with the ingress forwarding component, a next hop of a plurality of next hops to which to forward the serviced packet; and forwarding, with a second forwarding component of the plurality of forwarding components, the serviced packet to the determined next hop, wherein the second forwarding component of the plurality of forwarding components acts as an egress forwarding component for a packet flow to which the served packet corresponds.

在另一个方面,一种网络设备包括多个转发组件,其中多个转发组件中的第一转发组件接收分组,并且充当用于所接收的分组所对应的分组流的入口转发组件,确定服务将被应用到该分组,响应于服务将被应用到该分组的确定,更新该分组以包括识别该入口转发组件的入口识别符,并且将更新的分组传输到应用该服务的服务卡。该网络设备进一步包括服务卡,该服务卡将该服务应用到更新的分组以生成经服务的分组,并且将经服务的分组传输到由该入口识别符所识别的入口转发组件,以便于跨多个转发组件维持分组流的负载均衡。该入口转发组件确定向其转发经服务的分组的多个下一跳中的下一跳。多个转发组件中的第二转发组件充当用于服务分组所对应的分组流的出口转发组件,并且将经服务的分组转发到所确定下一跳。In another aspect, a network device includes a plurality of forwarding components, wherein a first forwarding component in the plurality of forwarding components receives a packet, and acts as an ingress forwarding component for a packet flow corresponding to the received packet, and determines that the service will is applied to the packet, responsive to a determination that the service is to be applied to the packet, updating the packet to include an ingress identifier identifying the ingress forwarding component, and transmitting the updated packet to the service card to which the service is applied. The network device further includes a service card that applies the service to the updated packet to generate a serviced packet, and transmits the serviced packet to the ingress forwarding component identified by the ingress identifier, so as to facilitate forwarding across multiple A forwarding component maintains load balancing of the packet flow. The ingress forwarding component determines a next hop of a plurality of next hops to forward the served packet to. A second forwarding component of the plurality of forwarding components acts as an egress forwarding component for a packet flow to which the servicing packet corresponds, and forwards the serviced packet to the determined next hop.

在另一个方面,一种服务卡配置为被插入到网络设备并耦合到网络设备的多个转发组件,该服务卡包括:控制单元,从充当用于该分组所对应的分组流的入口转发组件的、多个转发组件中的第一转发组件接收分组,其中该分组包括内部服务分组报头,该内部服务分组报头包括指定入口识别符的字段,该入口识别符识别该入口转发组件。该控制单元执行服务引擎,该服务引擎将服务应用到更 新的分组以生成经服务的分组。该控制单元进一步将经服务的分组传输到由该入口识别符所识别的入口转发组件,以便于跨多个转发组件维持分组流的负载均衡。In another aspect, a service card is configured to be inserted into a network device and coupled to a plurality of forwarding components of the network device, the service card comprising: a control unit acting as an ingress forwarding component for a packet flow corresponding to the packet A first forwarding component of the plurality of forwarding components receives a packet, wherein the packet includes an inner service packet header including a field specifying an ingress identifier that identifies the ingress forwarding component. The control unit executes a service engine that applies services to updated packets to generate serviced packets. The control unit further transmits the served packet to the ingress forwarding component identified by the ingress identifier so as to maintain load balancing of packet flow across the plurality of forwarding components.

该技术的一个或多个实施例的细节在下面随附的附图和描述中来阐述。该技术的其它特征、目的和优点通过该描述和附图,以及通过权利要求书将是明显的。The details of one or more embodiments of the technology are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the technology will be apparent from the description and drawings, and from the claims.

附图说明Description of drawings

图1是图示了示例网络系统的框图,该示例网络系统根据被公开内容中所描述的技术来执行服务应用后负载均衡。FIG. 1 is a block diagram illustrating an example network system that performs service post-application load balancing in accordance with the techniques described in the disclosed disclosure.

图2是更详细地图示了图1的路由器之一的框图。FIG. 2 is a block diagram illustrating one of the routers of FIG. 1 in more detail.

图3是图示了根据本公开内容所描述的技术通过图1的路由器之一的分组的逻辑流的框图。3 is a block diagram illustrating the logical flow of packets through one of the routers of FIG. 1 according to the techniques described in this disclosure.

图4是图示了示例服务cookie的图,该示例服务cookie根据本公开内容所描述的技术而使用以指定入口识别符。4 is a diagram illustrating an example service cookie used in accordance with the techniques described in this disclosure to specify a portal identifier.

图5是图示了在执行本公开内容中所描述的服务应用后负载均衡技术中网络设备的示例操作的流程图。5 is a flow diagram illustrating example operations of a network device in performing the post-service application load balancing techniques described in this disclosure.

图6是图示了示例网络系统的框图,该示例网络系统执行在两个或更多链路的聚合束的环境中、在本公开内容中所描述的服务应用后负载均衡技术。6 is a block diagram illustrating an example network system that performs the post-service application load balancing techniques described in this disclosure in the context of an aggregated bundle of two or more links.

具体实施方式detailed description

图1是图示了示例网络系统2的框图,示例网络系统2执行了根据本公开内容中所描述的技术的服务后应用负载均衡。网络系统2包括网络6,网络6包括路由器10A-10E(“路由器10”),路由器10A-10E将从源设备12A-12N(“源设备12”)接收的网络分组朝向目的地设备14进行路由。网络6可以包括公共网络,诸如因特网,专用网络,诸如由企业或服务提供商所拥有并操作的那些网络,或者公共网络和专用网络两者的组合。作为结果,网络6可以在本文 中替换地被指代为服务提供商(SP)网络。网络6可以包括一个或多个广域网(WAN)、局域网(LAN)、虚拟局域网(VLAN)、虚拟专用网(VPN)和/或其它类型的网络。FIG. 1 is a block diagram illustrating an example network system 2 that performs post-service application load balancing in accordance with the techniques described in this disclosure. Network system 2 includes network 6 that includes routers 10A-10E ("routers 10") that route network packets received from source devices 12A-12N ("source devices 12") toward destination device 14. . Network 6 may include a public network, such as the Internet, a private network, such as those owned and operated by a business or service provider, or a combination of both public and private networks. As a result, network 6 may alternatively be referred to herein as a service provider (SP) network. Network 6 may include one or more wide area networks (WANs), local area networks (LANs), virtual local area networks (VLANs), virtual private networks (VPNs), and/or other types of networks.

在一些实例中,网络6可以是互联网协议网络,在互联网协议网络中,路由器10使用IP转发用于传送网络分组。在其它实例中,网络6可以是标签交换网络,在标签交换网络中,诸如路由器10的网络设备,经常被指代为标签交换路由器或LSR,使用多协议标签交换(MPLS)信令协议来建立标签交换路径(LSP),标签交换路径用于传送从源设备12所接收的网络分组。网络6的MPLS数据运输机制可以视为位于开放系统互连(OSI)模型的层2和层3之间,并且经常被称为层2.5协议。对由数字所跟随的层的引用可以指代OSI模型的特定层。关于OSI模型的更多信息能够在由Hubert Zimmermann发表在日期为1980年4月的IEEETransactions on Communications第4期第28卷中的、标题为“OSI Reference Model-theISO Model of Architecture for Open Systems Interconnection”的IEEE出版物中找到,其通过引用如同在本文中完全阐述地合并于此。关于MPLS的进一步信息和MPLS的各种特征,以及关于MPLS的通用架构信息能够在通过引用并入本文的、日期为2001年1月、由互联网工程任务组(IETF)的网络工作组所准备的、标题为“Multiprotocol Label SwitchingArchitecture”的请求注解(RFC)3031中找到。在一些实例中,网络6可以提供通用MPLS(GMPLS)。虽然本文在一些实例中关于MPLS进行描述,但是本公开内容的技术还可应用到GMPLS。In some examples, network 6 may be an Internet Protocol network in which router 10 uses IP forwarding for transferring network packets. In other examples, network 6 may be a label switched network in which network devices such as router 10, often referred to as a label switched router or LSR, use the Multiprotocol Label Switching (MPLS) signaling protocol to establish labels A switched path (LSP), a label switched path is used to transport network packets received from source device 12 . The MPLS data transport mechanism of Network 6 can be viewed as lying between layers 2 and 3 of the Open Systems Interconnection (OSI) model, and is often referred to as a layer 2.5 protocol. References to layers followed by numbers may refer to specific layers of the OSI model. More information on the OSI model can be found in IEEE Transactions on Communications, Issue 4, Volume 28, dated April 1980, entitled "OSI Reference Model - the ISO Model of Architecture for Open Systems Interconnection" by Hubert Zimmermann found in IEEE Publication, which is hereby incorporated by reference as if fully set forth herein. Further information on MPLS and the various features of MPLS, as well as general architectural information on MPLS can be found in the Network Working Group of the Internet Engineering Task Force (IETF), dated January 2001, incorporated herein by reference , titled "Multiprotocol Label Switching Architecture" found in Request for Comments (RFC) 3031. In some instances, network 6 may provide generalized MPLS (GMPLS). Although described herein in some instances with respect to MPLS, the techniques of this disclosure are also applicable to GMPLS.

因此,虽然图1中示出为单个网络6,但是网络6可以包括任意数量的互相连接的公共或专用网络,其中各种网络互相连接以形成各种虚拟网络。另外,网络6可以包括用于转发网络业务量的多种其它网络设备,诸如另外的路由器、交换机或网桥。网络系统2的特定配置仅是一种示例,并且路由器10可以位于单个网络中或者多个网络内。虽然关于路由器进行了描述,但是本技术的方面可应用到其它网络设备,诸如网桥、交换机、网关、网络缓存以及网络加 速设备。Thus, while shown in FIG. 1 as a single network 6, the network 6 may comprise any number of interconnected public or private networks, where the various networks are interconnected to form various virtual networks. In addition, network 6 may include various other network devices for forwarding network traffic, such as additional routers, switches or bridges. The particular configuration of network system 2 is just one example, and router 10 may be located within a single network or within multiple networks. Although described with respect to routers, aspects of the present technology are applicable to other network devices, such as bridges, switches, gateways, network caches, and network acceleration devices.

在图1的示例中,网络系统2包括多个源设备12和耦合到中间网络6的目的地设备14。源设备12和目的地设备14的每一个可以是个人计算机、膝上型计算机、移动电话、网络电话、电视机顶盒、集成到交通工具中的网络设备、视频游戏系统、销售点设备、个人数字助理、中间网络设备、网络电器、超级计算机、大型计算机(mainframe computer)或者能够与网络6对接并且通过网络6通信的另一种类型的设备。In the example of FIG. 1 , network system 2 includes a plurality of source devices 12 and destination devices 14 coupled to intermediate network 6 . Each of source device 12 and destination device 14 may be a personal computer, a laptop computer, a mobile phone, a VoIP phone, a television set-top box, a network device integrated into a vehicle, a video game system, a point-of-sale device, a personal digital assistant , an intermediate network device, a network appliance, a supercomputer, a mainframe computer, or another type of device that can be connected to the network 6 and communicate through the network 6 .

源设备12和目的地设备14经由接入链路5连接到网络6,接入链路5可以包括有线和/或无线通信链路。如本文所使用的,术语“通信链路”包括任何形式的有线或无线传送介质,并且能够包括诸如网络设备的中间节点。每个接入链路5可以包括,例如,不对称DSL网络、WiMAX、T-1线路、综合业务数字网(ISDN)或者有线以太网的各方面。Source device 12 and destination device 14 are connected to network 6 via access link 5, which may comprise a wired and/or wireless communication link. As used herein, the term "communication link" includes any form of wired or wireless transmission medium and can include intermediate nodes such as network devices. Each access link 5 may comprise, for example, aspects of an asymmetric DSL network, WiMAX, T-1 lines, Integrated Services Digital Network (ISDN) or wired Ethernet.

网络6的多个物理和虚拟通信链路将路由器10互相连接,以促进路由器之间的控制和数据通信。网络6的物理链路可以包括,例如,以太网PHY、同步光网络(SONET)/同步数字体系(SDH)、Lambda、或者包括分组传送能力的其它的层2数据链路。网络6的逻辑链路可以包括,例如,以太网虚拟LAN、MPLS LSP或者MPLS-TE LSP。Multiple physical and virtual communication links of network 6 interconnect routers 10 to facilitate control and data communications between the routers. The physical links of network 6 may include, for example, Ethernet PHYs, Synchronous Optical Network (SONET)/Synchronous Digital Hierarchy (SDH), Lambda, or other layer 2 data links that include packet transfer capabilities. Logical links of the network 6 may include, for example, Ethernet virtual LANs, MPLS LSPs or MPLS-TE LSPs.

路由器10采用一个或多个内部网关协议(IGP)来确定用于网络6内部中的通信链路的链路状态/度量。例如,路由器10A可以使用开放式最短路径优先(OSPF)或中间系统-中间系统(IS-IS)协议,来与路由器10B-10E交换路由信息。路由器10A将该路由信息存储到路由信息库,路由器使用该路由信息库来计算去往网络6内所通告的目的地地址的最优路由。Router 10 employs one or more Interior Gateway Protocols (IGPs) to determine link states/metrics for communication links within network 6 . For example, router 10A may exchange routing information with routers 10B-10E using Open Shortest Path First (OSPF) or Intermediate System-Intermediate System (IS-IS) protocols. Router 10A stores this routing information into a routing information base, which the router uses to calculate optimal routes to advertised destination addresses within network 6 .

在一些实例中,路由器10支持业务量工程以改进通过网络6的路径的利用。一般而言,业务量工程指代如下的操作:将业务量流远离由内部网关协议用于网络6所计算的最短路径,并且朝向潜在地较少拥堵的、或者以其它方式更期望的(从操作的观点)跨网络 的物理路径移动。例如,路由器10可以使用具有业务量工程扩展的资源预留协议(RSVP-TE)或者另一个标签分发协议(例如,标签分发协议(LDP)),建立一个或多个连接各个路由器10对的LSP隧道,来将网络业务量远离网络故障、拥塞和瓶颈而路由。包括去往LSP隧道的接口的路由器将一个度量与LSP相关联。LSP度量可以采取下层IP路径的度量,LSP通过该下层IP路径而操作,LSP度量或者可以由网络6的管理员配置为不同的值,来影响路由器10的路由决定。路由器10执行内部网关协议,以经由路由协议消息来通信、并且交换为LSP隧道所建立的度量、并且将这些度量存储在各自的路由信息库中,该路由信息库用于计算去往网络6内所通告的目的地地址的最优路由。例如,路由器10可以使用OSPF转发邻接(FA)来通告LSP隧道为网络6的IGP链路。因此,如本文所使用的,术语“链路”或“通信链路”还可以指代通过层2通信链路的LSP操作。In some examples, router 10 supports traffic engineering to improve utilization of paths through network 6 . In general, traffic engineering refers to the operation of diverting traffic flows away from the shortest paths computed by the IGP for the network 6, and toward potentially less congested, or otherwise more desirable (from operational point of view) moves across the physical path of the network. For example, routers 10 may use Resource Reservation Protocol with Traffic Engineering Extensions (RSVP-TE) or another label distribution protocol (e.g., Label Distribution Protocol (LDP)) to establish one or more LSPs connecting each pair of routers 10 tunnels to route network traffic away from network failures, congestion, and bottlenecks. Routers that include interfaces to LSP tunnels associate a metric with the LSP. The LSP metric may take the metric of the underlying IP path over which the LSP operates, or it may be configured to a different value by the administrator of the network 6 to influence the routing decisions of the router 10 . The routers 10 implement an interior gateway protocol to communicate via routing protocol messages and exchange the metrics established for the LSP tunnels and store these metrics in respective routing information bases that are used to calculate routes to the network 6 The best route for the advertised destination address. For example, router 10 may advertise an LSP tunnel as an IGP link of network 6 using OSPF forwarding adjacency (FA). Thus, as used herein, the term "link" or "communication link" may also refer to LSP operation over a Layer 2 communication link.

RSVP-TE建立的LSP使用路由器10上的路径状态来预留资源,以确保这样的资源可用于促进针对使用LSP转发的网络业务量的服务等级(CoS)。例如,路由器10A可以朝向路由器10D发布RSVP路径消息以建立LSP,并且使用路由器10A和路由器10B两者上的路径状态来为LSP预留一定量的带宽。路由器10A、10B必须为映射到LSP的网络业务量维持所预留的带宽量,直到该LSP被抢占或拆卸。RSVP-TE在2001年12月的、互联网工程任务组的网络工作组的请求注解3209中Awduche等人的“RSVP-TE:Extensions to RSVP for LSP Tunnels”中更完全地进行了描述,其如同文本完全阐述地通过引用而被并入。The LSP established by RSVP-TE uses the path state on the router 10 to reserve resources to ensure that such resources are available to facilitate Class of Service (CoS) for network traffic forwarded using the LSP. For example, router 10A may issue an RSVP path message toward router 10D to establish an LSP, and use the path state on both router 10A and router 10B to reserve a certain amount of bandwidth for the LSP. Routers 10A, 10B must maintain the reserved amount of bandwidth for network traffic mapped to an LSP until that LSP is preempted or torn down. RSVP-TE is more fully described in Awduche et al., "RSVP-TE: Extensions to RSVP for LSP Tunnels" in Request for Note 3209 of the Network Working Group of the Internet Engineering Task Force, December 2001, as text Incorporated by reference in its entirety.

在一些示例中,路由器10可以使用对IGP的扩展,另外地分发关于网络负载的详细信息。例如,路由器10可以用使用新的类型长度值(TLV)的业务量工程扩展来执行IS-IS。作为另一个示例,路由器10可以用使用不透明链路状态通告(LSA)的业务量工程扩展来执行OSPF,以在链路状态通告中除了链路状态和度量之外还分发链路属性。在一些示例中,路由器10可以通告针对网络6的链路的 当前可用带宽,其考虑了在其它方面未考虑的流量。就是说,路由器10监控并通告表达为速率(例如MB/s)的用于一个链路的当前可用带宽,其考虑了既未经由RSVP-TE而预留、当前又未用来通过该链路传送互联网协议(IP)分组或LDP分组的带宽,其中LDP分组是具有由LDP所分发的附带标签的分组。用于一个链路当前可用的带宽因此是既未预留也未被用来使用未预留的资源来传送业务量。关于该详细信息、新的TLV、对不透明LSA的扩展以及路由器可以如何分发该信息的更多信息,在2012年6月28日提交的、标题为“PATH WEIGHTED EQUAL-COST MULTIPATH”的未决美国专利申请序列No.13/536,487中可以得到,其内容以它的整体通过引用合并于此。In some examples, router 10 may use extensions to IGP to additionally distribute detailed information about network load. For example, router 10 may implement IS-IS with traffic engineering extensions that use new Type Length Values (TLVs). As another example, router 10 may implement OSPF with traffic engineering extensions using opaque link state advertisements (LSAs) to distribute link attributes in the link state advertisements in addition to link state and metrics. In some examples, router 10 may advertise the currently available bandwidth for links of network 6, which accounts for otherwise unaccounted for traffic. That is, the router 10 monitors and advertises the currently available bandwidth for a link expressed as a rate (e.g. MB/s), which takes into account The bandwidth to transmit Internet Protocol (IP) packets or LDP packets, where LDP packets are packets with accompanying labels distributed by LDP. The bandwidth currently available for a link is thus neither reserved nor used to transport traffic using unreserved resources. More information on this detail, new TLVs, extensions to opaque LSAs, and how routers may distribute this information is in the pending US Available in Patent Application Serial No. 13/536,487, the contents of which are hereby incorporated by reference in their entirety.

一个或多个路由器10还可以实施一个或多个服务,经常包括一个或多个服务卡来执行该服务。作为一些示例,这些服务可以包括:深度包检测服务、网络地址转换(NAT)服务、防火墙服务、隧道服务、反恶意软件服务、防病毒服务、以及加密服务。这些服务中的一些的应用可以影响由最初接收分组的分组转发组件所执行的路径选择(或者,换句话说,转发决定)。为了举例说明,NAT服务一般包括用不同的源地址和/或源端口来替代分组的互连网协议(IP)分组报头中指定的源地址和/或源端口。当执行WECMP时,当尝试将分组所对应的分组流分发到两个路径(通常,成本相等)时,路由器可以利用包括源端口和源地址两者的所谓五元组(five-tuple)。因此,关于对应于流的分组而执行一个或多个服务的路由器,其中这些流还跨两个或更多路径和/或两个或更多链路(诸如聚合链路的示例中)主动地进行负载均衡,该路由器在执行路径选择或转发决定前,典型地必须首先将分组转发到服务卡。但是,服务卡典型地不配置为执行路径选择或做出转发决定。服务卡功能的该缺乏可能另外地影响路径选择,并且影响跨多个路径和/或链路的分组流的负载均衡。One or more routers 10 may also implement one or more services, often including one or more service cards to perform the services. These services may include, as some examples: deep packet inspection services, network address translation (NAT) services, firewall services, tunnel services, anti-malware services, anti-virus services, and encryption services. The application of some of these services can affect the path selection (or, in other words, the forwarding decision) performed by the packet forwarding component that originally received the packet. To illustrate, NAT services generally involve replacing a source address and/or source port specified in a packet's Internet Protocol (IP) packet header with a different source address and/or source port. When performing WECMP, routers can utilize so-called five-tuples that include both source port and source address when trying to distribute the packet flow to which the packet corresponds to two paths (often, of equal cost). Thus, routers that perform one or more services with respect to packets corresponding to flows that also actively span two or more paths and/or two or more links (such as in the example of aggregated links) For load balancing, the router typically must first forward the packet to the service card before performing path selection or forwarding decisions. However, service cards are typically not configured to perform path selection or make forwarding decisions. This lack of service card functionality may otherwise affect path selection and load balancing of packet flows across multiple paths and/or links.

为了举例说明,假定路由器10B将一个或多个服务应用到对应于分组流22的分组,路由器10A可以从源设备12A-12N之一接收 分组流22。路由器10A可以实施负载均衡算法,诸如ECMP和/或WECMP,以具体地经由链路15A、15B之一将这个分组发送到路由器10B,以便于跨将路由器10B耦合到路由器10A的链路15A、15B维持均衡的负载。To illustrate, router 10A may receive packet flow 22 from one of source devices 12A-12N, assuming router 10B applies one or more services to packets corresponding to packet flow 22. Router 10A may implement a load balancing algorithm, such as ECMP and/or WECMP, to send this packet to router 10B, specifically via one of links 15A, 15B, so as to facilitate Maintain a balanced load.

路由器10B可以接收这个分组,将这个分组归类为属于将对其执行服务和负载均衡两者的流。然后,路由器10B可以确定该分组首先被发送到包括在路由器10B中的服务卡,因为已经给定一个或多个服务可以影响转发决定,路由器10B被配置为首先应用服务。然后,路由器10B的服务卡可以接收这个分组并应用该服务。然而,如上面所指出的,服务卡可能不被配置为或者以其它方式具有该能力(例如,必需的硬件和/或软件)。然后,服务卡可以将散列函数应用到这个经服务的分组(诸如,上面所指出的、除了目的地地址、目的地端口和协议,还包括源地址、源端口两者的五元组)的至少一部分,来以伪随机方式识别能够执行路径选择的转发组件。但是,因为这将这个分组散列伪随机地分配到转发组件之一,当经由链路15A、15B发送这些分组到路由器10B时,服务卡不能以由路由器10A先前确保的方式来保证负载跨转发组件保持均衡。Router 10B may receive this packet, classify this packet as belonging to a flow for which both servicing and load balancing will be performed. Router 10B may then determine that the packet is sent first to a service card included in router 10B because router 10B is configured to apply the services first given that one or more services may influence the forwarding decision. The service card of router 10B can then receive this packet and apply the service. However, as noted above, the service card may not be configured or otherwise have this capability (eg, the requisite hardware and/or software). The service card can then apply a hash function to this serviced packet (such as the five-tuple noted above that includes both source address, source port, and destination address, destination port, and protocol) At least in part, to pseudo-randomly identify forwarding components capable of performing path selection. However, because this assigns this packet hash pseudo-randomly to one of the forwarding components, when sending these packets to router 10B via link 15A, 15B, the service card cannot guarantee the forwarding across loads in the manner previously ensured by router 10A. Components are balanced.

就是说,ECMP决定可能已经由外部路由器执行,在这个示例中即路由器10A,路由器10A经由多个链路15A、15B连接到路由器10B。路由器10A可能已经使用了一些算法来在链路15A、15B之间分发负载,诸如WECMP。如果链路落在路由器的不同转发组件上,则来自不同入口转发组件的业务量可以转到服务卡。如果将由服务卡服务的业务量的量很高,则服务卡可能需要在可用的转发组件之间分发负载。为了分发这个负载,服务卡可以在分组内容(诸如五元组)上执行散列,以在转发组件之间分发这些分组。然而,管理员可能已经规定了路由器10A来在该些链路之间执行负载均衡,依次地,管理员在路由器10B的转发组件上分发负载。当服务卡散列分组以将它们伪随机地分发回到转发组件时,服务卡可能无意地修改经由路由器10A所提供的负载均衡,导致了不遵循由路由器10A所提供的负载均衡的负载不均衡。以该方式,这些服务的应用可能 扰乱根据WECMP的分组转发,使得路由器10A没有执行维持适当的负载均衡。That is, the ECMP decision may have been performed by an external router, in this example router 10A, which is connected to router 10B via a number of links 15A, 15B. Router 10A may have used some algorithm to distribute the load between links 15A, 15B, such as WECMP. If the links fall on different forwarding components of the router, the traffic from different ingress forwarding components can go to the service card. If the volume of traffic to be served by the service card is high, the service card may need to distribute the load among the available forwarding components. To distribute this load, the service card may perform hashing on packet content (such as quintuples) to distribute these packets among the forwarding components. However, the administrator may have provisioned router 10A to perform load balancing between these links, which in turn distributes the load on the forwarding components of router 10B. When the service card hashes packets to distribute them pseudo-randomly back to the forwarding component, the service card may inadvertently modify the load balancing provided via router 10A, resulting in a load imbalance that does not follow the load balancing provided by router 10A . In this way, application of these services may disrupt packet forwarding according to WECMP, such that router 1OA does not perform to maintain proper load balancing.

根据本公开内容中所描述的技术,在将一个或多个服务应用到分组流后,路由器10B(或者路由器10C-10E的其它任何一个,或者任何其它类型的网络设备)可以维持分组流的负载均衡。不是更新服务卡以执行路径选择,或者以其它方式散列分组的至少一部分来伪随机地识别能够执行路径选择的转发组件,而是接收分组的路由器10B的入口转发组件可以标记、加标签或者以其它方式更新这个分组,来指定识别该入口转发组件的入口识别符。作为结果,路由器10B的服务卡可以在将一个或多个服务应用到所接收的分组后,将经服务的分组传输回到由入口识别符所识别的转发组件,以便于当在路由器10A中配置WECMP时,以与管理员所意图的方式一致的方式,跨转发组件均衡负载。通过潜在地避免服务卡的更新,来执行这个路径选择,该技术可以增进成本节约。另外地,通过使得服务卡能够放弃分组的散列来伪随机地识别充当用于分组的入口转发组件的转发组件,该技术可以以与如由路由器10A所执行的WECMP一致的方式,来促进跨入口转发组件的业务量的负载均衡。尽管关于WECMP进行了描述,该技术可以一般地关于任何负载均衡算法来执行,诸如在执行链路聚合中所利用的那些算法,以及其它形式的多路径或多链路负载均衡。According to the techniques described in this disclosure, after applying one or more services to the packet flow, router 10B (or any other of routers 10C-10E, or any other type of network device) can maintain the packet flow load balanced. Rather than updating the service card to perform routing, or otherwise hashing at least a portion of the packet to pseudo-randomly identify a forwarding component capable of performing routing, the ingress forwarding component of router 10B receiving the packet may mark, tag, or Other means update this packet to specify the ingress identifier that identifies the ingress forwarding component. As a result, the service card of router 10B may, after applying one or more services to the received packet, transmit the serviced packet back to the forwarding component identified by the ingress identifier so that when configured in router 10A WECMP load balances across forwarding components in a manner consistent with the administrator's intent. This technique can enhance cost savings by potentially avoiding service card updates to perform this routing. Additionally, by enabling the service card to discard the hash of the packet to pseudo-randomly identify the forwarding component acting as the ingress forwarding component for the packet, this technique can facilitate cross- Load balancing of the traffic of the ingress forwarding component. Although described with respect to WECMP, the technique may generally be performed with respect to any load balancing algorithm, such as those utilized in performing link aggregation, and other forms of multipath or multilink load balancing.

在操作中,路由器10B可以用多个转发组件中的第一转发组件来接收分组。这个第一转发组件可以充当指代为用于分组流的“入口转发组件”,即所接收的分组所对应的、图1的示例中的分组流22。为了充当入口转发组件,这个转发组件可以执行慢路径处理,来配置过滤器和其它硬件逻辑,使得对应于这个流22的分组可以更快地被处理。这个入口转发组件可以安装用于流22的过滤器,该过滤器指示了一个或多个服务将被应用到对应于这个流的分组。In operation, router 10B may receive a packet with a first forwarding component of a plurality of forwarding components. This first forwarding component may act as referred to as an "ingress forwarding component" for the packet flow, ie the packet flow 22 in the example of Fig. 1 to which the received packet corresponds. To act as an ingress forwarding component, this forwarding component can perform slow path processing to configure filters and other hardware logic so that packets corresponding to this flow 22 can be processed faster. This ingress forwarding component may install a filter for flow 22 indicating that one or more services are to be applied to packets corresponding to this flow.

路由器10A可以使用负载均衡算法,诸如确保适当负载均衡的WEMCP,将这个流22分配到链路15A。适当的负载均衡可以包括,以对应于分配给每一个这些链路15A、15B的所配置的权重的方式 将流分配到链路,诸如链路15A、15B。例如,40的权重可以分配给链路15A,并且60的权重可以分配给链路15B,其中40的权重指示了流的负载均衡子集内的所有流的百分之四十将分配给链路15A,而流的这个负载均衡子集中的所有流的百分之六十将分配给链路15B。然后,路由器10A可以维持负载均衡统计,来确定去往链路15A、15B的流的实际分发是否对应于(通常在某个定义的阈值或百分比内)所分配给路径的权重。以该方式,路由器10A有效地跨将路由器10A耦合到路由器10B的链路15A、15B对流进行负载均衡。Router 10A may distribute this flow 22 to link 15A using a load balancing algorithm, such as WEMCP which ensures proper load balancing. Proper load balancing may include assigning flows to links, such as links 15A, 15B, in a manner corresponding to the configured weights assigned to each of these links 15A, 15B. For example, a weight of 40 may be assigned to link 15A, and a weight of 60 may be assigned to link 15B, where a weight of 40 indicates that forty percent of all flows within the load-balanced subset of flows will be assigned to link 15A, while sixty percent of all flows in this load-balanced subset of flows will be allocated to link 15B. Router 10A may then maintain load balancing statistics to determine whether the actual distribution of flows to links 15A, 15B corresponds (typically within some defined threshold or percentage) to the weights assigned to the paths. In this manner, router 10A effectively load balances the flow across links 15A, 15B coupling router 10A to router 10B.

在任何情况下,路由器10B的入口转发组件可以确定一个服务将被应用到分组。入口转发组件可以使用包括在分组的IP报头中的五元组,在转发信息库(FIB)中执行查找,来确定一个或多个服务将被应用到分组。FIB可以表示路由信息库(RIB)的子集,其中路由器10B的控制平面可以分解RIB以生成FIB。这个FIB典型地包括指定了所谓“下一跳”的、关联于五元组(或它的一部分)的条目,对应的分组将被转发到该“下一跳”。FIB还可以包括内部下一跳,内部下一跳识别了服务卡和/或其它类型的卡,或者识别了转发组件将把对应的分组向其转发的、路由器10B内的组件。FIB还可以用一系列的下一跳来配置,一系列的下一跳指定了第一内部组件(诸如服务卡),第一内部组件由指定了诸如路由器10D的另一个网络设备的下一跳所跟随。In any case, the ingress forwarding component of router 10B can determine that a service is to be applied to the packet. The ingress forwarding component may perform a lookup in a forwarding information base (FIB) using the 5-tuple included in the packet's IP header to determine that one or more services are to be applied to the packet. A FIB may represent a subset of a routing information base (RIB), where the control plane of router 10B may decompose the RIB to generate the FIB. This FIB typically includes an entry associated with the quintuple (or a part of it) specifying a so-called "next hop" to which the corresponding packet is to be forwarded. The FIB may also include an internal next hop, which identifies a service card and/or other type of card, or a component within router 10B to which the forwarding component will forward the corresponding packet. The FIB can also be configured with a series of next hops specifying a first internal component (such as a service card) by specifying the next hop of another network device such as router 10D followed by.

在识别或者以其它方式确定一个服务将被应用到分组后,路由器10B的入口转发组件然后可以更新该分组来包括入口识别符,入口识别符响应于服务将被应用到该分组的确定,识别入口转发组件。这个入口识别符还可以指代为入口转发组件识别符。入口转发组件可以设定这个识别符直接识别入口转发组件,或者可以指定这个识别符,使得这个识别符可以结合表格或其它数据结构而被使用,来分解所分配给入口转发组件的虚拟识别符。经常地,虚拟识别符被分配并用来在各种分组转发组件之间切换,其中这个虚拟识别符识别插槽(slot)或其它耦合机构,入口转发组件插入到该插槽或其它耦合机构中。After identifying or otherwise determining that a service will be applied to the packet, the ingress forwarding component of router 10B may then update the packet to include an ingress identifier that identifies the ingress identifier in response to the determination that the service will be applied to the packet. Forward component. This ingress identifier may also be referred to as an ingress forwarding component identifier. The ingress forwarding component can set this identifier to directly identify the ingress forwarding component, or can specify the identifier so that it can be used in conjunction with a table or other data structure to resolve virtual identifiers assigned to the ingress forwarding component. Often, a virtual identifier is assigned and used to switch between the various packet forwarding components, where this virtual identifier identifies a slot or other coupling mechanism into which the ingress forwarding component plugs.

一旦用入口识别符更新分组,入口转发组件将更新的分组传输到应用了该服务的服务卡。然后,服务卡将该服务应用到更新的分组,以生成经服务的分组,并且将经服务的分组传输到由入口识别符所识别的入口转发组件。因此,不是在该分组的五元组上执行散列,来伪随机地将这个分组分配到任何给定的一个转发组件,而是为了执行路径选择的目的,服务卡利用入口识别符来将该分组发送回到入口转发组件,以便于跨多个转发组件维持分组流的负载均衡。Once the packet is updated with the ingress identifier, the ingress forwarding component transmits the updated packet to the service card to which the service is applied. The service card then applies the service to the updated packet to generate a serviced packet and transmits the serviced packet to the ingress forwarding component identified by the ingress identifier. Therefore, instead of performing a hash on the packet's quintuple to pseudo-randomly assign the packet to any given one of the forwarding components, the service card uses the entry identifier to assign the packet to any given forwarding component for routing purposes. Packets are sent back to the ingress forwarding component in order to maintain load balancing of the packet flow across multiple forwarding components.

因此,入口转发组件确定向其转发经服务的分组的多个下一跳中的下一跳。然后,入口转发组件将这个分组传输到与路由器10D对接的第二转发组件。这个第二转发组件充当用于这个分组的出口转发组件,并且可以移除任何内部分组报头,执行一个或多个关于分组的格式的操作,更新分组报头等。然后,出口转发组件可以将经服务的分组转发到所确定的下一跳,即图1的示例中的路由器10D。Accordingly, the ingress forwarding component determines a next hop of a plurality of next hops to forward the serviced packet to. The ingress forwarding component then transmits this packet to a second forwarding component that interfaces with router 10D. This second forwarding component acts as an egress forwarding component for this packet, and may remove any internal packet headers, perform one or more operations on the packet's format, update the packet header, etc. The egress forwarding component can then forward the serviced packet to the determined next hop, router 10D in the example of FIG. 1 .

以该方式,该技术可以通过潜在地避免服务卡的更新,来执行该路径选择,增进成本的节约。该技术与服务卡的更新的散列操作以及在服务卡的更新方面相比,还可以增进减小的实施方式复杂性。另外,通过使得服务卡能够放弃分组的散列来伪随机地识别充当用于该分组的入口转发组件的转发组件,该技术可以跨如根据WECMP由上游外部路由器所决定的转发组件来维持负载均衡。再次,尽管关于WECMP进行了描述,但是该技术可以一般地关于任何负载均衡算法来执行,诸如在执行链路聚合中所利用的那些算法,以及多路径或多链路负载均衡的其它形式。In this way, the technique can enhance cost savings by potentially avoiding service card updates to perform the routing. This technique may also facilitate reduced implementation complexity compared to the hashing of service card updates and in terms of service card updates. In addition, the technique can maintain load balancing across forwarding components as determined by upstream external routers according to WECMP by enabling the service card to discard a hash of a packet to pseudo-randomly identify the forwarding component acting as the ingress forwarding component for the packet . Again, although described with respect to WECMP, the technique may generally be performed with respect to any load balancing algorithm, such as those utilized in performing link aggregation, and other forms of multipath or multilink load balancing.

图2是更详细地图示了图1的路由器10B的框图。在图2的示例中,路由器10B包括转发平面30、路由平面32和服务平面34。转发平面30可以由专用的转发集成电路提供,专用的转发集成电路通常关联于网络路由器的高端路由和转发组件。标题为 MULTI-CHASSISROUTER WITH MULTIPLEXED OPTICAL INTERCONNECTS的美国专利申请2008/0044181描述了一种多机架(multi-chassis)路由器,其中多级交换结构,诸如3级Clos交换结构,被用作高端转发平面,来中继该多机架路由器的多个路由节点之间的分组。美国专利申请2008/0044181的全部内容通过引用并入本文。FIG. 2 is a block diagram illustrating router 10B of FIG. 1 in more detail. In the example of FIG. 2 , router 10B includes forwarding plane 30 , routing plane 32 , and service plane 34 . Forwarding plane 30 may be provided by dedicated forwarding integrated circuits, typically associated with high-end routing and forwarding components of network routers. US patent application 2008/0044181 titled MULTI-CHASSISROUTER WITH MULTIPLEXED OPTICAL INTERCONNECTS describes a multi-chassis router in which a multi-stage switching fabric, such as a 3-stage Clos switching fabric, is used as the high-end forwarding plane, to relay packets between the routing nodes of the multi-chassis router. The entire content of US Patent Application 2008/0044181 is incorporated herein by reference.

路由器10B可以以利用共享的转发平面30的方式集成路由平面32和服务平面34。转发平面30可以表示丰富的和动态的共享转发平面,可选地通过多机架路由器而分发。此外,如上面所指出的,转发平面30可以由通常关联于网络路由器的高端路由和转发组件的专用转发集成电路来提供。因此,路由平面32和转发平面30操作为高端路由器,并且服务平面36已经紧密地集成在路由器10B内(例如,通过服务卡36的方式),以便于以共享、协作的方式使用路由组件的转发平面30。路由器10B的一个示例实施例的进一步细节能够在2008年5月20日提交的、标题为“STREAMLINED PACKET FORWARDING USING DYNAMIC FILTERSFOR ROUTING AND SECURITY IN A SHARED FORWARDING PLANE”的美国临时专利申请61/054,692中找到,其通过引用并入本文。Router 10B may integrate routing plane 32 and service plane 34 in a manner that utilizes shared forwarding plane 30 . Forwarding plane 30 may represent a rich and dynamic shared forwarding plane, optionally distributed through a multi-chassis router. Furthermore, as noted above, forwarding plane 30 may be provided by a dedicated forwarding integrated circuit typically associated with high-end routing and forwarding components of a network router. Thus, routing plane 32 and forwarding plane 30 operate as high-end routers, and service plane 36 has been tightly integrated within router 10B (e.g., by way of service cards 36) to facilitate the use of forwarding components in a shared, collaborative manner. Plane 30. Further details of an example embodiment of router 10B can be found in U.S. Provisional Patent Application 61/054,692, filed May 20, 2008, entitled "STREAMLINED PACKET FORWARDING USING DYNAMIC FILTERSFOR ROUTING AND SECURITY IN A SHARED FORWARDING PLANE," It is incorporated herein by reference.

路由平面32提供了路由引擎38,路由引擎38主要负责维持路由信息库(RIB)40,来反映网络和其它网络实体的当前拓扑,其中路由器10B连接到该其它网络实体。例如,路由引擎38为路由协议42的执行提供了操作环境,路由协议42与对等路由器通信,并且周期地更新RIB40,来准确地反映网络和其它网络实体的拓扑。示例协议包括路由和标签交换协议,诸如边界网关协议(BGP)、中间系统到中间系统(ISIS)路由协议、资源预留协议(RSVP)、指代为“RSVP-TE”的RSVP的业务量工程(TE)版本、内部网关协议(IGP)、链路状态协议和标签分发协议(LDP)。Routing plane 32 provides a routing engine 38 which is primarily responsible for maintaining a routing information base (RIB) 40 reflecting the current topology of the network and other network entities to which router 10B is connected. For example, routing engine 38 provides an operating environment for the execution of routing protocols 42, which communicate with peer routers and periodically update RIB 40 to accurately reflect the topology of the network and other network entities. Example protocols include routing and label switching protocols such as Border Gateway Protocol (BGP), Intermediate System-to-Intermediate System (ISIS) routing protocol, Resource Reservation Protocol (RSVP), Traffic Engineering for RSVP referred to as "RSVP-TE" ( TE) version, Interior Gateway Protocol (IGP), Link State Protocol, and Label Distribution Protocol (LDP).

路由引擎38可以经由协议42接收这个路由信息,并且更新或以其它方式维持RIB40,来反映网络6的当前拓扑。该拓扑可以为 通过网络的多个不同的路径作准备,来到达任何给定的目的地设备。在图1的示例中,两个路径被示出从源设备12到目的地设备14,它们标示为路径16A、16B。在一些实例中,路由引擎38可以选择两个路径之一来到达目的地设备14。Routing engine 38 may receive this routing information via protocol 42 and update or otherwise maintain RIB 40 to reflect the current topology of network 6 . This topology can accommodate multiple different paths through the network to reach any given destination device. In the example of FIG. 1, two paths are shown from source device 12 to destination device 14, which are labeled paths 16A, 16B. In some examples, routing engine 38 may choose one of two paths to reach destination device 14 .

管理员45可以经由用户接口(UI)模块46与路由引擎38对接,用户接口(UI)模块46可以表示一个模块,通过该模块用户或供应系统可以与路由引擎38对接。例如,UI模块46可以包括命令行接口(CLI)或图形用户接口(GUI),命令行接口可以接受命令和/或脚本形式的输入。管理员45可以与UI模块46对接,以配置各种组件路由器10B,包括路由引擎38。一旦被配置,路由引擎38然后可以分解RIB40来生成转发信息。然后,路由引擎38可以与转发平面30对接,以将这个转发信息安装到转发信息库(FIB)48中。Administrator 45 may interface with routing engine 38 via a user interface (UI) module 46 , which may represent a module through which a user or provisioning system may interface with routing engine 38 . For example, UI module 46 may include a command line interface (CLI) or a graphical user interface (GUI), which may accept input in the form of commands and/or scripts. Administrator 45 may interface with UI module 46 to configure various components of router 10B, including routing engine 38 . Once configured, routing engine 38 may then decompose RIB 40 to generate forwarding information. Routing engine 38 may then interface with forwarding plane 30 to install this forwarding information into forwarding information base (FIB) 48 .

转发组件50A维持FIB48,FIB48将网络目的地与特定的下一跳以及路由器10B的输出接口卡的对应接口端口相关联。路由引擎38可以生成基数树形式的FIB48,基数树具有表示网络内目的地的叶节点。美国专利7,184,437提供了关于利用基数树用于路由决定(route resolution)的路由器的示例性实施例的细节,其内容以它的整体通过引用并入本文。Forwarding component 50A maintains FIB 48 that associates network destinations with specific next hops and corresponding interface ports of output interface cards of router 10B. Routing engine 38 may generate FIB 48 in the form of a radix tree having leaf nodes representing destinations within the network. US Patent 7,184,437 provides details on an exemplary embodiment of a router utilizing radix trees for route resolution, the contents of which are incorporated herein by reference in its entirety.

当转发分组时,转发组件50A基于该分组的报头内的信息,穿过基数树到叶节点,以最终选择向其转发该分组的下一跳和输出接口。基于该选择,转发组件可以将分组直接输出到输出接口,或者在高端路由器的多级交换结构的情形中,转发组件可以将该分组转发到用于切换到适当输出接口的随后级。When forwarding a packet, forwarding component 50A traverses the radix tree to leaf nodes based on the information within the packet's header to ultimately select the next hop and output interface to which to forward the packet. Based on this selection, the forwarding component can output the packet directly to the output interface, or in the case of a multi-stage switch fabric of a high-end router, the forwarding component can forward the packet to a subsequent stage for switching to the appropriate output interface.

服务平面34表示一种逻辑或物理平面,该逻辑或物理平面以服务卡36的形式提供一个或多个服务。服务卡36可以表示物理卡,该物理卡配置为插入到路由器10B中,并且经由底板、交换结构或其它通信介质耦合到转发平面30和路由平面32。典型地,服务卡36可以包括直接耦合到交换结构的卡。管理员45可以与UI模块46对接来与路由引擎38对接,以指定哪个分组流将经历一个或多个服 务卡36的服务处理。在指定这些流后,路由引擎38可以更新RIB40,来反映这些流将经历服务处理,从而当分解FIB48时,转发信息可以指示各种流将经历服务处理。经常地,这个转发信息可以通过为这些流指定将这些流的分组定向到服务卡36之一的下一跳(其中,这个下一跳可以指代为“内部下一跳”),来指定这些流需要服务处理。在路由器10B外部的另外的下一跳可以被指定,其中在这个示例中,外部的下一跳可以指定该分组将被转发到路径16A、16B的哪一个。内部的下一跳可以链接到外部的下一跳,其中在这个示例中,路由器10B可以为任何给定的流维持两个下一跳(并且可能更多)。Service plane 34 represents a logical or physical plane that provides one or more services in the form of service cards 36 . Service card 36 may represent a physical card configured to be inserted into router 10B and coupled to forwarding plane 30 and routing plane 32 via a backplane, switch fabric, or other communication medium. Typically, service cards 36 may comprise cards coupled directly to the switch fabric. Administrator 45 may interface with UI module 46 to interface with routing engine 38 to specify which packet flows are to undergo service processing by one or more service cards 36. After designating these flows, routing engine 38 may update RIB 40 to reflect that these flows will undergo service processing so that when FIB 48 is resolved, forwarding information may indicate that various flows will undergo service processing. Frequently, this forwarding information may specify these flows by specifying for these flows a next hop that directs packets of these flows to one of the service cards 36 (wherein this next hop may be referred to as an "internal next hop") Service processing is required. Additional next hops external to router 10B may be specified, where in this example the external next hop may specify to which of paths 16A, 16B the packet is to be forwarded. The internal next hop can be chained to the external next hop, where in this example router 10B can maintain two next hops (and possibly more) for any given flow.

服务卡36每个可以表示能够应用一个或多个服务的卡。服务卡36可以包括控制单元50,控制单元50可以表示执行软件指令的一个或多个通用处理器(未示出在图1中),软件指令诸如存储到非暂时性计算机可读介质(再次,未示出在图1中)的、用来定义软件或计算机程序的那些,非暂时性计算机可读介质诸如存储设备(例如,磁盘驱动器或光驱)、或存储器(诸如闪存、随机访问存储器或RAM)或任何其它类型的易失性或非易失性存储器,它们存储指令以促使一个或多个处理器来执行本文所描述的技术。可替换地,控制单元50可表示专用硬件,诸如一个或多个集成电路、一个或多个专用集成电路(ASIC)、一个或多个专用特殊处理器(ASSP)、一个或多个现场可编程门阵列(FPGA)、或者一个或多个专用硬件的前述示例的任何组合,用于执行本文所描述的技术。在一些实例中,控制单元50可以指代为处理器。The service cards 36 may each represent a card to which one or more services can be applied. Service card 36 may include control unit 50, which may represent one or more general-purpose processors (not shown in FIG. 1 ) that execute software instructions, such as stored to a non-transitory computer-readable medium (again, not shown in Figure 1), non-transitory computer-readable media such as storage devices (e.g., magnetic disk drives or optical drives), or memories (such as flash memory, random access memory, or RAM) that define software or computer programs ) or any other type of volatile or non-volatile memory that stores instructions to cause one or more processors to perform the techniques described herein. Alternatively, control unit 50 may represent dedicated hardware, such as one or more integrated circuits, one or more application specific integrated circuits (ASICs), one or more application specific special processors (ASSPs), one or more field programmable A gate array (FPGA), or any combination of the foregoing examples of one or more dedicated hardware, is used to perform the techniques described herein. In some instances, the control unit 50 may be referred to as a processor.

控制单元50可以实施服务引擎52,服务引擎52可以表示将一个或多个服务应用到分组、分组的流和/或分组的会话的模块或单元(其中会话指代从源到目的地的流与从相同目的地到相同源的流的组合)。服务引擎52可以执行任何类型的服务,包括上面列出的那些。为了例证的目的,假定服务引擎52实施了修改、编辑或更新分组中的信息的服务,该服务一般地使用在执行路径选择或以其它方 式作出转发决定中。修改、编辑或更新该信息的示例服务可以包括NAT服务和隧道服务。Control unit 50 may implement service engine 52, which may represent a module or unit that applies one or more services to packets, flows of packets, and/or sessions of packets (where a session refers to a flow from a source to a destination in conjunction with combination of flows from the same destination to the same source). Service engine 52 may perform any type of service, including those listed above. For purposes of illustration, it is assumed that service engine 52 implements a service that modifies, edits, or updates information in packets, which services are typically used in performing routing or otherwise making forwarding decisions. Example services that modify, edit or update this information may include NAT services and tunnel services.

在图2的示例中,转发组件50A接收分组52,并且充当入口转发组件,调用流控制单元54。流控制单元54表示选择性地将分组定向到服务平面34用于处理的模块。流控制单元54可以访问FIB48以确定分组52是否将被发送到内部下一跳,例如服务平面34的服务卡36之一,或者经由另一个转发组件发送到外部下一跳,该另一个转发组件充当用于分组52所对应的流的出口转发组件,即出口转发组件50B。尽管被指代为入口转发组件50A和出口转发组件50B,但是转发组件50A、50B的每一个在底层硬件和/或逻辑方面可以是彼此相同或相似的。就是说,转发组件50A、50B的入口和出口名称仅标示了转发组件50A用于分组52所对应的分组流充当入口转发组件,并且转发组件50B用于分组52所对应的分组流充当出口转发组件。此外,转发平面30可以包括多于两个转发组件,其中为了例证容易性的目的,这些另外的转发组件未示出在图2的示例中。In the example of FIG. 2 , forwarding component 50A receives packet 52 and acts as an ingress forwarding component, invoking flow control unit 54 . Flow control unit 54 represents a module that selectively directs packets to service plane 34 for processing. Flow control unit 54 may access FIB 48 to determine whether packet 52 is to be sent to an internal next hop, such as one of service cards 36 of service plane 34, or to an external next hop via another forwarding component that Acting as an egress forwarding component for the flow to which packet 52 corresponds, eg egress forwarding component 50B. Although referred to as ingress forwarding component 50A and egress forwarding component 50B, each of forwarding components 50A, 50B may be identical or similar to one another in terms of underlying hardware and/or logic. That is to say, the ingress and egress names of the forwarding components 50A, 50B only indicate that the forwarding component 50A acts as an ingress forwarding component for the packet flow corresponding to the packet 52, and the forwarding component 50B acts as an egress forwarding component for the packet flow corresponding to the packet 52 . Furthermore, forwarding plane 30 may include more than two forwarding components, wherein these additional forwarding components are not shown in the example of FIG. 2 for ease of illustration.

无论如何,流控制单元54可以确定分组52将被传输到服务卡36。响应于确定分组52将被传输到服务卡36,使得服务卡36能够将服务应用到分组52,入口转发组件50A的流控制单元54可以附加一个内部服务分组报头(其还可以被指代为“服务cookie”)。流控制单元54可以指定这个内部服务分组报头以包括一个字段,该字段存储识别转发组件50A的入口识别符。流控制单元54可以将这个内部服务分组报头附加到分组52,以生成更新的分组56。然后,流控制单元54可以将分组52重定向到服务平面34的服务卡36。服务卡36可以接收这个分组,移除该内部服务分组报头,从该内部服务分组报头解析入口识别符。然后,服务卡36的控制单元50可以调用服务引擎52,服务引擎52将服务应用到更新的分组56,生成经服务的分组58。服务分组58被假定与分组52不同在于:当作出转发决定或执行路径选择时所使用的服务分组58的至少一个方面,不同于分组52(诸如,经服务的分组58的五元组的至少一个方面不 同于分组52的五元组)。在这个方面,服务卡36将服务应用到更新的分组56,以生成经服务的分组58,使得经服务的分组58的五元组不同于更新的分组52的五元组。Regardless, flow control unit 54 may determine that packet 52 is to be transmitted to service card 36 . In response to determining that packet 52 is to be transmitted to service card 36 so that service card 36 can apply the service to packet 52, flow control unit 54 of ingress forwarding component 50A may append an internal service packet header (which may also be referred to as a "service cookie"). Flow control unit 54 may specify this inner service packet header to include a field that stores an entry identifier that identifies forwarding component 50A. Flow control unit 54 may append this inner service packet header to packet 52 to generate updated packet 56 . Flow control unit 54 may then redirect packet 52 to service card 36 of service plane 34 . Service card 36 may receive this packet, remove the inner service packet header, and parse the entry identifier from the inner service packet header. The control unit 50 of the service card 36 may then invoke the service engine 52 , which applies the service to the updated packet 56 , generating a serviced packet 58 . The service packet 58 is assumed to differ from the packet 52 in that at least one aspect of the service packet 58 used when making forwarding decisions or performing path selection differs from the packet 52, such as at least one of the five-tuples of the served packet 58 aspect differs from the quintuple of grouping 52). In this regard, service card 36 applies the service to updated packet 56 to generate serviced packet 58 such that the five-tuple of serviced packet 58 is different from the five-tuple of updated packet 52 .

然后,服务卡36可以使用先前从内部服务分组报头所解析的入口识别符,将经服务的分组58传输回到流控制单元54,以便于跨路由器10B的转发组件来维持分组流的负载均衡。就是说,服务卡36可以主动地识别充当所谓的入口转发组件的、和/或维持用于分组52所对应的流的单个接触点的、最初接收分组52的转发组件50A、50B之一(并且为了例证容易性的目的,任何其它的转发组件未示出在图2的示例中)。作为结果,服务卡36将经服务的分组58传输到由入口识别符所识别的入口转发组件50A,而不用将散列函数应用到经服务的分组58的至少一部分来识别入口转发组件50A,和/或不用确定向其转发经服务的分组58的下一跳。此外,服务卡36将经服务的分组58传输到入口转发组件50A,使得入口转发组件50A接收该分组,如同该分组已经由入口转发组件50A经由与耦合到另一个网络设备的入口转发组件50A关联的接口(未示出在图2的示例中)而接收,而不是经由将服务卡36耦合到入口转发组件50A的交换结构。通过选择入口转发组件50A,服务卡36跨由上游路由器根据WECMP所决定的链路/(接收路由器的)转发组件,来维持分组流的负载均衡。Service card 36 may then transmit the serviced packet 58 back to flow control unit 54 using the ingress identifier previously parsed from the internal service packet header in order to maintain load balancing of the packet flow across the forwarding components of router 10B. That is, the service card 36 may actively identify one of the forwarding components 50A, 50B that originally received the packet 52 (and For ease of illustration, any other forwarding components are not shown in the example of FIG. 2). As a result, the service card 36 transmits the serviced packet 58 to the ingress forwarding component 50A identified by the ingress identifier without applying a hash function to at least a portion of the serviced packet 58 to identify the ingress forwarding component 50A, and /or do not determine a next hop to which to forward the served packet 58 . In addition, service card 36 transmits serviced packet 58 to ingress forwarding component 50A such that ingress forwarding component 50A receives the packet as if the packet had been associated by ingress forwarding component 50A via an ingress forwarding component 50A coupled to another network device. interface (not shown in the example of FIG. 2 ), rather than via the switch fabric coupling service card 36 to ingress forwarding component 50A. By selecting the ingress forwarding component 50A, the service card 36 maintains load balancing of the packet flow across the link/forwarding component (of the receiving router) determined by the upstream router according to WECMP.

流控制单元54接收这个经服务的分组58,并且使用服务分组58的五元组访问FIB48,以便于检索为服务分组58所对应的该流指定下一跳的条目。换句话说,流控制单元54基于经服务的分组58的五元组,来确定向其转发经服务的分组58的下一跳。假定流控制单元54识别下一跳,该下一跳牵涉经由与出口转发组件50B关联的接口转发经服务的分组58,则流控制单元54将这个分组58转发到出口转发组件50B,依次地,出口转发组件50B将分组58转发到下一跳。Flow control unit 54 receives this served packet 58 and uses the 5-tuple of service packet 58 to access FIB 48 in order to retrieve the entry specifying the next hop for the flow to which service packet 58 corresponds. In other words, flow control unit 54 determines the next hop to which to forward served packet 58 based on the 5-tuple of served packet 58 . Assuming that flow control unit 54 identifies the next hop that involves forwarding a serviced packet 58 via the interface associated with egress forwarding component 50B, flow control unit 54 forwards this packet 58 to egress forwarding component 50B, which in turn, Egress forwarding component 50B forwards packet 58 to the next hop.

图3是图示了根据本公开内容中所描述的技术,通过图1的路 由器10B的分组的逻辑流的框图。如图2的示例中所示出的,该技术将关于路由器10B的入口转发组件50A、出口转发组件50B和服务卡36来描述。FIG. 3 is a block diagram illustrating the logical flow of packets through router 10B of FIG. 1, according to the techniques described in this disclosure. As shown in the example of FIG. 2 , the technique will be described with respect to ingress forwarding component 50A, egress forwarding component 50B, and service card 36 of router 10B.

在图3的示例中,入口转发组件50A包括具有网络接口72的接口卡(IFC)70和分组转发引擎(PFE)74。PFE74包括流控制单元54(在图3的示例中示出为“FCU54”)。出口转发组件50B还包括具有接口78和PFE80的IFC76。PFE80还包括可以类似于FCU54的FCU82。In the example of FIG. 3 , ingress forwarding component 50A includes an interface card (IFC) 70 having a network interface 72 and a packet forwarding engine (PFE) 74 . The PFE 74 includes a flow control unit 54 (shown as "FCU 54 " in the example of FIG. 3 ). Egress forwarding component 50B also includes IFC 76 having interface 78 and PFE 80 . PFE 80 also includes FCU 82 which may be similar to FCU 54 .

如在图3的示例中进一步示出的,入站分组(inbound packet)52经由网络接口72从源设备12之一接收。PFE74的FCU54在入站分组82上执行路由查找,并且确定该分组必须通过交换结构84发送到服务卡36。就是说,FCU54在FIB48(示出在图2的示例中,但未示出在图3的示例中)中执行查找以确定内部下一跳数据,内部下一跳数据将服务卡36识别为分组必须向其发送的出口接口。在已经由服务卡36服务后,为了将分组重新交换回到入口转发组件50A,FCU54附加服务cookie,服务cookie包括指定入口识别符88的字段,入口识别符88识别入口转发组件50A。然后,PFE74将分组52的这个更新版本(其可以指代为更新的分组56)放置在缓存器86内,以定向为穿过交换结构52A去往服务卡36。As further shown in the example of FIG. 3 , an inbound packet 52 is received from one of the source devices 12 via the network interface 72 . FCU 54 of PFE 74 performs a routing lookup on inbound packet 82 and determines that the packet must be sent through switch fabric 84 to service card 36 . That is, FCU 54 performs a lookup in FIB 48 (shown in the example of FIG. 2, but not shown in the example of FIG. 3) to determine internal next-hop data that identifies service card 36 as a packet The egress interface to which it must send. After having been serviced by service card 36, to reswitch packets back to ingress forwarding component 50A, FCU 54 appends a service cookie that includes a field specifying an ingress identifier 88 that identifies ingress forwarding component 50A. PFE 74 then places this updated version of packet 52 (which may be referred to as updated packet 56 ) within buffer 86 to be directed through switch fabric 52A to service card 36 .

服务卡36的控制单元50从交换结构84接收更新的分组56,并且移除该服务cookie,从更新的分组56提取入口识别符88(在图3的示例中示出为“ING ID88”)。控制单元50将分组56存储到缓存器90并调用服务引擎36,服务引擎36将服务应用到更新的分组56以生成经服务的分组58。控制单元50将经服务的分组58放置在分组缓存器92中。然后,控制单元50可以使用入口识别符88来发送经服务的分组58,使得PFE74接收经服务的分组58如同该分组从在PFE74终止的外部网络设备被接收。在一些示例中,入口转发组件50A可以包括隧道分组接口卡(PIC),入口转发组件50A可以使用隧道分组接口卡来接收已经由服务卡36服务的经服务的分组 (从PFE74的视角其将表现为出站分组),以将该分组回送到PFE74,其中该隧道分组具有一个有效载荷,有效载荷封装了发往接口76的完全形成的分组。关于使用该隧道PIC以使得否则将被视为出站分组的入口处理成为可能的更多信息,能够在2009年11月13日提交的、标题为“MULYI-ROUTER SYSTEM HAVING SHARED NETWORK INTERFACES”的美国专利申请序列No.12/618,536中找到,其全部内容以它们的整体通过引用合并于此。Control unit 50 of service card 36 receives updated packet 56 from switch fabric 84 and removes the service cookie, extracting ingress identifier 88 (shown as "ING ID88" in the example of FIG. 3 ) from updated packet 56 . Control unit 50 stores packet 56 to buffer 90 and invokes service engine 36 , which applies the service to updated packet 56 to generate serviced packet 58 . Control unit 50 places served packet 58 in packet buffer 92 . Control unit 50 may then use ingress identifier 88 to send serviced packet 58 such that PFE 74 receives serviced packet 58 as if the packet were received from an external network device terminating at PFE 74 . In some examples, ingress forwarding component 50A may include a tunneling packet interface card (PIC) that ingress forwarding component 50A may use to receive serviced packets that have been serviced by service card 36 (which from the perspective of PFE 74 will appear as outbound packet) to send the packet back to the PFE 74, where the tunneled packet has a payload encapsulating the fully formed packet destined for the interface 76. More information on the use of this tunnel PIC to enable ingress processing of what would otherwise be considered outbound packets can be found in the U.S. Found in Patent Application Serial No. 12/618,536, the entire contents of which are hereby incorporated by reference in their entirety.

无论如何,如上面所指出的,PFE74可以从隧道PIC接收该分组58作为入站分组,即在PFE的面向网络的入站侧的分组,如同该分组由路由器从外部隧道接收。PFE74移除功能可以从该分组移除隧道cookie,并且FCU54在这个“入站”分组58上执行路由查找,并且确定该分组必须通过交换结构84发送到网络接口76所关联的出口转发组件50B的PFE80。就是说,由FCU54访问的转发信息将分组58内的键控信息(诸如分组58的五元组)映射到下一跳数据,下一跳数据将网络接口76识别为分组58将被发送到的出口接口。作为结果,PFE74将分组58放置在缓存器86内,以被定向为穿过交换结构84去往PFE80。PFE80从交换结构84接收分组58作为出站分组,并且将这个出站分组58放置在缓存器96内,用于经由外出接口76输出。然后,IFC76经由接口78将分组58输出到它的计划目的地。In any case, as noted above, the PFE 74 may receive the packet 58 from the tunnel PIC as an inbound packet, ie, a packet on the network-facing inbound side of the PFE, as if it were received by a router from an external tunnel. The PFE 74 remove function may remove the tunnel cookie from the packet, and the FCU 54 performs a route lookup on this "inbound" packet 58, and determines that the packet must be sent through the switch fabric 84 to the associated egress forwarding component 50B of the network interface 76. PFE80. That is, the forwarding information accessed by FCU 54 maps keyed information within packet 58, such as the quintuple of packet 58, to next-hop data that identifies network interface 76 as the destination to which packet 58 is to be sent. export interface. As a result, PFE 74 places packet 58 within buffer 86 to be directed through switch fabric 84 to PFE 80 . PFE 80 receives packet 58 from switch fabric 84 as an outbound packet and places this outbound packet 58 in buffer 96 for output via egress interface 76 . IFC 76 then outputs packet 58 via interface 78 to its intended destination.

图4是图示了示例性服务cookie100的框图,示例性服务cookie100根据本公开内容所描述的技术被使用来指定入口识别符。在图4的示例中,服务cookie100包括多个字段,包括服务类型字段(示出为“SVC TYPE”)、IP字段(示出为“I”)、未使用的字段(示出为“S”)、控制字段(示出为“C”)、序列字段(示出为“N”)、长度字段(示出为“LEN”)、版本字段(示出为“VER”)、匹配字段、散列存在字段(示出为“H”)、出口信息字段(示出为“E”)、应用识别符存在字段(示出为“A”)、未使用的字段(示出为“S”)、协议字段(示出为“PROTO”)、转发类别字段(示出为“FC”)、 丢弃优先级字段(示出为“DP”)、发送到路由引擎(RE)字段(示出为“R”)、方向字段(示出为“DIR”)、新的JFM cookie字段(示出为“W”)、IIF字段、服务识别符字段、IF字段、MID字段、出口令牌字段、以及入口识别符字段102。各种字段的每一个指定了由服务卡36所使用的信息,以应用适当的服务。FIG. 4 is a block diagram illustrating an example service cookie 100 that is used to specify an entry identifier in accordance with the techniques described in this disclosure. In the example of FIG. 4, the service cookie 100 includes a number of fields, including a service type field (shown as "SVC TYPE"), an IP field (shown as "I"), an unused field (shown as "S") ), control field (shown as "C"), sequence field (shown as "N"), length field (shown as "LEN"), version field (shown as "VER"), match field, hash Column present field (shown as "H"), exit information field (shown as "E"), application identifier present field (shown as "A"), unused field (shown as "S") , Protocol field (shown as "PROTO"), Forwarding Class field (shown as "FC"), Drop Priority field (shown as "DP"), Send to Routing Engine (RE) field (shown as " R"), direction field (shown as "DIR"), new JFM cookie field (shown as "W"), IIF field, service identifier field, IF field, MID field, egress token field, and ingress Identifier field 102 . Each of the various fields specifies information used by the service card 36 to apply the appropriate service.

入口识别符字段102可以包括类型长度值(TLV)字段,类型长度值字段包括子字段来指定值子字段(value sub-field)中所指定的信息的类型和长度。可替换地,入口识别符字段102可以是用来指定入口识别符的集合或定义的长度。上述服务cookie100是从31(在左边)到右边的0的一列数字,该列数字反映了用来指定每个字段的比特数量。这些比特记号为了示例的目的而提供,并且服务cookie100可以包括更多或更少的比特,而服务cookie100中所指定的每个字段可以包括比图4的示例中所示出的更多或更少的比特。The entry identifier field 102 may include a Type Length Value (TLV) field that includes subfields to specify the type and length of information specified in a value sub-field. Alternatively, the entry identifier field 102 may be used to specify a set of entry identifiers or a defined length. The service cookie 100 above is a column of numbers from 31 (on the left) to 0 on the right, reflecting the number of bits used to specify each field. These bit notations are provided for example purposes, and service cookie 100 may include more or fewer bits, and each field specified in service cookie 100 may include more or fewer bits than shown in the example of FIG. bits.

图5是图示了在执行本公开内容中所描述的服务应用后负载均衡技术中的网络设备的示例操作的流程图,网络设备诸如图1-3的示例中所示出的路由器10B。尽管关于特定的设备,即图5的示例中的路由器10B来描述,但是该技术可以被实施、执行或配置为,当转发或以其它方式交换分组或其它类型的数据单元时,由能够执行负载均衡和服务两者的任何类型的网络设备来执行。5 is a flowchart illustrating example operation of a network device, such as router 10B shown in the examples of FIGS. 1-3 , in performing the service post-application load balancing techniques described in this disclosure. Although described with respect to a specific device, router 10B in the example of FIG. Any type of network device to perform both balancing and servicing.

初始地,转发组件50A(示出在图2和3的示例中)接收分组52(110),并且充当入口转发组件,调用流控制单元54。流控制单元54可以访问FIB48以确定分组52是否将被发送到内部下一跳,例如,服务平面34的服务卡36之一,或者经由另一个转发组件发送到内部下一跳,该另一个转发组件充当用于分组52所对应的流的出口转发组件,即出口转发组件50B。在这个意义上,流控制单元54可以确定服务是否将被应用到分组52(112)。换句话说,流控制单元54可以确定分组52将被传输到服务卡36。Initially, forwarding component 50A (shown in the example of FIGS. 2 and 3 ) receives packet 52 ( 110 ), and acts as an ingress forwarding component, invoking flow control unit 54 . Flow control unit 54 may access FIB 48 to determine whether packet 52 is to be sent to an internal next hop, e.g., one of service cards 36 of service plane 34, or to an internal next hop via another forwarding component that forwards The component acts as an egress forwarding component for the flow to which packet 52 corresponds, eg egress forwarding component 50B. In this sense, flow control unit 54 may determine whether a service is to be applied to packet 52 (112). In other words, flow control unit 54 may determine that packet 52 is to be transmitted to service card 36 .

响应于确定服务将被应用到分组52(“是”114),入口转发组件50A的流控制单元54可以生成包括入口识别符的内部服务分组报 头(其还可指代为“服务cookie”,并且关于图4的示例中更详细地描述),并且将这个服务cookie附加到分组52(116、118)。然后,流控制单元54可以经由交换结构84(示出在图3的示例中)将更新的分组56重定向或以其它方式传输到服务平面34的服务卡36(120)。服务卡36可以接收这个分组,移除内部服务分组报头,解析来自内部服务分组报头的入口识别符。然后,服务卡36的控制单元50可以调用服务引擎52,服务引擎52将该服务应用到更新的分组56,生成经服务的分组58(122)。服务分组58被假定不同于分组52在于,当作出转发决定或执行路径选择时所使用的服务分组58的至少一个方面不同于分组52(诸如经服务的分组58的五元组的至少一个方面不同于分组52的五元组)。在这个方面,服务卡36将服务应用到更新的分组56,以生成经服务的分组58,使得经服务的分组58的五元组不同于更新的分组52的五元组。In response to determining that a service is to be applied to packet 52 ("Yes" 114), flow control unit 54 of ingress forwarding component 50A may generate an inner service packet header (which may also be referred to as a "service cookie" and with respect to described in more detail in the example of FIG. 4 ), and append this service cookie to packet 52 ( 116 , 118 ). Flow control unit 54 may then redirect or otherwise transmit updated packet 56 to service card 36 of service plane 34 via switch fabric 84 (shown in the example of FIG. 3 ) ( 120 ). The service card 36 may receive this packet, remove the inner service packet header, and parse the entry identifier from the inner service packet header. Control unit 50 of service card 36 may then invoke service engine 52, which applies the service to updated packet 56, generating serviced packet 58 (122). Service packets 58 are assumed to differ from packet 52 in that at least one aspect of service packet 58 is used when making forwarding decisions or performing routing five-tuple in packet 52). In this regard, service card 36 applies the service to updated packet 56 to generate serviced packet 58 such that the five-tuple of serviced packet 58 is different from the five-tuple of updated packet 52 .

然后,服务卡36可以使用先前从内部服务分组报头所解析的入口识别符,经由交换结构84将经服务的分组58传输回到流控制单元54,以便于再一次地跨转发组件(124)维持负载均衡。就是说,服务卡36可以主动地识别充当用于分组52所对应的流的所谓入口转发组件的、最初接收分组52的、转发组件50A、50B之一(以及为了例证容易性的目的未在图2的示例中示出的任何其它转发组件)。作为结果,服务卡36将经服务的分组58传输到由入口识别符所识别的入口转发组件50A,而不用将散列函数应用到经服务的分组58的至少一部分以识别入口转发组件50A,和/或不用确定向其转发经服务的分组58的下一跳。此外,服务卡36将经服务的分组58传输到入口转发组件50A,使得入口转发组件50A接收该分组,如同该分组已经经由与耦合到另一个网络设备的入口转发组件50A关联的接口(未示出在图2的示例中)由入口转发组件50A接收,而不是经由将服务卡36耦合到入口转发组件50A的交换结构。The service card 36 may then transmit the serviced packet 58 via the switch fabric 84 back to the flow control unit 54 using the ingress identifier previously parsed from the internal service packet header to maintain, again across the forwarding component (124) Load balancing. That is, the service card 36 may actively identify one of the forwarding components 50A, 50B that originally received the packet 52 (and not shown for ease of illustration) acting as a so-called ingress forwarding component for the flow to which the packet 52 corresponds. any other forwarding components shown in the example of 2). As a result, the service card 36 transmits the serviced packet 58 to the ingress forwarding component 50A identified by the ingress identifier without applying a hash function to at least a portion of the serviced packet 58 to identify the ingress forwarding component 50A, and /or do not determine a next hop to which to forward the served packet 58 . In addition, service card 36 transmits serviced packet 58 to ingress forwarding component 50A such that ingress forwarding component 50A receives the packet as if it had been via an interface (not shown) associated with ingress forwarding component 50A coupled to another network device. shown in the example of FIG. 2 ) is received by ingress forwarding component 50A, rather than via the switch fabric coupling service card 36 to ingress forwarding component 50A.

流控制单元54接收这个经服务的分组58,并且使用服务分组58的五元组来访问FIB48,以便于检索一个条目,该条目指定针对 服务分组58所对应的流的下一跳。换句话说,流控制单元54基于经服务的分组58的五元组来确定向其转发经服务的分组58的下一跳(126)。如果流控制单元54最初确定服务将不被应用到分组52(“否”114),流控制单元54然后以相同、如果不是相同则基本相似的方式,确定针对分组52的下一跳。无论如何,流控制单元54使用FIB48来确定多个下一跳中的下一跳。假定流控制单元54识别了牵涉经由与出口转发组件50B关联的接口转发经服务的分组58的下一跳,则流控制单元54将这个分组58转发到出口转发组件50B,出口转发组件50B依次地将分组58转发到下一跳(128、130)。The flow control unit 54 receives this served packet 58 and uses the 5-tuple of the service packet 58 to access the FIB 48 in order to retrieve an entry specifying the next hop for the flow to which the service packet 58 corresponds. In other words, flow control unit 54 determines a next hop to which to forward served packet 58 based on the 5-tuple of served packet 58 ( 126 ). If flow control unit 54 initially determines that the service will not be applied to packet 52 ("NO" 114), flow control unit 54 then determines the next hop for packet 52 in the same, if not substantially similar, manner. Regardless, flow control unit 54 uses FIB 48 to determine the next hop of the plurality of next hops. Assuming that flow control unit 54 identifies the next hop involved in forwarding serviced packet 58 via the interface associated with egress forwarding component 50B, flow control unit 54 forwards this packet 58 to egress forwarding component 50B, which in turn Packet 58 is forwarded to the next hop (128, 130).

图6是图示了示例网络系统140的框图,示例网络系统140在两个或更多链路的聚合束(aggregated bundle)的背景中执行本公开内容中所描述的服务应用后负载均衡技术。在图6的示例中,网络系统140包括公用网络142、服务提供商网络144和多个订户网络146A-146N(“订户网络146”)。尽管被示出为包括公用网络142、服务提供商网络144和订户网络146,但是网络系统140仅是在其中本公开内容的技术可以实施的网络系统的类型的一个示例。尽管未在图1的示例中示出,但是网络系统140可以包括另外的服务提供商网络、订户网络和其它类型的网络,诸如接入网络、专用网络或通常被采用以将一个或多个服务(诸如数据服务、因特网协议电视(IPTV)服务、通过互联网协议的语音(VoIP)服务、视频电话服务或其它任何类型的设备)传递到订户网络的任何其它类型的网络。6 is a block diagram illustrating an example network system 140 that performs the service post-application load balancing techniques described in this disclosure in the context of an aggregated bundle of two or more links. In the example of FIG. 6 , network system 140 includes public network 142 , service provider network 144 , and a plurality of subscriber networks 146A- 146N ("subscriber networks 146"). Although shown as including public network 142, service provider network 144, and subscriber network 146, network system 140 is but one example of the type of network system in which the techniques of this disclosure may be implemented. Although not shown in the example of FIG. 1 , network system 140 may include additional service provider networks, subscriber networks, and other types of networks, such as access networks, private networks, or generally employed to integrate one or more service Any other type of network (such as data services, Internet Protocol Television (IPTV) services, Voice over Internet Protocol (VoIP) services, video telephony services, or any other type of device) delivered to the subscriber network.

公用网络142表示一般地由任何具有网络连接的能够联网的设备公开可访问的网络。公用网络142可以表示通常指代为因特网的网络,因特网指代公共的层三(L3)分组交换网络(其中对本公开内容中的由数字所跟随的层的引用,指代了在开放系统互连(OSI)模型中的对应层)。虽然未示出在图1的示例中,公用网络142一般包括互联网络设备的合集,通过示例的方式提名一些,诸如数据服务器、应用服务器、打印服务器、膝上型计算机、台式计算机、工作站、蜂窝电话(包括所谓的“智能电话”)、路由器、交换机 和集线器。典型地,尽管公开地可用,但是公用网络142仅由具有主动网络连接的能够联网的设备可访问,其中这样的网络连接通常由服务提供商网络提供,诸如以典型地指代为“数据服务”形式的服务提供商网络144。Public network 142 represents a network generally publicly accessible by any network-capable device with a network connection. The public network 142 may represent a network commonly referred to as the Internet, which refers to the public Layer 3 (L3) packet-switched network (where references to layers followed by numbers in this disclosure refer to the network in the Open Systems Interconnection ( corresponding layer in the OSI) model). Although not shown in the example of FIG. 1 , public network 142 generally includes a collection of interconnected network devices, to name a few by way of example, such as data servers, application servers, print servers, laptops, desktops, workstations, cellular Phones (including so-called "smart phones"), routers, switches, and hubs. Typically, although publicly available, the public network 142 is only accessible by network-capable devices with an active network connection, where such network connection is usually provided by a service provider network, such as in the form typically referred to as "data services" The service provider network 144 of .

服务提供商网络144表示由服务提供商(其通常是私有实体)所拥有并操作的一个或多个网络,该一个或多个网络提供用于由订户网络,诸如订户网络146,消费的一个或多个服务。服务提供商网络144典型地是提供公用网络142和订户网络146之间的L3连接的L3分组交换网络。经常地,由服务提供商网络144所提供的该L3连接作为数据服务或因特网服务而被销售,并且订户可以订购该数据服务。近来,通过不同类型的网络的方式从服务提供商的L3分组交换网络所提供的服务,诸如电话服务或电视服务,分别通过经由以VoIP、视频点播(VoD)和IPTV的形式的、服务提供商的L3分组交换网络来提供。作为结果,服务提供商网络144可以提供指代为“三网合一分组”的服务,其包括通过L3分组交换网络的数据、声音和电视服务的每一个。因此,服务提供商网络144可以表示一种L3分组交换网络,该L3分组交换网络提供了数据、声音、电视和用于由订户购买的、以及随后由订户网络146消费的任何其它类型的服务。Service provider network 144 represents one or more networks owned and operated by a service provider (which is typically a private entity) that provides one or more networks for consumption by a subscriber network, such as subscriber network 146 multiple services. Service provider network 144 is typically an L3 packet-switched network that provides L3 connectivity between public network 142 and subscriber network 146 . Often, the L3 connectivity provided by the service provider network 144 is sold as a data service or Internet service, and subscribers can subscribe to the data service. Recently, services provided from L3 packet-switched networks of service providers, such as telephony services or television services, are provided via different types of networks via service providers in the form of VoIP, Video on Demand (VoD) and IPTV respectively. L3 packet switching network to provide. As a result, service provider network 144 may offer a service referred to as "triple play" that includes each of data, voice, and television services over an L3 packet-switched network. Thus, service provider network 144 may represent an L3 packet-switched network that provides data, voice, television, and any other type of service for purchase by subscribers and subsequent consumption by subscriber network 146 .

订户网络146每一个表示由服务提供商网络144所提供的这些服务的一个或多个订户所拥有并操作的网络。虽然为了例证容易性的目的未示出在图1的示例中,但是订户网络146可以每一个包括一个或多个能够联网的设备,诸如能够联网的打印机、服务器、膝上型计算机、台式计算机、蜂窝电话(包括智能电话)、平板或片板计算机(slate computer)、笔记本、个人媒体播放器、游戏控制器、能够联网的高解析度光盘播放器(诸如蓝光盘播放器)、数字视频光盘播放器、支持因特网(Internet-ready)的电视和电子阅读设备。Subscriber networks 146 each represent a network owned and operated by one or more subscribers to the services offered by service provider network 144 . Although not shown in the example of FIG. 1 for purposes of ease of illustration, subscriber networks 146 may each include one or more network-enabled devices, such as network-enabled printers, servers, laptops, desktops, Cellular phones (including smart phones), tablet or slate computers, notebooks, personal media players, game controllers, network-capable high-resolution disc players (such as Blu-ray disc players), digital video disc playback browsers, Internet-ready televisions, and e-reading devices.

拥有并操作订户网络146的订户可以从拥有并操作服务提供商 网络144的服务提供商订购一个或多个服务,其中这样的订户协议一般指示了服务的级别、服务的质量或服务的类别,服务提供商一般同意该服务的级别、服务的质量或服务的类别来提供一个或多个服务。例如,拥有并操作订户网络146中对应的一个订户网络的订户之一,可以订购特定带宽的数据服务,诸如每秒10兆比特(Mbp),每秒10兆比特(Mbp)通常处于低于如下速率的服务类别中,对该速率服务提供商同意提供较少延迟容忍的服务,诸如IPTV或VoIP。在一些实例中,服务提供商可以同意将所有的服务提供给在给定的服务类别订购的订户。不论在个别的服务的基础上或者在订户的基础上,服务提供商一般根据协定的服务类别同意将服务提供给它的订户中的任何一个给定的订户。A subscriber who owns and operates subscriber network 146 may subscribe to one or more services from a service provider who owns and operates service provider network 144, where such subscriber agreement generally indicates a level of service, quality of service, or category of service, service Providers generally agree on the level of service, quality of service, or category of service to provide one or more services. For example, one of the subscribers who owns and operates a corresponding one of the subscriber networks 146 may subscribe to a data service of a particular bandwidth, such as 10 megabits per second (Mbp), typically at a rate below In the class of service for the rate at which the service provider agrees to provide a less delay tolerant service, such as IPTV or VoIP. In some instances, a service provider may agree to provide all services to subscribers subscribed in a given class of service. Whether on an individual service basis or on a subscriber basis, a service provider generally agrees to provide a service to any given one of its subscribers according to an agreed service category, whether on an individual service basis or on a subscriber basis.

为了根据协定的一个或多个服务类别提供这些服务,将对应于这些服务的业务量转发的、服务提供商网络144的网络设备实施调度算法来调度该订户业务量,用于以传递该业务量来满足关联于该订户的一个或多个服务类别的方式,传递下游(意为从公用网络142到订户网络146)到订户网络146。这些调度算法可以包括加权公平排队(WFQ)算法,然而,WFQ算法一般难以实施,因为它需要大量的计算以正确地实施WFQ。因此,调度算法可以包括近似WFQ算法,诸如加权循环(WRR)调度算法和差额循环(DRR)调度算法。可替换地,调度算法可以包括2004年4月1日提交的、标题为“Fair Bandwidth Allocation Based onConfigurable Service Classes”的美国专利No.7,606,154中阐述的调度算法,其如同本文阐述了它的整体地通过引用合并于此。这些调度算法寻求以公平地将带宽分派给每个数据流的方式来调度流量,从而服务类别的协定可以被满足同时还满足任何延迟要求,其也可以形成服务类别的一部分。To provide these services according to the agreed service class or classes, the network equipment of the service provider network 144 that forwards traffic corresponding to these services implements a scheduling algorithm to schedule the subscriber traffic for delivery of the traffic Passed downstream (meaning from public network 142 to subscriber network 146 ) to subscriber network 146 in a manner to satisfy one or more classes of service associated with the subscriber. These scheduling algorithms may include Weighted Fair Queuing (WFQ) algorithms, however, WFQ algorithms are generally difficult to implement because it requires a large amount of computation to implement WFQ correctly. Accordingly, scheduling algorithms may include approximate WFQ algorithms, such as Weighted Round Robin (WRR) scheduling algorithms and Deficit Round Robin (DRR) scheduling algorithms. Alternatively, the scheduling algorithm may include the scheduling algorithm set forth in U.S. Patent No. 7,606,154, entitled "Fair Bandwidth Allocation Based on Configurable Service Classes," filed April 1, 2004, as set forth herein in its entirety through This reference is hereby incorporated. These scheduling algorithms seek to schedule traffic in such a way that bandwidth is fairly allocated to each data flow, so that the agreement of the class of service can be satisfied while also meeting any delay requirements, which may also form part of the class of service.

如图6的示例中进一步示出的,服务提供商网络144包括示出为“路由器148”的示例性网络设备和示出为“接入设备150”的另一个网络设备。路由器148表示从订户网络146上游地、或者到订户网络146下游地路由或者以其他方式转发业务量的任何网络设备。 典型地,路由器148表示L3分组—交换设备,该L3分组—交换设备在L3操作,来接收描述了服务提供商网络144的当前拓扑的路由信息。然后,路由器148处理这个路由信息,通过服务提供商网络144的拓扑表现选择路径,来到达所有可用的目的地,以生成转发信息。换句话说,路由器148将这些路径减少到所谓的“下一跳”,“下一跳”识别了去往特定目的地的、它的接口业务量中的哪一个将被转发,其中转发信息包括下一跳的这个列表。然后,路由器148在路由器148的转发平面中安装这个转发信息,于是转发平面以在上面更详细地描述过的方式根据该转发信息转发所接收的流量。As further shown in the example of FIG. 6, service provider network 144 includes an exemplary network device shown as "router 148" and another network device shown as "access device 150." Router 148 represents any network device that routes or otherwise forwards traffic upstream from subscriber network 146 or downstream from subscriber network 146 . Router 148 typically represents an L3 packet-switching device operating at L3 to receive routing information describing the current topology of service provider network 144 . Router 148 then processes this routing information to route through the topology representation of service provider network 144 to all available destinations to generate forwarding information. In other words, router 148 reduces these paths to so-called "next hops," which identify which of its interface traffic is to be forwarded to a particular destination, where the forwarding information includes This list of next hops. Router 148 then installs this forwarding information in the forwarding plane of router 148, whereupon the forwarding plane forwards received traffic according to the forwarding information in the manner described in more detail above.

接入设备150表示促进了订户网络146去往服务提供商网络144的接入的网络设备。接入设备150的示例包括数字用户线路接入复用器(DSLAM)和电缆调制解调器终端系统(CMTS)。典型地,接入设备150将来自订户网络146去往公用网络142的上游业务量聚合,并且将来自公用网络142去往单个订户网络146的聚合下游业务量解聚合(或解复用)聚合的下游业务量。在一些实例中,接入设备150可以复制一些类型的下游业务量(例如,广播和多播业务量)并且将这个复制的流量传递到订户设备146。Access device 150 represents a network device that facilitates access of subscriber network 146 to service provider network 144 . Examples of access device 150 include Digital Subscriber Line Access Multiplexers (DSLAMs) and Cable Modem Termination Systems (CMTS). Typically, access device 150 aggregates upstream traffic from subscriber networks 146 to public network 142 and de-aggregates (or demultiplexes) aggregated downstream traffic from public network 142 to individual subscriber networks 146 Downstream business volume. In some examples, access device 150 may replicate some types of downstream traffic (eg, broadcast and multicast traffic) and pass this replicated traffic to subscriber device 146 .

经常地,服务提供商采用指代为“聚合束”的技术来互相连接路由器,并且经由两个或更多链路接入节点。示例聚合束包括聚合以太网束,如IEEE802.3ad中的多链路分段聚合所定义的,聚合以太网束可以使用链路聚合控制协议(LACP)来配置和维持,多链路分段聚合的内容通过引用并入本文。逻辑上,这些聚合束表现为去往路由器和/或接入节点的单个连接。聚合束提供了许多益处。第一,聚合束可以在路由器和接入节点之间提供连接的冗余。为了举例说明,如果聚合束的一个链路失效,通过聚合束互相连接的路由器和接入节点可以将先前通过聚合束的该失效连接被发送的流量重定向到聚合束的活动链路之一,因此在路由器和接入节点之间提供连接的冗余。第二,考虑到聚合束的多个链路可以被采用来传递业务量而不是单个链路,聚合束的使用可以提供增大的网络容量(其经常 以带宽为单位来测量)。第三,聚合束可以增进带宽可扩展性,作为一个示例,因为服务提供商可以用两个链路建立聚合束,并且然后响应于增加的订户带宽需求,逐步地增加聚合束中链路的数量。以该方式,通过仅提供充足的带宽来满足当前订户带宽需求而非预期的将来订户带宽需求,服务提供商可以减缓资本支出。多机架链路聚合的进一步示例性细节在通过引用合并于此的、标题为“AVTIVE-ACTIVE MULTI-HOMING WITH MULTI-CHASSIS PSEUDOWIRE LINKAGGREGATION”的美国专利申请13162157中举例说明。Frequently, service providers employ a technique referred to as "bundling" to interconnect routers and access nodes via two or more links. Example aggregated bundles include aggregated Ethernet bundles, as defined by Multi-Link Segment Aggregation in IEEE 802.3ad, aggregated Ethernet bundles may be configured and maintained using the Link Aggregation Control Protocol (LACP), Multi-Link Segment Aggregation The content of is incorporated herein by reference. Logically, these aggregated bundles appear as a single connection to routers and/or access nodes. Aggregated bundles offer many benefits. First, aggregation bundles can provide redundancy of connections between routers and access nodes. To illustrate, if one link of the aggregated bundle fails, routers and access nodes interconnected by the aggregated bundle may redirect traffic previously sent over that failed connection of the aggregated bundle to one of the active links of the aggregated bundle, Redundancy of connections is thus provided between routers and access nodes. Second, the use of aggregated bundles can provide increased network capacity (which is often measured in units of bandwidth) given that multiple links of an aggregated bundle can be employed to carry traffic rather than a single link. Third, aggregated bundles can improve bandwidth scalability, as an example, because a service provider can build an aggregated bundle with two links, and then incrementally increase the number of links in the aggregated bundle in response to increasing subscriber bandwidth demands . In this way, service providers can mitigate capital expenditures by providing only sufficient bandwidth to meet current subscriber bandwidth needs rather than anticipated future subscriber bandwidth needs. Further exemplary details of multi-chassis link aggregation are exemplified in US Patent Application 13162157, entitled "AVTIVE-ACTIVE MULTI-HOMING WITH MULTI-CHASSIS PSEUDOWIRE LINKAGGREGATION," incorporated herein by reference.

尽管聚合束可以为改进冗余、带宽和可扩展性作准备,但是在调度流量来满足服务提供商已经同意提供给它的订户的服务类别,同时还利用由这种聚合束所提供的增加的带宽中,路由器和/或接入节点可能经历困难。为了举例说明,考虑聚合束的一个部署,该部署将订户的带宽的(经常,相等的)一部分分派给聚合束的每个链路,其中服务提供商在它的服务类别方面已经同意将该订户的带宽提供给订户。例如,如果订户已经购买了12Mbp的服务,服务提供商可以配置它的路由器来通过聚合束的三个链路中的每一个提供这个12Mpb的1/3。但是,聚合束的这个部署是不充分的,因为订户业务量流(其中,流通常由包括源地址、源端口、目的地地址、目的地端口和协议的所谓五元组识别)跨聚合束的链路可能不是均匀分布的,导致了服务类别的不正确应用,诸如整形(过滤)、监管、缓存、优先排列等。此外,一些流可以比其它流消耗更多的带宽,从而路由器可以整形一些流,使它们不超过每个链路的带宽上限(即上述示例中的4Mbp),尽管通过另外两个链路的流没有消耗为这些链路上的对应订户所分派的整个4Mbp。Although aggregated bundles can provide for improved redundancy, bandwidth, and scalability, there is no need to schedule traffic to meet the class of service that a service provider has agreed to provide to its subscribers, while also taking advantage of the increased benefits offered by such aggregated bundles. Routers and/or access nodes may experience difficulties in bandwidth. To illustrate, consider a deployment of an aggregated bundle that assigns a (often, equal) portion of the subscriber's bandwidth to each link of the aggregated bundle, where the service provider has agreed in its class of service that the subscriber of bandwidth provided to subscribers. For example, if a subscriber has purchased 12Mpb service, the service provider can configure its routers to provide 1/3 of this 12Mpb over each of the three links of the aggregated bundle. However, this deployment of aggregated bundles is insufficient because subscriber traffic flows (where flows are usually identified by so-called five-tuples including source address, source port, destination address, destination port, and protocol) span Links may not be evenly distributed, resulting in incorrect application of service classes such as shaping (filtering), policing, caching, prioritization, etc. Also, some flows can consume more bandwidth than others, so the router can shape some flows so that they do not exceed the bandwidth cap of each link (that is, 4Mbps in the above example), even though the flow through the other two links The entire 4Mbps allocated for the corresponding subscribers on these links is not consumed.

另一个聚合束部署将链路定义为在链路(或OSI模型的层二)级是活动的和备用的,使得通过聚合束的所有活动业务量流使用一半的聚合束的链路。这个部署比在先前所讨论的部署中可以增进更准确的整形,同时还提供链路冗余。但是,这个活动的/备用的部署 将带宽限制到单个链路,损失了使用聚合束的可扩展性方面和改进的带宽的方面。Another bundle deployment defines links as active and standby at the link (or layer two of the OSI model) level such that all active traffic flows through the bundle use half of the bundle's links. This deployment can promote more accurate shaping than in the previously discussed deployments, while also providing link redundancy. However, this active/standby deployment limits the bandwidth to a single link, losing both the scalability aspect and the improved bandwidth aspect of using aggregated bundles.

除了在利用由聚合束所提供的益处,同时还确保准确或者至少合理的服务类别调度中的这些困难之外,在许多聚合束部署中,考虑到服务应用的聚合束的实施方式可能遭受上面关于在等价多路径的环境中的路由器10B所描述的许多问题。就是说,接入节点150可以跨聚合束152(其还可以指代为“链路聚合组”或“LAG”)的链路执行负载均衡。服务的应用可以以服务应用后或之后需要作出转发决定的方式影响分组。但是,路由器148的服务卡(其可以与类似于图2的示例中所示出的服务卡36)可以不被装备或配置为处理分组转发决定。典型地,这些服务卡以上面所描述的方式将散列应用到分组五元组,来将这些分组伪随机地重定向回到转发组件之一。In addition to these difficulties in exploiting the benefits offered by aggregated bundles while also ensuring accurate or at least reasonable service class scheduling, in many aggregated bundle deployments implementations that consider service applications of aggregated bundles may suffer from the above Router 10B in an equal-cost multipath environment describes many of the problems. That is, access node 150 may perform load balancing across links of aggregation bundle 152 (which may also be referred to as a "link aggregation group" or "LAG"). Application of a service may affect packets in such a way that forwarding decisions need to be made after or after application of the service. However, a service card of router 148 (which may be similar to service card 36 shown in the example of FIG. 2 ) may not be equipped or configured to handle packet forwarding decisions. Typically, these service cards apply a hash to the packet quintuple in the manner described above to pseudo-randomly redirect the packets back to one of the forwarding components.

但是,这些散列函数仅是伪随机的,并且作为结果,服务卡可以以实际上不导致跨转发组件的负载均匀分布的方式,将分组传输回到转发组件。此外,这些服务卡可能不确保根据链路聚合协议在两个或更多个转发组件之间均衡的负载被维持。替代地,这些服务卡可以将这些分组发送到甚至不包括在链路的聚合组中的转发组件,进一步扭曲了跨这些特定转发组件的均衡负载上的任何尝试。However, these hash functions are only pseudo-random, and as a result the service card may transmit packets back to the forwarding components in a manner that does not actually result in an even distribution of load across the forwarding components. Furthermore, these service cards may not ensure that load balancing between two or more forwarding components according to the link aggregation protocol is maintained. Alternatively, the service cards may send these packets to forwarding components that are not even included in the aggregation group of links, further distorting any attempt at balancing load across these particular forwarding components.

因此,路由器148可以实施在本公开内容中所期望的技术,来在服务应用之后执行负载均衡。路由器148可以用多个转发组件中的第一转发组件来接收分组,该第一转发组件充当用于所接收的分组所对应的分组流的入口转发组件。这个入口转发组件可以以上面所描述的方式确定服务将被应用到分组。在识别或以其它方式确定服务将被应用到分组后,响应于服务将被应用到该分组的确定,路由器148的入口转发组件然后可以更新该分组,以包括识别该入口转发组件的入口识别符。Thus, router 148 may implement techniques contemplated in this disclosure to perform load balancing after serving applications. Router 148 may receive the packet with a first forwarding component of the plurality of forwarding components acting as an ingress forwarding component for a packet flow to which the received packet corresponds. This ingress forwarding component can determine that a service is to be applied to the packet in the manner described above. After identifying or otherwise determining that the service will be applied to the packet, in response to the determination that the service will be applied to the packet, the ingress forwarding component of router 148 may then update the packet to include an ingress identifier identifying the ingress forwarding component .

一旦该分组用入口识别符更新了,入口转发组件将更新的分组传输到应用该服务的服务卡。然后,服务卡将该服务应用到更新的 分组,以生成经服务的分组,并且将经服务的分组传输到由入口识别符所识别的入口转发组件,以便于将负载维持在当该分组被接收时的负载水平,并且从而潜在地避免了将分组传输到可能已经过载的转发组件。因此,不是在该分组的五元组上执行散列来伪随机地将这个分组分配到转发组件中的任何给定的一个,而是服务卡利用入口识别符来将分组发送回到入口转发组件,用于执行路径选择的目的。Once the packet is updated with the ingress identifier, the ingress forwarding component transmits the updated packet to the service card applying the service. The service card then applies the service to the updated packet to generate a serviced packet and transmits the serviced packet to the ingress forwarding component identified by the ingress identifier so as to maintain the load at load level at that time, and thus potentially avoid transmitting packets to forwarding components that may already be overloaded. Therefore, instead of performing a hash on the five-tuple of the packet to pseudo-randomly assign this packet to any given one of the forwarding components, the service card uses the ingress identifier to send the packet back to the ingress forwarding component , for the purpose of performing path selection.

然后,入口转发组件确定向其转发经服务的分组的多个下一跳中的下一跳。然后,入口转发组件将这个分组传输到与所选择的下一跳对接的转发组件中的第二转发组件(例如,传输到服务提供网络144中的邻近设备,其未示出在图6的示例中)。转发组件中的第二转发组件充当用于这个分组的出口转发组件,并且可以移除任何内部分组报头,执行关于分组格式的一个或多个操作,更新分组报头等。然后,出口转发组件可以将经服务的分组转发到所确定的下一跳。The ingress forwarding component then determines a next hop of the plurality of next hops to forward the serviced packet to. The ingress forwarding component then transmits this packet to a second of the forwarding components interfacing with the selected next hop (e.g., to a neighboring device in the service providing network 144, which is not shown in the example of FIG. 6 middle). A second of the forwarding components acts as an egress forwarding component for this packet, and may remove any internal packet headers, perform one or more operations on the packet format, update the packet header, etc. The egress forwarding component can then forward the serviced packet to the determined next hop.

以该方式,该技术可以通过潜在地避免服务卡的更新,以执行这个路径选择、增进成本的节约。相比于服务卡的散列操作以及在服务卡的更新方面两者,该技术还可以增进减少的实施方式复杂性。另外,通过使得服务卡能够放弃分组的散列来伪随机地识别将充当用于分组的入口转发组件的、但是不被配置为根据负载均衡算法执行路径选择的转发组件,该技术促进了负载均衡。In this way, the technique can enhance cost savings by potentially avoiding service card updates to perform this routing. This technique may also promote reduced implementation complexity compared to both hashing of service cards and in updating of service cards. Additionally, the technique facilitates load balancing by enabling the service card to discard a hash of the packet to pseudo-randomly identify a forwarding component that will act as an ingress forwarding component for the packet, but is not configured to perform path selection according to a load balancing algorithm .

本公开内容的技术可以实施在许多种设备或装置中,包括网络设备、集成电路(IC)或一组IC(即芯片组)。任何组件、模块或单元已经描述为被提供以强调功能的方面,并且不必然需要由不同的硬件单元实现。文中所描述的技术还可以实施在硬件或硬件和软件的任意组合和/或固件中。描述为模块、单元或组件的任何特征可以一起实施在集成逻辑设备中,或者分离地实施为离散但可互操作的逻辑设备。在一些情形中,各种特征可以实施为集成电路设备,诸如集成电路芯片或芯片组。The techniques of this disclosure may be implemented in a wide variety of devices or apparatus, including networking equipment, an integrated circuit (IC), or a group of ICs (ie, a chipset). Any components, modules or units have been described provided to emphasize functional aspects and do not necessarily need to be realized by different hardware units. The techniques described herein may also be implemented in hardware or any combination of hardware and software and/or firmware. Any features described as modules, units or components may be implemented together in an integrated logic device or separately as discrete but interoperable logic devices. In some cases, various features may be implemented as an integrated circuit device, such as an integrated circuit chip or chipset.

如果实施在软件中,该技术可以至少部分地由包括指令的计算机可读存储介质实现,当该指令在处理器中执行时,执行上面所描述的一个或多个方法。计算机可读存储介质可以是物理结构,并且可以形成可以包括封装材料的计算机程序产品的一部分。在这个意义上,计算机可读存储介质可以是非暂时性的。计算机可读存储介质可以包括随机访问存储器(RAM),诸如同步动态随机访问存储器(SDRAM)、只读存贮器(ROM)、非易失性随机访问存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、FLASH存储器、磁性或光学数据存储介质等。If implemented in software, the techniques may be implemented at least in part by a computer-readable storage medium comprising instructions that, when executed in a processor, perform one or more of the methods described above. A computer readable storage medium may be a physical structure and may form part of a computer program product which may include packaging materials. In this sense, computer readable storage media may be non-transitory. The computer readable storage medium may include random access memory (RAM), such as synchronous dynamic random access memory (SDRAM), read only memory (ROM), nonvolatile random access memory (NVRAM), electrically erasable programmable Read-only memory (EEPROM), FLASH memory, magnetic or optical data storage media, etc.

代码或指令可以由一个或多个处理器执行,诸如一个或多个数字信号处理器(DSP)、通用微处理机、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)、或其它等效集成或离散的逻辑电路。因此,如本文所使用的,术语“处理器”可以指代任何前述结构或适合于本文所描述的技术的实施方式的任何其它结构。另外,在一些方面中,本文所描述的功能可以被提供在配置用于编码和解码,或并入组合的视频编解码器中的专用软件模块或硬件模块内。同样,该技术能够完全实施在一个或多个电路或逻辑元件中。The code or instructions may be executed by one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, application specific integrated circuits (ASICs), field programmable logic arrays (FPGAs), or others efficient integrated or discrete logic circuits. Thus, as used herein, the term "processor" may refer to any of the foregoing structure or any other structure suitable for implementation of the techniques described herein. Additionally, in some aspects, the functionality described herein may be provided within dedicated software modules or hardware modules configured for encoding and decoding, or incorporated into a combined video codec. Also, the technology can be fully implemented in one or more circuits or logic elements.

本发明的各种实施方式已经被描述。这些和其它实施方式在下述权利要求书的范围内。Various embodiments of the invention have been described. These and other implementations are within the scope of the following claims.

Claims (21)

1. a kind of method for computer network, including:
A packet is received with the first forwarding component being included in the multiple forwarding components in the network equipment, wherein the multiple First forwarding component of forwarding component serves as the entrance forwarding component for the stream of packets corresponding to the packet that is received;
Determine that a service will be applied to the packet with the entrance forwarding component;
The determination that will be applied to the packet is serviced in response to one, the packet is updated with the entrance forwarding component, with Portal identifier including recognizing the entrance forwarding component;
The packet for updating is transferred to using the service card of the service with the entrance forwarding component;
With the service card by the packet for being served by the renewal, to generate the packet through servicing;
The packet through servicing is transferred to the entrance recognized by the portal identifier with the service card to forward Component, in order to maintain the load balancing of stream of packets across the multiple forwarding component;
The next-hop in the multiple next-hops to its forwarding packet through servicing is determined with the entrance forwarding component;With And
The packet through servicing is forwarded to the second forwarding component in the multiple forwarding component identified next Jump, wherein second forwarding component in the multiple forwarding component served as dividing corresponding to the packet through servicing The outlet forwarding component of group stream.
2. method according to claim 1,
The stream of packets corresponding to wherein described received packet, by including source address, source port, destination-address, mesh Ground port and protocol the first five-tuple identification,
The stream of packets corresponding to the wherein described packet through servicing, by including source address, source port, destination-address, mesh Ground port and protocol the second five-tuple identification,
Wherein the packet being served by the renewal is included, with the service card by it is described be served by it is described more New packet with generate it is described through service packet so that second five-tuple be different from first five-tuple, and
Wherein determine that the next-hop in the multiple next-hop includes, determine to be forwarded to it based on second five-tuple The next-hop in the multiple next-hop of the packet through servicing, is grouped in order to distribute across the multiple next-hop Stream.
3. according to any one of claim 1 and 2 described method, wherein by the packet through servicing be transferred to it is described enter Mouthful forwarding component includes, the packet through servicing is transferred into the institute recognized by the portal identifier with the service card State entrance forwarding component, and without hash function is applied at least a portion of the packet through servicing with recognize it is described enter Mouth forwarding component.
4. according to any one of claim 1 and 2 described method, wherein by the packet through servicing be transferred to it is described enter Mouthful forwarding component includes, the packet through servicing is transferred into the institute recognized by the portal identifier with the service card Entrance forwarding component is stated, and the multiple next-hop to its forwarding packet through servicing is determined without the service card In the next-hop.
5. according to any one of claim 1 and 2 described method, wherein by the packet through servicing be transferred to it is described enter Mouthful forwarding component includes, the packet through servicing is transferred into the entrance forwarding component with the service card so that described Entrance forwarding component receives the packet, as the packet is via the entrance forwarding component, via be coupled to it is another The interface of the entrance forwarding component association of the individual network equipment and receive, rather than described via the service card is coupled to The switching fabric of entrance forwarding component.
6. according to any one of claim 1 and 2 described method, wherein the entrance forwarding component and the multiple forwarding Another forwarding component of component receives many according to equivalence via the adjacent network equipment from the adjacent network equipment Path ECMP algorithms or ECMP-WECMP algorithms of weighting send, dividing including the stream of packets corresponding to the packet The network equipment is coupled to the link of the adjacent network equipment across two or more for group stream, the ECMP or WECMP Load balancing is carried out to stream of packets.
7. according to any one of claim 1 and 2 described method, wherein the entrance forwarding component and the multiple forwarding Another forwarding component of component receives poly- according to link via the adjacent network equipment from the adjacent network equipment Hop algorithm the sends, stream of packets including the stream of packets corresponding to the packet, the link aggregation algorithm is polymerized two Or more link to form single virtual link, and the network equipment is coupled to the adjacent net across two or more The link pair stream of packets of network equipment carries out load balancing.
8. according to any one of claim 1 and 2 described method,
Wherein update the packet includes with including the portal identifier, and internal services packet header is attached to including specifying The packet of the field of the portal identifier, and
Wherein methods described is further included, before the packet through servicing is forwarded into the identified next-hop, Remove the internal services packet header.
9. a kind of network equipment, including:
Multiple forwarding components, wherein the first forwarding component in the multiple forwarding component receives a packet, and serve as use In the entrance forwarding component of the stream of packets corresponding to the packet for being received, determine that a service will be applied to the packet, ring The determination that will be applied to the packet is serviced described in Ying Yu, the packet is updated with including recognizing the entrance forwarding component Portal identifier, and the packet for updating is transferred to using the service card of the service;And
Service card, the service card is served by the packet to the renewal to generate the packet through servicing by described, and will The packet through servicing is transferred to the entrance forwarding component recognized by the portal identifier, in order to across described many Individual forwarding component maintains the load balancing of stream of packets,
Wherein described entrance forwarding component determines the next-hop in the multiple next-hops to its forwarding packet through servicing, with And
The second forwarding component in wherein the multiple forwarding component serves as the stream of packets corresponding to the service packet Outlet forwarding component, and the packet through servicing is forwarded to the identified next-hop.
10. the network equipment according to claim 9,
The stream of packets corresponding to wherein described received packet, by including source address, source port, destination-address, mesh Ground port and protocol the first five-tuple identification,
The stream of packets corresponding to the wherein described packet through servicing, by including source address, source port, destination-address, mesh Ground port and protocol the second five-tuple identification,
Wherein described service card is by following by the packet for being served by the renewal:Institute is served by by described State the packet of renewal to generate the packet through servicing so that second five-tuple is different from first five-tuple, with And
Wherein described entrance forwarding component determines the next-hop in the multiple next-hop by following:Based on described Two five-tuples come determine to its forwarding it is described through service packet the multiple next-hop in the next-hop, in order to across The multiple next-hop distributes stream of packets.
11. according to any one of the claim 9 and 10 described network equipment, wherein the service card by following by institute State the packet through servicing and be transferred to the entrance forwarding component:The packet through servicing is transferred to by the portal identifier The entrance forwarding component for being recognized, and without by hash function be applied to it is described through service packet at least a portion with Recognize the entrance forwarding component.
12. according to any one of the claim 9 and 10 described network equipment, wherein the service card by following by institute State the packet through servicing and be transferred to the entrance forwarding component:The packet through servicing is transferred to by the portal identifier The entrance forwarding component for being recognized, and determine without the service card to described in its forwarding packet through servicing The next-hop in multiple next-hops.
13. according to any one of the claim 9 and 10 described network equipment, wherein the service card by following by institute State the packet through servicing and be transferred to the entrance forwarding component:The packet through servicing is transferred to the entrance forwarding group Part so that the entrance forwarding component receives the packet, as the packet is via the entrance forwarding component, via with It is coupled to the interface of the entrance forwarding component association of another network equipment and receives, rather than via by the service card It is coupled to the switching fabric of the entrance forwarding component.
14. according to any one of the claim 9 and 10 described network equipment, wherein the entrance forwarding component and described many Another forwarding component of individual forwarding component from the adjacent network equipment receive via the adjacent network equipment according to It is that equal cost multipath ECMP algorithms or ECMP-WECMP algorithms of weighting send, including the packet corresponding to the packet The network equipment is coupled to the adjacent network equipment by the stream of packets of stream, the ECMP or WECMP across two or more Link pair stream of packets carry out load balancing.
15. according to any one of the claim 9 and 10 described network equipment, wherein the entrance forwarding component and described many Another forwarding component of individual forwarding component from the adjacent network equipment receive via the adjacent network equipment according to Link aggregation algorithm the sends, stream of packets including the stream of packets corresponding to the packet, the link aggregation algorithm gathers Two or more links are closed to form single virtual link, and the network equipment is coupled to the phase across two or more The link pair stream of packets of the adjacent network equipment carries out load balancing.
16. according to any one of the claim 9 and 10 described network equipment,
First forwarding component in wherein the multiple forwarding component updates the packet by following with including described Portal identifier:Internal services packet header is attached to the packet of the field including specifying the portal identifier, with And
The packet through servicing is being forwarded to the institute by second forwarding component in wherein the multiple forwarding component Before the next-hop of determination, the internal services packet header is removed.
A kind of 17. service cards, during the service card is configured to be inserted into as the network equipment described in claim 9, And multiple forwarding components of the network equipment are coupled to, the service card includes:
Control unit, described in described control unit from the entrance forwarding component served as the stream of packets corresponding to the packet The first forwarding component in multiple forwarding components receives a packet, wherein the packet includes internal services packet header, institute Stating internal services packet header includes specifying the field of portal identifier, and the portal identifier recognizes the entrance forwarding group Part, and
Wherein described control unit performs service-Engine, and the service-Engine will be served by the packet for updating to generate through clothes The packet of business,
Wherein the packet through servicing further is transferred to the institute recognized by the portal identifier by described control unit Entrance forwarding component is stated, in order to maintain the load balancing of stream of packets across the multiple forwarding component.
18. service cards according to claim 17,
The stream of packets corresponding to wherein described received packet, by including source address, source port, destination-address, mesh Ground port and protocol the first five-tuple identification,
The stream of packets corresponding to the wherein described packet through servicing, by including source address, source port, destination-address, mesh Ground port and protocol the second five-tuple identification, and
Wherein when the packet for being served by the renewal by described, the service-Engine by it is described be served by it is described more New packet with generate it is described through service packet so that second five-tuple be different from first five-tuple.
19. according to any one of claim 17 and 18 described service card, wherein described control unit by described through service Packet be transferred to the entrance forwarding component recognized by the portal identifier, and be applied to institute without by hash function At least a portion of packet is stated to recognize the entrance forwarding component.
20. according to any one of claim 17 and 18 described service card, wherein described control unit by described through service Packet be transferred to the entrance forwarding component recognized by the portal identifier, and determine without the service card to Next-hop in multiple next-hops of its forwarding packet through servicing.
21. divide the service according to any one of claim 17 and 18 described service card, wherein described control unit Group is transferred to the entrance forwarding component so that the entrance forwarding component receives packet, as the packet is via described Entrance forwarding component, receives via the interface of the entrance forwarding component association for being coupled to another network equipment, without It is via the switching fabric that the service card is coupled to the entrance forwarding component.
CN201310452253.8A 2012-09-28 2013-09-27 A kind of method for computer network, the network equipment and service card Active CN103746931B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/630,458 2012-09-28
US13/630,458 US9036476B2 (en) 2012-09-28 2012-09-28 Maintaining load balancing after service application with a network device

Publications (2)

Publication Number Publication Date
CN103746931A CN103746931A (en) 2014-04-23
CN103746931B true CN103746931B (en) 2017-07-11

Family

ID=49253174

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310452253.8A Active CN103746931B (en) 2012-09-28 2013-09-27 A kind of method for computer network, the network equipment and service card

Country Status (3)

Country Link
US (1) US9036476B2 (en)
EP (1) EP2713567B1 (en)
CN (1) CN103746931B (en)

Families Citing this family (100)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9787501B2 (en) 2009-12-23 2017-10-10 Pismo Labs Technology Limited Methods and systems for transmitting packets through aggregated end-to-end connection
US9716672B2 (en) 2010-05-28 2017-07-25 Brocade Communications Systems, Inc. Distributed configuration management for virtual cluster switching
US9270486B2 (en) 2010-06-07 2016-02-23 Brocade Communications Systems, Inc. Name services for virtual cluster switching
US8867552B2 (en) 2010-05-03 2014-10-21 Brocade Communications Systems, Inc. Virtual cluster switching
US9769016B2 (en) 2010-06-07 2017-09-19 Brocade Communications Systems, Inc. Advanced link tracking for virtual cluster switching
US9807031B2 (en) 2010-07-16 2017-10-31 Brocade Communications Systems, Inc. System and method for network configuration
US9450870B2 (en) 2011-11-10 2016-09-20 Brocade Communications Systems, Inc. System and method for flow management in software-defined networks
US9374301B2 (en) 2012-05-18 2016-06-21 Brocade Communications Systems, Inc. Network feedback in software-defined networks
US9401872B2 (en) 2012-11-16 2016-07-26 Brocade Communications Systems, Inc. Virtual link aggregations across multiple fabric switches
US9548926B2 (en) * 2013-01-11 2017-01-17 Brocade Communications Systems, Inc. Multicast traffic load balancing over virtual link aggregation
CN104009918B (en) 2013-02-22 2018-03-27 华为技术有限公司 A business message processing method, device and system
US9565099B2 (en) 2013-03-01 2017-02-07 Brocade Communications Systems, Inc. Spanning tree in fabric switches
EP3780512B1 (en) 2013-03-15 2023-10-25 Huawei Technologies Co., Ltd. Packet processing method and apparatus
US9225638B2 (en) 2013-05-09 2015-12-29 Vmware, Inc. Method and system for service switching using service tags
GB2523865B (en) * 2013-07-05 2021-03-24 Pismo Labs Technology Ltd Methods and systems for sending and receiving information data
US9585175B2 (en) * 2013-07-05 2017-02-28 Pismo Labs Technology Limited Methods and systems for transmitting packets through aggregated end-to-end connection
US9755960B2 (en) 2013-09-30 2017-09-05 Juniper Networks, Inc. Session-aware service chaining within computer networks
US9912612B2 (en) 2013-10-28 2018-03-06 Brocade Communications Systems LLC Extended ethernet fabric switches
US9276815B2 (en) 2013-12-27 2016-03-01 Dell Products L.P. N-node virtual link trunking (VLT) systems management plane
US9584397B2 (en) 2013-12-27 2017-02-28 Dell Products L.P. Routing in spine-leaf networking systems
US9548873B2 (en) 2014-02-10 2017-01-17 Brocade Communications Systems, Inc. Virtual extensible LAN tunnel keepalives
US10581758B2 (en) 2014-03-19 2020-03-03 Avago Technologies International Sales Pte. Limited Distributed hot standby links for vLAG
US10476698B2 (en) 2014-03-20 2019-11-12 Avago Technologies International Sales Pte. Limited Redundent virtual link aggregation group
CN104980348A (en) * 2014-04-04 2015-10-14 中兴通讯股份有限公司 Business chain routing method, business chain routing system and device in system
US9246812B2 (en) * 2014-04-17 2016-01-26 Alcatel Lucent Method and apparatus for selecting a next HOP
US9413668B2 (en) * 2014-04-23 2016-08-09 Dell Products L.P. Systems and methods for load-balancing in a data center
US10063473B2 (en) 2014-04-30 2018-08-28 Brocade Communications Systems LLC Method and system for facilitating switch virtualization in a network of interconnected switches
US10225195B2 (en) 2014-05-07 2019-03-05 Adtran, Inc. Telecommunication systems and methods using dynamic shaping for allocating network bandwidth
US10608940B2 (en) 2014-05-07 2020-03-31 Adtran, Inc. Systems and methods for allocating network bandwidth across access modules
EP3141032B1 (en) * 2014-05-07 2019-03-13 Adtran, Inc. Telecommunication systems and methods using dynamic shaping for allocating network bandwidth
US9800471B2 (en) 2014-05-13 2017-10-24 Brocade Communications Systems, Inc. Network extension groups of global VLANs in a fabric switch
US9577927B2 (en) * 2014-06-30 2017-02-21 Nicira, Inc. Encoding control plane information in transport protocol source port field and applications thereof in network virtualization
US10616108B2 (en) 2014-07-29 2020-04-07 Avago Technologies International Sales Pte. Limited Scalable MAC address virtualization
US9807007B2 (en) 2014-08-11 2017-10-31 Brocade Communications Systems, Inc. Progressive MAC address learning
US9838246B1 (en) * 2014-09-30 2017-12-05 Juniper Networks, Inc. Micro-loop prevention using source packet routing
US9531590B2 (en) 2014-09-30 2016-12-27 Nicira, Inc. Load balancing across a group of load balancers
US10135737B2 (en) 2014-09-30 2018-11-20 Nicira, Inc. Distributed load balancing systems
US10129077B2 (en) 2014-09-30 2018-11-13 Nicira, Inc. Configuring and operating a XaaS model in a datacenter
US9635148B2 (en) * 2014-10-31 2017-04-25 Aruba Networks, Inc. Partitioning data sets for transmission on multiple physical links
US10263861B2 (en) 2014-11-07 2019-04-16 Cisco Technology, Inc. Multi-path aware tracing and probing functionality at service topology layer
US20160142269A1 (en) * 2014-11-18 2016-05-19 Cisco Technology, Inc. Inline Packet Tracing in Data Center Fabric Networks
US9705775B2 (en) * 2014-11-20 2017-07-11 Telefonaktiebolaget Lm Ericsson (Publ) Passive performance measurement for inline service chaining
US9838286B2 (en) 2014-11-20 2017-12-05 Telefonaktiebolaget L M Ericsson (Publ) Passive performance measurement for inline service chaining
CN105791167B (en) * 2014-12-25 2019-01-25 华为技术有限公司 A resource reservation method, device and system
US9577884B2 (en) * 2015-01-01 2017-02-21 Bank Of America Corporation Enterprise quality assurance and lab management tool
US9942097B2 (en) 2015-01-05 2018-04-10 Brocade Communications Systems LLC Power management in a network of interconnected switches
US10003552B2 (en) 2015-01-05 2018-06-19 Brocade Communications Systems, Llc. Distributed bidirectional forwarding detection protocol (D-BFD) for cluster of interconnected switches
US10038592B2 (en) 2015-03-17 2018-07-31 Brocade Communications Systems LLC Identifier assignment to a new switch in a switch group
US10594743B2 (en) 2015-04-03 2020-03-17 Nicira, Inc. Method, apparatus, and system for implementing a content switch
US10579406B2 (en) 2015-04-08 2020-03-03 Avago Technologies International Sales Pte. Limited Dynamic orchestration of overlay tunnels
US9819577B2 (en) * 2015-05-29 2017-11-14 Cisco Technology, Inc. Adjusting control-plane allocation of packet processing resources
US10505846B2 (en) 2015-07-22 2019-12-10 Cisco Technology, Inc. Resilient segment routing service hunting with TCP session stickiness
US10439929B2 (en) 2015-07-31 2019-10-08 Avago Technologies International Sales Pte. Limited Graceful recovery of a multicast-enabled switch
US10171303B2 (en) 2015-09-16 2019-01-01 Avago Technologies International Sales Pte. Limited IP-based interconnection of switches with a logical chassis
US10225331B1 (en) * 2015-09-23 2019-03-05 EMC IP Holding Company LLC Network address translation load balancing over multiple internet protocol addresses
CN105338058B (en) * 2015-09-24 2018-12-07 新浪网技术(中国)有限公司 A kind of method and device that application updates
US9942140B2 (en) * 2015-10-08 2018-04-10 Arista Networks, Inc. Dynamic forward information base prefix optimization
US9912614B2 (en) 2015-12-07 2018-03-06 Brocade Communications Systems LLC Interconnection of switches based on hierarchical overlay tunneling
US10237187B2 (en) * 2016-04-29 2019-03-19 Citrix Systems, Inc. System and method for service chain load balancing
US10263881B2 (en) * 2016-05-26 2019-04-16 Cisco Technology, Inc. Enforcing strict shortest path forwarding using strict segment identifiers
US10103992B1 (en) * 2016-06-27 2018-10-16 Amazon Technologies, Inc. Network traffic load balancing using rotating hash
CN107634912B (en) * 2016-07-19 2020-04-28 华为技术有限公司 Load balancing method, device and equipment
US10819626B2 (en) * 2016-08-04 2020-10-27 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for updating multiple multiprotocol label switching (MPLS) bidirectional forwarding detection (BFD) sessions
US9762495B1 (en) * 2016-09-13 2017-09-12 International Business Machines Corporation Weighted distribution across paths of degraded quality
US10237090B2 (en) 2016-10-28 2019-03-19 Avago Technologies International Sales Pte. Limited Rule-based network identifier mapping
US11182125B2 (en) * 2017-09-07 2021-11-23 Ocient Inc. Computing device sort function
US10805181B2 (en) 2017-10-29 2020-10-13 Nicira, Inc. Service operation chaining
US11012420B2 (en) 2017-11-15 2021-05-18 Nicira, Inc. Third-party service chaining using packet encapsulation in a flow-based forwarding element
US10680966B2 (en) * 2017-12-27 2020-06-09 Juniper Networks, Inc. Intelligent buffering for packet reordering by virtual nodes within a network device
CN109981455A (en) * 2017-12-28 2019-07-05 中兴通讯股份有限公司 A kind of tunnel implementation and device
CN109995654B (en) * 2017-12-29 2022-05-20 中兴通讯股份有限公司 Method and device for transmitting data based on tunnel
CN107948088B (en) * 2018-01-05 2021-10-01 宝牧科技(天津)有限公司 Method for balancing network application layer load
US10797910B2 (en) 2018-01-26 2020-10-06 Nicira, Inc. Specifying and utilizing paths through a network
US10659252B2 (en) 2018-01-26 2020-05-19 Nicira, Inc Specifying and utilizing paths through a network
US20190260657A1 (en) * 2018-02-21 2019-08-22 Cisco Technology, Inc. In-band performance loss measurement in ipv6/srv6 software defined networks
US11184235B2 (en) * 2018-03-06 2021-11-23 Cisco Technology, Inc. In-band direct mode performance loss measurement in software defined networks
US10805192B2 (en) 2018-03-27 2020-10-13 Nicira, Inc. Detecting failure of layer 2 service using broadcast messages
US10728174B2 (en) 2018-03-27 2020-07-28 Nicira, Inc. Incorporating layer 2 service between two interfaces of gateway device
US10944673B2 (en) 2018-09-02 2021-03-09 Vmware, Inc. Redirection of data messages at logical network gateway
US11595250B2 (en) 2018-09-02 2023-02-28 Vmware, Inc. Service insertion at logical network gateway
US10461873B1 (en) * 2018-09-17 2019-10-29 Fujitsu Limited Disaggregated hybrid optical transport network, internet protocol, and Ethernet switching system
CN111510393B (en) * 2019-01-30 2023-10-31 阿里巴巴集团控股有限公司 Traffic scheduling method, device and system
US11321113B2 (en) 2019-02-22 2022-05-03 Vmware, Inc. Creating and distributing service chain descriptions
CN111865810B (en) * 2019-04-30 2022-08-09 华为技术有限公司 Congestion information acquisition method, system, related equipment and computer storage medium
US11159431B2 (en) * 2019-09-25 2021-10-26 Juniper Networks, Inc Apparatus, system, and method for determining traffic load distributions in connection with routes of hierarchical forwarding information bases
US11140218B2 (en) 2019-10-30 2021-10-05 Vmware, Inc. Distributed service chain across multiple clouds
US11283717B2 (en) 2019-10-30 2022-03-22 Vmware, Inc. Distributed fault tolerant service chain
US11223494B2 (en) 2020-01-13 2022-01-11 Vmware, Inc. Service insertion for multicast traffic at boundary
US11153406B2 (en) 2020-01-20 2021-10-19 Vmware, Inc. Method of network performance visualization of service function chains
US11659061B2 (en) 2020-01-20 2023-05-23 Vmware, Inc. Method of adjusting service function chains to improve network performance
US11743172B2 (en) 2020-04-06 2023-08-29 Vmware, Inc. Using multiple transport mechanisms to provide services at the edge of a network
US11606719B2 (en) * 2020-09-24 2023-03-14 Juniper Networks, Inc. Application identification and path selection at a wireless access point for local network traffic breakout
CN114268584A (en) * 2020-09-16 2022-04-01 华为技术有限公司 Method and related device for forwarding message
US11799758B2 (en) * 2020-10-23 2023-10-24 Insight Automation, Inc. System and method for relative addressing based on physical topology
US11734043B2 (en) 2020-12-15 2023-08-22 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
US11611625B2 (en) 2020-12-15 2023-03-21 Vmware, Inc. Providing stateful services in a scalable manner for machines executing on host computers
WO2022184267A1 (en) * 2021-03-05 2022-09-09 Huawei Technologies Co., Ltd. System and method for transmitting a data packet
US12040955B2 (en) * 2022-11-08 2024-07-16 Be Broadband Technologies (Bbt.Live) Ltd. System and method for the management and optimization of software defined networks
CN118101785A (en) * 2022-11-18 2024-05-28 中兴通讯股份有限公司 Data message transmission method, switch and storage medium
US12126528B2 (en) * 2023-03-24 2024-10-22 Nokia Solutions And Networks Oy Egress rerouting of packets at a communication device

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1675902A (en) * 2002-08-21 2005-09-28 西门子公司 Efficient Intra-Domain Routing in Packet Networks
US7299296B1 (en) * 2002-09-18 2007-11-20 Juniper Networks, Inc. Filtering data flows based on associated forwarding tables
EP1892905A1 (en) * 2006-08-21 2008-02-27 Juniper Networks, Inc. Multi-chassis router with multiplexed optical interconnects
EP1793542A3 (en) * 2005-12-01 2010-07-21 Juniper Networks, Inc. Non-stop forwarding in a multi-chassis router
CN101815035A (en) * 2009-02-25 2010-08-25 丛林网络公司 Load balancing network traffic over label switched paths using RSVP-TE
US7948986B1 (en) * 2009-02-02 2011-05-24 Juniper Networks, Inc. Applying services within MPLS networks

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5469208A (en) 1993-05-26 1995-11-21 Intel Corporation Dequantization using decrements and multiply
US6847645B1 (en) 2001-02-22 2005-01-25 Cisco Technology, Inc. Method and apparatus for controlling packet header buffer wrap around in a forwarding engine of an intermediate network node
US8532127B2 (en) 2001-10-19 2013-09-10 Juniper Networks, Inc. Network routing using indirect next hop data
US6976154B1 (en) 2001-11-07 2005-12-13 Juniper Networks, Inc. Pipelined processor for examining packet header information
US20030099218A1 (en) 2001-11-29 2003-05-29 Tillotson Brian Jay Apparatus and method for improving noise tolerance of TDMA links
US6922501B2 (en) 2002-04-11 2005-07-26 Nortel Networks Limited Fast optical switch
US7184437B1 (en) 2002-07-17 2007-02-27 Juniper Networks, Inc. Scalable route resolution
US7716725B2 (en) * 2002-09-20 2010-05-11 Fortinet, Inc. Firewall interface configuration and processes to enable bi-directional VoIP traversal communications
US20040210663A1 (en) * 2003-04-15 2004-10-21 Paul Phillips Object-aware transport-layer network processing engine
US8990430B2 (en) 2004-02-19 2015-03-24 Cisco Technology, Inc. Interface bundles in virtual network devices
US7606154B1 (en) 2004-04-01 2009-10-20 Juniper Networks, Inc. Fair bandwidth allocation based on configurable service classes
US7447149B1 (en) 2004-07-13 2008-11-04 Juniper Networks, Inc. Virtual interface with active and backup physical interfaces
US7551551B2 (en) 2004-12-10 2009-06-23 Cisco Technology, Inc. Fast reroute (FRR) protection at the edge of a RFC 2547 network
US7936770B1 (en) 2005-03-08 2011-05-03 Enterasys Networks, Inc. Method and apparatus of virtual class of service and logical queue representation through network traffic distribution over multiple port interfaces
US7860116B2 (en) 2007-05-24 2010-12-28 Worldwide Packets, Inc. Processing packets of a virtual interface associated with tunnels
US20090252033A1 (en) 2008-04-08 2009-10-08 At&T Knowledge Ventures, L.P. System and method of distributing media content
US8339959B1 (en) 2008-05-20 2012-12-25 Juniper Networks, Inc. Streamlined packet forwarding using dynamic filters for routing and security in a shared forwarding plane
US8077726B1 (en) 2008-12-10 2011-12-13 Juniper Networks, Inc. Fast reroute for multiple label switched paths sharing a single interface
US8369345B1 (en) 2009-11-13 2013-02-05 Juniper Networks, Inc. Multi-router system having shared network interfaces

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1675902A (en) * 2002-08-21 2005-09-28 西门子公司 Efficient Intra-Domain Routing in Packet Networks
US7299296B1 (en) * 2002-09-18 2007-11-20 Juniper Networks, Inc. Filtering data flows based on associated forwarding tables
EP1793542A3 (en) * 2005-12-01 2010-07-21 Juniper Networks, Inc. Non-stop forwarding in a multi-chassis router
EP1892905A1 (en) * 2006-08-21 2008-02-27 Juniper Networks, Inc. Multi-chassis router with multiplexed optical interconnects
US7948986B1 (en) * 2009-02-02 2011-05-24 Juniper Networks, Inc. Applying services within MPLS networks
CN101815035A (en) * 2009-02-25 2010-08-25 丛林网络公司 Load balancing network traffic over label switched paths using RSVP-TE

Also Published As

Publication number Publication date
EP2713567A1 (en) 2014-04-02
US20140092738A1 (en) 2014-04-03
CN103746931A (en) 2014-04-23
EP2713567B1 (en) 2017-11-22
US9036476B2 (en) 2015-05-19

Similar Documents

Publication Publication Date Title
CN103746931B (en) A kind of method for computer network, the network equipment and service card
US10454821B2 (en) Creating and maintaining segment routed traffic engineering policies via border gateway protocol
CN112039748B (en) Auto-discovery and auto-scaling of services in a software-defined networking environment
US10432523B2 (en) Routing protocol signaling of multiple next hops and their relationship
US10476817B2 (en) Transport LSP setup using selected fabric path between virtual nodes
US8867349B2 (en) Regulation of network traffic in virtual private networks
US10382333B2 (en) Fabric path context-based forwarding for virtual nodes
US10389635B2 (en) Advertising selected fabric paths for service routes in virtual nodes
CN106464522B (en) Method and system for network function layout
Guichard et al. Definitive MPLS network designs
US11159421B2 (en) Routing table selection in a policy based routing system
CN113347091A (en) Flexible algorithm aware border gateway protocol prefix segment routing identifier
CN110635935A (en) Use multiple EVPN routes for the corresponding service interface of the user interface
WO2017037615A1 (en) A method and apparatus for modifying forwarding states in a network device of a software defined network
CN108353024A (en) It is reduced via the multicast state of tunnelling in routing system
US20130322253A1 (en) System and method for inter-domain rsvp-te lsp load balancing
US11128576B2 (en) Method and system for completing loosely specified MDTS
US10069725B1 (en) Collapsed forwarding for service domain routers
CN108886494A (en) Method and apparatus for establishing and maintaining pseudowires using intermediate system to intermediate system (IS-IS)
US9485176B2 (en) Global IP-based service-oriented network architecture
US7742477B1 (en) Interconnectivity between autonomous systems
WO2017144944A1 (en) Method and apparatus for improving convergence in a spring network
Hung et al. A study on any transport over MPLS (AToM)
Ahmed et al. Implementation of Traffic Engineering and Addressing QoS in MPLS VPN Based IP Backbone
Khalil et al. QOS of MPLS

Legal Events

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