IGMP allows routers to determine which multicast group addresses are of interest in the LAN. We now need a routing mechanism which ensures that all transmissions to a multicast address reaches the correct set of routers and hence the correct set of LANs. Therefore, we need an efficient dynamic multicast routing protocol. This turns out to be a hard problem to crack and is still the subject of much research. In this section we look at the problem and examine some of the protocols which have been developed to date.
The host S is transmitting to a multicast group address. Hosts B and E have joined the group and have announced the fact to RB and RE via IGMP. We need to calculate a spanning tree which interconnects the relevant routers. We can approach a solution through a series of refinements:
Starting point: Flood a multicast datagram to all neighbours except the one which sent it.
The problem with this is that we will get loops; RC will forward to RD, RD to RE and RE to RC. One way of solving this problem would be for each router to keep a list of the datagrams it has seen, check this each time it receives a datagram, and delete it if it is in the list. This is clearly not feasible for a multicast which might last several hours and involve millions of datagrams.
First refinement: Reverse Path Broadcasting
It turns out that routers already have quite a lot of the information they need in order to calculate a spanning tree simply from the operation of normal unicast routing protocols. In particular, each node will have a notion of the shortest path from itself to RS - at the very least, they will know the length of this path and the identity of the first hop on it. This is true irrespective of which unicast routing protocol they are using. We can adopt the following rule - “flood a datagram that comes from the first-hop (on the path back to the source),but delete all others”. Now, when RC forwards to RD, RD will delete the datagram because it did not arrive from its “first-hop to source” (which, for RD, is RS itself). This technique is called reverse path broadcasting (RPB).