1
Lecture 2:
Routing algorithms
Shortest path, Widest path, and constrained routing
Olof Hagsand KTH CSC
DD2490 p4 2011
This lecture contains new material for 2011.
2
Graphs vs networks
•
Algorithms are usually defined on graphs whereas
protocols work on networks
•
Graphs have nodes and edges whereas networks
have interfaces, boradcast links, addresses,
hierarchical layering, etc.
3
RT1
N1
RT2
N2
3
3
N3
1
RT4
1
RT3
N4
2
1
1
RT5
RT6
8
8
8
6
N12
N13
N14
N15
8
8
8
6
7
RT9
N11
RT12
N10
3
10
N9
1
1
H1
2
1
RT11
2
N8
RT10
6
Ia
7
Ib
3
N6
1
RT8
1
4
N7
RT7
6
1
9
6
2
RFC 2328 fig 2
Network example
Network example
Note that the figure is taken from the OSPF RFC.
The broadcast links (N1, N2, N3) are denoted somewhat unusually by ellipses.
The dotted links denote exernal links (outside the OSPF routing domain).
Note that there is one host H1.
Note also that the link metrics are asymmetrical.
4
RT1
N1
RT2
N2
3
3
N3
1
RT4
1
RT3
N4
2
1
1
RT5
RT6
8
8
8
6
N12
N13
N14
N15
8
8
8
6
7
RT9
N11
RT12
N10
3
10
N9
1
1
H1
2
1
RT11
2
N8
RT10
5
Ib
7
Ia
3
N6
1
RT8
0
4
N7
RT7
6
1
9
6
2
0
0
0
0
5
1
0
0
0
0
0
0
0
7
(Directed) graph example
Note the modelling of the broadcast links, such as N3. Such a link is modelled by
adding a virtual network node (eg N3) to which the nodes connect (since all edges
connect only two nodes). Since this node is virtual, there is no physical
corresponding node, the cost of exiting the node is set to 0.
In many protocols such a virtual node (eg N3) 'belongs' to a router in the sense
that the router announces the network information of the virtual node. Such a
router is called the 'designated' router of the network. For example, RT1 is the
designated router of N3.
5
Example graph
A
B
C
E
D
F
1
1
1
2
1
1
2
1
1
13
1
Simple network with symmetric link metrics. The link with metric 13
is a typical backup path that normally is not used unless an error
occurs.
6
Shortest Path First (SPF)
•
Given link metrics (weights) on each individual link
•
Find the path (sequence of links) where the sum of
the metrics of all links (cumulative cost) is lowest
●
ECMP: A
set
of path with the least cost
A
B
C
E
D
F
1
1
1
2
1
1
2
1
1
13
1
7
BellmanFord shortest path
If it is possible to get from entity i to entity j directly, then a cost,
d(i,j), is associated with the hop between i and j. The cost is infinite
if i and j are not immediate neighbors. Let D(i,j) represent the metric of
the best route from entity i to entity j.
Then, the best metric is described by:
The algorithm:
For h=0 to N1 do:
In words: Entity i gets estimates from neighbors k of their distances to
the destination j. Add d(i,k) to each of the numbers. This is the cost of
traversing the network between i and k. Compare the values from all of its
neighbors and pick the smallest.
D
i
,
i
=
0,
for
all
i.
D
i
,
j
=
min
k
≠
j
[
d
i
,
k
D
k
,
j
]
,
otherwise
.
D
0
i
,
i
=
0,
for
all
i.
D
0
i
,
j
=
∞
,
otherwise
.
D
h
1
i
,
i
=
0,
for
all
i.
D
h
1
i
,
j
=
min
k
≠
i
[
d
i
,
k
D
h
k
,
j
]
,
otherwise
.
.
8
Exercise: BellmanFord
d(i,j)
A B C D E F
A
B
C
D
E
F
h
D(A,F)
D(B,F)
D(C,F)
D(D,F)
D(E,F)
0
1
2
3
4
5
The example network in earlier slide is used.
9
The distributed algorithm
•
Keep a table with an entry for each destination N in the network.
•
Store the distance D and nexthop G for each N in the table.
•
Periodically, send the table to all neighbors (the distance
vector).
•
For each update that comes in from neighbor G' (to N with a new
distance):
●
Add the cost of the link to G' to the new distance to get D'.
●
Replace the route if D' < D.
●
If G = G', always replace the route.
10
Dijkstra's shortest path first
From the linkstate database, compute a shortest path delivery
tree using a permanent set S and a tentative set Q:
1.
Define the root of the tree: the router
2.
Assign a cost of 0 to this node and make it the first
permanent node.
3.
Examine each neighbor node of the last permanent node.
4.
Assign a cumulative cost to each node and make it
tentative.
5.
Among the list of tentative nodes:
•
Find the node with the smallest cumulative cost and make it
permanent.
•
If a node can be reached from more than one direction, select the
direction with the smallest cumulative cost.
6.
Repeat steps 3 to 5 until every node is permanent.
If you are unsure about Dijkstra, go through the extra material
including an example on the website
11
Dijkstra pseudocode
(from Wikipedia)
function
Dijkstra(Graph, source):
for each
vertex v
in
Graph: // Initializations
dist[v] := infinity ; // Unknown distance function from source to v
previous[v] := undefined ; // Previous node in optimal path from source
dist[source] := 0 ; // Distance from source to source
Q := the set of all nodes in Graph ;
// All nodes in the graph are unoptimized  thus are in Q
while
Q is not empty: // The main loop
u := vertex in Q with smallest dist[] ;
remove u from Q ;
for each
neighbor v
of
u: // where v has not yet been removed from Q.
alt := dist[u] + dist_between(u, v) ;
if
alt < dist[v]: // Relax (u,v,a)
dist[v] := alt ;
previous[v] := u ;
12
SpanningTree Protocol
In Layer 2 networking (eg Ethernet), there is no
'routing' of individual flows. Instead, a
single
tree is
constructed to avoid loops. This spanningtree is a
shortest path tree to all destinations from a single
root.
All traffic then follows this single tree, using source
address
learning
: Traffic is initially flooded
throughout the tree (up and down the branches),
but the nodes learn the location (incoming port) of
the sources by inspecting the source address in the
frames.
Spanningtree is used in Ethernets including MetroEthernets being
built today. Very large networks (even global) are being built where
spanningtree is the mechanism used to detect loops.
13
Spanningtree algorithm
•
An ID number is assigned to each bridge, and a
cost to each port.
•
Process of finding the spanning tree:
●
The bridges choose a bridge to be the root bridge of the tree
by finding the bridge with the smallest ID.
●
Each bridge determines its root port, the port that has the
least root path cost to the root. The root path cost is the
accumulated cost of the path from the port to the root.
●
One designated bridge is chosen for each segment
●
Select ports to be included in the spanning tree (root port
plus designated ports)
•
Data traffic is forwarded only to and from ports
selected for inclusion in the spanning tree
STP (Spanning Tree Protocol) is not a routing protocol since it does
not identify individual routes. Instead, it tranforms a general graph to
a tree, and uses learning (flood and learn) to distribute information.
14
Spanningtree exercise
•
How does traffic go between hosts A and B if
learning bridges X, Y, Z are root bridges,
respectively?
designated
root port
blocked/listening/forwarding
X
1
2
Y
Z
3
2
3
2
A
B
4
1
For generic solution, use priority vectors. Each bridge forms a priority
vector on each port/segment it is connected to and sends it out on that port.
The lowest priority vector 'succeeds' in the following sense: (1) Segment:
the bridge sending the lowest priority vector on a segment becomes the
designated bridge(port) of that segment; (2) Bridge: among the priority
vectors received on all ports on a bridge, the bridge selects port where the
lowest was received and assigns that as the root bridge (if not root itself).
Priority vector simple form:
<rootid, metric, bridgeid>,
where:

