0% found this document useful (0 votes)
11 views11 pages

Lec 12

Uploaded by

Adish Perumalla
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
11 views11 pages

Lec 12

Uploaded by

Adish Perumalla
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 11

Chapter 7

Packet-Switching
Networks
Shortest Path Routing

Shortest Paths & Routing


 Many possible paths connect any given
source and to any given destination
 Routing involves the selection of the path to
be used to accomplish a given transfer
 Typically it is possible to attach a cost or
distance to a link connecting two nodes
 Routing can then be posed as a shortest path
problem

1
Routing Metrics
Means for measuring desirability of a path
 Path Length = sum of costs or distances

 Possible metrics
 Hop count: rough measure of resources used
 Reliability: link availability; BER
 Delay: sum of delays along path; complex & dynamic
 Bandwidth: “available capacity” in a path
 Load: Link & router utilization along path
 Cost: $$$

Shortest Path Approaches

Distance Vector Protocols


 Neighbors exchange list of distances to destinations

 Best next-hop determined for each destination

 Ford-Fulkerson (distributed) shortest path algorithm

Link State Protocols


 Link state information flooded to all routers

 Routers have complete topology information

 Shortest path (& hence next hop) calculated

 Dijkstra (centralized) shortest path algorithm

2
Distance Vector
Do you know the way to San Jose?

Sa
n Jo San Jose 392
se
29
4

San Jose 596

Sa
n
Jo
s e
25
0

Distance Vector
Local Signpost Table Synthesis
 Direction  Neighbors exchange
 Distance table entries
 Determine current best

Routing Table next hop


For each destination list:  Inform neighbors
 Periodically
 Next Node
 After changes
 Distance dest next dist

3
Shortest Path to SJ
Focus on how nodes find their shortest
path to a given destination node, i.e. SJ San
Jose

Dj
Cij
j
i
Di If Di is the shortest distance to SJ from i
and if j is a neighbor on the shortest path,
then Di = Cij + Dj

But we don’t know the shortest


paths

i only has local info


from neighbors San
Dj' Jose
j'
Cij'
Dj
Cij j
i
Cij” Pick current
Di j"
Dj" shortest path

4
Bellman-Ford Algorithm
 Consider computations for one destination d
 Initialization
 Each node table has 1 row for destination d
 Distance of node d to itself is zero: Dd=0
 Distance of other node j to d is infinite: Dj=∝, for j≠ d
 Next hop node nj = -1 to indicate not yet defined for j ≠ d
 Send Step
 Send new distance vector to immediate neighbors across local link
 Receive Step
 At node j, find the next hop that gives the minimum distance to d,
 Minj { Cij + Dj }
 Replace old (nj, Dj(d)) by new (nj*, Dj*(d)) if new next node or distance
 Go to send step

Bellman-Ford Algorithm
 Now consider parallel computations for all destinations d
 Initialization
 Each node has 1 row for each destination d
 Distance of node d to itself is zero: Dd(d)=0
 Distance of other node j to d is infinite: Dj(d)= ∝ , for j ≠ d
 Next node nj = -1 since not yet defined
 Send Step
 Send new distance vector to immediate neighbors across local link
 Receive Step
 For each destination d, find the next hop that gives the minimum
distance to d,
 Minj { Cij+ Dj(d) }
 Replace old (nj, Di(d)) by new (nj*, Dj*(d)) if new next node or distance
found
 Go to send step

5
Iteration Node 1 Node 2 Node 3 Node 4 Node 5

Initial (-1, ∞) (-1, ∞) (-1, ∞) (-1, ∞) (-1, ∞)


1
2
3

Table entry Table entry


@ node 1 @ node 3
for dest SJ for dest SJ
2 3
1 1 San
5 2
4
Jose
3 1 3 6

2
2 5
4

Iteration Node 1 Node 2 Node 3 Node 4 Node 5

Initial (-1, ∞) (-1, ∞) (-1, ∞) (-1, ∞) (-1, ∞)


1 (-1, ∞) (-1, ∞) (6,1) (-1, ∞) (6,2)
2
3

D3=D6+1
n3=6
D6=0
2 3 1
1 1
5 2
0
4 San
3 1 3 6
Jose
2 5 2
4
2
D5=D6+2 D6=0
n5=6

6
Iteration Node 1 Node 2 Node 3 Node 4 Node 5

