shortest path tree (SPT) because it uses the shortest path to reach the destination. This design functions very
well in a one−to−many model, but it has drawbacks when used in a many−to−many model. For example, a
live concert has only one source, so there will be only one distribution tree in the router for the multicast
group. But in a video conference with 20 participants, you will have 20 different trees for the same multicast
group.
In a shared tree design, the entire multicast group utilizes the same distribution path. The root is placed at a
selected point in the network. Protocol Independent Multicast (PIM) refers to this router/point as the
rendezvous point; Core−Based Tree (CBT) multicast routing protocol refers to this router as the core. All
multicast traffic for that group is first sent to the root/rendezvous point. It then flows out the branches to the
destination. Only one distribution tree exists for the multicast group, which in turn means each router only has
to keep track of one path for that multicast group.
Note CBT is a rarely implemented multicast routing protocol. It is in a constant state of
development. The newest version (version 3) is already in draft form, even though the current
version 2 is not yet widely used. Unfortunately, there is no backward compatibility from
version 3 to version 2. It will be a while before you see mainstream hardware support for this
protocol. PIM, which is more commonly used, will be discussed later in this chapter.
The only difference between the source tree and the shared tree in a one−to−many multicast is that the root
moves from the first router to some other point in the network. In a many−to−many multicast, the differences
and advantages become more significant. The shared tree is subdivided into unidirectional and bidirectional
trees. In the unidirectional shared tree, the multicast traffic can first be unicast to the root for distribution to
the rest of the multicast group; it can also be sent as a multicast using the source tree model with the source as
the root and the shared tree root as the branch. A bidirectional shared tree takes advantage of the existing
routing table to distribute multicast traffic to the multicast group. Multicast traffic can go back the same path
by which it came to the rendezvous point and be distributed from the root. Before the traffic reaches the root,
it follows the multicast routing table to the other destinations. This way, the multicast traffic flows only one
time on any path on the network.
Multicast Forwarding
Let’s look at how the routers make the distribution tree. In unicast traffic, the router makes a forwarding
decision based on the destination address. It looks up the address in the routing table and forwards the packet
to the next hop via the associated interface. In multicast traffic, rather than a single IP address, a multicast
address is associated with multiple hosts; this addressing makes the forwarding decision more complex.
The router utilizes Reverse Path Forwarding (RPF) to make the forwarding decision. Instead of using the
destination address, the router uses the source address. It checks the source address and determines whether
the packet comes from an interface that leads back to the source address. If the packet did not arrive on an
interface that leads back to the source, the RPF check fails and the packet is discarded. If the packet comes
from the interface that leads back to the source, the packet is forwarded out the other interfaces on the router.
The router determines which interface is on the reverse path back to the source using either the unicast routing
table or a separate multicast routing table. This routing decision is based on the multicast routing protocol.
IGMP Protocols
In order to build multicast routes for each multicast group, routers communicate with each other via one of the
following protocols:
DVMRP—Distance Vector Multicast Routing ProtocolPIM—Protocol Independent MulticastMOSPF—Multicast Open Shortest Path First
143