Chapter 7 R
Chapter 7 R
Packet-Switching
Networks
2 Node
5
(switch or router)
Approach
Send packet on all ports except one where it arrived
2
5
2
5
2
5
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
Sa
nJ San Jose 392
os
e
29
4
Sa
n
Jo
se
25
0
Distance Vector
Local Signpost Table Synthesis
Direction Neighbors exchange
Distance table entries
Determine current best
Sa
3 Hops
2 Hops
1 Hop
From SJ n
From SJ
From SJ Jos
e
Hop-1 nodes
calculate current
(next hop, dist), &
Accurate info about SJ send to neighbors
ripples across network,
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
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
Iteration Node 1 Node 2 Node 3 Node 4 Node 5
2
2 5
4
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 1 3 6
Jose
2 5 2
4
2
D5=D6+2 D6=0
n5=6
Iteration Node 1 Node 2 Node 3 Node 4 Node 5
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
1
3 2 3
1 1
5 2
3 0
4 San
3 1 3 6
Jose
2
2 5
4
6 4 2
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 1 3 6
Jose
2
2 5
4 4
2
Network disconnected; Loop created between nodes 3 and 4
Iteration Node 1 Node 2 Node 3 Node 4 Node 5
5
37 2
3
1 1
5 5 23
0
4 San
3 1 3 6
Jose
2
2 5
4
4 2
5 7
7 2 3
1 1
5 2
5 0
4 San
3 1 3 6
Jose
2 5 2
4
46 2
79 2 7
3
1 1
5 2
5 0
4 San
3 1 3 6
Jose
2
2 5
4
6 2
z
w
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
Dj = min (Dj, Di+Cij) Minimum distance from s to
Go to Step A j through node i in N
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
Routing table at node 1