What is Distance Vector Routing (DVR)?
Introduction
The goal of a network is to enable nodes to exchange
Distance Vector Routing is an intra-domain routing protocol that enables routers within an
How it works
In DVR, routers share information about the network with their
Eventually, every node has an updated view of the entire network, thereby allowing it to know the shortest (least cost) path to every other node.
Methodology
Nodes store information about every other node in the network in their local routing tables. These routing tables contain:
- Destination node
- Distance from the current node to the destination node
- Next hop
An example network consisting of 4 nodes accompanied by their routing tables is illustrated below.
While initially empty, these routing tables are populated and updated periodically in various rounds of distance vector exchanges.
First Round
When the first round begins, the routing tables for every node are empty as illustrated above. The following rules are then used to populate them:
- The distance from a node to itself is always 0.
- The next hop for a node to itself is always the node itself.
- The distance from a node to its immediate neighbors is given by the weight of the links.
- The distance from a node to nodes, that aren't immediate neighbors, is
.
Using the aforementioned rules, we can populate the routing table for node A as follows:
Applying these rules to the other nodes, we conclude the first round with the following results:
Subsequent Rounds
Once the first round is concluded, every node broadcasts its distance vector (the second column of the routing table) to its immediate neighbors only.
Once broadcasted, every node uses the distance vectors that it has received to update its local routing table by applying the Bellman-Ford algorithm. All of the nodes in the network update their routing table in parallel. Once updated, these nodes then exchange their updated distance vectors with their immediate neighbors again and this process repeats.
Note: The current routing table is not used to calculate the values for the updated routing table at all.
What’s the distance vector for node C at the start of round 3?
The options are in the following form: [ A, B, C, D ]
[ 10, 2, 1, 5 ]
[ 9, 1, 0, 4 ]
[ , 1, 0, 4 ]
[ 5, 8, 4, 0 ]
The number of rounds in which the distance vectors are exchanged through the network can be computed using the following formula:
After the distance vectors have been exchanged for
For our example network, after a total of 3 rounds, the network has the following routing table:
So, if node A wants to send out a packet to node B, it won't use the direct link between them with
Free Resources