rootid
: id of elected root bridge

metric
: accumulated path metric frm sending bridge to root

bridgeid
: id of sending bridge
Priority vector complete form: <rootid, metric, bridgeid, srcport, dstport>
where

srcport
: port number of sending port (of the priority vector)

dstport
: port number where the priority vector is received.
The complete form is only used in cases where there are several ports on the
same bridge on a segment.
15
Minimizing load by adjusting link metric
•
SPF may not utilize a given network well. An operator may
be interested in using the network resources better
●
This is called Traffic Engineering
•
A common metric is to
minimize load
on individual links,
i.e., to spread traffic among several links
•
Example: Traffic in the network is as follows:
●
A>E 3 Mb/s
●
D>E 1 Mb/s
•
How does traffic flow given unary weights?
•
What is the optimal solution (using loadbalancing)?
•
Can you modify
weights
(link metrics)
to reach the optimal
solution?
A
B
D
E
C
Assume equal bandwidth on all links.
With unary weights, the D>E link has 4Mb/s
The minimal load criteria is to have a smallest maximum load in the
network.
With generic loadbalancing, the optimal solution would be to send:
 2 Mb/s A>B>C>E
 1 Mb/s A>D>E
 1 Mb/s D>E
The maximum load on an individual link is then 2Mb/s.
By modifying weights (eg set weight of A>D to 2) and ECMP, all
you can get is:
 1.5 Mb/s A>B>C>E
 1.5 Mb/s A>D>E
 1 Mb/s D>E
