Distance Vector Routing (DVR) : 07/22/2021 Networks and Communications 1
Distance Vector Routing (DVR) : 07/22/2021 Networks and Communications 1
N1
N5 N2
3
4 6
2
N4 N3
N1
N2
Dest. Dist. Next
N1 N3
N1 N4
1
N2 N5
N3
N5 N2
N4 3 Dest. Dist. Next
N5
N1
4 6 N2
N3
N4
Dest. Dist. Next 2 N5
N4 N3
N5
N1 0 N1
N2
Dest. Dist. Next
N1 N3
N1 N4
1
N2 N5
N3
N5 N2
N4 3 Dest. Dist. Next
N5
N1
4 6 N2
N3
N4
Dest. Dist. Next 2 N5
N4 N3
N5
N1 0 N1
N2 1 N2
Dest. Dist. Next
N1 N3
N1 N4
1
N2 N5
N3
N5 N2
N4 3 Dest. Dist. Next
N5
N1
4 6 N2
N3
N4
Dest. Dist. Next 2 N5
N4 N3
N1 0 N1
N2 1 N2
Dest. Dist. Next
N1 N3 ∞ --
N1 N4
1
N2 N5
N3
N5 N2
N4 3 Dest. Dist. Next
N5
N1
4 6 N2
N3
N4
Dest. Dist. Next 2 N5
N4 N3
N5
N1 0 N1
N2 1 N2
Dest. Dist. Next
N1 N3 ∞ --
N1 N4 ∞ --
1
N2 N5 ∞ --
N3
N5 N2
N4 3 Dest. Dist. Next
N5
N1 1 N1
4 6 N2
N3
N4
Dest. Dist. Next 2 N5
N4 N3
N1 0 N1
N2 1 N2
Dest. Dist. Next
N1 N3 ∞ --
N1 N4 ∞ --
1
N2 N5 ∞ --
N3
N5 N2
N4 3 Dest. Dist. Next
N5
N1 1 N1
4 6 N2 0 N2
N3
N4
Dest. Dist. Next 2 N5
N4 N3
N1 0 N1
N2 1 N2
Dest. Dist. Next
N1 N3 ∞ --
N1 N4 ∞ --
1
N2 N5 ∞ --
N3
N5 N2
N4 3 Dest. Dist. Next
N5
N1 1 N1
4 6 N2 0 N2
N3 6 N3
N4
Dest. Dist. Next 2 N5
N4 N3
N1 0 N1
N2 1 N2
Dest. Dist. Next
N1 N3 ∞ --
N1 N4 ∞ --
1
N2 N5 ∞ --
N3
N5 N2
N4 3 Dest. Dist. Next
N5
N1 1 N1
4 6 N2 0 N2
N3 6 N3
N4 ∞ --
Dest. Dist. Next 2 N5
N4 N3
N1 0 N1
N2 1 N2
Dest. Dist. Next
N1 N3 ∞ --
N1 N4 ∞ --
1
N2 N5 ∞ --
N3
N5 N2
N4 3 Dest. Dist. Next
N5
N1 1 N1
4 6 N2 0 N2
N3 6 N3
N4 ∞ --
Dest. Dist. Next 2 N5 3 N5
N4 N3
N1 0 N1
N2 1 N2
Dest. Dist. Next
End of table generation N1 N3 ∞ --
N1 ∞ -- N4 ∞ --
1
N2 3 N2 N5 ∞ --
N3 ∞ -- N5 N2
N4 4 N4 3 Dest. Dist. Next
N5 0 N5
N1 1 N1
4 6 N2 0 N2
N3 6 N3
N4 ∞ --
Dest. Dist. Next 2 N5 3 N5
N4 N3
key idea:
• from time-to-time, each node sends its own distance vector
estimate to neighbors
• when x receives new DV estimate from neighbor, it updates
its own DV using B-F equation:
2 ∞
0 4
4 0
1) N1 N1
Start of first pass N1
1
At N1 new routing table
N5 N2
3 N2 Dest. Dist. Next
1 N1 0 N1
4 6 0
∞
2 3
N4 N3
1
2) N1 N2 At N1 new routing table
= N1 N2 and N2 N2 N5 N2
=1+0=1 3 N2 Dest. Dist. Next
1 N1 0 N1
N2 1 N2
4 6 0
∞
2 3
N4 N3
1) N1 N1
Start of first pass N1
1
2) N1 N2 At N1 new routing table
= N1 N2 and N2 N2 N5 N2
=1+0=1 3 N2 Dest. Dist. Next
1 N1 0 N1
3) N1 N3 N2 1 N2
6 0
= N1 N2 and N2 N3 4 N3 7 N3
=1+6=7 6
∞
2 3
N4 N3
1) N1 N1
Start of first pass N1
1
2) N1 N2 At N1 new routing table
= N1 N2 and N2 N2 N5 N2
=1+0=1 3 N2 Dest. Dist. Next
1 N1 0 N1
3) N1 N3 N2 1 N2
6 0
= N1 N2 and N2 N3 4
N3 7 N3
=1+6=7 6
N4 ∞ --
∞
4) N1 N4 2
N4 N3 3
= N1 N2 and N2 N4
=1+∞=∞
1) N1 N1
Start of first pass N1
1
2) N1 N2 At N1 new routing table
= N1 N2 and N2 N2 N5 N2
=1+0=1 3 N2 Dest. Dist. Next
1
3) N1 N3 N1 0 N1
6 0
= N1 N2 and N2 N3 4 N2 1 N2
=1+6=7 6 N3 7 N3
∞ N4 ∞ --
4) N1 N4 2
N4 N3 3 N5 4 N5
= N1 N2 and N2 N4
=1+∞=∞
5) N1 N5
= N1 N2 and N2 N5
=1+3=4
1 ∞
N1 4 N2
4 6 0 ∞
N2
6 2 N3
2 ∞ 0 N4
N4 N3
3 4 N5
1 ∞
2) N5 N2 N1 4 N1
either, N5 N2 and N2 N2 4 6 0 ∞
N2 3 N2
=3+0=3 6 2 N3
Or, N5 N4 and N4 N2
2 ∞ 0
=4+∞=∞ N4 N3
N4
1 ∞
2) N5 N2 N1 4 N1
either, N5 N2 and N2 N2 4 6 0 ∞
N2 3 N2
=3+0=3 6 2 N3 6 N4
Or, N5 N4 and N4 N2
2 ∞ 0
=4+∞=∞ N4 N3
N4
3) N5 N3
either, N5 N2 and N2 N3
=3+6=9
Or, N5 N4 and N4 N3
=4+2=6
Select minimum cost/distance
Networks and Communications
07/22/2021 21
Distance Vector Routing (DVR)
1) N5 N1
Start of first pass
either, N5 N2 and N2 N1 N1
=3+1=4
1
Or, N5 N4 and N4 N1
=4+∞=∞
At N5 new routing table
N5 N2
Select minimum cost/distance 3 N2 N4 Dest. Dist. Next
1 ∞
2) N5 N2 N1 4 N1
either, N5 N2 and N2 N2 4 6 0 ∞
N2 3 N2
=3+0=3 6 2 N3 6 N4
Or, N5 N4 and N4 N2
2 ∞ 0
=4+∞=∞ N4 N3
N4 4 N4
3) N5 N3 4) N5 N4
either, N5 N2 and N2 N3 either, N5 N2 and N2 N4
=3+6=9 =3+∞=∞
Or, N5 N4 and N4 N3 Or, N5 N4 and N4 N4
=4+2=6 =4+0=4
Select minimum cost/distance Select minimum cost/distance
Networks and Communications
07/22/2021 22
Distance Vector Routing (DVR)
1) N5 N1
Start of first pass
either, N5 N2 and N2 N1 N1
=3+1=4
1
Or, N5 N4 and N4 N1
=4+∞=∞
At N5 new routing table
N5 N2
Select minimum cost/distance 3 N2 N4 Dest. Dist. Next
1 ∞
2) N5 N2 N1 4 N1
either, N5 N2 and N2 N2 4 6 0 ∞
N2 3 N2
=3+0=3 6 2 N3 6 N4
Or, N5 N4 and N4 N2
2 ∞ 0
=4+∞=∞ N4 N3
N4 4 N4
3) N5 N3 4) N5 N4
either, N5 N2 and N2 N4 5) N5 N5
either, N5 N2 and N2 N3
=3+∞=∞ =0
=3+6=9
Or, N5 N4 and N4 N3 Or, N5 N4 and N4 N4
=4+2=6 =4+0=4
Select minimum cost/distance Select minimum cost/distance
Networks and Communications
07/22/2021 23
Distance Vector Routing (DVR)
1) N5 N1
Start of first pass
either, N5 N2 and N2 N1 N1
=3+1=4
1
Or, N5 N4 and N4 N1
=4+∞=∞
At N5 new routing table
N5 N2
Select minimum cost/distance 3 N2 N4 Dest. Dist. Next
1 ∞
2) N5 N2 N1 4 N1
either, N5 N2 and N2 N2 4 6 0 ∞
N2 3 N2
=3+0=3 6 2 N3 6 N4
Or, N5 N4 and N4 N2
2 ∞ 0
=4+∞=∞ N4 N3
N4 4 N4
3) N5 N3 4) N5 N4
either, N5 N2 and N2 N4 5) N5 N5
either, N5 N2 and N2 N3
=3+∞=∞ =0
=3+6=9
Or, N5 N4 and N4 N3 Or, N5 N4 and N4 N4
=4+2=6 =4+0=4
Select minimum cost/distance Select minimum cost/distance
Networks and Communications
07/22/2021 24
Distance Vector Routing (DVR)
Start of first pass N1
N5
N1 N3 N5 Dest. Dist. Next
N2
3 0 ∞ ∞
N1 ? ?
1 6 3
N2 ? ?
4 6
∞ 0 ∞ N3 ? ?
∞ 2 4 N4 ? ?
N4
2 ∞ ∞ 0 N5 ? ?
N3
N5
N1 N3 N5 Dest. Dist. Next
N2
3 0 ∞ ∞
N1 1 N1
1 6 3
N2 0 N2
4 6
∞ 0 ∞ N3 6 N3
∞ 2 4 N4 7 N5
N4
2 ∞ ∞ 0 N5 3 N5
N3
4 6 N1 1 N1
N2 0 N2
N3 6 N3
Dest. Dist. Next 2
N4 N3 N4 7 N5
N5 3 N5
N1 ∞ -- Dest. Dist. Next
N2 7 N5
N1 7 N2
N3 2 N3
N2 6 N2
N4 0 N4
N3 0 N3
N5 4 N5
N4 2 N4
N5 6 N4
Networks and Communications
07/22/2021 27
Distance Vector Routing (DVR)
Dest. Dist. Next
4 6 N1 1 N1
N2 0 N2
N3 6 N3
Dest. Dist. Next 2
N4 N3 N4 7 N5
N5 3 N5
N1 8 N5 Dest. Dist. Next
N2 7 N5
N1 7 N2
N3 2 N3
N2 6 N2
N4 0 N4
N3 0 N3
N5 4 N5
N4 2 N4
N5 6 N4
Networks and Communications
07/22/2021 28
Distance Vector Routing (DVR)
Dest. Dist. Next
4 6 N1 1 N1
N2 0 N2
N3 6 N3
Dest. Dist. Next 2
N4 N3 N4 7 N5
N5 3 N5
N1 8 N5 Dest. Dist. Next
N2 7 N5
N1 7 N2
N3 2 N3
N2 6 N2
N4 0 N4
N3 0 N3
N5 4 N5
N4 2 N4
N5 6 N4
Networks and Communications
07/22/2021 29
Distance Vector Routing (DVR)
6
N3 N4
7 4
N1 2 1 N6
9 8
4 N2 N5 2
10
let
dx(y) := cost of least-cost path from x to y
then
dx(y) = min
v
{c(x,v) + dv(y) }
from
y ∞∞ ∞ y 2 0 1
from
z ∞∞ ∞ z 7 1 0
node y cost to
table x y z y
2 1
x ∞ ∞ ∞
x z
from
y 2 0 1 7
z ∞∞ ∞
node z cost to
table x y z
x ∞∞ ∞
from
y ∞∞ ∞
z 7 1 0
Networks and Communications
time
07/22/2021 35
Dx(z) = min{c(x,y) +
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)}
= min{2+0 , 7+1} = 2 Dy(z), c(x,z) + Dz(z)}
= min{2+1 , 7+0} = 3
node x cost to cost to cost to
table x y z x y z x y z
x 0 2 7 x 0 2 3 x 0 2 3
from
y ∞∞ ∞ y 2 0 1
from
y 2 0 1
from
z ∞∞ ∞ z 7 1 0 z 3 1 0
node y cost to cost to cost to
table x y z x y z x y z y
2 1
x ∞ ∞ ∞ x 0 2 7 x 0 2 3 x z
from
y 2 0 1 y 2 0 1 7
from
y 2 0 1
from
z ∞∞ ∞ z 7 1 0 z 3 1 0
y 2 0 1 y 2 0 1
from
from
y ∞∞ ∞
z 7 1 0 z 3 1 0 z 3 1 0
Networks and Communications
time
07/22/2021 36
Distance vector: link cost changes
link cost changes:
node detects local link cost change 1
y
updates routing info, recalculates 4 1
distance vector x z
50
if DV changes, notify neighbors
poisoned reverse:
If Z routes through Y to get to X :
1 1 1
D C B A
1 1 1
D C B A
∞ ∞ 1 Pass 1
1 1 1
D C B A
∞ ∞ 1 Pass 1
∞ 2 1 Pass 2
1 1 1
D C B A
∞ ∞ 1 Pass 1
∞ 2 1 Pass 2
3 2 1 Pass 3
1 1 1
D C B A
∞ ∞ 1 Pass 1
∞ 2 1 Pass 2
3 2 1 Pass 3
3 2 1 Pass 4
1 1 1
D C B A
∞ ∞ 1 Pass 1
∞ 2 1 Pass 2
3 2 1 Pass 3
3 2 1 Pass 4
• • • •
• • • •
• • • •
3 2 1 Pass n
1 1 1
D C B A
∞ ∞ 1 Pass 1
∞ 2 1 Pass 2
3 2 1 Pass 3
3 2 1 Pass 4
• • • •
• • • •
• • • •
3 2 1 Pass n
1 1 1
D C B A
3 2 1 Pass 6
3 2 ∞ Pass 7
Pass 8
Pass 9
Pass 10
Pass 11
1 1 1
D C B A
3 2 1 Pass 6
3 2 ∞ Pass 7
Pass 8
Pass 9
Pass 10
Pass 11
1 1 1
D C B A
3 2 1 Pass 6
3 2 ∞ Pass 7
Pass 8
Pass 9
Pass 10
Pass 11
1 1 1
D C B A
3 2 1 Pass 6
3 2 ∞ Pass 7
4 Pass 8
Pass 9
Pass 10
Pass 11
1 1 1
D C B A
3 2 1 Pass 6
3 2 ∞ Pass 7
4 Pass 8
Pass 9
Pass 10
Pass 11
1 1 1
D C B A
3 2 1 Pass 6
3 2 ∞ Pass 7
3 4 Pass 8
Pass 9
Pass 10
Pass 11
1 1 1
D C B A
3 2 1 Pass 6
3 2 ∞ Pass 7
3 4 Pass 8
Pass 9
Pass 10
Pass 11
1 1 1
D C B A
3 2 1 Pass 6
3 2 ∞ Pass 7
3 4 3 Pass 8
Pass 9
Pass 10
Pass 11
1 1 1
D C B A
3 2 1 Pass 6
3 2 ∞ Pass 7
3 4 3 Pass 8
Pass 9
Pass 10
Pass 11
1 1 1
D C B A
3 2 1 Pass 6
3 2 ∞ Pass 7
3 4 3 Pass 8
4 Pass 9
Pass 10
Pass 11
1 1 1
D C B A
3 2 1 Pass 6
3 2 ∞ Pass 7
3 4 3 Pass 8
4 Pass 9
Pass 10
Pass 11
1 1 1
D C B A
3 2 1 Pass 6
3 2 ∞ Pass 7
3 4 3 Pass 8
5 4 Pass 9
Pass 10
Pass 11
1 1 1
D C B A
3 2 1 Pass 6
3 2 ∞ Pass 7
3 4 3 Pass 8
5 4 Pass 9
Pass 10
Pass 11
1 1 1
D C B A
3 2 1 Pass 6
3 2 ∞ Pass 7
3 4 3 Pass 8
5 4 5 Pass 9
Pass 10
Pass 11
1 1 1
D C B A
3 2 1 Pass 6
3 2 ∞ Pass 7
3 4 3 Pass 8
5 4 5 Pass 9
Pass 10
Pass 11
1 1 1
D C B A
3 2 1 Pass 6
3 2 ∞ Pass 7
3 4 3 Pass 8
5 4 5 Pass 9
6 Pass 10
Pass 11
1 1 1
D C B A
3 2 1 Pass 6
3 2 ∞ Pass 7
3 4 3 Pass 8
5 4 5 Pass 9
5 6 Pass 10
Pass 11
1 1 1
D C B A
3 2 1 Pass 6
3 2 ∞ Pass 7
3 4 3 Pass 8
5 4 5 Pass 9
5 6 Pass 10
Pass 11
1 1 1
D C B A
3 2 1 Pass 6
3 2 ∞ Pass 7
3 4 3 Pass 8
5 4 5 Pass 9
5 6 5 Pass 10
Pass 11
1 1 1
D C B A
3 2 1 Pass 6
3 2 ∞ Pass 7
3 4 3 Pass 8
5 4 5 Pass 9
5 6 5 Pass 10
6 Pass 11
1 1 1
D C B A
3 2 1 Pass 6
3 2 ∞ Pass 7
3 4 3 Pass 8
5 4 5 Pass 9
5 6 5 Pass 10
6 Pass 11
1 1 1
D C B A
3 2 1 Pass 6
3 2 ∞ Pass 7
3 4 3 Pass 8
5 4 5 Pass 9
5 6 5 Pass 10
7 6 Pass 11
1 1 1
D C B A
3 2 1 Pass 6
3 2 ∞ Pass 7
3 4 3 Pass 8
5 4 5 Pass 9
5 6 5 Pass 10
7 6 Pass 11
1 1 1
D C B A
3 2 1 Pass 6
3 2 ∞ Pass 7
3 4 3 Pass 8
5 4 5 Pass 9
5 6 5 Pass 10
7 6 7 Pass 11
1 1 1
D C B A
3 2 1 Pass 6
3 2 ∞ Pass 7
3 4 3 Pass 8
5 4 5 Pass 9
5 6 5 Pass 10
7 6 7 Pass 11
• • • •
• • • •
• •
Networks and Communications
• •
07/22/2021 Pass n 70
Count to Infinity Problem
1 1 1
D C B A
3 2 1 Pass 6
3 2 ∞ Pass 7
3 4 3 Pass 8
5 4 5 Pass 9
5 6 5 Pass 10
7 6 7 Pass 11
• • • •
• • • •
• •
Networks and Communications
• •
07/22/2021 Pass n 71