Source: http://www.google.com/patents/US7848240?ie=ISO-8859-1
Timestamp: 2014-03-09 13:46:04
Document Index: 421079702

Matched Legal Cases: ['application No. 2004311004', 'application No. 2004311004', 'application No. 2004311004', 'application No. 200480033007', 'Application No. 04795045', 'Application No. 05749440', 'Application No. 05749440', 'Application No. 04795045', 'Application No. 05749440', 'application No. 200480033007', 'application No. 04']

Patent US7848240 - Method and apparatus for forwarding data in a data communications network - Google PatentsSearch Images Maps Play YouTube News Gmail Drive More »Sign inAdvanced Patent SearchPatentsA method is disclosed 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...http://www.google.com/patents/US7848240?utm_source=gb-gplus-sharePatent US7848240 - Method and apparatus for forwarding data in a data communications networkAdvanced Patent SearchPublication numberUS7848240 B2Publication typeGrantApplication numberUS 10/858,920Publication dateDec 7, 2010Filing dateJun 1, 2004Priority dateJun 1, 2004Also published asEP1757026A2, EP1757026A4, US20050265239, WO2005119971A2, WO2005119971A3Publication number10858920, 858920, US 7848240 B2, US 7848240B2, US-B2-7848240, US7848240 B2, US7848240B2InventorsStefano Benedetto Previdi, Clarence Filsfils, Jean-Philippe VasseurOriginal AssigneeCisco Technology, Inc.Export CitationBiBTeX, EndNote, RefManPatent Citations (105), Non-Patent Citations (33), Referenced by (1), Classifications (17), Legal Events (1) External Links: USPTO, USPTO Assignment, EspacenetMethod and apparatus for forwarding data in a data communications networkUS 7848240 B2Abstract A method is disclosed 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, then the forwarding node allocates data for forwarding along each of the lowest cost routes dependent on a relative load capacity of that route.
1. A method of forwarding data in a data communications network comprising a plurality of nodes and links therebetween, each link having a usage cost and a load capacity, the method comprising:
identifying, using a shortest path first algorithm, a plurality of lowest cost routes, comprising one or more links, to a destination node;
associating, in the shortest path first algorithm, each lowest cost route of the plurality of lowest cost routes with a load capacity;
wherein at least two of the lowest cost routes are associated with unequal load capacities;
calculating a ratio of the associated load capacities;
allocating data for forwarding along each of the lowest cost routes in proportion to the calculated ratio;
wherein the method is performed by a forwarding node in the data communications network, the forwarding node having one or more processors.
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 non-transitory computer readable storage medium storing one or more sequences of instructions for forwarding data in a data communications network comprising a plurality of nodes and links there between, each link having a usage cost and a load capacity, which instructions, when executed by one or more processors, cause the one or more processors to perform:
at a forwarding node, identifying, using a shortest path first algorithm, a plurality of lowest cost routes, comprising one or more links, to a destination node;
at the forwarding node, associating, in the shortest path first algorithm, each lowest cost route of the plurality of lowest cost routes with a load capacity;
at the forwarding node, calculating a ratio of the associated load capacities;
at the forwarding node, allocating data for forwarding along each of the lowest cost routes in proportion to the calculated ratio.
6. An apparatus for forwarding data in a data communications network comprising a plurality of nodes and links therebetween, each link having a usage cost and a load capacity, the apparatus comprising:
means for identifying, using a shortest path first algorithm, a plurality of lowest cost routes, comprising one or more links, to a destination node;
means for associating, in the shortest path first algorithm, each lowest cost route of the plurality of lowest cost routes with a load capacity;
wherein at least two of the lowest cost routes have unequal load capacities;
means for calculating a ratio of the associated load capacities;
means for allocating data for forwarding along each of the lowest cost routes in proportion to the calculated ratio.
7. An apparatus as claimed in claim 6, 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.
8. An apparatus as claimed in claim 6 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.
9. An apparatus as claimed in claim 6 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.
10. An apparatus for forwarding data in a data communications network, the apparatus comprising:
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 non-transitory computer readable medium comprising one or more sequences of instructions for forwarding data in a data communications network comprising a plurality of nodes and links there between, each link having a usage cost and a load capacity, which instructions, when executed by the one or more processors, cause the one or more processors to perform:
allocating data for forwarding along each of the lowest cost routes in proportion to the calculated ratio.
11. An apparatus as claimed in claim 10 in which, where a plurality of links connects adjacent nodes, the instructions cause setting the load capacity between those nodes as the maximum load capacity of any one of those links.
12. An apparatus as claimed in claim 10 in which, where a plurality of links connects adjacent nodes, the instructions cause setting the load capacity between these nodes as the sum of the load capacity of each of these links.
13. A method as recited in claim 1, further comprising:
identifying a plurality of lowest cost routes between the forwarding node and a destination node sharing a common outgoing interface at the forwarding node;
selecting a maximum load capacity among the plurality of lowest cost routes;
using the selected maximum load capacity for a load capacity value for all the plurality of lowest cost routes when data is forwarded on any of the plurality of lowest cost routes.
14. An apparatus as recited in claim 6, further comprising:
means for identifying a plurality of lowest cost routes between the forwarding node and a destination node sharing a common outgoing interface at the forwarding node;
means for selecting a maximum load capacity among the plurality of lowest cost routes;
means for using the selected maximum load capacity for a load capacity value for all the plurality of lowest cost routes when data is forwarded on any of the plurality of lowest cost routes.
15. An apparatus as recited in claim 10, further comprising instructions which when executed by the one or more processors cause the one or more processors to perform:
FIELD OF THE INVENTION 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 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.
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.
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 (RIB) 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.
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.
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.
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.
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.
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; and
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 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.
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
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.
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
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 10 GB.
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 10 GB congestion is minimized.
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.5 GB. 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.5 GB 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.
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 10 GB:2.5 GB 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
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.
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. In 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.
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.
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 10 GB. 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, l both connecting node B to node Z via respective links 22, cost 1, bandwidth 10 GB and 24, cost 1, bandwidth 2.5 GB.
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�.
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. 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.
Implementation of the algorithm can be understood with reference to FIG. 4 in conjunction with FIG. 3. In 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 10 GB and cost 1. The remaining nodes are maintained in UNK.
C (i, 10G, 1)
B (j, 10G, 1)
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 10 GB. Node Z has been transferred to TENT together with the corresponding bandwidth and cost via interface i.
Z (i, 10G, 2)
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.
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.
Z (j, 10G; 2)
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.
Z (j, 10G, 2)
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 l (link 22), namely 10 GB. It will be further noted that node B will itself implement weighted load balancing between interfaces k and l 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.
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.5 GB. Node B is linked to node D via links 22 and 24 of costs 1 and respective bandwidths 10 GB, 2.5 GB. The cost of link 20 between nodes A and Z is 3.
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.
Z (i, 10G, 3)
In 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. 10 G, is associated with node D in TENT as shown in Table 6.
D (j, 10G, 2)
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.
Z (j, 2.5G, 3)
Block 402 is repeated once more and both routes to node Z are transferred to PATH as shown in Table 8 below.
D (j, 10G, 3)
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 10 GB:2.5 GB i.e. 80/20. Once again node B will implement load balancing itself between interfaces k and l in the ratio of the respective capacities of the links.
As a result of the method described herein network capacity is maximized without affecting the SPF calculations nor introducing potential loops.
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
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. 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.
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.
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.
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.
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.
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.
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. In this manner, computer system 140 may obtain application code in the form of a carrier wave.
5.0 Extensions and Alternatives
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.
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.
Patent CitationsCited PatentFiling datePublication dateApplicantTitleUS5128926Mar 21, 1990Jul 7, 1992Digital Equipment CorporationUpdating link state information in networksUS5243592Oct 15, 1990Sep 7, 1993Digital Equipment CorporationMethod and apparatus for distance vector routing on datagram point-to-point linksUS5253248Jul 3, 1990Oct 12, 1993At&T Bell LaboratoriesCongestion control for connectionless traffic in data networks via alternate routingUS5265092Mar 18, 1992Nov 23, 1993Digital Equipment CorporationSynchronization mechanism for link state packet routingUS5430727May 19, 1994Jul 4, 1995Digital Equipment CorporationMultiple protocol routingUS5825772 *Apr 2, 1996Oct 20, 1998Cabletron Systems, Inc.Distributed connection-oriented services for switched communications networksUS5959968Jul 30, 1997Sep 28, 1999Cisco Systems, Inc.Port aggregation protocolUS5999286Jan 9, 1997Dec 7, 1999AlcatelMethod and system for restoring a distributed telecommunications networkUS6032194Dec 24, 1997Feb 29, 2000Cisco Technology, Inc.Method and apparatus for rapidly reconfiguring computer networksUS6044075 *Dec 15, 1994Mar 28, 2000International Business Machines CorporationApparatus and method for routing a communication in a networkUS6098107Oct 31, 1997Aug 1, 2000Lucent Technologies Inc.Dynamic algorithms for shortest path tree computationUS6111257Nov 21, 1997Aug 29, 2000Picker International, Inc.Support assembly for scintillating crystalUS6128750Jun 26, 1998Oct 3, 2000Emc CorporationFail-over switching systemUS6148410Sep 15, 1997Nov 14, 2000International Business Machines CorporationFault tolerant recoverable TCP/IP connection routerUS6185598 *Feb 10, 1998Feb 6, 2001Digital Island, Inc.Optimized network resource locationUS6243754Jan 8, 1999Jun 5, 2001International Business Machines CorporationDynamic selection of network providersUS6256295Sep 25, 1997Jul 3, 2001Nortel Networks LimitedMethod and apparatus for determining multiple minimally-overlapping paths between nodes in a networkUS6295275Aug 19, 1998Sep 25, 2001Mci Communications CorporationDynamic route generation for real-time network restoration using pre-plan route generation methodologyUS6321271Dec 22, 1998Nov 20, 2001Lucent Technologies Inc.Constrained shortest path routing methodUS6343122Jun 28, 1996Jan 29, 2002Telefonaktiebolaget L M EricssonMethod and apparatus for routing traffic in a circuit-switched networkUS6349091Nov 7, 2000Feb 19, 2002Itt Manufacturing Enterprises, Inc.Method and apparatus for controlling communication links between network nodes to reduce communication protocol overhead trafficUS6356546 *Aug 11, 1998Mar 12, 2002Nortel Networks LimitedUniversal transfer method and network with distributed switchUS6363319 *Aug 31, 1999Mar 26, 2002Nortel Networks LimitedConstraint-based route selection using biased costUS6389764Feb 24, 1999May 21, 2002Freyssinet International (Stup)Method for making prefabricated structural elements, and prestressed structure produced with the structuralUS6415427Mar 8, 2001Jul 2, 2002Fujitsu LimitedMethod and apparatus for global routing, and storage medium having global routing program stored thereinUS6449279Nov 20, 2000Sep 10, 2002Enterasys Networks, Inc.Aggregation of data flows over a pre-established path to reduce connectionsUS6473421Mar 29, 1999Oct 29, 2002Cisco Technology, Inc.Hierarchical label switching across multiple OSPF areasUS6507577Nov 12, 1998Jan 14, 2003Nortel Networks LimitedVoice over internet protocol network architectureUS6535481Aug 20, 1999Mar 18, 2003Nortel Networks LimitedNetwork data routing protection cycles for automatic protection switchingUS6578086Sep 27, 1999Jun 10, 2003Nortel Networks LimitedDynamically managing the topology of a data networkUS6668282Aug 2, 2000Dec 23, 2003International Business Machines CorporationSystem and method to monitor and determine if an active IPSec tunnel has become disabledUS6690671 *Aug 17, 1998Feb 10, 2004Marconi Communications, Inc.Load balanced UBR routing in ATM networksUS6697325Dec 7, 1999Feb 24, 2004Nortel Networks LimitedSystem, device, and method for expediting reconvergence in a communication networkUS6697333Mar 4, 1998Feb 24, 2004Alcatel Canada Inc.Bandwidth load consideration in network route selectionUS6704320Mar 24, 1999Mar 9, 2004Lucent Technologies Inc.Dynamic algorithm for determining a shortest path tree between network nodesUS6711125Aug 2, 1999Mar 23, 2004Extreme NetworksProvisioning networks for reliable quality of serviceUS6714551Jul 19, 2000Mar 30, 2004Alvarion Israel (2003) Ltd.Method and apparatus for maintaining a predefined transmission quality in a wireless network for a metropolitan areaUS6724722Mar 7, 2000Apr 20, 2004Lucent Technologies Inc.Managing congestion and potential traffic growth in an information networkUS6778531Sep 29, 2000Aug 17, 2004Lucent Technologies Inc.Multicast routing with service-level guarantees between ingress egress-points in a packet networkUS6829215Mar 27, 2001Dec 7, 2004Marconi Intellectual Property (Ringfence) Inc.IP multi-homingUS6928484Jan 18, 2000Aug 9, 2005Cisco Technology, Inc.Method and apparatus for discovering edge-disjoint shortest path pairs during shortest path tree computationUS6944131Dec 30, 2003Sep 13, 2005Nortel Networks LimitedState information and routing table updates in large scale data networksUS6982951Jul 19, 2001Jan 3, 2006At&T Corp.Method for selecting a restoration path in a mesh networkUS6993593 *Oct 16, 2001Jan 31, 2006Nec CorporationInterdomain routing systemUS6996065Jul 5, 2001Feb 7, 2006Lucent Technologies Inc.Dynamic backup routing of network tunnel paths for local restoration in a packet networkUS7058016 *Oct 12, 2000Jun 6, 2006Cisco Technology, Inc.Method and system for accelerating route calculation in link state routing protocolsUS7065059Aug 9, 2001Jun 20, 2006Cisco Technology, Inc.Technique for restoring adjacencies in OSPF in a non-stop forwarding intermediate node of a computer networkUS7099286May 22, 2002Aug 29, 2006Cisco Technology, Inc.Method and system for finding shared risk diverse pathsUS7113481Nov 29, 2001Sep 26, 2006AlcatelInformed dynamic path protection for optical networksUS7158486Mar 12, 2002Jan 2, 2007Opcoast LlcMethod and system for fast computation of routes under multiple network states with communication continuationUS7188280Aug 29, 2001Mar 6, 2007Fujitsu LimitedProtecting route design method in a communication networkUS7242664May 30, 2002Jul 10, 2007Lucent Technologies Inc.Hybrid protection using mesh restoration and 1:1 protectionUS7248579Oct 15, 2002Jul 24, 2007Cisco Technology, Inc.System and method for providing a link state database (LSDB) snapshot for neighbor synchronizationUS7260645Apr 26, 2002Aug 21, 2007Proficient Networks, Inc.Methods, apparatuses and systems facilitating determination of network path metricsUS7274654Jun 20, 2002Sep 25, 2007Electronics And Telecommunications Research InstituteMethod for sharing backup path in MPLS network, label switching router for setting up backup in MPLS network, and system thereforUS7274658Mar 1, 2002Sep 25, 2007Akamai Technologies, Inc.Optimal route selection in a content delivery networkUS7280472Jan 10, 2003Oct 9, 2007Lucent Technologies Inc.Protection switching at a network nodeUS7349427Aug 21, 2002Mar 25, 2008Nortel Networks LimitedRouting method and apparatus for optimising auto-tunnelling in a heterogeneous networkUS7362709Nov 4, 2002Apr 22, 2008Arizona Board Of RegentsAgile digital communication network with rapid reroutingUS7490165Jul 18, 2001Feb 10, 2009Cisco Technology, Inc.Method and apparatus for computing a path in a system with nodal and link diverse constraintsUS7500013 *Apr 2, 2004Mar 3, 2009Alcatel-Lucent Usa Inc.Calculation of link-detour paths in mesh networksUS20020004843Dec 21, 2000Jan 10, 2002Loa AnderssonSystem, device, and method for bypassing network changes in a routed communication networkUS20020037010Sep 5, 2001Mar 28, 2002Nec CorporationMPLS-VPN service networkUS20020093954Jul 2, 2001Jul 18, 2002Jon WeilFailure protection in a communications networkUS20020112072Feb 7, 2002Aug 15, 2002Maple Optical Systems, Inc.System and method for fast-rerouting of data in a data communication networkUS20020116669Feb 7, 2002Aug 22, 2002Maple Optical Systems, Inc.System and method for fault notification in a data communication networkUS20020131362Mar 16, 2001Sep 19, 2002Ross CallonNetwork routing using link failure informationUS20020136223Dec 19, 2000Sep 26, 2002Ho Ka K.Method and apparatus for interworking PNNI with the signalling and routing protocols used in MPLS networksUS20020171886Mar 4, 2002Nov 21, 2002Quansheng WuAutomatic control plane recovery for agile optical networksUS20020172157Mar 12, 2002Nov 21, 2002Rhodes David L.Method and system for fast computation of routes under multiple network states with communication continuationUS20020191545Jun 14, 2001Dec 19, 2002Ar CardMethods and apparatus for selecting multiple paths taking into account shared riskUS20030063613Sep 28, 2001Apr 3, 2003Carpini Walter JosephLabel switched communication network and system and method for path restorationUS20030079040Oct 19, 2001Apr 24, 2003Nitin JainMethod and system for intelligently forwarding multicast packetsUS20030123457Dec 27, 2001Jul 3, 2003Koppol Pramod V.N.Apparatus and method for distributed software implementation of OSPF protocolUS20030161338Mar 27, 2002Aug 28, 2003Ng David D.Network path selection based on bandwidthUS20030193959Jul 26, 2002Oct 16, 2003General Instrument CorporationMethod and apparatus for priority-based load balancing for use in an extended local area networkUS20040001497Jun 27, 2002Jan 1, 2004Nokia, Inc.Dynamic routing over secure networksUS20040001508Jun 28, 2002Jan 1, 2004Haihong ZhengMethod and system for transmitting data in a packet based communication networkUS20040038671Jun 26, 2001Feb 26, 2004Ros TrayfordMethod and system for providing traffic and related informationUS20040071089Nov 12, 2001Apr 15, 2004Daniel BauerCosts in data networksUS20040085894Dec 20, 2002May 6, 2004Linghsiao WangApparatus for link failure detection on high availability Ethernet backplaneUS20040088429Oct 29, 2003May 6, 2004Xianlong LuoConstrained path algoritm for transmission networkUS20040117251Dec 17, 2002Jun 17, 2004Charles Shand Ian MichaelMethod and apparatus for advertising a link cost in a data communications networkUS20040151181Feb 4, 2003Aug 5, 2004Chu Thomas P.Methods and systems for providing MPLS-based layer-2 virtual private network servicesUS20040203827Nov 1, 2002Oct 14, 2004Adreas HeinerDynamic load distribution using local state informationUS20050007950Jul 7, 2003Jan 13, 2005Liu Hua AutumnMethods and devices for creating an alternate path for a bi-directional LSPUS20050031339Jul 9, 2004Feb 10, 2005Chumning QiaoEfficient trap avoidance and shared protection method in survivable networks with shared risk link groups and a survivable networkUS20050038909Jun 6, 2003Feb 17, 2005Harumine YoshibaStatic dense multicast path and bandwidth managementUS20050047353Aug 25, 2003Mar 3, 2005Susan HaresSystems and methods for routing employing link state and path vector techniquesUS20050097219Oct 7, 2003May 5, 2005Cisco Technology, Inc.Enhanced switchover for MPLS fast rerouteUS20050226400Feb 10, 2005Oct 13, 2005Norman FarberSystem and method for a telecommunications networkUS20050265228Jul 25, 2005Dec 1, 2005Fredette Andre NAutomatic protection switching using link-level redundancy supporting multi-protocol label switchingUS20050281271Aug 19, 2005Dec 22, 2005Nortel Networks LimitedState information and routing table updates in large scale data networksUS20060013125Jul 15, 2004Jan 19, 2006Jean-Philippe VasseurDynamic forwarding adjacencyUS20060018253Jul 23, 2004Jan 26, 2006Windisch Kurt JSystem and method for preserving multicast data forwarding during control failures in a routerUS20060221962Apr 5, 2005Oct 5, 2006Stefano PrevidiMulticast routing over unidirectional linksUS20060268879May 11, 2006Nov 30, 2006Texas Instruments IncorporatedQuality of service aware robust link state routing for mesh networksUS20070011284Feb 17, 2003Jan 11, 2007France Telecom SaDynamic distributed method for local protection of a label switching pathUS20070038767Jan 9, 2003Feb 15, 2007Miles Kevin GMethod and apparatus for constructing a backup route in a data communications networkUS20070183317Feb 3, 2006Aug 9, 2007Jean-Philippe VasseurTechnique for determining whether to reestablish fast rerouted primary tunnels based on backup tunnel path quality feedbackUS20070201355Feb 27, 2006Aug 30, 2007Vasseur Jean PMethod and apparatus for determining a preferred backup tunnel to protect point-to-multipoint label switch pathsUS20070248016Apr 25, 2006Oct 25, 2007Nortel Networks LimitedMethod and apparatus for simplifying the computation of alternate network pathsCN1440159AMar 31, 2003Sep 3, 2003中国科学院计算机网络信息中心Control method for layered switching network node regionWO2001078278A1Apr 10, 2001Oct 18, 2001Genuity IncRadio network routing apparatusWO2002006918A2Jun 6, 2001Jan 24, 2002Telcordia Tech IncA 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* Cited by examinerNon-Patent CitationsReference1AU Examiner's First Report for foreign patent application No. 2004311004 dated Jun. 23, 2008 (1 pg).2AU Examiner's Second Report for foreign patent application No. 2004311004 dated Aug. 18, 2008 (1 pg).3Backes, "Spanning Tree Bridges-Transparent Bridges for Interconnection of IEEE 802 LANs", 1988, IEEE, 5 pages.4Backes, "Spanning Tree Bridges�Transparent Bridges for Interconnection of IEEE 802 LANs", 1988, IEEE, 5 pages.5Claims, application No. EP 04795045, 4 pages.6Claims, application No. EP 04812468, 4 pages.7Current claims for AU foreign patent application No. 2004311004 (6 pgs).8Current claims for CN foreign patent application No. 200480033007.8 (6 pgs).9Current claims in China patent application 200480033399.8 (3 pgs) with marked up copy (4 pgs).10Current Claims, Application No. 04795045.6-2416, 5 pages.11Current Claims, PCT/US04/33827, 6 pages.12Current Claims-Application No. 05749440.3 dated Jan. 2010 (3 pages).13Current Claims�Application No. 05749440.3 dated Jan. 2010 (3 pages).14European Patent Office, "Communication pursuant to Article 94(3) EPC", Application No. 04795045.6-2416, dated Sep. 7, 2009, 5 pages.15European Patent Office, "Supplementary European Search Report", application No. EP 04795045, May 27, 2009, 4 pages.16European Patent Office, "Supplementary Search Report", application No. EP 04812468, dated May 27, 2010, 4 pages.17European Search Report received in Application No. 05749440.3 dated Dec. 4, 2009 (3 pages).18International Searching Authority, International Search Report, PCT/US04/33827, dated Mar. 28, 2005, 8 pages.19ISO/IEC 10589: "Information technology-Telecommunications and information exchange between systems-Intermediate System to Intermediate System intra-domain routeing information exchange protocol for use in conjunction with the protocol for providing the connectionless-mode network service", (ISO 8473), Second edition, Nov. 15, 2002, 208 pages.20ISO/IEC 10589: "Information technology�Telecommunications and information exchange between systems�Intermediate System to Intermediate System intra-domain routeing information exchange protocol for use in conjunction with the protocol for providing the connectionless-mode network service", (ISO 8473), Second edition, Nov. 15, 2002, 208 pages.21Karn Phil et al., Improving Round-Trip Time Estimates in Reliable Transport Protocols, 1987, ACM workshop on Frontiers in computer communication technology, pp. 2-7.22Karn, "Improving Round Trip Time Estimates in Reliable Transport Protocols", ACM, Transaction on Computer Systems, 1987, 8 pages.23Moy, J et al., "OSPF Version 2", IETF Standard, Network Working Group, Internet Engineering Task Force, IETF, Apr. 1998, XP015008112, NFC 2328, 245 pages.24Office Action from China for foreign patent application 200480033399.8 dated Feb. 29, 2008 (4 pgs) with English Translation (4 pgs).25Office Action from CN for foreign application No. 200480033007.8 dated Apr. 11, 2008 (10 pgs) with English translation (11 pgs).26Office Action from EPO for foreign patent application No. 04 800 942.7-1525 dated Apr. 27, 2009, (6 pgs).27Open Shortest Path First, Jun. 1999, Chapter 42, Internetworking Technologies handbook (all pages of chapter 42).28Open System Interconnection Routing Protocol, Jun. 1999, Chapter 41, Internetworking Technologies handbook (all pages of chapter 41).29Raju et al., "A New Approach to On-Demand Loop-Free Multipath Routing", Computer Communications and Networks, 1999, IEEE, Oct. 1999, XP010359531, ISBN: 978-0-7803-5794-5, 6 pages.30Thorup, Michael, "Fortifying OSPF/IS-IS against link-failure", Sep. 2007, 10 pages.31U.S. Appl. No. 10/323,358, filed Dec. 17, 2002, Notice of Allowance, Mailing Date Apr. 15, 2010.32Wang, Zheng et al., "Shortest Path First with Emergency Exists", ACM, 1990, 10 pages.33Wang, Zheng et al., "Shortest Path First with Emergency Exits," ACM 089791-405-8/90/0009/0166, 1990, pp. 166-176.Referenced byCiting PatentFiling datePublication dateApplicantTitleUS20090279557 *Jul 20, 2009Nov 12, 2009Chang WangMethod of route convergence, routing device, and main control board in routing device .* Cited by examinerClassifications U.S. Classification370/238, 370/400International ClassificationH04L12/56, H04L12/28, G01R31/08Cooperative ClassificationH04L45/123, H04L47/125, H04L45/02, H04L45/125, H04L45/48, H04L47/10European ClassificationH04L45/48, H04L47/10, H04L45/123, H04L45/125, H04L45/02, H04L47/12BLegal EventsDateCodeEventDescriptionJun 10, 2004ASAssignmentOwner name: CISCO TECHNOLOGY, INC., CALIFORNIAFree format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:FILSFILS, CLARENCE;PREVIDI, STEFANO BENEDETTO;VASSEUR, JEAN-PHILIPPE;REEL/FRAME:015435/0562;SIGNING DATES FROM 20040510 TO 20040601Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:FILSFILS, CLARENCE;PREVIDI, STEFANO BENEDETTO;VASSEUR, JEAN-PHILIPPE;SIGNING DATES FROM 20040510 TO 20040601;REEL/FRAME:015435/0562RotateOriginal ImageGoogle Home - Sitemap - USPTO Bulk Downloads - Privacy Policy - Terms of Service - About Google Patents - Send FeedbackData provided by IFI CLAIMS Patent Services©2012 Google