So the trick we pulled in the link state protocol (i.e., including multicast membership information in the broadcast link state route messages) does not work in distance vector routing... unfortunately.
(If you wonder why we can't just add a broadcast method to the distance vector method... if you do that, you changed the nature of the distance vector method: you only send information to your neighbors. If you create the capability to broadcast, well then, why not broadcast the link state to every node and use Dijkstra to compute the route ?)
But strangely enough, the Distance Vector Routing Algorithm was the first routing algorithm that has been adapted for multicast routing.
In 1993, Steve Deering extended the SunOS 4 kernel (and later other open source UNIX kernel) with multicast multicast capability.
The Sun OS 4 kernel used the Route Information Protocol whichwas based on the Distance Vector Algorithm.
You can get a copy of that paper here: click here
BTW, if "Metcalfe" sounds familiar, you may recall me mentioning that he is the inventor of Ethernet....
Dalal & Metcalfe saw that the routing tables contains information of all reverse trees
For example:
For example, consider the node A in following network and the contend of the unicast routing table that forwards packets towards node A:
You can clearly see that the unicast routing information encodes the reverse tree
Note that the unicast routing information encode a tree that spans all nodes of the network.
This method is known as Reverse Path Broadcasting (RPB).
Since the reverse tree spans all nodes in the network, their method will broadcast... At the end of their 1978 paper, they mentioned that their method could be extended for multicast. And indeed, in 1993, Steve Deering extended their method to multicast.
When a node X receives a (broadcast) message from A, it transmits the (broadcast) messages on all its other links (except on the incoming link) if and only if the (broadcast) message was received on the link that X uses to forward unicast messages to A. |
Although broadcasting has been realised.... it is not realised with the minimum number of messages. |
It would not be high quality research worth publishing in the prestigious ACM Communication if Dalal & Metcalfe did not remove these redundant messages....
In order to achive broadcast using the minimum number of messages, the distance vector route computation algorithm must be extended
But remember: any extension must preserve the essence of the distance vector route computation algorithm.
Spelled out in English it means: a node must only send information to only its neighbor nodes. (And don't go extend the distance vector algorithm with broadcast techniques as mentioned above....)
Broadcast Routing table: Broadcast Source | Next routers ------------------+---------------- A | .... B | .... .... | .... |
What information must be added ??? (Answer is below....)
Pictorially speaking:
Ordinary distace vector: Dalal & Metcalfe's distance vector: ------------------------ ------------------------------------ (From, To, Distance) (From, To, Next, Distance) Example: Node A ======= Distance vector used Distance vector used by Dalal in unicast routing and Metcalfe: method: From To Distance From To Next Distance -------------------- --------------------------------- A A 0 A A - 0 A B 6 A B B 6 A C 3 A C C 3 A D 3 A D D 3 A E 6 A E D 6 |
A node that receives distance vector messages, in addition to the orignal processing (see click here), must also:
For simplicity, I will only show the portion of the distance vector message that contain information affecting the construction of the broadcast tree rooted at A.
I will show the "final" distance message exchanged by the nodes when the route construction has converged. (These message are easily derived from the final routing tables !)
The final distance message from node B that affect the broadcast tree rooted at A is as follows:
The final distance message from node C that affect the broadcast tree rooted at A is as follows:
The final distance message from node D that affect the broadcast tree rooted at A is as follows:
The final distance message from node E that affect the broadcast tree rooted at A is as follows: