EP2853068A1 - Tie-breaking in shortest path determination - Google Patents

Tie-breaking in shortest path determination

Info

Publication number
EP2853068A1
EP2853068A1 EP12877146.6A EP12877146A EP2853068A1 EP 2853068 A1 EP2853068 A1 EP 2853068A1 EP 12877146 A EP12877146 A EP 12877146A EP 2853068 A1 EP2853068 A1 EP 2853068A1
Authority
EP
European Patent Office
Prior art keywords
path
identifier
node
identifiers
ordering
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP12877146.6A
Other languages
German (de)
English (en)
French (fr)
Inventor
Jerome Chiabaut
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Rockstar Consortium US LP
Original Assignee
Rockstar Consortium US LP
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 Rockstar Consortium US LP filed Critical Rockstar Consortium US LP
Publication of EP2853068A1 publication Critical patent/EP2853068A1/en
Withdrawn legal-status Critical Current

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/12Shortest path evaluation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/20Hop count for routing purposes, e.g. TTL
    • 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

Definitions

  • This invention relates to consistently selecting paths among multiple possibilities, such as equal-cost shortest paths, in a packet-forwarding communications network, such as an Ethernet network.
  • a node In packet-forwarding communications networks, a node can learn about the topology of the network and can decide, on the basis of the knowledge it acquires of the topology, how it will route traffic to each of the other network nodes.
  • the main basis for selecting a path is path cost, which can be specified in terms of a number of hops between nodes, or by some other metric such as bandwidth of links connecting nodes, or both.
  • Open Shortest Path First (OSPF) and Intermediate System-to-Intermediate System (IS-IS) are widely used link-state protocols which establish shortest paths based on each node's advertisements of path cost. These protocols typically do not attempt to tie-break between multiple, equal-cost, paths. Instead, they typically spread traffic across several equal-cost paths.
  • the spreading algorithms are not specified and can vary from router to router. Alternatively, they may make a local selection of a single path, but without consideration of consistency with the selection made by other routers. Consequently, in either case the reverse direction of a flow is not guaranteed to use the path used by the forward direction.
  • Multicast routing protocols such as Multicast Open Shortest Path First (MOSPF) depend on each router in a network constructing the same shortest path tree. For this reason, MOSPF implements a tie-breaking scheme based on link type, LAN vs. point-to-point, and router identifier to ensure that identical trees are produced. However, basing the tie-breaking decision on the parent with the largest identifier implies that, in general, the paths used by the reverse flows will not be the same as the paths used by the forward flows.
  • MOSPF Multicast Open Shortest Path First
  • Spanning Tree Protocols are ways of creating loop-free spanning trees in an arbitrary topology.
  • the Spanning Tree Protocol is performed by each node in the network. All of the Spanning Tree Protocols use a local tie-breaking decision based on (bridge identifier, port identifier) to select between equal-cost paths.
  • bridge identifier based on (bridge identifier, port identifier) to select between equal-cost paths.
  • a root node is elected first, and then the tree is constructed with respect to that root by all nodes. So, although all paths are symmetrical for go and return traffic (by definition, a simple tree makes this the only possible construct), the election process is slow and the simple tree structure cannot use any redundant capacity.
  • Radia Perlman's Rbridges proposal uses the identifier of the parent node as tie-breaker.
  • Figure 1 illustrates how, even for a trivial network example, a tie-breaking method based on the parent node identifier fails to produce symmetric paths.
  • the links are considered as having equal-cost and so the determination of path cost simply considers the number of hops.
  • first computing the path from A to B When the computation reaches node 2, the existence of equal-cost paths will be discovered. There is a first path (A-l- 3-6) and a second path (A- 1-4-5). If the tie-breaking algorithm selects a path based on the parent node with the smallest identifier, it will select the second path (A- 1-4-5) because node identifier 5 is smaller than node identifier 6. However, now consider computing the path from B to A.
  • the tie-breaking algorithm selects the first path (B-2-6-3) because node identifier 3 is smaller than node identifier 4. So, it can be seen that the shortest path computations made by nodes A and B provide inconsistent results.
  • PLSB Provider Link State Bridging
  • a first aspect of the invention provides a method of determining forwarding information for use in forwarding packets at a first node of a packet-forwarding network.
  • the method determines the shortest paths between the first node and a second node of the network and determines when a plurality of shortest paths have substantially equal-cost.
  • the method forms, for each substantially equal-cost path, a set of node identifiers which define the set of nodes in the path and then orders each set of node identifiers using a first ordering criterion to form a path identifier.
  • the first ordering criterion is independent of the order in which node identifiers appear in the path.
  • the method selects between the plurality of equal-cost paths by comparing the path identifiers.
  • Each node of the network has a unique node identifier.
  • the first ordering criterion is increasing lexicographic order or decreasing lexicographic order, although any ordering criterion can be used which creates a totally ordered set of node identifiers.
  • the method further comprises ordering the plurality of path identifiers into an ordered list using a second ordering criterion.
  • the second ordering criterion can be increasing lexicographic order, decreasing lexicographic order or any ordering criterion which creates a totally ordered set of path identifiers.
  • Another aspect of the invention provides a method of determining forwarding information for use in forwarding packets at a first node of a packet-forwarding network.
  • the method comprises determining shortest paths between the first node and a second node of the network by iteratively forming a shortest path tree and determines, while forming the shortest path tree, when a plurality of paths have equal-cost, each equal-cost path comprising a branch which diverges from a divergence node common to the equal- cost paths.
  • the method identifies, in each diverging branch, a node identifier using a first selection criterion to form a branch identifier and selects between the plurality of branches by comparing the branch identifiers.
  • the method uses a total ordering criterion to compare and select a node identifier in each branch, such as lexicographic order.
  • the method records the node identifier which meets the first selection criterion in each of the diverging branches while backtracking to the divergence node. This has an advantage in further simplifying computation and reducing storage requirements.
  • Both aspects of the invention can be used to select two equal-cost paths by using different first ordering/selection criteria and a common second ordering/selection criterion or by using a common first ordering criterion/selection and different second ordering/selection criteria.
  • Three or four equal-cost paths can be selected in a similar manner by consistently applying the first and second ordering/selection criteria at nodes and selecting identifiers at a particular position in the ordered lists.
  • the invention can be used as a tie-breaker to select between equal-cost paths by comparing an ordered set of node identifiers for each of a plurality of end-to-end paths.
  • a tie-breaker to select between equal-cost paths by comparing an ordered set of node identifiers for each of a plurality of end-to-end paths.
  • This has advantages of reducing the amount of computation, and reducing the amount of data which needs to be stored. Branches can be compared on a pair-wise basis to further reduce the amount of computation. This becomes particularly important as the size and complexity of the network increases.
  • Both variants of the invention have the important property of allowing a consistent selection to be made of equal-cost paths, regardless of where in the network the shortest paths are calculated. This ensures that traffic flow between any two nodes, in both the forward and reverse directions, will always follow the same path through the network.
  • the invention is not intended to be restricted to any particular way of determining a shortest path: Dijkstra's algorithm, Floyd's algorithm, or any other suitable alternative can be used.
  • the invention can be used as a tie-breaker between equal-cost paths having exactly the same value, or paths which are within a desired offset of one another both in terms of link metric or number of hops. This may be desirable in real life situation to increase the diversity between the set of eligible paths. For example, it may not always be cost- effective to deploy nodes and links in the symmetrical fashion in general required to achieve exactly equal-cost between any two end-points. By relaxing the constraint to requiring that the hop count on different routes be within one hop of each other, modest asymmetry can still result in eligible routes, and loop-free topology is still guaranteed because a difference of two hops is the minimum necessary to achieve a looping path.
  • shortest path is not limited to determining paths based only on distance, and is intended to encompass any metric, or combination of metrics, which can be used to specify the "cost" of a link.
  • metrics are: distance, number of hops, capacity, speed, usage, availability.
  • the method is stable in the sense that the selection of an equal-cost shortest path is not affected by the removal of parts of the network that are not on the selected paths, such as failed nodes or links.
  • the network is an Ethernet network although the invention can be applied to other types of packet-forwarding networks, especially those that have a requirement for symmetrical traffic-routing paths.
  • the functionality described here can be implemented in software, hardware or a combination of these.
  • the invention can be implemented by means of a suitably programmed computer or any form of processing apparatus. Accordingly, another aspect of the invention provides software for implementing any of the described methods.
  • the software may be stored on an electronic memory device, hard disk, optical disk or other machine-readable storage medium.
  • the software may be delivered as a computer program product on a machine-readable carrier or it may be downloaded to a node via a network connection.
  • a further aspect of the invention provides a network node comprising a processor which is configured to perform any of the described methods.
  • a further aspect of the invention provides a network of nodes which each consistently apply the described methods to select between equal-cost paths.
  • Figure 1 shows a network topology having equal-cost paths
  • Figure 2 shows an example of a packet-forwarding network in which the invention can be implemented
  • Figure 3 schematically shows apparatus at one of the bridging nodes of Figure 2;
  • Figure 4 shows the locality of shortest paths;
  • Figure 5 shows the locality of tie-breaking decisions
  • Figures 6 to 8 show example network topologies for illustrating calculation of shortest paths
  • Figure 9 shows a further example network topology for illustrating calculation of shortest paths
  • Figures 10 to 12 show tie-breaking steps of a shortest path calculation of the network topology shown in Figure 9;
  • Figure 13 shows an example of nodes dual -homed onto a mesh network
  • Figure 14 shows an example of equal cost paths for which an enhanced tie- breaking technique may be needed to provide results which are consistent from node to node.
  • FIG. 2 shows an example of a link state protocol controlled Ethernet network 10 in which the invention can be implemented and Figure 3 schematically shows apparatus at one of the nodes 41-48.
  • Nodes also called bridges, or bridging nodes
  • a routing system module 51 exchanges information 56 with peer nodes in the network regarding the network topology using a link state routing protocol. This exchange of information allows the nodes to generate a synchronized view of the network topology.
  • a Shortest Path Determination module 52 calculates a shortest path tree, which determines the shortest path to each other node.
  • the shortest paths determined by module 52 are used to populate a Forwarding Information Base 54 with entries for directing traffic through the network. As will be described in greater detail below, situations will arise when module 52 will encounter multiple equal-cost paths.
  • a tie-breaking module 53 selects one (or more) of the equal-cost paths in a consistent manner.
  • packets are received 57 at the node and a destination lookup module 55 determines, using the FIB 54, the port (or multiple ports in the case of multicast distribution) over which the received packet should be forwarded 58. If there is not a valid entry in the FIB 54 then the packet may then be discarded.
  • the modules shown in Figure 3 are for illustrative purposes only and may be implemented by combining or distributing functions among the modules of a node as would be understood by a person of skill in the art.
  • shortest path algorithms can be used to determine if a given node is on the shortest path between a given pair of bridges.
  • An all-pairs shortest path algorithm such as Floyd's algorithm [R. Floyd: Algorithm 97 (shortest path), Communications of the ACM, 7:345, 1962] or Dijkstra's single-source shortest path algorithm [E. W. Dijkstra: A note on two problems in connexion with graphs, Numerical Mathematics, 1 :269-271, 1959] can be implemented in the node 41-48 to compute the shortest path between pairs of nodes. It should be understood that any suitable shortest path algorithm could also be utilized.
  • the link metric used by the shortest path algorithm can be static or dynamically modified to take into account traffic engineering information.
  • the link metric can include a measure of cost such as capacity, speed, usage and availability.
  • tie-breaking algorithm The essence of a tie-breaking algorithm is to always 'work' . No matter what set of paths the algorithm is presented with, the algorithm should always be able to choose one and only one path. First and foremost, the tie-breaking algorithm should therefore be complete (1). For consistent tie-breaking, the algorithm must produce the same results regardless of the order in which equal-cost paths are discovered and tie-breaking is performed. That is, the tie-breaking algorithm should be commutative (2) and associative (3). The requirement that tie-breaking between three paths must produce the same results regardless of the order in which pairs of paths are considered (3) is not so obvious and yet it is absolutely necessary for consistent results as equal-cost paths are discovered in a different order depending on the direction of the computation through the network.
  • the tie-breaking algorithm must be symmetric (4), i.e. the tie-breaking algorithm must produce the same result regardless of the direction of the path: the shortest path between two nodes A and B must be the reverse of the shortest path between B and A.
  • locality is a very important property of shortest paths that is exploited by routing systems (5). The locality property simply says that: a sub-path of a shortest path is also a shortest path. This seemingly trivial property of shortest paths has an important application in packet networks that use destination-based forwarding. In these networks, the forwarding decision at intermediate nodes along a path is based solely on the destination address of the packet, not its source address.
  • a node in order to generate its forwarding information, a node needs only compute the shortest path from itself to all the other nodes and the amount of forwarding information produced grows linearly, not quadratically, with the number of nodes in the network.
  • the tie-breaking algorithm In order to enable destination-based forwarding, the tie-breaking algorithm must therefore preserve the locality property of shortest paths: a sub-path of the shortest path selected by the tie-breaking algorithm must be the shortest path selected by the tie-breaking algorithm.
  • the tie-breaking algorithm should be able to choose between them as soon as the existence of the second equal-cost shortest sub- path is discovered.
  • the tie-breaking decisions made at intermediate nodes will ultimately affect the outcome of the computation.
  • the algorithm removes two of the four shortest paths between nodes A and B from further consideration.
  • the tie-breaking algorithm will choose between sub-paths r and s before making a final determination.
  • These local decisions must be consistent with one another and, in particular, the choice between two equal-cost paths should remain the same if the paths were to be extended in the same way.
  • tiebreak(concat(p, s), concat(q, s)) concat(tiebreak(p, q), s)
  • concat(p, tiebreak(r, s)) tiebreak(concat(p, r), concat(p, s))
  • Table 1 The list of requirements set out in Table 1 is not intended to be exhaustive, and there are other properties of shortest paths that could have been included in Table 1. For example, if a link which is not part of a shortest path is removed from the graph, the shortest path is not affected. Likewise, the tie-breaking algorithm's selection between multiple equal -cost paths should not be affected if a link which is not part of the selected path is removed from the graph, and that even if this link is part of some of the equal-cost paths that were rejected by the algorithm.
  • the path identifier is an ordered list of the identifiers of each node traversed by the path through the network.
  • the node identifiers are sorted in lexicographic order.
  • the path identifier is the resulting concatenation of the ordered node identifiers.
  • Figure 6 shows an example network, with end nodes A, B and intermediate nodes 0-9.
  • a first path (along the top of Figure 6) between nodes A and B traverses nodes having the node identifiers A-0-5-6-1-4-8-B.
  • the path can be represented by the path identifier 014568AB.
  • This construction ensures that a path and its reverse will have the same path identifier.
  • the algorithm is only dealing with shortest paths or nearly shortest paths, only two paths - the direct path and the corresponding reverse path - can share an identifier.
  • the tie-breaking algorithm simply selects the path with the smallest (or largest) path identifier.
  • a preferred first ordering criterion is increasing or decreasing lexicographic order
  • a preferred second ordering criterion is increasing or decreasing lexicographic order
  • this step selects the path identifier appearing first in the ordered set of path identifiers.
  • Each node in the network that performs this algorithm consistently uses the same ordering criteria and selects a path at the same agreed position in the set of path identifiers, in order to select the same path.
  • lexicographic order means the set of node identifiers are arranged in order of size of identifier. So, if node identifiers are alphabetic, the set of node identifiers are arranged in alphabetic order A, B, C, D...etc.; if node identifiers are numerical, the set of node identifiers are arranged in numerical order.
  • this scheme can accommodate any way of labelling nodes, and any combination of types of identifier. For example, a mix of numbers and letters could be ordered by agreeing an order for numbers with respect to letters (e.g. order numbers first, then letters).
  • each character can be given it's American Standard Code for Information Interchange (ASCII) code and the ASCII codes can be sorted in increasing (decreasing) order.
  • ASCII American Standard Code for Information Interchange
  • Each node uses the same convention to order the node identifiers of paths in the same manner. This algorithm will produce consistent results because: there is a one-to-one mapping between a path (strictly speaking between the pair made up of a path and its reverse) and its identifier, and there is a strict ordering of the path identifiers.
  • the top path between nodes A and B is represented, after ordering, by the path identifier 014568AB.
  • a second path between nodes A and B traverses nodes A-0-7-9-1-4-8-B and this can be represented, after ordering, by the path identifier 014789AB.
  • a third path (along the bottom of Figure 6) between nodes A and B traverses nodes A-0-7-9-2-3-8-B and this can be represented, after ordering, by the path identifier 023789AB.
  • the tie-breaking algorithm compares each element of the ordered path identifier, in an agreed direction.
  • each node selects the lowest of the ordered path identifiers, when the path identifiers are compared in a particular direction (e.g. left-to-right).
  • the ordered path identifiers, for the three equal-cost paths are:
  • Figure 7 shows a simple network topology to illustrate the effects of different ordering criteria.
  • Two nodes, X, Y, are connected by four equal-cost paths having the node identifiers 1- 8.
  • nodes there are situations in which it is desirable for nodes to apply multiple, different, ordering and/or selection criteria to select multiple equal- cost paths.
  • Preferred options for the first selection criterion are to find the node identifier which is the first (or last) when the node identifiers are arranged using a total ordering scheme, such as lexicographic order (increasing or decreasing lexicographic order).
  • a total ordering scheme such as lexicographic order (increasing or decreasing lexicographic order).
  • preferred options for the second selection criterion are to find the branch identifier which is the first (or last) when the branch identifiers are arranged using a total ordering scheme, such as lexicographic order (increasing or decreasing lexicographic order).
  • the four equal-cost paths between nodes X and Y can represent four equal-cost diverging branches from a parent node X.
  • the tie-breaking algorithm needs to select one of the four branches. There are four possible options:
  • nodes there are situations in which it is desirable for nodes to apply multiple, different, ordering and/or selection criteria to select multiple equal- cost paths.
  • Figure 8 shows another network topology.
  • the local version of the method will start at node 13, and proceed to find two diverging paths leading from node 15.
  • the method explores the two separate paths as far as node 16, where the two paths converge again.
  • the method examines the node identifiers for each of the two paths.
  • the node identifiers are: 10, 14, 17, 21
  • the node identifiers are: 11, 12, 19, 20.
  • the path with the lowest identifier (10) is the top path.
  • Two ways of comparing the paths will be described. Firstly, the method can maintain a list of node identifiers for each of the diverging paths and can compare the elements of these lists.
  • the method can simply backtrack from node 16 towards node 15, keeping track of the lowest node identifier found in each branch.
  • the method compares the lowest node identifier found so far, with the new node identifier encountered at that step. The lowest node identifier is stored.
  • the two lowest values (10 in the top branch, 11 in the lower branch) can simply be compared to one another to find the path having the lowest node identifier. Accordingly, the top path is selected.
  • Dijkstra's algorithm [Dijkstra 59]. It solves the problem of finding the shortest paths from a point in a graph (the source or root node) to all possible destinations when the length of a path is defined as the sum of the positive hop-by-hop link costs. This problem is sometimes called the single-source shortest paths problem.
  • G (N, L) where N is a set of nodes and L is a set of links connecting them
  • Dijkstra's algorithm uses a priority queue, usually called TENT, to visit the nodes in order of increasing distance from the source node.
  • TENT priority queue
  • Parent an array of predecessors for each node
  • the initialization phase sets the Distance of each node, except the source node itself, to Infinity.
  • the Distance of the source node is set to zero and its Parent is set to Null as it is the root of the tree.
  • the priority queue contains only the source node. As the algorithm progresses, nodes are added to the priority queue when a path from the source node to them is found.
  • Nodes are pulled out of the priority queue in order of increasing distance from the source node, after the shortest path between them and the source node has been found.
  • the algorithm stops when all the nodes reachable from the source node have been cycled through the priority queue. While the priority queue TENT is not empty, the algorithm performs the following steps:
  • TENT 2 For each node connected to N, if the node's distance to the source would be reduced by making N its parent, then change the node's parent to N, set the node's distance to the new distance, and add the node to TENT.
  • Distance(node) contains the shortest distance from the source node to the node (or Infinity if the node is not reachable from the source node) and Parent(node) contains the predecessor of the node in the spanning tree (except for the source node and the nodes which are not reachable from the source node).
  • the parent of a node is updated only if changing parents actually reduces the node's distance. This means that, if multiple equal-cost shortest paths exist between the source node and some other node, only the first one encountered during the execution of the algorithm will be considered.
  • the tie-breaking algorithm is invoked when a convergence point of two diverging branches is reached. For example, considering the topology shown in Figure 8, if Dijkstra's algorithm is started from node 13, diverging branches are discovered leading from node 15 (an upper branch with nodes 10, 14, 17, 21 and a lower branch with nodes 11, 12, 19, 20) and these diverging branches converge at node 16. It is at node 16 that the tie-breaking algorithm would be invoked to select between the two branches.
  • the pseudo-code below shows an implementation of the modified Dikstra's algorithm with consistent tie-breaking using a priority queue implementation of the TENT set.
  • the Enqueue operation takes two arguments, a queue and a node, and puts the node in the proper queue position according to its distance from the source node.
  • the tie-breaking algorithm operates by back-tracking the two equal-cost paths, starting from the current parent and the new candidate parent of the node respectively, all the way back to the divergence point.
  • the fact that the two diverging paths may have a different number of hops complicates matters slightly as the two paths must be backtracked by an unknown, un-equal number of hops.
  • This problem can be resolved by always back-tracking the longer of the two paths first or both simultaneously when they have equal-cost.
  • this difficulty can be eliminated altogether by ensuring that two paths will only be considered to be of equal-cost if, and only if, they have the same number of hops. This is easily accomplished by either incorporating a hop count in the path cost or by using the hop count as a first order tie-breaker.
  • the following pseudo-code shows an implementation of the tie-breaking algorithm that assumes that the two paths have the same number of hops (and therefore so do their diverging branches).
  • PLSB essentially needs to compute the all-pairs shortest paths (sometimes a subset thereof).
  • Dijkstra's algorithm needs to be run for all the nodes in the network (all but one to be precise).
  • Floyd's algorithm computes the all-pairs shortest paths so it would need to be run only once.
  • Other applications may only require the computation of a smaller number of paths (e.g. if only one shortest path is required then Dijkstra's algorithm would have to be run only once with one of the path' s endpoints as the source).
  • Figure 9 shows an example network of nodes A-H, J interconnected by links. For each link, a metric associated with that link is shown as an integer value on the link. There are six different, equal-cost, shortest paths between node A and node B in this network. These are shown in the table below with their respective length and path identifier:
  • the non-local version of the tie- breaking algorithm will select the one with the smallest path identifier (ABCFH), i.e. path AFCHB.
  • path AFCHB path identifier
  • the remainder of this section shows how the local version of the tie-breaking algorithm arrives at the same result by making only local tie-breaking decisions as equal-cost paths and sub-paths are discovered during the execution of Dijkstra's algorithm.
  • Dijsktra's algorithm initializes a table of distances and parents (or predecessors) for the nodes in the network. All the distances are initially set to infinity except for the source node whose distance is set to zero. The parents are undefined at this stage: Node A B C D E F G H J
  • the first iteration of the Dijkstra loop selects the first and only node in TENT, node A. Then for each of node A' s neighbours, namely nodes F and G, it updates their distance to the source and makes node A their parent. Finally these two nodes are added to the TENT priority queue. During this first iteration of Dijkstra's algorithm the table of distances and parents becomes:
  • TENT [(G, 1), (F, 2)].
  • the second iteration of the Dijkstra loop removes the node with the smallest distance, node G, from the priority queue. It updates two of G' s neighbours that have not been processed yet, nodes C and D, and adds them to the priority queue:
  • the third iteration of the Dijkstra loop removes node F from the priority queue. It updates two neighbours of node F, nodes C and E, and adds node E to the priority queue (node C is there already). The distance of node C does not change but there is a new candidate equal path between node A and node C going through node F.
  • the tie-breaking algorithm must therefore be invoked to choose between this new path going through node F and the old one going through node G. This is shown in Figure 10.
  • the tie-breaking algorithm is invoked with the new candidate parent of node C, node F, and its old parent, node G. oldMin is set to the identifier of the old parent, G, and newMin is set to the identifier of the new parent, F. Because nodes F and G share the same parent (node A), the backtracking loop is not executed.
  • the fourth iteration of the Dijkstra loop removes one of the two nodes with distance 4, node D for instance, from the priority queue. Of D's two neighbours only one, node H, is updated and added to the priority queue:
  • the fifth iteration of the Dijkstra loop removes node E from the priority queue. Of E's two neighbours only one, node J, is updated and added to the priority queue.
  • the sixth iteration of the Dijkstra' s loop removes node C from the priority queue.
  • Two of C's neighbours, nodes J and H have equal-cost paths to node A through node C.
  • the tie-breaking algorithm must therefore be invoked twice for nodes J and H respectively.
  • the tie-breaking algorithm is invoked with the new potential parent, node C, and the old parent, node E. oldMin is set to the identifier of the old parent, E, and newMin is set to the identifier of the new parent, C. Because these two nodes, E and C, share the same parent (node F), the backtracking loop is not executed.
  • the tie-breaking algorithm is invoked with the new potential parent, node C, and the old parent, node D.
  • oldMin is set to the identifier of the old parent, D
  • newMin is set to the identifier of the new parent, C. Because these two nodes have different parents, both paths must be backtracked one hop further.
  • the seventh iteration of the Dijkstra's loop removes one of the two nodes with distance 6, node H for instance, from the priority queue. Only one of H's neighbours, node B, is updated and added to the priority queue:
  • the eighth iteration of the Dijkstra's loop removes node J from the priority queue. Of J's neighbours, only node B needs to be updated. Its distance does not change but there is a new candidate equal path between node A and node B going through node J.
  • the tie-breaking algorithm is invoked with the new potential parent of node B, node J, and the old parent, node H. old n is set to the identifier of the old parent, H, and newMin is set to the identifier of the new parent, J. Because these two nodes, H and J, share the same parent (node C), the backtracking loop is not executed.
  • node B is the node that is the furthest away from the source node A.
  • the reverse of the shortest path from node A to node B can be read directly from the parent table starting at node B and following the parents until node A is reached: BHCFA.
  • the shortest path from node A to node B selected by the local tie-breaking algorithm is therefore its reverse path: AFCHB.
  • the local tie-breaking was only invoked a total of 4 times during the execution of Dijkstra's algorithm.
  • the tie-breaking algorithm had to choose between sub-paths AFC and AGC. It selected sub- path AFC, thereby eliminating two paths, AGCJB and AGCHB, from further consideration.
  • the tie-breaking algorithm had to choose between sub-paths AFCJ and AFEJ. It selected sub-path AFCJ, thereby eliminating a third path, AFEJB, from further consideration.
  • the tie-breaking algorithm had to choose between sub- paths AGDH and AGCH.
  • FIG. 13 shows a common networking scenario in which edge nodes X and Y are each dual-homed on a full mesh of core nodes A, B, C, D. For redundancy, each edge node is connected to two core nodes, with node X connected to core nodes A and B and node Y connected to nodes C and D. Each core node is connected to all of the other core nodes, e.g. node A is connected to B, C, and D.
  • the two selected paths are (X, A, C, Y) and (X, B, D, Y).
  • paths A-C-B-D and A-B-D each have a cost of 3 and are also equal cost paths.
  • the identifier of path A-C-B-D, ABCD is lexicographically ordered ahead of ABD, the identifier of path A-B-D. So a tie breaking algorithm that selects path A-B over path A-C-B would also select path A-C-B-D over path A- B-D, a result which is not consistent with the locality property discussed above.
  • the 4 variants of the global tie breaking technique described above as the first embodiment are defined by the following rules - 1. Sort the node identifiers in increasing order to form path identifiers, sort the path identifiers lexicographically and select the path whose identifier is first among the sorted path identifiers.
  • Sort the node identifiers in increasing order to form path identifiers sort the path identifiers lexicographically and select the path whose identifier is last among the sorted path identifiers.
  • variants 3 and 4 of the global tie breaking algorithm are effective for equal cost paths traversing unequal numbers of nodes, but variants 1 and 2 do not always provide consistent results.
  • Variants 1 and 2 of the global tie breaking technique do not work properly when a path identifier for one of the equal cost paths is a prefix of a path identifier for another of the equal cost paths. The problem arises because the shorter path identifier runs out of node identifiers before a path selection can be made.
  • shorter path identifiers may be padded out by adding dummy node identifiers so that the path identifiers for all of the equal cost paths to be compared have the same number of node identifiers.
  • the padding should be consistent with the ordering criterion that is used to form the path identifiers.
  • null identifiers that are accorded a lower value than any node identifier to the trailing end of identifiers of paths having fewer nodes than other equal cost paths until all equal cost path identifiers have the same length. This is the convention adopted, for instance, when ordering words in a dictionary. However, this is not consistent with sorting the identifiers of the nodes in each path in order of increasing value.
  • node identifiers in each path are sorted in order of increasing value to derive the path identifiers, special identifiers that are accorded a higher value than any node identifier should be added to the trailing end of path identifiers having fewer node identifiers than other equal cost path identifiers until all equal cost path identifiers have the same length.
  • null identifiers that are accorded a lower value than any node identifier may be added to the leading end of path identifiers having fewer node identifiers than other equal cost path identifiers until all equal cost path identifiers have the same length.
  • null identifiers that are accorded a lower value than any node identifier should be added to the trailing end of path identifiers having fewer node identifiers than other equal cost path identifiers until all equal cost path identifiers have the same length.
  • This is the conventional lexicographic ordering.
  • special identifiers that are accorded a higher value than any node identifier may be added to the leading end of path identifiers having fewer node identifiers than other equal cost path identifiers until all equal cost path identifiers have the same length.
  • there are 8 variants of the global tie breaking technique generalized to handle equal cost paths traversing different nodes - Variant Ordering Criterion End of Path ID Value of Added Path ID Selection for Node IDs Used for Additions Dummy IDs
  • Yet another way to achieve the same result is to perform a lexicographic comparison of the path identifiers as a first ordering criterion but to use the number of hops as a secondary ordering criterion if, and only if, one of the path identifiers runs out before a determination can be made by the lexicographic comparison.
  • Lexicographic ordering of equal length strings is used as the primary ordering criterion and the length of the path identifiers (i.e.
  • the number of hops in the path is used as a secondary ordering criterion when one of the path identifiers run out before the lexicographic comparison can make a determination. In this case, the path with the larger number of hops is deemed to come before the path with the smaller number of hops.
  • path identifiers having fewer node identifiers may simply chose to order paths with a smaller number of hops ahead of paths with a larger number of hops. Lexicographic ordering of path identifiers is then used as a secondary ordering criterion for paths with a same number of hops. In this case, paths with a smaller number of hops are deemed to come before paths with a larger number of hops.
  • the length of the path identifiers is used as the primary ordering criterion - paths with fewer hops are always before paths with more hops - and lexicographic ordering is used as a secondary ordering criterion for paths with a same number of hops.
  • Yet another way to achieve the same result is to perform a lexicographic comparison of the path identifiers as a first ordering criterion but to use the number of hops as a secondary ordering criterion if, and only if, one of the path identifiers runs out before a determination can be made by the lexicographic comparison.
  • Lexicographic ordering of equal length strings is used as the primary ordering criterion and the length of the path identifiers (i.e.
  • the number of hops in the path is used as a secondary ordering criterion when one of the path identifiers run out before the lexicographic comparison can make a determination. In this case, the path with the smaller number of hops is deemed to come before the path with the larger number of hops.
  • path identifiers having fewer node identifiers may simply chose to order paths with a larger number of hops ahead of paths with a smaller number of hops. Lexicographic ordering of path identifiers is then used as a secondary ordering criterion for paths with a same number of hops. In this case, paths with a larger number of hops are deemed to come before paths with a smaller number of hops.
  • the length of the path identifiers is used as the primary ordering criterion - paths with more hops are always before paths with fewer hops - and lexicographic ordering is used as a secondary ordering criterion for paths with a same number of hops.
  • the 8 variants of the global tie breaking technique generalized to handle equal cost paths traversing different numbers of nodes can be expressed in terms of several modified lexicographic ordering in which the length of the path identifiers as well as the path identifiers themselves are used to establish a complete ordering of the path identifiers.
  • the lexicographic ordering used as a primary ordering criterion is a limited version of the traditional lexicographic ordering: it does not make a determination if one path identifier is a prefix of the other path identifier -
  • Table 3 The traditional lexicographic ordering in which the primary ordering criterion is the lexicographic order and strings that share a common prefix are sorted in order of increasing lengths corresponds to variants 3&4.
  • Variants 1&2 correspond to a modified lexicographic order in which strings that share a common prefix are sorted in order of decreasing lengths.
  • Variants 5-8 correspond to methods of ordering strings in which the length of the strings is the primary ordering criterion and lexicographic ordering is used as the secondary ordering criterion for strings of equal length.
  • the effect of using the hop count - the length of the path identifiers - as a first-level tie-breaker can be elucidated.
  • a first tie-breaking performed using the length of the path identifiers does not eliminate from consideration the path that would have been ultimately selected - i.e. the first tie-breaking based on the hop count does not affect the end result. If, however, the first level tie-breaking prunes the path that would normally have been selected, a new tie-breaking variant is obtained.
  • variants 1 to 4 produce the same result as variants 5-8 as lexicographic ordering is the only ordering criterion for path identifiers: the secondary criteria of variants 1-4 and the primary criteria of variants 5-8 all become inoperative since the identifiers of the equal-cost paths input to the tie-breaking all share a same - maximal or minimal - length.
  • Variants 5&8 always select paths with a minimum number of hops and therefore are not affected by a first level of tie-breaking that selects equal cost paths with a minimum number of hops. These correspond to two variants of the first embodiment above.
  • variants 6&7 always select paths with a maximum number of hops and therefore are not affected by a first level of tie-breaking that selects equal cost paths with a maximum number of hops.
  • the first 2 of the 8 variants above are not variants of the first embodiment described above.
  • Variants 3&4 correspond to variants of the first embodiment where traditional lexicographic ordering is applied to path identifiers of unequal length.
  • the last 4 variants are mathematically equivalent to variants of the first embodiment where a first level of tie-breaking is performed by selecting only paths with a maximal number of hops.
  • the following 12 global tie-breaking variants can be expressed in terms of ordering criteria for the node identifiers and the path identifiers -
  • the lexicographic ordering used as a primary ordering criterion is a limited version of the traditional lexicographic ordering: it does not make a determination if one path identifier is a prefix of the other path identifier. In this case, a secondary ordering criterion based on the length of the path identifiers must be invoked.
  • Each group of four global tie-breaking variants corresponds to the four local tie- breaking variants.
  • Global tie-breaking variants 1-4 correspond to the case where all equal-cost shortest paths are considered regardless of their hop count.
  • Variants 5-8 correspond to the case where only equal-cost shortest paths with a minimal number of hops are considered to be shortest paths.
  • Variants 9-12 correspond to the case where only equal-cost shortest paths with a maximal number of hops are considered to be shortest paths.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
EP12877146.6A 2012-05-22 2012-05-22 Tie-breaking in shortest path determination Withdrawn EP2853068A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CA2012/050337 WO2013173900A1 (en) 2012-05-22 2012-05-22 Tie-breaking in shortest path determination

Publications (1)

Publication Number Publication Date
EP2853068A1 true EP2853068A1 (en) 2015-04-01

Family

ID=49622954

Family Applications (1)

Application Number Title Priority Date Filing Date
EP12877146.6A Withdrawn EP2853068A1 (en) 2012-05-22 2012-05-22 Tie-breaking in shortest path determination

Country Status (6)

Country Link
EP (1) EP2853068A1 (pt)
JP (1) JP2015520997A (pt)
KR (1) KR20150030644A (pt)
CN (1) CN104396198A (pt)
BR (1) BR112014028934A2 (pt)
WO (1) WO2013173900A1 (pt)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210376914A1 (en) * 2020-05-26 2021-12-02 Huawei Technologies Co., Ltd. Packet forwarding incorporating partial sorting of path costs or utilities
US11374852B2 (en) 2020-05-29 2022-06-28 Huawei Technologies Co., Ltd. Piecewise shortest path first routing
US11374652B1 (en) 2020-12-10 2022-06-28 Huawei Technologies Co., Ltd. Method and apparatus for limited flooding and network routing region membership management
US11438823B2 (en) 2020-05-29 2022-09-06 Huawei Technologies Co., Ltd. Orthodromic routing
US11451475B2 (en) 2019-12-19 2022-09-20 Huawei Technologies Co., Ltd. Packet forwarding based on geometric location
US11476925B2 (en) 2021-02-04 2022-10-18 Huawei Technologies Co., Ltd. Method and apparatus for limited flooding in networks using transit nodes
US11601780B2 (en) 2021-01-05 2023-03-07 Huawei Technologies Co., Ltd. Method and apparatus for propagating network status updates using directional tracking
US11909627B2 (en) 2021-01-04 2024-02-20 Huawei Technologies Co., Ltd. Method and apparatus for managing network status information using multiple degree of precision graph

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170061162A (ko) * 2014-09-30 2017-06-02 후아웨이 테크놀러지 컴퍼니 리미티드 서비스 경로 생성 방법 및 장치
CN109218190B (zh) * 2017-06-29 2020-08-07 华为技术有限公司 一种传输路径的确定方法及节点
US11165681B2 (en) * 2019-09-27 2021-11-02 Juniper Networks, Inc. Inter-autonomous system trace route message
CN113301364B (zh) * 2021-01-05 2024-09-06 阿里巴巴集团控股有限公司 路径规划方法、cdn连接建立方法、设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7911944B2 (en) * 2007-12-26 2011-03-22 Nortel Networks Limited Tie-breaking in shortest path determination
US8553562B2 (en) * 2010-09-08 2013-10-08 Telefonaktiebolaget L M Ericsson (Publ) Automated traffic engineering for multi-protocol label switching (MPLS) with link utilization as feedback into the tie-breaking mechanism

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2013173900A1 *

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11451475B2 (en) 2019-12-19 2022-09-20 Huawei Technologies Co., Ltd. Packet forwarding based on geometric location
US20210376914A1 (en) * 2020-05-26 2021-12-02 Huawei Technologies Co., Ltd. Packet forwarding incorporating partial sorting of path costs or utilities
US11329717B2 (en) 2020-05-26 2022-05-10 Huawei Technologies Co., Ltd. Packet forwarding incorporating partial sorting of path costs or utilities
US11374852B2 (en) 2020-05-29 2022-06-28 Huawei Technologies Co., Ltd. Piecewise shortest path first routing
US11438823B2 (en) 2020-05-29 2022-09-06 Huawei Technologies Co., Ltd. Orthodromic routing
US11374652B1 (en) 2020-12-10 2022-06-28 Huawei Technologies Co., Ltd. Method and apparatus for limited flooding and network routing region membership management
US11909627B2 (en) 2021-01-04 2024-02-20 Huawei Technologies Co., Ltd. Method and apparatus for managing network status information using multiple degree of precision graph
US11601780B2 (en) 2021-01-05 2023-03-07 Huawei Technologies Co., Ltd. Method and apparatus for propagating network status updates using directional tracking
US11476925B2 (en) 2021-02-04 2022-10-18 Huawei Technologies Co., Ltd. Method and apparatus for limited flooding in networks using transit nodes

Also Published As

Publication number Publication date
BR112014028934A2 (pt) 2017-06-27
WO2013173900A1 (en) 2013-11-28
JP2015520997A (ja) 2015-07-23
CN104396198A (zh) 2015-03-04
KR20150030644A (ko) 2015-03-20

Similar Documents

Publication Publication Date Title
US8761022B2 (en) Tie-breaking in shortest path determination
US7911944B2 (en) Tie-breaking in shortest path determination
EP2853068A1 (en) Tie-breaking in shortest path determination
TWI493926B (zh) 複雜型樹狀網路之自動化訊務工程
EP2476226B1 (en) Apparatus for selecting between multiple equal cost paths
US9160651B2 (en) Metric biasing for bandwidth aware tie breaking
KR101809779B1 (ko) 타이-브레이킹 메커니즘에의 피드백으로서의 링크 사용률의 이용에 기초한 802.1aq에 대한 자동화된 트래픽 엔지니어링
JP6117911B2 (ja) 802.1aqのための3段折り返しclosの最適化
Cho et al. Independent directed acyclic graphs for resilient multipath routing
WO2005036839A2 (en) Rapid alternate paths for network destinations
US9654382B2 (en) Use of alternate paths in forwarding of network packets

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20141222

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

AX Request for extension of the european patent

Extension state: BA ME

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20151201