Initial (-1, ∞) (-1, ∞) (-1, ∞) (-1, ∞) (-1, ∞)


1 (-1, ∞) (-1, ∞) (6, 1) (-1, ∞) (6,2)
2 (3,3) (5,6) (6, 1) (3,3) (6,2)
3

3 1
2 3
1 1
5 2
3 0
4 San
3 1 3 6
Jose
2 2
5
4
6 2

Iteration Node 1 Node 2 Node 3 Node 4 Node 5

Initial (-1, ∞) (-1, ∞) (-1, ∞) (-1, ∞) (-1, ∞)


1 (-1, ∞) (-1, ∞) (6, 1) (-1, ∞) (6,2)
2 (3,3) (5,6) (6, 1) (3,3) (6,2)
3 (3,3) (4,4) (6, 1) (3,3) (6,2)

1
3 2 3
1 1
5 2
3 0
4 San
3 1 3 6
Jose
2
2 5
4
6 4 2

7
Iteration Node 1 Node 2 Node 3 Node 4 Node 5

Initial (3,3) (4,4) (6, 1) (3,3) (6,2)


1 (3,3) (4,4) (4, 5) (3,3) (6,2)
2
3

1 5
3 2 3
1 1
5 2
3 0
4 San
3 1 3 6
Jose
2
2 5
4 4
2
Network disconnected; Loop created between nodes 3 and 4

Link-State Algorithm
 Basic idea: two step procedure
 Each source node gets a map of all nodes and link metrics
(link state) of the entire network
 Find the shortest path on the map from the source node to
all destination nodes
 Broadcast of link-state information
 Every node i in the network broadcasts to every other node
in the network:
 ID’s of its neighbors: Ni=set of neighbors of i
 Distances to its neighbors: {Cij | j ∈Ni}
 Flooding is a popular method of broadcasting packets

8
Dijkstra Algorithm: Finding
shortest paths in order
Find shortest paths from Closest node to s is 1 hop away
source s to all other
destinations 2nd closest node to s is 1 hop
away from s or w”
3rd closest node to s is 1 hop
w' away from s, w”, or x

w z
x
s z'
w"
x'

Dijkstra’s algorithm
 N: set of nodes for which shortest path already found
 Initialization: (Start with source node s)
 N = {s}, Ds = 0, “s is distance zero from itself”
 Dj=Csj for all j ≠ s, distances of directly-connected neighbors
 Step A: (Find next closest node i)
 Find i ∉ N such that
 Di = min Dj for j ∉ N
 Add i to N
 If N contains all the nodes, stop
 Step B: (update minimum costs)
 For each node j ∉ N
Minimum distance from s to
 Dj = min (Dj, Di+Cij)
j through node i in N
 Go to Step A

9
Execution of Dijkstra’s algorithm
2 2 
1 3 1 1 3 1
6 6 
5 2 5 2
3 3
1 4 1 4 2
2
3 3
2 2
 4 5 4 5

Iteration N D2 D3 D4 D5 D6
Initial {1} 3 2 5 ∝ ∝
1 {1,3} 3 2 4 ∝ 3
2 {1,2,3} 3 2 4 7 3 
3 {1,2,3,6} 3 2 4  5 3
4 {1,2,3,4,6} 3 2 4 5  3
5 {1,2,3,4,5,6} 3 2 4 5 3

Shortest Paths in Dijkstra’s


Algorithm
2 3 1 2 3 1
1 1
6 6
5 2 5 2
3 3
1 4 2 1 4 2
3 3
2 2
4 5 4 5
2 3 1 2 3 1
1 1
6 6
5 2 5 2
3 3
1 4 2 1 4 2
3 3
2 2
4 5 4 5

2 3 1 2 3 1
1 1
6 6
5 2 5 2
3 3
1 4 2 1 4 2
3 3
2 2
4 5 4 5

10
Reaction to Failure
 If a link fails,
 Router sets link distance to infinity & floods the
network with an update packet
 All routers immediately update their link database &
recalculate their shortest paths
 Recovery very quick
 But watch out for old update messages
 Add time stamp or sequence # to each update
message
 Check whether each received update message is new
 If new, add it to database and broadcast
 If older, send update message on arriving link

Why is Link State Better?


 Fast, loopless convergence
 Support for precise metrics, and multiple
metrics if necessary (throughput, delay, cost,
reliability)
 Support for multiple paths to a destination
 algorithm can be modified to find best two paths

11

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy