WO2005119971A2 - Method and apparatus for forwarding data in a data communications network - Google Patents

Method and apparatus for forwarding data in a data communications network Download PDF

Info

Publication number
WO2005119971A2
WO2005119971A2 PCT/US2005/017463 US2005017463W WO2005119971A2 WO 2005119971 A2 WO2005119971 A2 WO 2005119971A2 US 2005017463 W US2005017463 W US 2005017463W WO 2005119971 A2 WO2005119971 A2 WO 2005119971A2
Authority
WO
WIPO (PCT)
Prior art keywords
load capacity
node
data
links
lowest cost
Prior art date
Application number
PCT/US2005/017463
Other languages
French (fr)
Other versions
WO2005119971A3 (en
Inventor
Stefano Benedetto Previdi
Clarence Filsfils
Jean-Philippe Vasseur
Original Assignee
Cisco Technology, 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 Cisco Technology, Inc. filed Critical Cisco Technology, Inc.
Priority to EP05749440.3A priority Critical patent/EP1757026B1/en
Publication of WO2005119971A2 publication Critical patent/WO2005119971A2/en
Publication of WO2005119971A3 publication Critical patent/WO2005119971A3/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • H04L45/03Topology update or discovery by updating link state protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/123Evaluation of link metrics
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • H04L45/125Shortest path evaluation based on throughput or bandwidth
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • 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

Definitions

  • the present invention generally relates to forwarding data.
  • the invention relates more specifically to a method and apparatus for forwarding data in a data communications network.
  • packets of data are sent from a source to a destination via a network of elements including links (communication paths such as telephone or optical lines) and nodes (usually routers directing the packet along one or more of a plurality of links connected to it) according to one of various routing protocols.
  • links communication paths such as telephone or optical lines
  • nodes usually routers directing the packet along one or more of a plurality of links connected to it
  • the link state protocol relies on a routing algorithm resident at each node.
  • Each node on the network advertises, throughout the network, links to neighboring nodes and provides a cost associated with each link, which can be based on any appropriate metric such as link bandwidth or delay and is typically expressed as an integer value.
  • a link may have an asymmetric cost, that is, the cost in the direction AB along a link may be different from the cost in the direction BA.
  • each node constructs a link state database (LSDB), which is a map of the entire network topology and from that constructs generally a single optimum route to each available node based on an appropriate algorithm such as, for example, a shortest path first (SPF) algorithm.
  • LSDB link state database
  • SPF shortest path first
  • SPT "spanning tree"
  • RLB routing information base
  • FIB forwarding information base
  • an LSP representing the change is flooded through the network by each node adjacent the change, each node receiving the LSP and sending it to each adjacent node.
  • the first node identifies the optimum route to that destination and forwards the packet to the next node along that route.
  • the next node repeats this step and so forth.
  • data is forwarded along a single link to an adjacent node but in some instances an "equal cost path split" occurs in which two or more equal lowest cost routes are available. In that case the forwarding node will implement load balancing whereby the load is shared equally between the links.
  • FIG. 1 is a representation of a network illustrating a method of forwarding data
  • FIG. 2 is a representation of an alternative network illustrating a method of forwarding data
  • FIG. 3 is a representation of a network illustrating in more detail a method of forwarding data
  • FIG. 4 is a flow diagram that illustrates the steps involved in forwarding data according to the method
  • FIG. 5 is a representation of an alternative network illustrating in more detail a method of forwarding data
  • FIG. 6 is a block diagram illustrating a computer system upon which a method of forwarding data may be implemented.
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT [0016] A method and apparatus for forwarding data in a data communication network is described. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention. [0017] Embodiments are described herein according to the following outline: 1.0 General Overview 2.0 Structural and Functional Overview 3.0 Method of Forwarding Data 4.0 Implementation Mechanisms — Hardware Overview 5.0 Extensions and Alternatives * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
  • the present invention comprises, in one aspect, a method of forwarding data in a data communications network comprising a plurality of nodes and links therebetween, each link having an associated usage cost and a load capacity.
  • a forwarding node identifies a lowest cost route, comprising one or more links, to a destination node. If a plurality of lowest cost routes is identified the forwarding node allocates data for forwarding along each of the lowest cost routes dependent on a relative load capacity of that route.
  • the invention encompasses a computer apparatus and a computer-readable medium configured to carry out the foregoing steps. 2.0 STRUCTURAL AND FUNCTIONAL OVERVIEW
  • FIG. 1 depicts an illustrative network diagram to which the method is applied.
  • the network includes node A (reference numeral 12), node B (reference numeral 14) and node Z (reference numeral 16).
  • Nodes A and B are joined by link 18
  • nodes A and Z are joined by link 20
  • nodes B and Z are joined by link 22.
  • Link 18 is connected at an interface j to node A and link 20 is connected at an interface i to node A.
  • the cost of links 18 and 22 is 1 and the cost of link 20 is 2. All links have a load capacity or bandwidth of 10GB.
  • the route ABZ via links 18 and 24 has a minimum bandwidth of 2.5GB which is thus taken as the route bandwidth.
  • the load was shared evenly between the two routes then congestion of the lower bandwidth route could occur at the same time as under use of the higher bandwidth route.
  • the method described herein allocates the load proportionally with bandwidth.
  • the load is shared in the ratio 10GB:2.5GB i.e. in the ratio 80:20 between route AZ and route ABZ.
  • weighted fair load balancing is achieved.
  • this is achieved using existing routes computed according to the SPF and hence avoiding looping.
  • 3.0 METHOD AND APPARATUS FOR FORWARDING DATA [0024] Implementation of the method will be described in more detail with reference to the SPF algorithm (also known as Dijkstra's algorithm). The algorithm is well understood by the skilled reader and well documented in pre-existing documentation and therefore is not described in detail here but only in summary, for the purposes of clarity.
  • a node calculates its least cost (shortest path) routes to each other node on the network from its LSDB.
  • all nodes on the network are divided into three categories, unknown (UNK), tentative or candidate (TENT) and known (PATHS).
  • UNK unknown
  • TENT tentative or candidate
  • PATHS known
  • node A is assigned to category TENT and all other nodes are assigned to UNK.
  • the algorithm then carries out repeatedly the step of moving the lowest cost node in TENT to PATH and moving all neighbors of that lowest cost node together with their cost via the corresponding interface from node A to TENT.
  • node A is moved to PATH and each of its neighbors to TENT
  • the lowest cost node in TENT is moved into PATH and its neighbors are moved into TENT.
  • the nodes in UNK and TENT gradually deplete until all nodes have been moved to PATH.
  • PATH comprises a list of the lowest cost interface (or next hop) for routing data from node A to each other node.
  • FIG. 3 is a network diagram illustrating a network to which the method described herein can be applied and FIG. 4 which is a flow diagram illustrating in more detail implementation of the method. Implementation of the
  • FIG. 3 shows a network similar to that of FIG. 1 and FIG. 2 but in which an additional node C, reference numeral 26, is introduced between nodes A and Z, joined to node Z via link 28 having cost 1 and capacity 10GB.
  • the cost of link 20 from interface i of node A to node C is reduced to 1.
  • node B has two interfaces k, 1 both connecting node B to node Z via respective links 22, cost 1, bandwidth 10GB and
  • the node is thus categorized X(a, b, c) where: X is the node name a is the root node's outgoing interface used by the best path from the root node to X b is the minimum link bandwidth across that path c is the path metric (cost) of that path. [0030] It will be appreciated that the root node is the node at which the SPF computation is taking place - in the present case, node A. As will be discussed in more detail below, where multiple paths sharing the same root node's outgoing interface share the same metric, the "b" term (capacity) of the resulting path is the maximum of the "b" terms of the underlying paths.
  • step 406 the algorithm assesses whether all nodes have been transferred to PATH. If not then step 402 is repeated. Otherwise in block 408 the forwarding node (or not node), node A, carries out load balancing proportional to the bandwidth ratio as discussed in more detail below. [0034] In relation to the algorithm computed at node A in relation to the network of FIG. 3, therefore, step 402 is repeated and node B is transferred to PATH. As a result an alternative route to Z via interface j (and hence node B) is introduced into TENT as can be seen in Table 3. Table 3
  • Block 402 is repeated once again and in this case node Z is transferred to PATH by either of interfaces i or j as the cost is the same in each case, namely 2. However as the bandwidth via either route ACZ (interface i) or ABZ (interface j) is the same, then the load is spread 50/50 between the interfaces as shown in Table 4.
  • the link between nodes B and Z is assigned the higher of the two available bandwidths via interface k (link 24) and interface 1 (link 22), namely 10GB. It will be further noted that node B will itself implement weighted load balancing between interfaces k and 1 proportional to their respective capacities, that is in ratio 80/20 as discussed in more detail below. Accordingly, in an alternative implementation, the link between nodes B and Z can be assigned the sum of the bandwidth via each interface sharing the same cost metric, namely 12 GB and the remaining steps herein carried out accordingly. Of course if the links carry different costs, then only the lower cost and associated bandwidth are assigned. [0037] Implementation of the method in an instance where alternative routes have unequal capacities can be better understood with reference to FIG.
  • FIG. 5 which is a network diagram illustrating an alternative network.
  • FIG. 5 corresponds effectively to an overlay of the networks of FIG. 1 and FIG. 2 but with the addition of a node D, reference numeral 30 connected between node B and node Z by link 32 having cost 1 and capacity 2.5GB.
  • Node B is linked to node D via links 22 and 24 of costs 1 and respective bandwidths 10GB, 2.5GB.
  • the cost of link 20 between nodes A and Z is 3.
  • node A is moved to PATH and nodes Z and B together with the associated interfaces, bandwidths and costs are moved to TENT as shown in Table 5 below.
  • h block 402 the lowest cost node, node B is moved from TENT to PATH and node D is moved from UNK to TENT.
  • the maximum bandwidth represented, i.e. 10G is associated with node D in TENT as shown in Table 6.
  • Block 402 is once again repeated and node D transferred to PATH.
  • node Z via interface j is added to TENT such that both routes to node Z are provided in TENT either via interface i (route AZ) or interface j (route ABDZ) as can be seen in Table 7 below.
  • Table 7 Table 7
  • Block 402 is repeated once more and both routes to node Z are transferred to PATH as shown in Table 8 below.
  • node A will load balance packets for node Z via the two possible routes AZ (interface i), ABDZ (interface j), but proportional to the ratio of their bandwidth. Accordingly 80% of traffic will go via node AZ and 20% via ABDZ and the traffic is assigned to the interfaces accordingly in ratio 10GB:2.5GB i.e. 80/20.
  • node B will implement load balancing itself between interfaces k and 1 in the ratio of the respective capacities of the links.
  • network capacity is maximized without affecting the SPF calculations nor introducing potential loops.
  • the method can be implemented in one or more of hardware or software elements, or firmware using for example microcode, or any combination thereof, such that detailed explanation is not required by the skilled reader.
  • allocation of the data between the interfaces can be achieved in any appropriate manner, for example as described in “Troubleshooting Load Balancing Over Parallel Links using Cisco Express Forwarding” which is available at the time of this writing on the file “technologies_tech_note09186a0080094806.shtml” in the directory “en/US/tech/tk827/tk831" of the domain cisco.com of the World Wide Web, the entire contents of which are incorporated herein by reference for all purposes as if set forth fully herein.
  • FIG. 6 is a block diagram that illustrates a computer system 140 upon which the method may be implemented. The method is implemented using one or more computer programs running on a network element such as a router device. Thus, in this embodiment, the computer system 140 is a router.
  • Computer system 140 includes a bus 142 or other communication mechanism for communicating information, and a processor 144 coupled with bus 142 for processing information.
  • Computer system 140 also includes a main memory 146, such as a random access memory (RAM), flash memory, or other dynamic storage device, coupled to bus 142 for storing information and instructions to be executed by processor 144.
  • Main memory 146 may also be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 144.
  • Computer system 140 further includes a read only memory (ROM) 148 or other static storage device coupled to bus 142 for storing static information and instructions for processor 144.
  • a storage device 150 such as a magnetic disk, flash memory or optical disk, is provided and coupled to bus 142 for storing information and instructions.
  • a communication interface 158 may be coupled to bus 142 for communicating information and command selections to processor 144.
  • Interface 158 is a conventional serial interface such as an RS-232 or RS-422 interface.
  • An external terminal 152 or other computer system connects to the computer system 140 and provides commands to it using the interface 158.
  • Firmware or software running in the computer system 140 provides a terminal interface or character-based command interface so that external commands can be given to the computer system.
  • a switching system 156 is coupled to bus 142 and has an input interface and a respective output interface (commonly designated 159) to external network elements.
  • the external network elements may include a plurality of additional routers 160 or a local network coupled to one or more hosts or routers, or a global network such as the Internet having one or more servers.
  • the switching system 156 switches information traffic arriving on the input interface to output interface 159 according to pre-determined protocols and conventions that are well known. For example, switching system 156, in cooperation with processor 144, can determine a destination of a packet of data arriving on the input interface and send it to the correct destination using the output interface.
  • the destinations may include a host, server, other end stations, or other routing and switching devices in a local network or Internet.
  • the computer system 140 implements as a router acting as a forwarding node the above described method of forwarding data.
  • the implementation is provided by computer system 140 in response to processor 144 executing one or more sequences of one or more instructions contained in main memory 146.
  • Such instructions may be read into main memory 146 from another computer-readable medium, such as storage device 150.
  • Execution of the sequences of instructions contained in main memory 146 causes processor 144 to perform the process steps described herein.
  • processors in a multi-processing arrangement may also be employed to execute the sequences of instructions contained in main memory 146.
  • hard- wired circuitry may be used in place of or in combination with software instructions to implement the method. Thus, embodiments are not limited to any specific combination of hardware circuitry and software.
  • Non-volatile media includes, for example, optical or magnetic disks, such as storage device 150.
  • Volatile media includes dynamic memory, such as main memory 146.
  • Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 142. Transmission media can also take the form of wireless links such as acoustic or electromagnetic waves, such as those generated during radio wave and infrared data communications.
  • Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD- ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read.
  • Various forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to processor 144 for execution.
  • the instructions may initially be carried on a magnetic disk of a remote computer.
  • the remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem.
  • a modem local to computer system 140 can receive the data on the telephone line and use an infrared transmitter to convert the data to an infrared signal.
  • An infrared detector coupled to bus 142 can receive the data carried in the infrared signal and place the data on bus 142.
  • Bus 142 carries the data to main memory 146, from which processor 144 retrieves and executes the instructions.
  • Interface 159 also provides a two-way data communication coupling to a network link that is connected to a local network.
  • the interface 159 may be an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line.
  • ISDN integrated services digital network
  • the interface 159 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN.
  • LAN local area network
  • Wireless links may also be implemented.
  • the interface 159 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
  • the network link typically provides data communication through one or more networks to other data devices.
  • the network link may provide a connection through a local network to a host computer or to data equipment operated by an Internet Service Provider (ISP).
  • ISP Internet Service Provider
  • the ISP in turn provides data communication services through the worldwide packet data communication network now commonly referred to as the "Internet".
  • the local network and the Internet both use electrical, electromagnetic or optical signals that carry digital data streams.
  • the signals through the various networks and the signals on the network link and through the interface 159, which carry the digital data to and from computer system 140, are exemplary forms of carrier waves transporting the information.
  • Computer system 140 can send messages and receive data, including program code, through the network(s), network link and interface 159.
  • a server might transmit a requested code for an application program through the Internet, ISP, local network and communication interface 158.
  • One such downloaded application provides for the method as described herein.
  • the received code may be executed by processor 144 as it is received, and/or stored in storage device 150, or other non- volatile storage for later execution, h this manner, computer system 140 may obtain application code in the form of a carrier wave.
  • the method can be implemented in relation to any size or type of network and that any appropriate routing protocol and mechanism can be adopted to implement the invention.
  • any appropriate routing protocol can be used such as Intermediate System - Intermediate System (IS-IS) or Open Shortest Path First (OSPF) and in networks using any appropriate forwarding mechanism such as Internet Protocol (IP).
  • IS-IS Intermediate System - Intermediate System
  • OSPF Open Shortest Path First
  • IP Internet Protocol
  • the invention can be implemented using any least cost routing technique.
  • the method steps set out can be carried out in any appropriate order and aspects from the examples and embodiments described juxtaposed or interchanged as appropriate.

Abstract

A method is disclosed of forwrading data in a data communications network comprising a plurality of nodes and links therebetween (400), each link having an associated usage cost and a load capacity. A forwarding node identifies a lowest cost route (402), compris one or more links, to a destination node. If a plurÎfty of lowest cost routes (402) is identified, then the forwarding node allocates dat for forwarding along each of the lowest cost routes (402) dependent on a relative load capacity of that route (408).

Description

METHOD AND APPARATUS FOR FORWARDING DATA IN A DATA COMMUNICATIONS NETWORK
FIELD OF THE INVENTION
[0001] The present invention generally relates to forwarding data. The invention relates more specifically to a method and apparatus for forwarding data in a data communications network.
BACKGROUND OF THE INVENTION [0002] The approaches described in this section could be pursued, but are not necessarily approaches that have been previously conceived or pursued. Therefore, unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
[0003] In computer networks such as the Internet, packets of data are sent from a source to a destination via a network of elements including links (communication paths such as telephone or optical lines) and nodes (usually routers directing the packet along one or more of a plurality of links connected to it) according to one of various routing protocols.
[0004] One class of routing protocol is the link state protocol. The link state protocol relies on a routing algorithm resident at each node. Each node on the network advertises, throughout the network, links to neighboring nodes and provides a cost associated with each link, which can be based on any appropriate metric such as link bandwidth or delay and is typically expressed as an integer value. A link may have an asymmetric cost, that is, the cost in the direction AB along a link may be different from the cost in the direction BA. Based on the advertised information in the form of a link state packet (LSP) each node constructs a link state database (LSDB), which is a map of the entire network topology and from that constructs generally a single optimum route to each available node based on an appropriate algorithm such as, for example, a shortest path first (SPF) algorithm. As a result a "spanning tree" (SPT) is constructed, rooted at the node and showing an optimum path including intermediate nodes to each available destination node. The results of the SPF are stored in a routing information base (RLB) and based on these results the forwarding information base (FIB) or forwarding table is updated to control forwarding of packets appropriately. When there is a network change an LSP representing the change is flooded through the network by each node adjacent the change, each node receiving the LSP and sending it to each adjacent node. [0005] As a result, when a data packet for a destination node arrives at a node (the "first node"), the first node identifies the optimum route to that destination and forwards the packet to the next node along that route. The next node repeats this step and so forth. [0006] Generally, data is forwarded along a single link to an adjacent node but in some instances an "equal cost path split" occurs in which two or more equal lowest cost routes are available. In that case the forwarding node will implement load balancing whereby the load is shared equally between the links.
[0007] Problems arise in networks when congestion occurs in parts of the network. A known solution to the problem is to avoid such congestion by engineering the costs of the links to reflect their capacity. One such approach is described in B. Fortz and M. Thorup, "Internet traffic engineering by optimizing OSPF weights," in Proc. IEEE INFOCOM, pp. 519-528, 2000 ( "Thorup et al ") in which the cost of a link is inversely proportional to its capacity or bandwidth as a result of which less traffic is routed over low capacity links. [0008] However problems arise with the approach set out in Thorup et al. In particular load will either be spread evenly between equal cost routes or not at all in that arrangement.
BRIEF DESCRIPTION OF THE DRAWINGS [0009] The present invention is illustrated by way of example, and not by way of limitation, in the figures of the accompanying drawings and in which like reference numerals refer to similar elements and in which:
[0010] FIG. 1 is a representation of a network illustrating a method of forwarding data;
[0011] FIG. 2 is a representation of an alternative network illustrating a method of forwarding data;
[0012] FIG. 3 is a representation of a network illustrating in more detail a method of forwarding data;
[0013] FIG. 4 is a flow diagram that illustrates the steps involved in forwarding data according to the method;
[0014] FIG. 5 is a representation of an alternative network illustrating in more detail a method of forwarding data; and
[0015] FIG. 6 is a block diagram illustrating a computer system upon which a method of forwarding data may be implemented. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT [0016] A method and apparatus for forwarding data in a data communication network is described. In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent, however, to one skilled in the art that the present invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention. [0017] Embodiments are described herein according to the following outline: 1.0 General Overview 2.0 Structural and Functional Overview 3.0 Method of Forwarding Data 4.0 Implementation Mechanisms — Hardware Overview 5.0 Extensions and Alternatives * * *
1.0 GENERAL OVERVIEW
[0018] The needs identified in the foregoing Background, and other needs and objects that will become apparent for the following description, are achieved in the present invention, which comprises, in one aspect, a method of forwarding data in a data communications network comprising a plurality of nodes and links therebetween, each link having an associated usage cost and a load capacity. A forwarding node identifies a lowest cost route, comprising one or more links, to a destination node. If a plurality of lowest cost routes is identified the forwarding node allocates data for forwarding along each of the lowest cost routes dependent on a relative load capacity of that route. [0019] In other aspects, the invention encompasses a computer apparatus and a computer-readable medium configured to carry out the foregoing steps. 2.0 STRUCTURAL AND FUNCTIONAL OVERVIEW
[0020] In overview a method of forwarding data can be understood with reference to FIG. 1 which depicts an illustrative network diagram to which the method is applied. The network includes node A (reference numeral 12), node B (reference numeral 14) and node Z (reference numeral 16). Nodes A and B are joined by link 18, nodes A and Z are joined by link 20 and nodes B and Z are joined by link 22. Link 18 is connected at an interface j to node A and link 20 is connected at an interface i to node A. The cost of links 18 and 22 is 1 and the cost of link 20 is 2. All links have a load capacity or bandwidth of 10GB. [0021] It will be seen that the cost of forwarding data from node A to node Z is the same whether the route is via link 20 (cost 2) or via links 18 and 22 and node B (cost 1+1=2). As a result the load is shared between the two routes AZ, ABZ and as both routes have an equal bandwidth of 10GB congestion is minimized. [0022] Referring to FIG. 2 which depicts an alternative illustrative network diagram to which the method is applied, it will be seen that the nodes, links, costs and load capacities are the same as in FIG. 1 except that node B and node Z are connected by link 24 having a bandwidth of 2.5GB. Once again the cost of routing data from node A to node Z is equal whether via link 20 or via links 18 and 24. However in this case the route ABZ via links 18 and 24 has a minimum bandwidth of 2.5GB which is thus taken as the route bandwidth. Thus if the load was shared evenly between the two routes then congestion of the lower bandwidth route could occur at the same time as under use of the higher bandwidth route.
[0023] Accordingly the method described herein allocates the load proportionally with bandwidth. In the specific case shown in FIG. 2 the load is shared in the ratio 10GB:2.5GB i.e. in the ratio 80:20 between route AZ and route ABZ. As a result weighted fair load balancing is achieved. In addition this is achieved using existing routes computed according to the SPF and hence avoiding looping. 3.0 METHOD AND APPARATUS FOR FORWARDING DATA [0024] Implementation of the method will be described in more detail with reference to the SPF algorithm (also known as Dijkstra's algorithm). The algorithm is well understood by the skilled reader and well documented in pre-existing documentation and therefore is not described in detail here but only in summary, for the purposes of clarity. [0025] In general a node, say node A, calculates its least cost (shortest path) routes to each other node on the network from its LSDB. To do this, all nodes on the network are divided into three categories, unknown (UNK), tentative or candidate (TENT) and known (PATHS). For each node the cost of reaching that node from node A, and the interface along which it is reached at that cost (representing the next hop) are stored. Initially node A is assigned to category TENT and all other nodes are assigned to UNK. The algorithm then carries out repeatedly the step of moving the lowest cost node in TENT to PATH and moving all neighbors of that lowest cost node together with their cost via the corresponding interface from node A to TENT. As a result, in the first step node A is moved to PATH and each of its neighbors to TENT, hi the next step the lowest cost node in TENT is moved into PATH and its neighbors are moved into TENT. As a result the nodes in UNK and TENT gradually deplete until all nodes have been moved to PATH. As a result PATH comprises a list of the lowest cost interface (or next hop) for routing data from node A to each other node.
[0026] Reference is now made to FIG. 3 which is a network diagram illustrating a network to which the method described herein can be applied and FIG. 4 which is a flow diagram illustrating in more detail implementation of the method. Implementation of the
SPF algorithm to achieve weighted fair load balancing according to the present method can be better understood with respect to FIG. 3 and FIG. 4 in the case of matched bandwidth routes.
[0027] In particular FIG. 3 shows a network similar to that of FIG. 1 and FIG. 2 but in which an additional node C, reference numeral 26, is introduced between nodes A and Z, joined to node Z via link 28 having cost 1 and capacity 10GB. The cost of link 20 from interface i of node A to node C is reduced to 1. In addition node B has two interfaces k, 1 both connecting node B to node Z via respective links 22, cost 1, bandwidth 10GB and
24, cost 1, bandwidth 2.5GB.
[0028] In order to calculate the SPF at node A, the algorithm described above is followed but with the introduction of an extra parameter associated with a node in
UNK/TENT/PATH "minimum bandwidth along the best path to this node".
[0029] The node is thus categorized X(a, b, c) where: X is the node name a is the root node's outgoing interface used by the best path from the root node to X b is the minimum link bandwidth across that path c is the path metric (cost) of that path. [0030] It will be appreciated that the root node is the node at which the SPF computation is taking place - in the present case, node A. As will be discussed in more detail below, where multiple paths sharing the same root node's outgoing interface share the same metric, the "b" term (capacity) of the resulting path is the maximum of the "b" terms of the underlying paths.
[0031] Implementation of the algorithm can be understood with reference to FIG. 4 in conjunction with FIG. 3. hi block 400 a first node under consideration, such as node A, is transferred to PATH, and the neighbors of the first node are transferred to TENT together with their associated parameters as shown in Table 1 below. As a result the table is as shown below in Table 1 in which, for example, it can be seen that node C is shown as reachable via interface i with a bandwidth of 10GB and cost 1. The remaining nodes are .maintained in UNK. Table 1
Figure imgf000007_0001
[0032] In block 402 the lowest cost node in TENT is once again transferred to PATH and its neighbors are transferred to TENT. Referring to Table 2 below it will be seen that as a result node C has been moved to PATH as a result of which the least cost route to node C from A is known to be via interface i at cost 1, bandwidth 10GB. Node Z has been transferred to TENT together with the corresponding bandwidth and cost via interface i.
Table 2
Figure imgf000007_0002
[0033] In block 406 the algorithm assesses whether all nodes have been transferred to PATH. If not then step 402 is repeated. Otherwise in block 408 the forwarding node (or not node), node A, carries out load balancing proportional to the bandwidth ratio as discussed in more detail below. [0034] In relation to the algorithm computed at node A in relation to the network of FIG. 3, therefore, step 402 is repeated and node B is transferred to PATH. As a result an alternative route to Z via interface j (and hence node B) is introduced into TENT as can be seen in Table 3. Table 3
Figure imgf000008_0001
[0035] Block 402 is repeated once again and in this case node Z is transferred to PATH by either of interfaces i or j as the cost is the same in each case, namely 2. However as the bandwidth via either route ACZ (interface i) or ABZ (interface j) is the same, then the load is spread 50/50 between the interfaces as shown in Table 4.
Table 4
[0036] It will be noted that the link between nodes B and Z is assigned the higher of the two available bandwidths via interface k (link 24) and interface 1 (link 22), namely 10GB. It will be further noted that node B will itself implement weighted load balancing between interfaces k and 1 proportional to their respective capacities, that is in ratio 80/20 as discussed in more detail below. Accordingly, in an alternative implementation, the link between nodes B and Z can be assigned the sum of the bandwidth via each interface sharing the same cost metric, namely 12 GB and the remaining steps herein carried out accordingly. Of course if the links carry different costs, then only the lower cost and associated bandwidth are assigned. [0037] Implementation of the method in an instance where alternative routes have unequal capacities can be better understood with reference to FIG. 5 which is a network diagram illustrating an alternative network. FIG. 5 corresponds effectively to an overlay of the networks of FIG. 1 and FIG. 2 but with the addition of a node D, reference numeral 30 connected between node B and node Z by link 32 having cost 1 and capacity 2.5GB. Node B is linked to node D via links 22 and 24 of costs 1 and respective bandwidths 10GB, 2.5GB. The cost of link 20 between nodes A and Z is 3. [0038] Once again implementing the algorithm described with reference to FIG. 4, in block 400 node A is moved to PATH and nodes Z and B together with the associated interfaces, bandwidths and costs are moved to TENT as shown in Table 5 below.
Table 5
Figure imgf000009_0001
[0039] h block 402 the lowest cost node, node B is moved from TENT to PATH and node D is moved from UNK to TENT. As two links are provided from node B to node D, the maximum bandwidth represented, i.e. 10G, is associated with node D in TENT as shown in Table 6.
Table 6
Figure imgf000009_0002
[0040] Block 402 is once again repeated and node D transferred to PATH. As a result node Z via interface j is added to TENT such that both routes to node Z are provided in TENT either via interface i (route AZ) or interface j (route ABDZ) as can be seen in Table 7 below. Table 7
Figure imgf000010_0001
[0041] Block 402 is repeated once more and both routes to node Z are transferred to PATH as shown in Table 8 below.
Table 8
Figure imgf000010_0002
[0042] As a result node A will load balance packets for node Z via the two possible routes AZ (interface i), ABDZ (interface j), but proportional to the ratio of their bandwidth. Accordingly 80% of traffic will go via node AZ and 20% via ABDZ and the traffic is assigned to the interfaces accordingly in ratio 10GB:2.5GB i.e. 80/20. Once again node B will implement load balancing itself between interfaces k and 1 in the ratio of the respective capacities of the links. [0043] As a result of the method described herein network capacity is maximized without affecting the SPF calculations nor introducing potential loops. [0044] It will be appreciated that the method can be implemented in one or more of hardware or software elements, or firmware using for example microcode, or any combination thereof, such that detailed explanation is not required by the skilled reader. Once the SPF algorithm has been completed and the ratios assigned to the respective interfaces, allocation of the data between the interfaces can be achieved in any appropriate manner, for example as described in "Troubleshooting Load Balancing Over Parallel Links using Cisco Express Forwarding" which is available at the time of this writing on the file "technologies_tech_note09186a0080094806.shtml" in the directory "en/US/tech/tk827/tk831" of the domain cisco.com of the World Wide Web, the entire contents of which are incorporated herein by reference for all purposes as if set forth fully herein.
4.0 IMPLEMENTATION MECHANISMS - HARDWARE OVERVIEW [0045] FIG. 6 is a block diagram that illustrates a computer system 140 upon which the method may be implemented. The method is implemented using one or more computer programs running on a network element such as a router device. Thus, in this embodiment, the computer system 140 is a router.
[0046] Computer system 140 includes a bus 142 or other communication mechanism for communicating information, and a processor 144 coupled with bus 142 for processing information. Computer system 140 also includes a main memory 146, such as a random access memory (RAM), flash memory, or other dynamic storage device, coupled to bus 142 for storing information and instructions to be executed by processor 144. Main memory 146 may also be used for storing temporary variables or other intermediate information during execution of instructions to be executed by processor 144. Computer system 140 further includes a read only memory (ROM) 148 or other static storage device coupled to bus 142 for storing static information and instructions for processor 144. A storage device 150, such as a magnetic disk, flash memory or optical disk, is provided and coupled to bus 142 for storing information and instructions.
[0047] A communication interface 158 may be coupled to bus 142 for communicating information and command selections to processor 144. Interface 158 is a conventional serial interface such as an RS-232 or RS-422 interface. An external terminal 152 or other computer system connects to the computer system 140 and provides commands to it using the interface 158. Firmware or software running in the computer system 140 provides a terminal interface or character-based command interface so that external commands can be given to the computer system.
[0048] A switching system 156 is coupled to bus 142 and has an input interface and a respective output interface (commonly designated 159) to external network elements. The external network elements may include a plurality of additional routers 160 or a local network coupled to one or more hosts or routers, or a global network such as the Internet having one or more servers. The switching system 156 switches information traffic arriving on the input interface to output interface 159 according to pre-determined protocols and conventions that are well known. For example, switching system 156, in cooperation with processor 144, can determine a destination of a packet of data arriving on the input interface and send it to the correct destination using the output interface. The destinations may include a host, server, other end stations, or other routing and switching devices in a local network or Internet.
[0049] The computer system 140 implements as a router acting as a forwarding node the above described method of forwarding data. The implementation is provided by computer system 140 in response to processor 144 executing one or more sequences of one or more instructions contained in main memory 146. Such instructions may be read into main memory 146 from another computer-readable medium, such as storage device 150. Execution of the sequences of instructions contained in main memory 146 causes processor 144 to perform the process steps described herein. One or more processors in a multi-processing arrangement may also be employed to execute the sequences of instructions contained in main memory 146. In alternative embodiments, hard- wired circuitry may be used in place of or in combination with software instructions to implement the method. Thus, embodiments are not limited to any specific combination of hardware circuitry and software.
[0050] The term "computer-readable medium" as used herein refers to any medium that participates in providing instructions to processor 144 for execution. Such a medium may take many forms, including but not limited to, non- volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical or magnetic disks, such as storage device 150. Volatile media includes dynamic memory, such as main memory 146. Transmission media includes coaxial cables, copper wire and fiber optics, including the wires that comprise bus 142. Transmission media can also take the form of wireless links such as acoustic or electromagnetic waves, such as those generated during radio wave and infrared data communications.
[0051] Common forms of computer-readable media include, for example, a floppy disk, a flexible disk, hard disk, magnetic tape, or any other magnetic medium, a CD- ROM, any other optical medium, punch cards, paper tape, any other physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave as described hereinafter, or any other medium from which a computer can read.
[0052] Various forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to processor 144 for execution. For example, the instructions may initially be carried on a magnetic disk of a remote computer. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 140 can receive the data on the telephone line and use an infrared transmitter to convert the data to an infrared signal. An infrared detector coupled to bus 142 can receive the data carried in the infrared signal and place the data on bus 142. Bus 142 carries the data to main memory 146, from which processor 144 retrieves and executes the instructions. The instructions received by main memory 146 may optionally be stored on storage device 150 either before or after execution by processor 144. [0053] Interface 159 also provides a two-way data communication coupling to a network link that is connected to a local network. For example, the interface 159 may be an integrated services digital network (ISDN) card or a modem to provide a data communication connection to a corresponding type of telephone line. As another example, the interface 159 may be a local area network (LAN) card to provide a data communication connection to a compatible LAN. Wireless links may also be implemented. In any such implementation, the interface 159 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.
[0054] The network link typically provides data communication through one or more networks to other data devices. For example, the network link may provide a connection through a local network to a host computer or to data equipment operated by an Internet Service Provider (ISP). The ISP in turn provides data communication services through the worldwide packet data communication network now commonly referred to as the "Internet". The local network and the Internet both use electrical, electromagnetic or optical signals that carry digital data streams. The signals through the various networks and the signals on the network link and through the interface 159, which carry the digital data to and from computer system 140, are exemplary forms of carrier waves transporting the information.
[0055] Computer system 140 can send messages and receive data, including program code, through the network(s), network link and interface 159. In the Internet example, a server might transmit a requested code for an application program through the Internet, ISP, local network and communication interface 158. One such downloaded application provides for the method as described herein. [0056] The received code may be executed by processor 144 as it is received, and/or stored in storage device 150, or other non- volatile storage for later execution, h this manner, computer system 140 may obtain application code in the form of a carrier wave.
5.0 EXTENSIONS AND ALTERNATIVES
[0057] In the foregoing specification, the invention has been described with reference to specific embodiments thereof. It will, however, be evident that various modifications and changes may be made thereto without departing from the broader spirit and scope of the invention. The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense.
[0058] It will be appreciated that the method can be implemented in relation to any size or type of network and that any appropriate routing protocol and mechanism can be adopted to implement the invention. For example it will be appreciated that any appropriate routing protocol can be used such as Intermediate System - Intermediate System (IS-IS) or Open Shortest Path First (OSPF) and in networks using any appropriate forwarding mechanism such as Internet Protocol (IP). Indeed the invention can be implemented using any least cost routing technique. The method steps set out can be carried out in any appropriate order and aspects from the examples and embodiments described juxtaposed or interchanged as appropriate.
[0059] Furthermore it will be appreciated that although in an optimization the approach described above is implemented at each node in a network it can be implemented at only one or a sub-set of all of the nodes with equal effect and without affecting routing across the network adversely.

Claims

CLAIMSWhat is claimed is:
1. A method of forwarding data in a data communications network comprising a plurality of nodes and links therebetween, each link having an associated usage cost and a load capacity, the method comprising the steps, performed at a forwarding node, of: identifying a lowest cost route, comprising one or more links, to a destination node; and if a plurality of lowest cost routes is identified, then allocating data for forwarding along each of the lowest cost routes dependent on a relative load capacity of that route.
2. A method as claimed in Claim 1 in which the load capacity of a particular route among the lowest cost routes is selected as the lowest load capacity of any link along the particular route.
3. A method as claimed in Claim 1 in which, where a plurality of links connects adjacent nodes, the load capacity between those nodes is set as the maximum load capacity of any one of those links.
4. A method as claimed in claim 1 in which, where a plurality of links connects adjacent nodes, the load capacity between these nodes is set as the sum of the load capacity of each of these links.
5. A method as claimed in Claim 1 in which data is allocated proportionally to a ratio of load capacities of each of the lowest cost routes.
6. A method as claimed in Claim 1 in which each of the lowest cost routes is identified using a shortest path first algorithm.
7. A method as claimed in Claim 6 in which load capacity is included as a parameter associated with each node interface in the shortest path first algorithm.
8. A computer readable medium comprising one or more sequences of instructions for forwarding data in a data communications network which when executed by one or more processors, cause the one or more processors to perform the steps of the method of any of claims 1, 2, 3, 4, 5, 6 or 7.
9. An apparatus for forwarding data in a data communications network comprising a plurality of nodes and links therebetween, each linking having an associated usage cost and a load capacity, the apparatus comprising: means for identifying a lowest cost route, comprising one or more links, to a destination node; and means for allocating data for forwarding along each of the lowest cost routes dependent on a relative load capacity of that route if a plurality of lowest cost routes is identified.
10. An apparatus as claimed in claim 9, in which the load capacity of a particular route among the lowest cost routes is selected as the lowest load capacity of any link along the particular route.
11. An apparatus as claimed in claim 9 in which, where a plurality of links connects adjacent nodes, the load capacity between those nodes is set as the maximum load capacity of any one of those links.
12. An apparatus as claimed in claim 9 in which, where a plurality of links connects adjacent nodes, the load capacity between those nodes is set as the sum of the load capacity of each of those links.
13. An apparatus as claimed in claim 9 in which the means for allocating data allocates data proportionally to a ratio of load capacities of each of the lowest cost routes.
14. An apparatus as claimed in claim 9 in which the means for identifying a lowest cost route uses a shortest path first algorithm.
15. An apparatus as claimed in claim 14 in which load capacity is included as a parameter associated with each node interface in the shortest path first algorithm.
16. Ail apparatus for forwarding data in a data communications network, the apparatus comprising: one or more processors; and a network interface communicatively coupled to the one or more processors and configured to communicate one or more packet flows among the one or more processors and a network and a computer readable medium comprising one or more sequences of instructions for forwarding data in a data communications network which when executed by one or more processors, cause the one or more processors to perform the steps of the method of any of claims 1, 2, 3, 4, 5, 6 or 7.
PCT/US2005/017463 2004-06-01 2005-05-18 Method and apparatus for forwarding data in a data communications network WO2005119971A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP05749440.3A EP1757026B1 (en) 2004-06-01 2005-05-18 Method and apparatus for forwarding data in a data communications network

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/858,920 2004-06-01
US10/858,920 US7848240B2 (en) 2004-06-01 2004-06-01 Method and apparatus for forwarding data in a data communications network

Publications (2)

Publication Number Publication Date
WO2005119971A2 true WO2005119971A2 (en) 2005-12-15
WO2005119971A3 WO2005119971A3 (en) 2007-03-08

Family

ID=35425107

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2005/017463 WO2005119971A2 (en) 2004-06-01 2005-05-18 Method and apparatus for forwarding data in a data communications network

Country Status (3)

Country Link
US (1) US7848240B2 (en)
EP (1) EP1757026B1 (en)
WO (1) WO2005119971A2 (en)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7146000B2 (en) * 2002-01-25 2006-12-05 Level (3) Communications Routing engine for telecommunications network
US7660791B2 (en) * 2005-02-28 2010-02-09 Microsoft Corporation System and method for determining initial relevance of a document with respect to a given category
US8094555B2 (en) 2006-11-27 2012-01-10 Cisco Technology, Inc. Dynamic weighted-fair load-balancing
US7924734B2 (en) * 2007-02-05 2011-04-12 Level 3 Communications, Llc Network configuration optimization
CN101056270B (en) * 2007-05-18 2010-10-06 华为技术有限公司 A route convergence method and routing device
US7782882B2 (en) * 2007-09-17 2010-08-24 The Boeing Company Method and apparatus for distributing dynamic auto-summarization of internet protocol reachable addresses
US8738752B2 (en) * 2008-01-30 2014-05-27 Cisco Technology, Inc. Local placement of large flows to assist load-balancing
US8014318B2 (en) * 2009-02-10 2011-09-06 Cisco Technology, Inc. Routing-based proximity for communication networks to routing-based proximity for overlay networks
US8179801B2 (en) * 2009-06-09 2012-05-15 Cisco Technology, Inc. Routing-based proximity for communication networks
IL210169A0 (en) 2010-12-22 2011-03-31 Yehuda Binder System and method for routing-based internet security
US9124524B2 (en) * 2011-06-29 2015-09-01 Broadcom Corporation System and method for priority based flow control between nodes
WO2015061470A1 (en) * 2013-10-23 2015-04-30 Harshavardha Paramasiviah Internet protocol routing method and associated architectures
US9667711B2 (en) * 2014-03-26 2017-05-30 International Business Machines Corporation Load balancing of distributed services
US10484263B2 (en) 2017-01-16 2019-11-19 International Business Machines Corporation Route-cost acquisition from routers

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030161338A1 (en) 2002-02-27 2003-08-28 Ng David D. Network path selection based on bandwidth
US6697333B1 (en) 1998-03-04 2004-02-24 Alcatel Canada Inc. Bandwidth load consideration in network route selection
US20040088429A1 (en) 2002-11-02 2004-05-06 Xianlong Luo Constrained path algoritm for transmission network

Family Cites Families (101)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5128926A (en) * 1990-03-21 1992-07-07 Digital Equipment Corporation Updating link state information in networks
US5253248A (en) * 1990-07-03 1993-10-12 At&T Bell Laboratories Congestion control for connectionless traffic in data networks via alternate routing
US5251205A (en) * 1990-09-04 1993-10-05 Digital Equipment Corporation Multiple protocol routing
US5243592A (en) * 1990-10-15 1993-09-07 Digital Equipment Corporation Method and apparatus for distance vector routing on datagram point-to-point links
US5265092A (en) * 1992-03-18 1993-11-23 Digital Equipment Corporation Synchronization mechanism for link state packet routing
WO2004075600A1 (en) * 1994-12-15 2004-09-02 Antoni Bronisl Przygienda Apparatus and method for routing a communication in a network
SE504712C2 (en) * 1995-07-04 1997-04-07 Ericsson Telefon Ab L M Method and apparatus for routing traffic in a circuit-switched network
US5684800A (en) * 1995-11-15 1997-11-04 Cabletron Systems, Inc. Method for establishing restricted broadcast groups in a switched network
US6151324A (en) * 1996-06-03 2000-11-21 Cabletron Systems, Inc. Aggregation of mac data flows through pre-established path between ingress and egress switch to reduce number of number connections
US5922077A (en) 1996-11-14 1999-07-13 Data General Corporation Fail-over switching system
US5999286A (en) * 1997-01-09 1999-12-07 Alcatel Method and system for restoring a distributed telecommunications network
US5959968A (en) 1997-07-30 1999-09-28 Cisco Systems, Inc. Port aggregation protocol
US6148410A (en) * 1997-09-15 2000-11-14 International Business Machines Corporation Fault tolerant recoverable TCP/IP connection router
US6256295B1 (en) 1997-09-25 2001-07-03 Nortel Networks Limited Method and apparatus for determining multiple minimally-overlapping paths between nodes in a network
TW408541B (en) * 1997-10-14 2000-10-11 Winnet Mcs Inc Method and apparatus for maintaining a predefined transmission quality in a wireless network for a metropolitan area
US6098107A (en) 1997-10-31 2000-08-01 Lucent Technologies Inc. Dynamic algorithms for shortest path tree computation
US6111257A (en) * 1997-11-21 2000-08-29 Picker International, Inc. Support assembly for scintillating crystal
US6032194A (en) 1997-12-24 2000-02-29 Cisco Technology, Inc. Method and apparatus for rapidly reconfiguring computer networks
US6185598B1 (en) * 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
FR2775492B1 (en) * 1998-02-27 2000-05-05 Freyssinet Int Stup PREFABRICATED CONSTRUCTION ELEMENTS, PRE-STRESSED STRUCTURE MADE OF SUCH ELEMENTS AND METHOD FOR MANUFACTURING SUCH ELEMENTS
US6356546B1 (en) * 1998-08-11 2002-03-12 Nortel Networks Limited Universal transfer method and network with distributed switch
US6690671B1 (en) * 1998-08-17 2004-02-10 Marconi Communications, Inc. Load balanced UBR routing in ATM networks
US6295275B1 (en) * 1998-08-19 2001-09-25 Mci Communications Corporation Dynamic route generation for real-time network restoration using pre-plan route generation methodology
US6507577B1 (en) * 1998-11-12 2003-01-14 Nortel Networks Limited Voice over internet protocol network architecture
WO2000038228A1 (en) * 1998-12-22 2000-06-29 Fujitsu Limited Rough wiring method and apparatus and recording medium storing rough wiring program
US6321271B1 (en) * 1998-12-22 2001-11-20 Lucent Technologies Inc. Constrained shortest path routing method
US6243754B1 (en) * 1999-01-08 2001-06-05 International Business Machines Corporation Dynamic selection of network providers
US6724722B1 (en) * 1999-03-19 2004-04-20 Lucent Technologies Inc. Managing congestion and potential traffic growth in an information network
US6704320B1 (en) 1999-03-24 2004-03-09 Lucent Technologies Inc. Dynamic algorithm for determining a shortest path tree between network nodes
US6473421B1 (en) * 1999-03-29 2002-10-29 Cisco Technology, Inc. Hierarchical label switching across multiple OSPF areas
US6711125B1 (en) 1999-08-02 2004-03-23 Extreme Networks Provisioning networks for reliable quality of service
US6535481B1 (en) * 1999-08-20 2003-03-18 Nortel Networks Limited Network data routing protection cycles for automatic protection switching
US6363319B1 (en) * 1999-08-31 2002-03-26 Nortel Networks Limited Constraint-based route selection using biased cost
US6578086B1 (en) * 1999-09-27 2003-06-10 Nortel Networks Limited Dynamically managing the topology of a data network
US6744775B1 (en) * 1999-09-27 2004-06-01 Nortel Networks Limited State information and routing table updates in large scale data networks
US6778531B1 (en) 1999-11-04 2004-08-17 Lucent Technologies Inc. Multicast routing with service-level guarantees between ingress egress-points in a packet network
US6349091B1 (en) * 1999-11-12 2002-02-19 Itt Manufacturing Enterprises, Inc. Method and apparatus for controlling communication links between network nodes to reduce communication protocol overhead traffic
US6697325B1 (en) * 1999-12-07 2004-02-24 Nortel Networks Limited System, device, and method for expediting reconvergence in a communication network
CA2310872A1 (en) * 1999-12-22 2001-06-22 Nortel Networks Corporation Automatic protection switching using link-level redundancy supporting multi-protocol label switching
US6928484B1 (en) 2000-01-18 2005-08-09 Cisco Technology, Inc. Method and apparatus for discovering edge-disjoint shortest path pairs during shortest path tree computation
US6413017B2 (en) * 2000-03-14 2002-07-02 Jonathan B. Scott Conversion of hydrocarbon-contaminated particulate soil and/or rock to fertile soil useful in erosion control
US6977937B1 (en) 2000-04-10 2005-12-20 Bbnt Solutions Llc Radio network routing apparatus
WO2002001532A1 (en) * 2000-06-26 2002-01-03 Custom Traffic Pty Ltd Method and system for providing traffic and related information
US20020004843A1 (en) * 2000-07-05 2002-01-10 Loa Andersson System, device, and method for bypassing network changes in a routed communication network
US20020093954A1 (en) * 2000-07-05 2002-07-18 Jon Weil Failure protection in a communications network
US6996065B2 (en) 2000-07-06 2006-02-07 Lucent Technologies Inc. Dynamic backup routing of network tunnel paths for local restoration in a packet network
WO2002006918A2 (en) 2000-07-14 2002-01-24 Telcordia Technologies, Inc. A method, system, and product for preventing data loss and forwarding loops when conducting a scheduled change to the topology of a link-state routing protocol network
US6668282B1 (en) * 2000-08-02 2003-12-23 International Business Machines Corporation System and method to monitor and determine if an active IPSec tunnel has become disabled
JP3654168B2 (en) 2000-09-28 2005-06-02 日本電気株式会社 Interface identification device, interface identification method, and MPLS-VPN service network
US7058016B1 (en) * 2000-10-12 2006-06-06 Cisco Technology, Inc. Method and system for accelerating route calculation in link state routing protocols
JP3729051B2 (en) * 2000-10-18 2005-12-21 日本電気株式会社 Inter-domain routing apparatus, system and method
US6829215B2 (en) * 2000-10-31 2004-12-07 Marconi Intellectual Property (Ringfence) Inc. IP multi-homing
TW561747B (en) * 2000-11-21 2003-11-11 Ibm Costs in data networks
US20020136223A1 (en) * 2000-12-19 2002-09-26 Ho Ka K. Method and apparatus for interworking PNNI with the signalling and routing protocols used in MPLS networks
US6982951B2 (en) * 2000-12-21 2006-01-03 At&T Corp. Method for selecting a restoration path in a mesh network
US20020133756A1 (en) * 2001-02-12 2002-09-19 Maple Optical Systems, Inc. System and method for providing multiple levels of fault protection in a data communication network
EP1388073B1 (en) * 2001-03-01 2018-01-10 Akamai Technologies, Inc. Optimal route selection in a content delivery network
US20020171886A1 (en) * 2001-03-07 2002-11-21 Quansheng Wu Automatic control plane recovery for agile optical networks
US7158486B2 (en) * 2001-03-12 2007-01-02 Opcoast Llc Method and system for fast computation of routes under multiple network states with communication continuation
US7035202B2 (en) * 2001-03-16 2006-04-25 Juniper Networks, Inc. Network routing using link failure information
JP4149680B2 (en) * 2001-03-21 2008-09-10 富士通株式会社 Detour route design method for communication network
US6882627B2 (en) * 2001-06-14 2005-04-19 Tropic Networks Methods and apparatus for selecting multiple paths taking into account shared risk
US7490165B1 (en) * 2001-07-18 2009-02-10 Cisco Technology, Inc. Method and apparatus for computing a path in a system with nodal and link diverse constraints
US7065059B1 (en) * 2001-08-09 2006-06-20 Cisco Technology, Inc. Technique for restoring adjacencies in OSPF in a non-stop forwarding intermediate node of a computer network
US20030063613A1 (en) * 2001-09-28 2003-04-03 Carpini Walter Joseph Label switched communication network and system and method for path restoration
US7113481B2 (en) * 2001-10-10 2006-09-26 Alcatel Informed dynamic path protection for optical networks
US7389359B2 (en) 2001-10-19 2008-06-17 Foundry Networks, Inc. Method and system for intelligently forwarding multicast packets
US7362709B1 (en) * 2001-11-02 2008-04-22 Arizona Board Of Regents Agile digital communication network with rapid rerouting
US7349427B1 (en) * 2001-12-21 2008-03-25 Nortel Networks Limited Routing method and apparatus for optimising auto-tunnelling in a heterogeneous network
US20030123457A1 (en) * 2001-12-27 2003-07-03 Koppol Pramod V.N. Apparatus and method for distributed software implementation of OSPF protocol
US6717950B2 (en) * 2002-01-20 2004-04-06 General Instrument Corporation Method and apparatus for priority-based load balancing for use in an extended local area network
KR100420956B1 (en) * 2002-02-09 2004-03-02 주식회사 케이티 A method for sharing backup path in MPLS network, a LSR for setting up backup path in MPLS network, a system therefor
FR2836314A1 (en) * 2002-02-21 2003-08-22 France Telecom Method for protection of label switching paths in a multiprotocol label-switching network (MPLS), whereby an alternative dynamic bypass tunnel is provided with reserved network resources in case of failure of a first path element
US7260645B2 (en) * 2002-04-26 2007-08-21 Proficient Networks, Inc. Methods, apparatuses and systems facilitating determination of network path metrics
US7099286B1 (en) 2002-05-22 2006-08-29 Cisco Technology, Inc. Method and system for finding shared risk diverse paths
US7242664B2 (en) * 2002-05-30 2007-07-10 Lucent Technologies Inc. Hybrid protection using mesh restoration and 1:1 protection
US7280472B2 (en) * 2002-06-04 2007-10-09 Lucent Technologies Inc. Protection switching at a network node
US6744774B2 (en) * 2002-06-27 2004-06-01 Nokia, Inc. Dynamic routing over secure networks
US7209491B2 (en) 2002-06-28 2007-04-24 Nokia Corporation Method and system for transmitting data in a packet based communication network
US7248579B1 (en) * 2002-10-15 2007-07-24 Cisco Technology, Inc. System and method for providing a link state database (LSDB) snapshot for neighbor synchronization
KR100472952B1 (en) * 2002-10-30 2005-03-10 한국전자통신연구원 A SIP(Session Initiation Protocol) Load Balancing Apparatus and Method
US7260066B2 (en) * 2002-10-31 2007-08-21 Conexant Systems, Inc. Apparatus for link failure detection on high availability Ethernet backplane
US7280482B2 (en) * 2002-11-01 2007-10-09 Nokia Corporation Dynamic load distribution using local state information
US7792991B2 (en) * 2002-12-17 2010-09-07 Cisco Technology, Inc. Method and apparatus for advertising a link cost in a data communications network
US7707307B2 (en) * 2003-01-09 2010-04-27 Cisco Technology, Inc. Method and apparatus for constructing a backup route in a data communications network
US7872991B2 (en) 2003-02-04 2011-01-18 Alcatel-Lucent Usa Inc. Methods and systems for providing MPLS-based layer-2 virtual private network services
CN1216472C (en) 2003-03-31 2005-08-24 中国科学院计算机网络信息中心 Control method for layered switching network node region
US7246172B2 (en) 2003-06-06 2007-07-17 Matsushita Electric Industrial Co., Ltd. Static dense multicast path and bandwidth management
US7508755B2 (en) 2003-07-07 2009-03-24 Alcatel-Lucent Usa Inc. Methods and devices for creating an alternate path for a bi-directional LSP
US7701848B2 (en) * 2003-07-11 2010-04-20 Chunming Qiao Efficient trap avoidance and shared protection method in survivable networks with shared risk link groups and a survivable network
US20050047353A1 (en) * 2003-08-25 2005-03-03 Susan Hares Systems and methods for routing employing link state and path vector techniques
US7343423B2 (en) * 2003-10-07 2008-03-11 Cisco Technology, Inc. Enhanced switchover for MPLS fast reroute
US20050226400A1 (en) * 2004-03-25 2005-10-13 Norman Farber System and method for a telecommunications network
US7500013B2 (en) * 2004-04-02 2009-03-03 Alcatel-Lucent Usa Inc. Calculation of link-detour paths in mesh networks
US7675848B2 (en) * 2004-07-15 2010-03-09 Cisco Technology, Inc. Dynamic forwarding adjacency
US7787360B2 (en) 2004-07-23 2010-08-31 Cisco Technology, Inc. System and method for preserving multicast data forwarding during control failures in a router
US7646739B2 (en) 2005-04-05 2010-01-12 Cisco Technology, Inc. Multicast routing over unidirectional links
US20060268879A1 (en) * 2005-05-11 2006-11-30 Texas Instruments Incorporated Quality of service aware robust link state routing for mesh networks
US8072879B2 (en) * 2006-02-03 2011-12-06 Cisco Technology, Inc. Technique for determining whether to reestablish fast rerouted primary tunnels based on backup tunnel path quality feedback
US7675860B2 (en) * 2006-02-27 2010-03-09 Cisco Technology, Inc. Method and apparatus for determining a preferred backup tunnel to protect point-to-multipoint label switch paths
US8254263B2 (en) * 2006-04-25 2012-08-28 Rockstar Bidco, LP Method and apparatus for simplifying the computation of alternate network paths

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6697333B1 (en) 1998-03-04 2004-02-24 Alcatel Canada Inc. Bandwidth load consideration in network route selection
US20030161338A1 (en) 2002-02-27 2003-08-28 Ng David D. Network path selection based on bandwidth
US20040088429A1 (en) 2002-11-02 2004-05-06 Xianlong Luo Constrained path algoritm for transmission network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
B. FORTZ; M. THORUP: "Internet traffic engineering by optimizing OSPF weights", PROC. IEEE INFOCOM, 2000, pages 519 - 528, XP001042765

Also Published As

Publication number Publication date
EP1757026A2 (en) 2007-02-28
WO2005119971A3 (en) 2007-03-08
US20050265239A1 (en) 2005-12-01
EP1757026B1 (en) 2017-11-29
EP1757026A4 (en) 2010-01-06
US7848240B2 (en) 2010-12-07

Similar Documents

Publication Publication Date Title
EP1757026B1 (en) Method and apparatus for forwarding data in a data communications network
US7366099B2 (en) Method and apparatus for synchronizing a data communications network
US7515551B2 (en) Techniques for reducing adjacencies in a link-state network routing protocol
JP5722455B2 (en) Reducing message and computational overhead in the network
JP3742058B2 (en) Method and system for optimizing routing through multiple available internet route providers
US6574669B1 (en) Method and apparatus for routing traffic within a network utilizing linear optimization
EP2911348A1 (en) Control device discovery in networks having separate control and forwarding devices
US7630298B2 (en) Method and apparatus for forwarding data in a data communications network
US20100063988A1 (en) Service Insertion in a Computer Network Using Internet Protocol Version 6 Techniques
US10812373B2 (en) Data network
US20050078610A1 (en) Method and apparatus for generating routing information in a data communication network
KR20100112144A (en) Tie-breaking in shortest path determination
EP1579716A2 (en) Routing scheme based on virtual space representation
EP2761827A1 (en) Incremental deployment of mrt based ipfrr
JP2005311863A (en) Traffic distribution control method, controller and network system
US7096281B2 (en) Efficient connectivity between multiple topology subnets via common connection network
US20120170486A1 (en) Hiding a service node in a network from a network routing topology
EP3298735A1 (en) Method and apparatus for self-tuned adaptive routing
US20060239211A1 (en) Method and apparatus for constructing a forwarding information structure
Chiang et al. A multipath transmission scheme for the improvement of throughput over SDN
US8018953B1 (en) Adaptive, deterministic ant routing approach for updating network routing information
JP5648560B2 (en) Traffic engineering apparatus, traffic engineering method and program
EP1440529B1 (en) System and method for information object routing in computer networks
US7974285B2 (en) Method and apparatus for identifying an egress point to a network location
AU2004306884B2 (en) Method and apparatus for generating routing information in a data communications network

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BW BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE EG ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KM KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NA NG NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SM SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GM KE LS MW MZ NA SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LT LU MC NL PL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
NENP Non-entry into the national phase

Ref country code: DE

WWW Wipo information: withdrawn in national office

Ref document number: DE

REEP Request for entry into the european phase

Ref document number: 2005749440

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2005749440

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2005749440

Country of ref document: EP