Routing Algorithms Routing Algorithms: Computer Networks Computer Networks
Routing Algorithms Routing Algorithms: Computer Networks Computer Networks
Routing Algorithms Routing Algorithms: Computer Networks Computer Networks
Routing Algorithms
Stan Kurkovsky
routing algorithm
value in arriving
packet’s header
0111 1
3 2
Stan Kurkovsky
1
Graph abstraction
v 3 w
2 5
u 2 1 z
3
1 2
• Graph: G = (N,E) x 1
y
• N = set of routers = { u, v, w, x, y, z }
• E = set of links ={ (u,v), (u,x), (v,x), (v,w), (x,w), (x,y), (w,y), (w,z),
(y,z) }
Stan Kurkovsky
Stan Kurkovsky
2
Routing Algorithm classification
Global or decentralized Static or dynamic?
information? Static:
Global: • routes change slowly over time
• all routers have complete Dynamic:
topology, link cost info • routes change more quickly
• “link state” algorithms • periodic update
Decentralized: • in response to link cost
• router knows physically-
physically- changes
connected neighbors, link costs
to neighbors
• iterative process of computation,
exchange of info with neighbors
• “distance vector” algorithms
Stan Kurkovsky
A Link-
Link-State Routing Algorithm
Dijkstra’s algorithm
• net topology, link costs known to all nodes
• accomplished via “link state broadcast”
• all nodes have same info
• computes least cost paths from one node (‘source”) to all other nodes
• gives forwarding table for that node
• iterative: after k iterations, know least cost path to k destinations
Notation:
• c(x,y
c(x,y):
): link cost from node x to y; = ∞ if not direct neighbors
• D(v): current value of cost of path from source to dest.
dest. v
• p(v): predecessor node along path from source to v
• N': set of nodes whose least cost path definitively known
Stan Kurkovsky
3
Dijsktra’s Algorithm
1 Initialization:
2 N' = {u}
3 for all nodes v
4 if v adjacent to u
5 then D(v) = c(u,v)
6 else D(v) = ∞
7
8 Loop
9 find w not in N' such that D(w) is a minimum
10 add w to N'
11 update D(v) for all v adjacent to w and not in N' :
12 D(v) = min( D(v), D(w) + c(w,v) )
13 /* new cost to v is either old cost to v or known
14 shortest path cost to w plus cost from w to v */
15 until all nodes in N'
Stan Kurkovsky
5
3
v w 5
2
u 2 1 z
3
1 2
x 1
y
Stan Kurkovsky
4
Dijkstra’s algorithm: example (2)
v w
u z
x y
Stan Kurkovsky
A A A
1 1+e 2+e 0 0 2+e 2+e A 0
D 0 0 B D 1+e 1 B D B D 1+e 1 B
0 0
0 e 0 0 1 1+e 0 e
C C C C
1 1
e
… recompute … recompute … recompute
initially routing
Stan Kurkovsky
5
Distance Vector Algorithm
Bellman-Ford Equation (dynamic programming)
Bellman-
• Define
dx(y) := cost of least-
least-cost path from x to y
• Then
Stan Kurkovsky
Bellman--Ford example
Bellman
5
3
Clearly, dv(z) = 5, dx(z) = 3, dw(z) = 3
v w 5
2
u 2 1 z B-F equation says:
3
1 2 du(z) = min { c(u,v) + dv(z),
x y
1 c(u,x) + dx(z),
c(u,w) + dw(z) }
= min {2 + 5,
1 + 3,
5 + 3} = 4
Node that achieves minimum is next
hop in shortest path ➜ forwarding table
Stan Kurkovsky
6
Distance Vector Algorithm
• Dx(y) = estimate of least cost from x to y
• Distance vector: Dx = [Dx(y): y є N ]
• Node x knows cost to each neighbor v: c(x,v)
• Node x maintains Dx = [Dx(y): y є N ]
• Node x also maintains its neighbors’ distance vectors
• For each neighbor v, x maintains
Dv = [Dv(y): y є N ]
Basic idea:
• Each node periodically sends its own distance vector estimate to
neighbors
• When a node x receives new DV estimate from neighbor, it updates its
own DV using B-B-F equation:
Dx(y) ← minv{c(x,v) + Dv(y)} for each node y ∊ N
• Under minor, natural conditions, the estimate Dx(y) converge to the
actual least cost dx(y)
Stan Kurkovsky
Distributed:
• each node notifies neighbors only recompute estimates
when its DV changes
• neighbors then notify their
neighbors if necessary if DV to any dest has
changed, notify neighbors
Stan Kurkovsky
7
Distance Vector: link cost changes
Link cost changes:
• node detects local link cost change 1
y
• updates routing info, recalculates 4 1
distance vector x z
50
• if DV changes, notify neighbors
• At time t1, z receives the update from y and updates its table. It computes a
new least cost to x and sends its neighbors its DV.
• At time t2, y receives z’s update and updates its distance table. y’s least costs
do not change and hence y does not send any message to z.
Stan Kurkovsky
Stan Kurkovsky
8
Distance Vector:
Vector: example
Dx(z) = min{c(x,y) +
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} Dy(z), c(x,z) + Dz(z)}
= min{2+0 , 7+1} = 2
node x table = min{2+1 , 7+0} = 3
cost to cost to
cost to
x y z x y z
x y z
x 0 2 7 x 0 2 3
x 0 2 3
y y 2 0 1
∞ ∞ ∞ y
from
from
2 0 1
from
z z 7 1 0
∞ ∞ ∞ z
3 1 0
node y table
cost to cost to
cost to
x y z x y z
x y z
2 y 1
x ∞ ∞ ∞ x 0 2 7
x 0 2 3
y 2 0 1 y
x 7
z
2 0 1 y
from
2 0 1
from
from
z z
∞ ∞ ∞ 7 1 0 z 3 1 0
node z table
cost to cost to
cost to
x y z x y z
x y z
x 0 2 7 x 0 2 3
x ∞ ∞ ∞
y y 2 0 1
y 2 0 1
from
from
∞ ∞ ∞
from
z z
z 3 1 0 3 1 0
7 1 0
time
Stan Kurkovsky
Stan Kurkovsky
9
Hierarchical Routing
Our routing study thus far - idealization
• all routers identical; network “flat” … not true in practice
scale: with 200 million destinations:
• can’t store all dest’s in routing tables!
• routing table exchange would swamp links!
administrative autonomy
• internet = network of networks
• each network admin may want to control routing in its own network
Stan Kurkovsky
Interconnected ASes
• Forwarding table is configured by both intra-
intra- and inter-
inter-AS routing
algorithm
• Intra-
Intra-AS sets entries for internal dests
• Inter-
Inter-AS & Intra
Intra--As sets entries for external dests
3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
1d AS1
Intra-AS Inter-AS
Routing Routing
algorithm algorithm
Forwarding
table
Stan Kurkovsky
10
Inter--AS tasks
Inter
• Suppose router in AS1 receives datagram for which dest is outside of AS1
• Router should forward packet towards one of the gateway routers, but which
one?
AS1 needs:
1. to learn which dests are reachable through AS2 and which through AS3
2. to propagate this reachability info to all routers in AS1
Job of inter-
inter-AS routing!
3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
1d AS1
Stan Kurkovsky
11