2 Replies Latest reply: Aug 21, 2017 8:33 AM by Juan RSS

    Protocol Independent Multicast

    Juan

      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.

       

       

      MDT Type

      PIM variant

      Notation

      Tree Root Location

      Source

      SSM, SM

      (S,G)

      S

      Shared

      Unidirectional

      SM

      (*,G)

      RP

      Bidirectional

      BiDir

       

       

      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.

       

       

       

      PIM overview

       

      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-SM

       

      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.

       

       

      mcast-pim-sm.png

       

       

      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-SSM

       

      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.

       

       

      mcast-pim-ssm.png

       

       

      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-BiDir

       

      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.

       

       

      mcast-pim-bidir.png

       

       

      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.

       

       

      Optimization Level

      Application Requirements

      Router-Router Protocol

      RP

      Host-Router Protocol

      Potentially Suboptimal

      1-M

      PIM-SM

      Yes

      MLDv1

      M-M

      Optimal

      1-M

      PIM-SSM

      No

      MLDv2

      M-M

      PIM-BiDir

      Virtual RP

      MLDv1

       

       

       

       

      Summary

       

      This summary table compares side-by-side the most relevant design aspects of most used PIM variants.

       

       

      .

      PIM-SM

      PIM-SSM

      PIM-BiDir

      Typical use case

      One-to-many

      Many-to-many

      One-to-many

      Many-to-many

      Domain

      Intra-domain

      Intra-domain

      Inter-domain

      Intra-domain

      Trees

      Shared (*,G)

      Source (S,G)

      Source (S,G)

      Shared (*,G)

      RP

      Needed for source discovery

      Not needed

      Needed as the root of the Shared tree

      Root of the tree

      Shared tree - RP

      Source tree - FHR

      FHR

      RP

      Scalability

      Medium to Low

      Low

      High

      State

      Medium to High

      High

      Low

      Security

      Low

      Medium

      Low

      Efficiency

      Potentially sub-optimal

      Optimal

      Optimal

      Simplicity

      Low

      Medium

      Medium

      Loop avoidance

      RPF check

      RPF check

      Designated Forwarder

      Delay

      Medium to Low

      Low

      High

       

       

       

      I hope you find it useful.