Routing 1
Network Layer
NetworkLayer
goals:
understand principles
behind network layer
services:
routing (path
selection)
how a router works
instantiation and
implementation in
the Internet
Overview:
network layer services
routing principle: path
selection
hierarchical routing
IP
what’s inside a router?
Postal-service
mail carrier
2.
Routing 2
Network layerfunctions
transport packet from sending to
receiving hosts
network layer protocols in every
host, router
Important functions:
Forwarding/switching:
per-router action of moving a
packet arriving at an input port to
the appropriate output port
Routing/Path determination:
calculation of the route that the
packet will take through the
network (from source to dest); this
is a network-wide process. Routing
algorithms
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
application
transport
network
data link
physical
application
transport
network
data link
physical
HOST A
HOST B
3.
Routing 3
DATAGRAM ROUTING(The internet model)
routers: no state about end-to-end connections
no network-level concept of 'connection'
packets are typically routed using destination host ID
packets between same source-destination pair may take
different paths
1. Send data 2. Receive data
application
transport
network
data link
physical
application
transport
network
data link
physical
Each router has a
forwarding table that
maps destination
addresses to link
interfaces
4.
Routing 4
Routing
Graph (undirected)abstraction
Graph (undirected) abstraction
for routing algorithms:
for routing algorithms:
nodes represent routers
Lines/graph edges are
physical links
link cost: delay, cost of sending
a packet across link, or
congestion level
Goal: determine good path
(sequence of routers) through
network from source to
destination.
Routing protocol
A
E
D
C
B
F
2
2
1
3
1
1
2
5
3
5
'good' path:
typically means minimum
cost path
other definitions
possible
Physical distance, link
speed, monetary cost, etc.
5.
Routing 5
Classification
Classification ofRouting Algorithms
of Routing Algorithms
Global or decentralized
Global or decentralized
information?
information?
Global:
Least-cost path is computed using
complete, global knowledge of the
network:
topology, link cost info
Link State (LS) algorithms
Decentralized:
Least-cost path is calculated in an
iterative, distributed manner
router only knows physically-
connected neighbours, link costs
to neighbours
Involves an iterative process of
calculation & exchange of
distance vector information with
neighbours
Distance Vector (DV) algorithms
Static or dynamic?
Static or dynamic?
Static:
routes change slowly over
time
Dynamic:
routes change more quickly
periodic update
in response to topology
or link cost changes
6.
Routing 6
Distance VectorRouting Algorithm
Distance Vector Routing Algorithm
iterative:
iterative:
continues until no nodes exchange
information anymore
self-terminating: no signal to stop
asynchronous:
asynchronous:
nodes need not exchange info/iterate in
lock step!
distributed:
distributed:
each node communicates only with
directly-attached neighbours
7.
Routing 7
Distance VectorAlgorithm
Distance Vector Algorithm
Bellman-Ford Equation (dynamic programming)
Bellman-Ford Equation (dynamic programming)
Define
dx(y) := cost of least-cost path from x to y
Then
dx(y) = min {c(x,v) + dv(y) }
where min is taken over all neighbors v of x
v
8.
Routing 8
Bellman-Ford example
Bellman-Fordexample
u
y
x
w
v
z
2
2
1
3
1
1
2
5
3
5 By inspection from the graph,
we can see that:
dv(z) = 5, dx(z) = 3, dw(z) = 3
du(z) = min { c(u,v) + dv(z),
c(u,x) + dx(z),
c(u,w) + dw(z) }
= min {2 + 5,
1 + 3,
5 + 3} = 4
The node that arrives with the minimum cost = the next
next
hop
hop neighbour along the shortest path ➜ forwarding table
B-F equation says:
The least cost path from
node u to z is one of the
paths that passes through
node u’s neighbors
9.
Routing 9
Distance VectorRouting Algorithm
Distance Vector Routing Algorithm
Distance Table data structure
row for each possible destination
column for each directly-
attached neighbor
Calculation of values
example: Node X, routing for
destination Y via directly
attached neighbor Z:
D (Y,Z)
X
distance from X to
Y, via Z as next hop
c(X,Z) + min {D (Y,w)}
Z
w
=
=
D ()
A
B
C
D
A
1
7
6
4
B
14
8
9
11
D
5
5
4
2
E
cost to destination via
destination
Directly attached neighbors of E
A
E D
C
B
7
8
1
2
1
2
Currently known minimum-cost
path from Z to Y
10.
Routing 10
DISTANCE TABLE:Example
A
E D
C
B
7
8
1
2
1
2
D ()
A
B
C
D
A
1
7
6
4
B
14
8
9
11
D
5
5
4
2
E
cost to destination via
destination
D (C,D)
E
c(E,D) + min {D (C,w)}
D
w
=
= 2+2 = 4
D (A,D)
E
c(E,D) + min {D (A,w)}
D
w
=
= 2+3 = 5
D (A,B)
E
c(E,B) + min {D (A,w)}
B
w
=
= 8+6 = 14
loop!
loop!
ENTRIES IN THE DATA TABLE for NODE E (after DV converges)
Node E to C via D
Node E to A via D
Node E to A via B
Direct link Any possible path from D to C
11.
Routing 11
Distance tablegives routing
table
D ()
A
B
C
D
A
1
7
6
4
B
14
8
9
11
D
5
5
4
2
E
cost to destination via
destination
A
B
C
D
A,1
D,5
D,4
D,2
Outgoing link
to use, cost
destination
Distance table
Distance table Routing table
Routing table
D
DE
E
()
()
A
E D
C
B
7
8
1
2
1
2
12.
Routing 12
Distance VectorRouting:
Distance Vector Routing: (more details)
Iterative, asynchronous:
Iterative, asynchronous:
Each local iteration (Distance
Table update) caused by:
Change of cost of an
attached link
Receipt of message update
from neighbour
Distributed:
Distributed:
each node notifies neighbours
only when its least-cost path
least-cost path
to any destination changes
wait for (change in local link
cost or msg from neighbor)
recompute distance table
if a least-cost
least-cost path to any
destination has changed,
notify neighbors
Each node:
Each node:
BELLMAN-FORD ALGORITHM – Internet RIP, BGP, IDRP, Novell IPX, ARPANet
13.
Routing 13
Distance VectorAlgorithm:
Distance Vector Algorithm:
1 Initialization:
2 for all adjacent nodes v:
3 D (*,v) =infinite ( the * operator means "for all rows" )
4 D (v,v) = c(X,v)
5 for all destinations, y
6 send min D (y,w) to each neighbor (w over all X's neighbors )
X
X
X
w
At each node, X: X Z
1
2
7
Y
Initially, set all link costs to all
destination nodes to infinite (∞)
Send a table of vectors to each
neighbor of X
14.
Routing 14
Distance VectorAlgorithm (cont.):
8 loop
9 wait (until I see a link cost change to neighbor V
10 or until I receive an update from neighbor V)
11 //link cost change
//link cost change
12 if (c(X,V) changes by
c(X,V) changes by d
d)
13 /* change cost to all dest's via neighbor v by d
d */
14 /* note: d
d could be positive or negative */
15 for all destinations y: D (y,V) = D (y,V) + d
d
16 //receipt of routing table from neighbor V
//receipt of routing table from neighbor V
17 else if (update received from V wrt destination Y
update received from V wrt destination Y)
18 /* shortest path from V to some Y has changed */
19 /* V has sent a new value
new value for its min D
min DV
V
(Y,w)
(Y,w) */
20 /* call this received new value as newval */
21 for the single destination y: D (Y,V) = c(X,V) + newval
newval
22 //new least-cost to any destination Y found
//new least-cost to any destination Y found
23 if we have a new min D (Y,w) for any destination Y
we have a new min D (Y,w) for any destination Y
24 send new value of min D (Y,w) to all neighbors
25
26 forever
w
X
X
X
X
X
w
w
Change in link cost;
therefore, update
Entire column in
distance table
Received one
update from
neighbor v;
therefore,
Calculate new
link cost in distance
table
15.
Routing 15
Distance VectorAlgorithm: example
X Z
1
2
7
Y
D (Y,Z)
X
c(X,Z) + min {D (Y,w)}
w
=
= 7+1 = 8
Z
D (Z,Y)
X
c(X,Y) + min {D (Z,w)}
w
=
= 2+1 = 3
Y
Let’s examine one sample
computation here
16.
Routing 16
Distance VectorAlgorithm: example
X Z
1
2
7
Y
Examine which
table finds a new
minimum cost
value after an
update
17.
Routing 17
Distance Vector:link cost changes
Link cost changes:
node detects local link cost change
updates distance table (line 15)
if cost change in least cost path,
notify neighbours (lines 23,24)
X Z
1
4
50
Y
1
algorithm
terminates
“good
news
travels
fast”
Note: The illustrations limits the exchange of packets between nodes Y and Z only.
18.
Routing 18
Distance Vector:link cost changes
Link cost changes:
good news travels fast
bad news travels slow -
'count to infinity' problem!
X Z
1
4
50
Y
60
algorithm
continues
on!
Routing loop bet. Y & Z –
will persist after 44
44
iterations
19.
Routing 19
Distance Vector:link cost changes
X Z
1
4
50
Y
60
algorithm
continues
on!
Link-cost change: the new link-cost to X changes from
4 to 60.
ROUTING LOOP! Node Y doesn’t know that Z would pass through Y itself to get to X (at
this point in time, Z is still using the old least-cost path (from Node Y to X is equal to 4)
Routing
Table for
Node Y
Routing
Table for
Node Z
Sometime after t0: Node Y calculates the new least-
cost path, and finds that passing through Z is more cost
effective to reach Node X
At time t1: Node Y broadcasts the new
least-cost path to Z (neighbor)
Sometime after t1: Node Z receives the new
least-cost to Node X from Y, then computes
a new least-cost to X
Node Z computes the new least-cost to X,
then updates its Routing Table
t2: Node Z informs y of its new least-cost to
X, since it has changed (increased)
And so on, and
so forth…
20.
Routing 20
Distance Vector:poisoned reverse
If Z routes through Y to get to X :
Z tells Y its (Z's) distance to X is
infinite (so Y won’t route to X via Z)
will this completely solve count to
infinity problem? X Z
1
4
50
Y
60
algorithm
terminates
It does not. Loops with nodes
>= 3 will not be detected!
21.
Routing 21
Poisone ReverseAlgorithm
Example
How to apply the Poisoned Reverse Algorithm?
A B C D
A 4 ∞
∞ ∞
∞ ∞
∞
B ∞
∞ 1 ∞
∞ ∞
∞
C ∞
∞ 8 3 ∞
∞
D ∞
∞ ∞
∞ 6 7
Eventually, the value 8 would become ∞
∞
because it is not a direct link, and it is not
the least-cost path for destination C
If the link is NOT a direct link and if the link-cost is NOT equal to the minimum
cost for a given destination node, then set the link-cost = ∞
∞ (infinite)
via
destination
∞
∞
Inspect each row,
22.
22
Link-State Routing Algorithm
Link-StateRouting Algorithm
Dijkstra’s algorithm
• net topology, link costs known
to all nodes
– accomplished via “link state
broadcast”
– all nodes have the 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 dest.’s
Notation:
• c(x,y): link cost from node
x to y; set equal to ∞ if
not direct neighbors
• D(v): current value of cost
of path from source to
dest. v
• p(v): predecessor node
along path from source to v
• N': set of nodes whose
least cost path definitively
known
23.
23
Dijsktra’s Algorithm
1 Initialization:
2N' = {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'
25
Dijkstra’s algorithm: example(2)
u
y
x
w
v
z
Resulting shortest-path tree from u:
v
x
y
w
z
(u,v)
(u,x)
(u,x)
(u,x)
(u,x)
destination link
Resulting forwarding table in u:
Next hop router for node u
to take: (either v or x)
26.
26
Algorithm complexity: nnodes
• each iteration: need to check all nodes, w, not in N
• n(n+1)/2 comparisons: O(n2
)
• more efficient implementations possible: O(nlogn)
Oscillations possible:
• e.g., link cost = amount of carried traffic
A
D
C
B
1 1+e
e
0
e
1 1
0 0
A
D
C
B
2+e 0
0
0
1+e 1
A
D
C
B
0 2+e
1+e
1
0 0
A
D
C
B
2+e 0
e
0
1+e 1
initially
… recompute
routing
… recompute … recompute
destination
destination
source
source
Dijkstra’s algorithm, discussion
Dijkstra’s algorithm, discussion
27.
27
Dijkstra’s algorithm, discussion
Dijkstra’salgorithm, discussion
A
D
C
B
1 1+e
e
0
e
1 1
0 0
A
D
C
B
2+e 0
0
0
1+e 1
A
D
C
B
0 2+e
1+e
1
0 0
A
D
C
B
2+e 0
e
0
1+e 1
initially
… recompute
routing
… recompute … recompute
destination
destination
source
source
Solution:
Solution: Oscillations can be prevented by not
running the LS algorithm at the same time. Let
routers use randomised sending times for sending
the link advertisement.
Clock-wise routes
Counter-clock-wise
routes
Clock-wise routes
Problem:
Problem: Oscillations with congestion-sensitive routing
Oscillations with congestion-sensitive routing
Editor's Notes
#2 Routing – refers to the end-to-end paths from source to destination
Forwarding – router-local action of transferring packet from an input-link interface
#3 DATAGRAM ROUTING (just like a postal mail)
END SYSTEM stamps packets with the address of the DESTINATION END SYSTEM, then pops the packet into the network.
PACKET SWITCHES (ROUTERS) examine the DEST ADDRESS, indexing a forwarding table with the DEST ADDRESS, and forwarding the packet in the direction of the destination.
NOTE: Forwarding tables can be modified anytime – therefore, a series of packets with same DEST ADDRESS may take different paths
#21 Why is Network-assisted congestion control suitable for ATM?
ATM maintains per-VC state at network switches allowing the switches to track the behavior of individual senders (e.g. average transmission rate) and to take sender-specific congestion control actions.