Multicast control protocols can be classified in two big groups depending on the scope they’re designed to work on: host-router and router-router. The host-router protocols are used for signaling purposes between the multicast receiver and it’s FHR whereas router-router protocols are used for signaling purposes between routers to build a Multicast Distribution Tree (MDT).
Multicast forwarding is done by multicast capable routers. These devices create MDTs to deliver multicast data streams form sources to receivers. There are different types of router-router control protocols that create different types of MDT depending on the selected variant. The next table summarizes the MDT types and tree root location.
Tree Root Location
Dynamic Joins and Leaves can happen anytime on a multicast enabled network, so the resultant loop-free MDT changes over time. The message replication is done at tree branches of the MDT.
Protocol Independent Multicast (PIM) is a group of multicast routing protocols used to build MDT loop-free trees to enable multicast data stream distribution over a network.
As different versions of PIM will use different MDT types, the way PIM routes multicast traffic will be dependent on the PIM mode selected for a multicast group. Multicast group modes are not mutually exclusive in the sense that they may work simultaneously on the same network serving different application or business needs.
PIM, as its name states, is independent of the underlying IGP. PIM doesn’t build an independent multicast forwarding table, it uses the IGP created routing table to create a loop-free MDT. Unicast routing table is used extensively to perform RPF related functions like loop avoidance and multicast forwarding out the Outgoing Interface List (OIL) interfaces.
The three more relevant variants of PIM are PIM-SM, PIM-SSM and PIM-BiDir.
PIM Sparse Mode (PIM-SM) provides intra-domain multicast support, and may suit one-to-many and many-to-many use cases if the performance requirements are not very strict.
PIM-SM uses shared (*,G) and source (S,G) trees. The shared tree for a multicast group G is rooted at the RP and the root of the source tree is rooted at the source of the multicast data. The RP in this version is required as a meeting point for source discovery and as a reference point in the network to root the shared tree.
If the Shortest Path Tree (SPT) switchover is OFF multicast data from all sources is forwarded to the receivers via a shared tree. In this case there will exist source trees rooted at the sources with the RP as the receiver and shared trees rooted at the RP with final receivers sharing a (*,G) tree. In this case, the RP is located on the data plane between sources and receivers.
If SPT switchover is enabled, receivers FHRs will send PIM Join messages towards the source to build a more optimal MDT once they know which are the sources transmitting to a group G. Usually, the RP is not located in the data plane, acting purely as a source registration and meeting point between sources and receivers.
PIM-SM uses the IGP routing table to perform RPF for sources (source tree) and RPs (shared trees).
To avoid packet duplication and avoid bandwidth wastage, a Designated Router (DR) is elected on every LAN segment with more than 2 devices. Only the DR can send Join/Prune messages after receiving MLD Report messages.
PIM Specific Source Multicast (PIM-SSM) provides intra-domain and inter-domain multicast optimal solution for one-to-many use cases.
It’s a version derived from PIM-SM, but simpler. PIM-SSM uses only source trees (S,G) and do NOT use RP to build the MDT, only the address of the multicast enabled application.
The network forwards only multicast data from (S,G) to the receivers explicitly joined to the group and source pair. This fact improves bandwidth usage and security of this model by not allowing unwanted sources to deliver unsolicited multicast data streams to receivers joined to a group.
PIM-SSM allows for source selection by joining (S,G). MLDv2 is required to receivers to be able to signal the source (S,G).
PIM Bidirectional (PIM-BiDir) provides intra-domain many-to-many optimal solution.
This version uses only bidirectional shared trees rooted at the RP to deliver multicast data streams. Note that in this case the multicast data flows up the shared tree (*,G) in the direction set by the RP vector to later go down the tree to reach the interested receivers.
PIM-BiDir needs a virtual RP to be able to construct the bidirectional MDT. The IP address of the RP must be reachable through the multicast domain to be used by routers as a vector to the root of the bidirectional shared tree. The RP in BiDir distribution model doesn’t need to perform any source discovery or registering function, and hence his name as virtual RP.
Keep into account that the RPF is broken for the MDT. For this reason, a Designated Forwarded (DF) is elected per shared segment to avoid looping derived from the previous condition. The DF is the device responsible of forwarding multicast data traffic for a segment and replaces the DR role.
PIM mode election
The election of the PIM mode should depend on the applications use cases (supported applications) and business requirements. With that clear, the PIM mode election will carry some other requirements that should be addressed, like MLD version support or RP engineering.
This summary table compares side-by-side the most relevant design aspects of most used PIM variants.
Typical use case
Needed for source discovery
Needed as the root of the Shared tree
Root of the tree
Shared tree - RP
Source tree - FHR
Medium to Low
Medium to High
Medium to Low
I hope you find it useful.