Upload
krishna-vijaywargiy
View
55
Download
8
Tags:
Embed Size (px)
Citation preview
Distance Vector
Local Signpost Direction Distance
Routing Table
For each destination list: Next Node Distance
Table Synthesis Neighbors exchange
table entries Determine current best
next hop Inform neighbors
Periodically After changes
dest next dist
Shortest Path to SJ
ij
SanJose
Cij
Dj
DiIf Di is the shortest distance to SJ from iand if j is a neighbor on the shortest path, then Di = Cij + Dj
Focus on how nodes find their shortest path to a given destination node, i.e. SJ
i only has local infofrom neighbors
Dj"
Cij”
i
SanJose
jCij
Dj
Di j"
Cij'
j'Dj'
Pick current shortest path
But we don’t know the shortest paths
Why Distance Vector Works
SanJose
1 HopFrom SJ2 Hops
From SJ3 HopsFrom SJ
Accurate info about SJ ripples across network,
Shortest Path Converges
SJ sendsaccurate info
Hop-1 nodes
calculate current
(next hop, dist), &
send to neighbors
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
Initial (-1, ) (-1, ) (-1, ) (-1, ) (-1, )
1
2
3
31
5
46
2
2
3
4
2
1
1
2
3
5SanJose
Table entry
@ node 1
for dest SJ
Table entry
@ node 3
for dest SJ
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
SanJose
D6=0
D3=D6+1n3=6
31
5
46
2
2
3
4
2
1
1
2
3
5
D6=0D5=D6+2n5=6
0
2
1
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
SanJose
31
5
46
2
2
3
4
2
1
1
2
3
50
1
2
3
3
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,3) (4,4) (6, 1) (3,3) (6,2)
SanJose
31
5
46
2
2
3
4
2
1
1
2
3
50
1
26
3
3
4
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
SanJose
31
5
46
2
2
3
4
2
1
1
2
3
50
1
2
3
3
4
Network disconnected; Loop created between nodes 3 and 4
5
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,7) (4,4) (4, 5) (5,5) (6,2)
3
SanJose
31
5
46
2
2
3
4
2
1
1
2
3
50
2
5
3
3
4
7
5
Node 4 could have chosen 2 as next node because of tie
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,7) (4,4) (4, 5) (5,5) (6,2)
3 (3,7) (4,6) (4, 7) (5,5) (6,2)
SanJose
31
5
46
2
2
3
4
2
1
1
2
3
50
2
5
57
4
7
6
Node 2 could have chosen 5 as next node because of tie
3
5
46
2
2
3
4
2
1
1
2
3
51
Iteration Node 1 Node 2 Node 3 Node 4 Node 5
1 (3,3) (4,4) (4, 5) (3,3) (6,2)
2 (3,7) (4,4) (4, 5) (2,5) (6,2)
3 (3,7) (4,6) (4, 7) (5,5) (6,2)
4 (2,9) (4,6) (4, 7) (5,5) (6,2)
SanJose
0
77
5
6
9
2
Node 1 could have chose 3 as next node because of tie
31 2 41 1 1
31 2 41 1
X
(a)
(b)
Update Node 1 Node 2 Node 3
Before break (2,3) (3,2) (4, 1)
After break (2,3) (3,2) (2,3)
1 (2,3) (3,4) (2,3)
2 (2,5) (3,4) (2,5)
3 (2,5) (3,6) (2,5)
4 (2,7) (3,6) (2,7)
5 (2,7) (3,8) (2,7)
… … … …
Counting to Infinity Problem
Nodes believe best path is through each other
(Destination is node 4)
Problem: Bad News Travels Slowly
Remedies Split Horizon
Do not report route to a destination to the neighbor from which route was learned
Poisoned Reverse Report route to a destination to the neighbor
from which route was learned, but with infinite distance
Breaks erroneous direct loops immediately Does not work on some indirect loops
31 2 41 1 1
31 2 41 1
X
(a)
(b)
Split Horizon with Poison Reverse
Nodes believe best path is through each other
Update Node 1 Node 2 Node 3
Before break (2, 3) (3, 2) (4, 1)
After break (2, 3) (3, 2) (-1, ) Node 2 advertizes its route to 4 to node 3 as having distance infinity; node 3 finds there is no route to 4
1 (2, 3) (-1, ) (-1, ) Node 1 advertizes its route to 4 to node 2 as having distance infinity; node 2 finds there is no route to 4
2 (-1, ) (-1, ) (-1, ) Node 1 finds there is no route to 4