Network Layer Routing in Packet Networks Shortest Path Routing
Network Layer Routing in Packet Networks Shortest Path Routing
Layer)
Network Layer
Routing in Packet Networks
Shortest Path Routing
Network Layer
Network Layer Overview
Network Layer Services
Network Layer Functions
Network Layer Overview
Network Layer: the most complex layer
Requires the coordinated actions of multiple,
geographically distributed network elements
(switches & routers)
Must be able to deal with very large scales
Billions of users (people & communicating devices)
Biggest Challenges
Addressing: where should information be directed to?
Routing: what path should be used to get information
there?
3
Network Layer Services
Messages
Messages
2 Node
5
(switch or router)
Node 4
Destination Next node
1 1
2 2
Node 2 Node 5
3 3
Destination Next node Destination Next node
5 5
1 1 6 3 1 4
3 1 2 2
4 4 3 4
5 5 4 4
6 5 6 6
8
Routing Classification
1. centralized 1. flooding
2. isolated
2. static routing
3. distributed using shortest
path algorithms
Computer Networks: Routing 9
Internetwork Routing
Adaptive Routing
[RIP] [OSPF,IS-IS,PNNI]
0000 0001
0111 0100
1010 1 4 1011
1101 1110
3
R1 R2
2 5
0011 0011
0110 0000 1 0001 4 0101
1001 0111 1 0100 4 1000
1100 1010 1 1011 4 1111
… … … …
0000 0100
0001 0101
0010 1 4 0110
0011 0111
3
R1 R2
2 5
1000 1100
1001 00 1 00 3 1101
1010 01 3 01 4 1110
1011 10 2 10 3 1111
11 3 11 5
18
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: $$$
19
Shortest Path Protocols
Distance Vector Protocols
Neighbors exchange list of distances to destinations
21
Distance Vector
Local Signpost Table Synthesis
Direction Neighbors exchange
Distance table entries
Determine current best
22
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 23
But we don’t know the shortest
paths
San
2 Hops
1 Hop
From SJ
Jose
3 Hops From SJ
From SJ
Hop-1 nodes
calculate current
(next hop, dist), &
Accurate info about SJ send to neighbors
ripples across network, 25
Shortest Path Converges
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
26
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
27
Iteration Node 1 Node 2 Node 3 Node 4 Node 5
4
Jose
3 1 3 6
2
2 5
4
28
Iteration Node 1 Node 2 Node 3 Node 4 Node 5
D3=D6+1
n3=6
D6=0
2 3 1
1 1
5 2
0
4 San
3 6
1 3
Jose
2 5 2
4
2
D5=D6+2 D6=0
n5=6 29
Iteration Node 1 Node 2 Node 3 Node 4 Node 5
3 1
2 3
1 1
5 2
3 0
4 San
3 6
1 3
Jose
2 2
5
4
6 2
30
Iteration Node 1 Node 2 Node 3 Node 4 Node 5
1
3 2 3
1 1
5 2
3 0
4 San
3 6
1 3
Jose
2
2 5
4
6 4 2
31
Iteration Node 1 Node 2 Node 3 Node 4 Node 5
1 5
3 2
3
1 1
5 2
3 0
4 San
3 6
1 3
Jose
2
2 5
4 4
2
Network disconnected; Loop created between nodes 3 and 4 32
Iteration Node 1 Node 2 Node 3 Node 4 Node 5
5
37 2
3
1 1
5 53 2
0
4 San
3 6
1 3
Jose
2
2 5
4
4 2
33
Node 4 could have chosen 2 as next node because of tie
Iteration Node 1 Node 2 Node 3 Node 4 Node 5
5 7
7 2 3
1 1
5 2
5 0
4 San
3 6
1 3
Jose
2 5 2
4
46 2
79 2 7
3
1 1
5 2
5 0
4 San
3 6
1 3
Jose
2
2 5
4
6 2
38
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
39
Dijkstra Algorithm: Finding shortest paths in order
z
w
x
s z'
w"
x' 40
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 41
Go to Step A
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
42
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 43
4 5 4 5
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
44
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
45