Multicast-capable routers create distribution trees that control
the path that IP multicast traffic takes through the network. Unlike typical IP
traffic, multicast traffic is forwarded away from the source, rather than
toward the receiver. Because is it the reverse of typical IP packet processing,
the process is called Reverse Path Forwarding (RPF). Multicast-capable routers
create distribution trees that control the path that IP multicast traffic takes
through the network as it is forwarded from the source toward all receivers.
Multicast distribution trees fall into the categories of source based
trees and shared trees and the type of tree is dependent upon the
multicast protocol in use.
Source Distribution Trees
A source tree is the simplest form of a
multicast distribution tree, with its root at the source and branches forming a
tree through the network toward the receivers. This type of tree uses the
shortest path through the network and is therefore also called a "shortest
path tree (SPT)."
Figure
shows an example
of an SPT for group 224.1.1.1 rooted at the source (host A) and distributing to
two receivers (hosts B and C).
An SPT is identified by a special notation
of (S, G), pronounced "S comma G," where S is the IP address of the
source and G is the multicast group address to which receivers belong. Using
this notation, the SPT for the example shown in the figure would be
(192.168.1.1, 224.1.1.1). The unicast IP address of the receivers is
irrelevant.
The (S, G) notation implies that a separate SPT exists for
each individual source sending to each group. For example, if host B is also
sending traffic to group 224.1.1.1 and hosts A and C are receivers, a separate
(S, G) SPT would exist with a notation of (192.168.2.2, 224.1.1.1).
Shared Distribution Trees
Unlike source trees that have their
root at the source, shared trees use a single common root placed at a chosen
point in the network. This shared root is called a "rendezvous point
(RP)." Figure
shows a
shared unidirectional tree for group 224.2.2.2, with the root located at router
D. The source traffic is sent toward the RP. The traffic is then forwarded from
the RP to reach all of the receivers. If the receiver is located between the
source and the RP, it will be serviced directly.
In this example,
multicast traffic from the sources (hosts A and D) travels to the RP (router D)
and then down the tree to the two receivers (hosts B and C). Because all
sources in the multicast group use a common shared tree, a notation written as
(*, G), pronounced "star comma G," represents the tree. In this case,
"*" means all sources, and G represents the multicast group.
Therefore, the shared tree shown in the figure would be written as (*,
224.2.2.2).
Source Trees vs. Shared Trees
Members of multicast groups can join or leave at any time; therefore, the
distribution trees must be dynamically updated. When all the active receivers
on the Layer 3 segments which are associated with a particular branch stop
requesting traffic for a multicast group, the routers prune that branch from
the distribution tree, stopping traffic flow to that branch. If one receiver on
that branch becomes active and requests the multicast traffic, the router will
dynamically modify the distribution tree and will again start forwarding
traffic.
Source trees have the advantage of creating the optimal path
between the source and the receivers. This advantage guarantees the minimum
amount of network latency for forwarding multicast traffic. However, this
optimization comes at a cost: the routers must maintain path information for
each source. In a network that has thousands of sources and thousands of
groups, this overhead can quickly become a resource issue on the routers.
Memory consumption from the size of the multicast routing table is a factor
that network designers must take into consideration.
Shared trees have
the advantage of requiring the minimum amount of network state information in
each router. This advantage lowers the overall memory requirements for a
network that allows shared trees only. The disadvantage of shared trees is that
under certain circumstances the paths between the source and receivers might
not be the optimal paths, which might introduce some latency in packet
delivery. For example, in the figure, the shortest path between host A (source
1) and host B (a receiver) would be router A and router C. Because router D is
used as the RP for a shared tree, the traffic must traverse routers A, B, D,
and then C. Network designers must carefully consider the placement of the RP
when implementing a shared tree-only environment.
Reverse Path
Forwarding Check
With unicast traffic, packets are routed from the
source to destination by considering the packets destination IP address. The
routing table looks up the destination address and forwards a single copy of
the unicast packet out the correct interface in the direction of the
destination.
In multicast forwarding, the source sends traffic to a group
of hosts represented by a multicast group address. The multicast router
determines which direction is upstream (toward the source) and which is
downstream (toward the listeners). If there are multiple downstream paths, the
router replicates the packet down all appropriate downstream paths.
RPF
uses the existing unicast routing table to validate the network from where
upstream multicast traffic should arrive. When a multicast packet arrives at a
router, the router will perform an RPF check on the packet. If the check is
successful, the packet is forwarded; otherwise it will be dropped. This RPF
check helps to guarantee that the distribution tree is loop-free.
For
packets flowing down a source tree, the RPF check procedure follows this
sequence:
Step 1 Router looks up the source address in
the unicast routing table to determine if the packet has arrived on the
interface located on the reverse path back to the source.
Step 2 If a packet has arrived on the interface leading back
to the source, the RPF check is successful and the packet will be
forwarded.
Step 3 If the RPF check in Step 2
fails, the packet is quietly dropped.
At the top of Figure
, the RPF check
fails. A multicast packet from source 151.10.3.21 is received on interface S0.
A check of the unicast route table shows that S1 is the interface this router
would expect to see unicast data from 151.10.3.21. Because the packet has
arrived on S0, the packet will be discarded.
In the bottom Figure
, the multicast
packet arrived on S1. The router checks the unicast routing table to find that
S1 is the correct interface. The RPF check passes. The packet is forwarded.