The goal of multicast routing is to find a tree between the routers attached
to the senders and receivers of a multicast group. In practice two approaches
have been adopted for determining the multicast routing tree. They differ
according to whether a single group-shared tree is used for all senders
in the group or whether a source-specific tree is constructed for each
In order to build a single, shared routing tree from all senders, this
approach first selects a core router (rendezvous point). The multicast
tree is constructed when edge routers with attached hosts send join messages
addressed to the core router. Data packets must be sent first to the
core router, which forwards them along the multicast tree to the receivers.
In practice, a so-called reverse path forwarding algorithm is
used to build a tree from a specific source to all receivers. When a
router receives a multicast packet over the link, which is on its own
shortest path to the sender, it transmits it on all outgoing links (except
the one on which it was received). Otherwise it simply discards the incoming
packet. By this approach, multicast packets are flooded over the network
to all receivers, but furthermore to routers with no attached receivers
for that group. The solution to the problem of receiving unwanted multicast
packets is known as pruning. Each router that has no attached hosts for
this group sends a prune message to its upstream router.
In this application you are able to select senders and receivers of a
multicast group and see for the selected scenario how group-based and
source-based multicast trees are constructed.