Distance Vector Routing

Example

At the beginning, each router only knows the distance to its directly connected neighbors, thus all other path are marked as ∞. In the propagation process, we follows:

  • each router maintains its own distance vector table
  • each router can only update its own distance vector row (as marked in gray)
  • other entries can ONLY be updated when receiving distance vectors from neighbors
𝐷π‘₯𝑣π‘₯𝑦𝑧π‘₯027π‘¦βˆžβˆžβˆžπ‘§βˆžβˆžβˆžπ·π‘¦π‘£π‘₯𝑦𝑧π‘₯βˆžβˆžβˆžπ‘¦201π‘§βˆžβˆžβˆžπ·π‘§π‘£π‘₯𝑦𝑧π‘₯βˆžβˆžβˆžπ‘¦βˆžβˆžβˆžπ‘§710

In the next time step, each router will propagate its distance vector to its neighbors, take router π‘₯ as an example, it receives distance vectors from router 𝑦 and 𝑧 and update its own distance vector row:

𝐷π‘₯𝑣π‘₯𝑦𝑧π‘₯0??𝑦201𝑧710

Also, router π‘₯ should re-calculate the distance to each destination based on the received distance vectors:

𝐷π‘₯(𝑦)=min{𝐢π‘₯,𝑦+𝐷𝑦(𝑦)𝐢π‘₯,𝑧+𝐷𝑧(𝑦)=2𝐷π‘₯(𝑧)=min{𝐢π‘₯,𝑦+𝐷𝑦(𝑧)𝐢π‘₯,𝑧+𝐷𝑧(𝑧)=3

And thus the updated distance vector table at router π‘₯ is:

𝐷π‘₯𝑣π‘₯𝑦𝑧π‘₯023𝑦201𝑧710