- The place to start learning about how to extend the distance vector
protocol to multicast routing is a research paper by
Dalal and Metcalfe in 1978 published in the prestigious
ACM Communications.
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....
- The Dalal & Metcalfe paper describe a method to perform
more efficient (than flooding - see
click here)
distribution of broadcast messages
Dalal & Metcalfe saw that the routing tables contains
information of all reverse trees
- So what the heck is a reverse tree ???
- The FORWARD Tree
- The forward tree of a node X consists of
all shortest path from X to all other nodes.
- The following figure shows a network and 5 smaller figures
that shows the shortest paths from A. B, C, D and E to
all other nodes in the network:
- The REVERSE Tree
- The reverse tree of a node X consists of
all shortest path from all other nodes to X.
-
The following figure shows the same network and 5 smaller figures
that shows the shortest paths from all other nodes to
A. B, C, D and E:
- Properties of FORWARD and REVERSE Trees
- When link costs are ASYMMETRIC
that the forward tree of node X is (generally speaking)
not equal to the reverse tree !!!
- When link costs are SYMMETRIC,
the forward trees and the reverse trees are equal
For example:
- Forward tree with SYMMETRIC Costs:
- Reverse tree with SYMMETRIC Costs:
- Facts about multicasting:
- In order to do multicast (or broadcast) from a source, we need a tree
that is rooted at the source
- It could be any tree, and
the reverse tree can serve the purpose
- However... multicast packets transmitted using links
of the reverse tree will not follow minimum delay
routes from the multicast source to the destinations
- (Because the minimum delay routes forms the forward tree
and in general, the reverse tree is not equal to the
forward tree).
- But reverse trees is very close to the forward tree....
- Reverse Tree BROADCASTING
- Dalal and Metcalfe discovered that the unicast routing information
encodes the reverse tree....
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.
- In the 1978 paper, Dalal and Metcalfe developed
an efficient broadcast method that makes use
of the reverse path tree
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.
- Reverse Path BROADCASTING: the principle
- The basic underlying technique to implement reverse path broadcasting
that uses no additional information other than
unicast routing tables is:
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.
|
- Example Reverse Path Broadcast
- Consider the network in the above figure....
- Suppose node A sends a broadcast message
with header information: (To:ALL, From:A)
- This message is forwarded by the basic Reverse Path Forwarding principle
as follows:
- Node A sends the broadcast message:
- Notice that node A has no information available about the reverse tree
rooted at A !!!
- Therefore, it must send the message to all its neighbors to ensure that
- Note that the messages is FROM A and has the source ID = A,
this is important for the next steps.
- Nodes B, C and D receive A's message. The following figure depicts
what each nodes will do with the received message (explanation
is given below the figure):
- When B receives the message, it can detect that the source ID = A
- Then B checks if the messages was received on the link it uses
to transmit to A. It did. So B forwards the message onto
its other links
- C receives the message from A, it can detect that the source ID = A
- Then C checks if the messages was received on the link it uses
to transmit to A. It did not (C uses E to forward to A).
So C drops message from A.
- When D receives the message, it can detect that the source ID = A
- Then D checks if the messages was received on the link it uses
to transmit to A. It did. So D forwards the message onto
its other links
- Nodes E receives B's and D's messages. The following figure depicts
what E will do with the received messages (explanation
is given below the figure):
- E receives the message from B, it can detect that the source ID = A
- Then E checks if the messages was received on the link it uses
to transmit to A. It did not (E uses D to forward to A).
So B drops message from B.
- E receives the message from D, it can detect that the source ID = A
- Then E checks if the messages was received on the link it uses
to transmit to A. It did. So E forwards D's message onto
its other links
- Nodes C receives E's messages. The following figure depicts
what C will do with the received messages (explanation
is given below the figure):
- C receives the message from E, it can detect that the source ID = A
- Then C checks if the messages was received on the link it uses
to transmit to A.
It did. So C forwards E's message onto
its other links
Bottom line: every node receives the messages from A....
albeit not as efficient (yet) as it should... that will change
with some improvement....
- Problem with the basic approach
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....)
- Reverse Path BROADCASTING: the efficient solution
- Add new Broadcast Routing Table data structure to
every multicast-able routers:
Broadcast Routing table:
Broadcast Source | Next routers
------------------+----------------
A | ....
B | ....
.... | ....
|
- When a router send distance vector update messages (these are
the messages that routers exchange among themselves to
when routing cost changes) to their neighbors,
the messages include the next node.
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
|
- Finally, a procedure to process the additional information:
A node that receives distance vector messages, in addition
to the orignal processing
(see click here),
must also:
- Check if my own ID == Next in the distance vector message.
- If EQUAL, then
the router enters the From value into Next Router
field of the Broadcast Routing Table
for the entry that corresponds to Dest
- Example:
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:
The broadcast routing tables clearly shows that broadcast messages from
A will follow the reverse tree and it uses
the minimum number of messages:
- Note: reverse path broadcast tree from other sources are constructed
in the similar manner. Try construct one or more as exercise.