Recherche Images Maps Play YouTube Actualités Gmail Drive Plus »
Recherche avancée dans les brevets | Images de page | Historique Web | Connexion

Brevets

  

FIG. GC

640 STEP 2: NODE SELECTION

841 IF 0 - 0

642 TERMINATE

643 ELSE

644 (y.lx.d. A D-EXTRATMIN (Q) /» SELECT AND REMOVE THE ELEMENT FROM

645 THE LIST WITH THE SMALLEST A»/ 64G CCx.Tl — Clx.tMy} h UPDATE TREE STRUCTURE »/

647 C(P(y.T).T) - ClPly.T),T)-{y>

648 PCy.Tl— x /» UPDATE THE PARENT ATTRIBUTE OF THE SELECTED NODE »/

649 Nd- Bmaxly.T) /^CONSIDER THE SELECTED NODE AND ALL ITS DESCENDENTS */

650 GO TO STEP 3

FIG. 6D

651 STEP 3: DISTANCE UPDATE

652 VncNd

653 Dln,T)-0(n,T)+A /. UPDATE THE DISTANCE OF THE SELECTED NODE

654 AND EACH DESCENDENT CONSIDERED */

655 Vln.T) * anchored /* EACH SUCH NODE NOW HAS THE CORRECT DISTANCE *l

656 IF neO AND Pln.T) t Pln.O)

657 REMOVE ln.G)/» ON NEED TO UPDATE ITS DISTANCE FURTHER «/

658 GO TO STEP 4

FIG. 6E

659 STEP 4: NODE SEARCH

G60 VesCHNjj) /» CONSIDER ALL EDGES DIRECTED OUT OF THE SELECTED SUBSET OF NODES «/

661 IF (DIE(e).T) > DISIe),T)*W(e)) OR IVIE(e).f) = floating) /. IF THE REDUCED

G62 DISTANCE OF A SELECTED NODE ALSO REDUCES OR DEFINES

G63 THE DISTANCE OF ANOTHER NODE «/

GG4 newdist-D(S(e).ThW(e)

G85 A- newdist-D(E(e).t)

GGG /» CHOOSE THE SMALLER DISTANCE AS THE NEW POTENTIAL DISTANCE */

6G7 ENQUEUE (Q,{Ele), IS(e) .newdist, A)}) I* UPDATE THE NODE WITH THE NEW

568 DISTANCE AND NEW PARENT IN THE LIST Q»/

669 60 TO STEP 2

[graphic]

1

DYNAMIC ALGORITHM FOR
DETERMINING A SHORTEST PATH TREE
BETWEEN NETWORK NODES

5

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to routing of information packets in a communications network, and, more particularly, to a router determining shortest paths for com- 10 municating packets between nodes based on shortest-path trees.

2. Description of the Related Art

In an interconnected communications network employing 15 packets, such as the Internet, routing protocols are employed by routers of the network to determine how packets are to be forwarded between nodes. Packets received by a node's router are forwarded to other nodes based on a forwarding table of an interior routing protocol. Interior routing proto- 2Q cols exchange network topology and link-state information ("network topology information") among routers to allow the node's router to construct the corresponding forwarding table. An example of a widely-used interior routing protocol is the Open Shortest Path First (OSPF) protocol, as outlined 2J in J. Moy, "OSPF Version 2," Internet Draft, Request for Comment (RFC) 2178, July, 1997. In addition, some interior routing protocols associate a link cost, known in the art as a weight, with each link between nodes. The link cost may be associated with, for example, available bandwidth or 3Q revenue generated by the link. When link-state information (e.g., status, utilization, connectivity, or bandwidth) is exchanged between routers, each router in a regional network has a complete description of the network's topology.

Each router computes paths between nodes, and uses the 35 weights to calculate a set of preferred paths. Each of the set of preferred paths that is computed has a minimum total weight for the path between the particular router and each other router in the region. This set of preferred paths may be defined with a shortest path tree (SPT). A forwarding table 40 with routing information (e.g., source-destination pair, source ports, and destination ports) is generated from the SPT. The router uses the routing information to forward a received packet along the shortest path of the SPT to its destination. The SPT may be calculated using an algorithm 45 such as Dijkstra's algorithm, described in E. Dijkstra, "A note: two problems in connection with graphs," Numerical Mathematics, vol. 1, 1959, pp. 269-271.

