Lecture-2012-10- Network Layer-Part-1-Routing.ppt

saseln1 0 views 27 slides Oct 02, 2025
Slide 1
Slide 1 of 27
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27

About This Presentation

networking


Slide Content

Routing
1
Network LayerNetwork Layer
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

Routing
2
Network layer functions
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

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

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
ED
CB
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.

Routing
5
ClassificationClassification of Routing 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

Routing
6
Distance Vector Routing AlgorithmDistance 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

Routing
7
Distance Vector Algorithm Distance Vector Algorithm
Bellman-Ford Equation (dynamic programming)Bellman-Ford Equation (dynamic programming)
Define
d
x(y) := cost of least-cost path from x to y
Then
d
x(y) = min {c(x,v) + d
v(y) }
where min is taken over all neighbors v of x
v

Routing
8
Bellman-Ford example Bellman-Ford example
u
yx
wv
z
2
2
1
3
1
1
2
5
3
5 By inspection from the graph,
we can see that:
d
v
(z) = 5, d
x
(z) = 3, d
w
(z) = 3
d
u(z) = min { c(u,v) + d
v(z),
c(u,x) + d
x(z),
c(u,w) + d
w
(z) }
= min {2 + 5,
1 + 3,
5 + 3} = 4
The node that arrives with the minimum cost = the nextnext
hophop 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

Routing
9
Distance Vector Routing AlgorithmDistance 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
d
e
s
t
in
a
t
io
n
Directly attached neighbors of E
A
E D
CB
7
8
1
2
1
2
Currently known minimum-cost
path from Z to Y

Routing
10
DISTANCE TABLE: Example
A
E D
CB
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
d
e
s
t
in
a
t
io
n
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

Routing
11
Distance table gives 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
d
e
s
t
in
a
t
io
n

A
B
C
D

A,1
D,5
D,4
D,2
Outgoing link
to use, cost
d
e
s
t
in
a
t
io
n
Distance tableDistance table Routing tableRouting table
DD
EE
()()
A
E D
CB
7
8
1
2
1
2

Routing
12
Distance Vector Routing: 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 pathleast-cost path
to any destination changes
wait for (change in local link
cost or msg from neighbor)
recompute distance table
if a least-costleast-cost path to any
destination has changed,
notify neighbors
Each node:Each node:
BELLMAN-FORD ALGORITHM – Internet RIP, BGP, IDRP, Novell IPX, ARPANet

Routing
13
Distance Vector Algorithm: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
12
7
Y
Initially, set all link costs to all
destination nodes to infinite (∞)
Send a table of vectors to each
neighbor of X

Routing
14
Distance Vector Algorithm (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 dd)
13 /* change cost to all dest's via neighbor v by dd */
14 /* note: dd could be positive or negative */
15 for all destinations y: D (y,V) = D (y,V) + dd
16 //receipt of routing table from neighbor V//receipt of routing table from neighbor V
17 else if (update received from V wrt destination Yupdate 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 Dmin D
VV
(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 Ywe 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
XX
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

Routing
15
Distance Vector Algorithm: example
X Z
12
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

Routing
16
Distance Vector Algorithm: example
X Z
12
7
Y
Examine which
table finds a new
minimum cost
value after an
update

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
14
50
Y
1
algorithm
terminates
“good
news
travels
fast”
Note: The illustrations limits the exchange of packets between nodes Y and Z only.

Routing
18
Distance Vector: link cost changes
Link cost changes:
good news travels fast
bad news travels slow -
'count to infinity' problem!
X Z
14
50
Y
60
algorithm
continues
on!
Routing loop bet. Y & Z –
will persist after 4444
iterations

Routing
19
Distance Vector: link cost changes
X Z
14
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…

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
14
50
Y
60
algorithm
terminates
It does not. Loops with nodes
>= 3 will not be detected!

Routing
21
Poisone Reverse Algorithm
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

d
e
s
t
i
n
a
t
i
o
n
∞∞
Inspect each row,

22
Link-State Routing AlgorithmLink-State Routing 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
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'

24
Dijkstra’s algorithm: example
Step
0
1
2
3
4
5
N'
u
ux
uxy
uxyv
uxyvw
uxyvwz
D(v),p(v)
2,u
2,u
2,u
D(w),p(w)
5,u
4,x
3,y
3,y
D(x),p(x)
1,u
D(y),p(y)

2,x
D(z),p(z)


4,y
4,y
4,y
u
yx
wv
z
2
2
1
3
1
1
2
5
3
5
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'
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) = ∞

25
Dijkstra’s algorithm: example (2)
u
yx
wv
z
Resulting shortest-path tree from u:
v
x
y
w
z
(u,v)
(u,x)
(u,x)
(u,x)
(u,x)
destinationlink
Resulting forwarding table in u:
Next hop router for node u
to take: (either v or x)

26
Algorithm complexity: n nodes
•each iteration: need to check all nodes, w, not in N
•n(n+1)/2 comparisons: O(n
2
)
•more efficient implementations possible: O(nlogn)
Oscillations possible:
•e.g., link cost = amount of carried traffic
A
D
C
B
1 1+e
e0
e
1
1
00
A
D
C
B
2+e 0
00
1+e1
A
D
C
B
0 2+e
1+e1
00
A
D
C
B
2+e 0
e0
1+e1
initially
… recompute
routing
… recompute … recompute
destinationdestination
sourcesource
Dijkstra’s algorithm, discussionDijkstra’s algorithm, discussion

27
Dijkstra’s algorithm, discussionDijkstra’s algorithm, discussion
A
D
C
B
1 1+e
e0
e
1
1
00
A
D
C
B
2+e 0
00
1+e1
A
D
C
B
0 2+e
1+e1
00
A
D
C
B
2+e 0
e0
1+e1
initially
… recompute
routing
… recompute … recompute
destinationdestination
sourcesource
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
Tags