|
|
|
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).
|