When the network topology of a regional network changes (e.g., a link fails, recovers, or changes its routing 50 weights), each router in the region detects the change and updates the network topology information stored by the router. After updating its stored network topology information, each router recalculates a new SPT and forwarding table. In routers of the prior art, the recalculation 55 deletes the current SPT and recalculates the new SPT from scratch (this type of recalculation method is known in the art as a statis algorithm).

However, for most changes in network topology, the new SPT does not differ significantly from the old SPT, and in 60 many cases the old and new SPTs are the same. Statis algorithms that recompute the new SPT from scratch are inefficient because they do not take advantage of available information about the prior (outdated) SPT. Another drawback of statis algorithms is that multiple routes of the same 65 shortest distance may coexist from one router to another router. When the SPT is re-computed from scratch, a dif

2

ferent one of the coexisting multiple routes may be selected for the SPT than was selected by a prior computation. If a new path of the coexisting multiple routes is selected each time the new SPT is computed, the router may change many entries in its forwarding table frequently and unnecessarily, increasing the risk of routing errors or routing failures associated with implementing the change in routing.

To illustrate, FIG. 1 shows a regional network 100 of an Internet Service Provider (ISP) comprising four routers 101, 102, 103, and 104. The routers 101, 102, and 104 are commonly known as access routers and provide users a connection to the network 100. Router 103 connects the network 100 to a backbone packet network 105 that may be, for example, the Internet. Initially, link 106 (shown by a dashed arrow) between 103 and 104 is not in service (i.e., disconnected or not provisioned). The solid arrows indicate links which are preferred paths defined by an SPT calculated and stored in router 101 (commonly termed as an SPT "rooted at" router 101). The numeral next to each solid arrow in FIG. 1 is the weight assigned to the corresponding link. The forwarding table in router 101 contains forwarding entries, each forwarding entry corresponding to next-hop information of each user's network connection through router 103 to the backbone packet network 105. Initially, all packets routed from router 101 to backbone packet network 105 pass through router 102. However, if the link between routers 103 and 104 is established (i.e., either provisioned or recovered) and has a link weight of 1, the network topology changes and the SPT rooted at router 101 must be recomputed.

When the SPT is recomputed from scratch, the result may indicate that all paths to the backbone packet network 105 from router 101 now pass through router 104. Router 101 then changes the next-hop information for some or all network connections passing through router 103 to now pass through router 104. However, the path weight for the previous and new paths are the same and the changes may not be necessary. These changes may correspond to several thousand updates in the forwarding table of router 101, many of which may be redundant updates. In addition to redundant updates in forwarding tables, unnecessary changes in the SPT may also cause undesirable fluctuation of traffic load on any given route.

SUMMARY OF THE INVENTION

The present invention relates to routing packets in a packet network based on a shortest path tree (SPT) defining paths between nodes in the network. In accordance with the present invention, a temporary list of nodes in the network is generated for a current SPT, the list including nodes affected by a change in the weight of a link between two nodes in the network. The change in weight corresponds to the addition of a new link in the network or an increase or decrease in the weight of an existing link in the network. A selection process selects a node of the list in accordance with a maximum decrement criterion, the maximum decrement criterion identifying the node in the list having a most negative or a least positive associated distance change resulting from the change in the weight of the link. An update process updates one or more paths in current SPT for nodes reachable from the selected node, wherein the selected node is removed from the list and zero, one, or more of the reachable nodes are added to the list. The selection process and update process are repeated until the list is empty to generate an updated SPT. A router, for example, then routes one or more packets in accordance with the updated SPT. 3

BRIEF DESCRIPTION OF THE DRAWINGS

Other aspects, features, and advantages of the present invention will become more fully apparent from the following detailed description, the appended claims, and the accompanying drawings in which:

FIG. 1 shows a regional network connected to a backbone packet network and comprising four routers with one or more routers employing a prior art method of updating a shortest path tree;

FIG. 2 shows network of six nodes and a shortest path tree for the network;

FIG. 3 shows a new shortest path tree determined after the edge of the network shown in FIG. 2 changes weight;

FIG. 4 illustrates a ball-and-string model for the network shown in FIG. 2 as may be employed with the present invention;

FIG. 5 illustrates a ball-and-string model for the network shown in FIG. 3 as may be employed with the present invention;

FIG. 6A shows an exemplary implementation of pseudocode for a static version initialization step employed with the dynamic SPT algorithm of the present invention;

FIG. 6B shows an exemplary implementation of pseudocode for a dynamic version initialization step of the dynamic SPT algorithm of the present invention;

FIG. 6C shows an exemplary implementation of pseudocode for a node selection step of the dynamic SPT algorithm of the present invention;

