= Solution
In <reverse path forwarding>, a <router> uses its <unicast> routing information to ask which interface it would use to send a <packet> back towards source $S$. It accepts a <multicast> <packet> from $S$ only when it arrives on that interface, and otherwise discards it. An accepted <packet> can be forwarded on the other eligible interfaces. This needs no globally computed <multicast distribution tree> before the first transmission.<Distance Vector Multicast Routing Protocol (RFC 1075)>[§2: reverse-path broadcasting and truncation]{ref}
With stable, loop-free routes and a consistent choice of parent when routes tie, each non-source <router> selects one upstream parent towards $S$. Following parent links reaches $S$, so the accepted parent links form a source-rooted <tree> over reachable <routers>. A <packet> arriving across a cross-link from a non-parent fails the reverse-path test. Basic flooding can still transmit copies that will be discarded; downstream-neighbour information can suppress such useless transmissions, and a designated forwarder prevents duplicate delivery on a shared local network.
To adapt the forwarding structure to a particular <multicast> group, retain branches with local members or interested descendants and prune the others. Leaf <routers> with no interested receivers initiate pruning; a <router> with no local members and no remaining interested children can propagate that condition upstream. A new subscriber requires a join/graft or later refresh to restore a pruned branch. Thus <reverse path forwarding> gives the source-rooted reachability structure, while membership and pruning restrict it to useful branches.
This <tree> need not minimize total transmission cost. Even if the <unicast> routes are <shortest paths> under symmetric positive link costs, their union minimizes individual distances from the source, rather than the sum of the costs of all used links. For a small example, let $SA$ and $SB$ each cost 2 and let $AB$ cost 1, with receivers at $A$ and $B$. The <shortest-path tree> uses $SA$ and $SB$, costing 4 in total. Using $SA$ and $AB$ costs 3, although the route from $S$ to $B$ then has length 3 instead of 2. Moreover, real <unicast> policies may optimize other criteria, and reverse routes need not be best forward routes when costs are asymmetric. Therefore
$$
\boxed{\text{reverse-path acceptance yields a delivery tree, not necessarily a minimum-cost tree}.}
$$
Back to article page