The maximum load on an individual link is 2.5Mb/s.
Thus the optimal solution is not obtainable with ECMP and weight
adjustment
16
Adjusting weights  elaborate exercise
•
Flows:
●
A > D, A > E, C > D, C > E
●
Each flow 5Mb/s
●
What is the SPF solution?
•
Adjust weights to make the load optimal (smallest
max) of at most 10Mb/s
From A. Gunnar, ”Aspects of proactive traffic engineering
in IP networks” , PhD thesis, Feb 2011
A
B
C
E
D
2
5
2
1
10
2
In the solution above, all flows pass via C and E. The best solution is
to make the flows from A pass via B and D instead, while keeping the
flows from C via E.
This can be made by heightening the cost between A> C to for
example 10, and lowering the cost from B > D to 2.
If you are not careful, though, the traffic from C to D may start
leaking over B.
Consider also if there are further constraints between other routers,
and you see that this is difficult to do , at least intuitively.
17
Widest path first
•
Both BellmanFord and Dijkstra considers the shortest path
based on an additive scalar metrics.
●
That is, the shortest path cost is computed by adding all individual link
metrics
•
But suppose we need to optimize for bandwidth or load
(smallest largest load) of a single link. We should then
consider the path with the highest bandwidth / lowest load.
●
Often used:
available bandwidth
•
Can be used in conjunction with resource reservation
protocols to solve a dynamic traffic engineering problem
•
We may then look at
widest
path computation
•
It is easy to extend Dijkstra (or BellmanFord) with a widest
path computation rather than shortest path.
Dijkstra is extended as follows
•
Instead of summing all individual link costs and taking the
minimum of all possible paths,
•
The minimum link metric of all possible paths is computed
and their maximum selected
18
Widest path first: exercise
•
Numbers denote width: load or bandwidth
•
What is the widest path from A > E?
A
B
C
E
D
bw:30
bw:20
bw:10
bw:15
bw:50
bw:40
bw:10
The widest path is A>B>D>E. Its minimal width is 20,
which is higher than all other paths from A to E.
19
Constrained Shortest Path First
•
In traffic engineering a generalization of SPF is
normally used: Constrained Shortest Path (CSPF)
●
CSPF is implemented along with MPLS
•
Introduce a boolean condition which may remove
links, and compute SPF on that.
•
Examples of conditions:
●
Administrative groups (eg include only gold and silver links)
●
Available bandwidth (No link avbw < min avbw)
●
Available bandwidth ratio (No link utilization > max %)
●
Delay bonds (No path delays > max delay)
●
Hop counts (No path hops > max hc)
●
Resiliency (No common network element w primary path)
The constraints can be provided with elaborate configuration syntax,
but often general constraints are not implemented. Typical useful
constraints are available bandwidth and resilience.
20
CSPF Example 1: Available bw
•
A>E with available bandwidth >= 20?
A
B
C
E
D
1
bw:30
1
bw:20
2
bw:10
1
bw:15
1
bw:50
2
bw:40
1
bw:10
Note: dashed lines do not meet the constraint (bw >= 20) and are
therefore removed from the network substrate.
Answer: A>B>D>E.
Note that this happens to be the same result as the widest path, but
this is not generally so, since the underlying protocol is still SPF, not
WPF.
21
CSPF Example 2: Resiliency
•
Given primary SPF path A>B>E, form a
secondary
path
with resilience constraint A>E
•
This is used in MPLS to compute secondary paths
used in
failover
.
A
B
C
E
D
1
1
2
1
1
2
1
•
The primary path is given by the dashed lines, and can therefore not
be used by the resilient path. The path A>B>E is therefore removed
from the network substrate.
•
Answer: the secondary path is A>C>E
CSPF with resiliency constraint is similar to kshortest path: Find a
set of (mutually disjoint) shortest paths:
Compute SPF in steps, remove a computed path from the substrate for next
iteration
22
Explicit routing
•
Explicit routing is a manual alternative to CSPF
●
Explicit Route Objects (ERO)
•
Provide a set of nodes and compute SPF via this
set.
●
Example: A>E via D.
A
B
C
E
D
1
1
2
1
1
2
1
Answer to the problem: A>B>D>E.
Note that the route A>D is not explicitly provided and is therefore
computed with SPF.
23
Summary: Routing algorithms
•
Most routing protocols use Dijkstra or BellmanFord
•
IP routing protocols all use SPF
•
L2 Ethernet uses spanningtree and learning to
transform a network to a tree.
•
In traffic engineering, IP routing protocols are
extended with Constrained SPF
●
MPLS is the primary example
Comments 0
Log in to post a comment