FIG. 6D shows an exemplary implementation of pseudocode for a distance update step of an exemplary implementation of the dynamic SPT algorithm of the present invention;

FIG. 6E shows pseudo-code for a node search step of the dynamic SPT algorithm of the present invention; and

FIG. 7 shows a block diagram of a processing section of a router generating a shortest path tree with the dynamic SPT algorithm of the present invention.

DETAILED DESCRIPTION

In accordance with the present invention, a dynamic shortest path tree (SPT) algorithm for a router determines a new SPT for a root node in response to a link-state or other network topology change. The dynamic SPT algorithm determines the new SPT as an optimization problem in a linear programming framework based on an existing SPT in the router. The dynamic SPT algorithm emulates a ball and string model by iteratively selecting nodes of the existing SPT for consideration and update of the parent node, child nodes, and distance attributes based on the criterion of maximum decrement. In the ball and string model, a node in the existing SPT is selected in each iteration based on the greatest potential decrease (or least increase) in its distance attribute, which may be termed the criterion of maximum decrement.

The ball and string model that may be employed for the dynamic SPT algorithm represents a network of nodes and links with a ball representing a node and a string representing a link, or edge. The length of a string is defined by its link's weight. Each set of strings connecting the balls between the root and a particular node defines a path. The shortest path is the path defined by the strings from a root node to a particular node that are tight. For the dynamic SPT algorithm, an increase (or decrease) in an edge weight in the existing SPT corresponds to a lengthening (or shortening) of

4

a string. By sequentially pulling balls away in a single direction from the ball of the root node, the new SPT becomes defined by the balls and tight strings.

5 Definitions and the Shortest Path Tree

A directed graph G of nodes and edges (links with weights) is defined as G=(V, e), where V denotes a set of nodes and e denotes a set of edges in the graph G.

An integer value N denotes the total number of nodes in

10

the set V, and an integer value ED denotes the total number of edges in the set e. The graph G consists of a root node denoted by n0, and all other nodes are denoted as n1; . . . , nN_1. Each of the nodes n1, . . . , nN_1 may be reached from the root node n0 by a directed path in G. The length of a path is the sum of the weights of the edges in that path. Each edge e,- (0=i=ED-l) has an associated positive weight (cost) of w,

A rooted tree T is a subgraph of G such that every node 20 in G is reachable from the root n0 through a unique directed path using only edges in the rooted tree T. The distance of a node ni (i=l, . . . , N-l) in T is the length of the directed path in the rooted tree T connecting n0 to n,-. The shortest distance of a node ni is the length of a shortest path in G 25 connecting n0 to n,-. A rooted tree T is said to be a shortest path tree (SPT) for the graph G if the distance to every node ni in rooted tree T is the shortest distance to n,- in G. Multiple SPTs may exist within a given graph G, but each of the shortest distances to the nodes is unique.

30 Determining the Shortest Path Tree

With these definitions, the SPT for the root node n0 may be determined. To determine an SPT, the solution of the SPT by calculation (the "SPT problem") may be formulated as an

35 SPT optimization problem employing linear programming techniques. Liner programming techniques are known in the art and are described in, for example, David G. Luenberger, "Linear and Nonlinear Programming," Addison-Wesley (1984). Both primal and dual formulations of the SPT

40 problem employing linear programming techniques may be employed and are known in the art. The following describes the dual formulation as may be employed with the ball-andstring model of the present invention.

For every directed edge ei connecting node Uj to node nk,

45 a (row) vector v,- is created having a dimension of N (equal to the number of nodes). The N-dimensional row vector v,contains all entries set to 0 except for the ]'h entry set to a '-V and the k'h entry set to a '+1'. Concatenation of all ED vectors v,- results in a connectivity matrix A having a

50 dimension EDxN. An N-dimensional (column) vector uis defined such that the i'h entry u,- corresponds to a distance of node ni from the root node n0, one possible entry u,- is a potential shortest (or Euclidean) distance. If u,*is defined as the shortest distance of node n,- (u0*=0), then the difference

55 between shortest distances of nodes Uj and ni is u^-u,* =w„ where w, is the weight of the edge connecting n,- to Uj. Thus, if w denotes the (column) vector of all edge weights w, and u* represents the vector of shortest distances, then u* satisfies the feasibility constraint as given in equation (1):

60

Au < W; «o = 0. (1)

There are infinitely many vectors u that satisfy the above 65 matrix inequality and only one of them corresponds to the vector of shortest distances u*. The vector of shortest distances u* may be determined by solving the following

« PrécédentContinuer »