PIM Sparse Mode
![]() | This article includes a list of references, related reading, or external links, but its sources remain unclear because it lacks inline citations. (November 2010) |
![]() | It has been suggested that this article be merged into Protocol Independent Multicast. (Discuss) Proposed since August 2011. |
Protocol Independent Multicast - Sparse-Mode (PIM-SM) is a protocol for efficiently routing Internet Protocol (IP) packets to multicast groups that may span wide-area and inter-domain internets. The protocol is named protocol-independent because it is not dependent on any particular unicast routing protocol for topology discovery, and sparse-mode because it is suitable for groups where a very low percentage of the nodes (and their routers) will subscribe to the multicast session. Unlike earlier dense-mode multicast routing protocols such as DVMRP and dense multicast routing which flooded packets across the network and then pruned off branches where there were no receivers, PIM-SM explicitly constructs a tree from each sender to the receivers in the multicast group.
Protocol overview
Multi-cast clients
A router receives explicit Join/Prune messages from those neighboring routers that have downstream group members.
- In order to join a multi-cast group, G, a host conveys its membership information through the Internet Group Management Protocol (IGMP).
- The router then forwards data packets addressed to a multi-cast group G to only those interfaces on which explicit joins have been received.
- A Designated Router (DR) sends periodic Join/Prune messages toward a group-specific Rendezvous Point (RP) for each group for which it has active members.
- Note that one router will be automatically or statically designated as the rendezvous point (RP), and all routers must explicitly join through the RP.
- Each router along the path toward the RP builds a wild card (any-source) state for the group and sends Join/Prune messages on toward the RP.
- The term route entry is used to refer to the state maintained in a router to represent the distribution tree.
- A route entry may include such fields as:
- source address
- the group address
- the incoming interface from which packets are accepted
- the list of outgoing interfaces to which packets are sent
- timers, flag bits, etc.
- The wild card route entry's incoming interface points toward the RP
- The outgoing interfaces point to the neighboring downstream routers that have sent Join/Prune messages toward the RP.
- This state creates a shared, RP-centered, distribution tree that reaches all group members.
Multi-cast sources
- When a data source first sends to a group, its Designated Router (DR) uni-casts Register messages to the Rendezvous Point (RP) with the source's data packets encapsulated within.
- If the data rate is high, the RP can send source-specific Join/Prune messages back towards the source and the source's data packets will follow the resulting forwarding state and travel un-encapsulated to the RP.
- Whether they arrive encapsulated or natively, the RP forwards the source's de-capsulated data packets down the RP-centered distribution tree toward group members.
- If the data rate warrants it, routers with local receivers can join a source-specific, shortest path, distribution tree, and prune this source's packets off the shared RP-centered tree.
- For low data rate sources, neither the RP, nor last-hop routers need join a source-specific shortest path tree and data packets can be delivered via the shared RP-tree.
Once the other routers which need to receive those group packets have subscribed, the RP will unsubscribe to that multi-cast group, unless it also needs to forward packets to another router or node. Additionally, the routers will use reverse-path forwarding to ensure that there are no loops for packet forwarding among routers that wish to receive multi-cast packets.
See also
References
- Protocol Independent Multicast-Sparse Mode (PIM-SM): Protocol Specification (Revised)
- Netcraftmen Explanation of PIM Sparse Mode
- cisco docwiki
- microsoft.com
- pimd is a lightweight stand-alone PIM-SM v2 multicast routing daemon.
- Protocol Independent Multicast-Sparse Mode (PIM-SM): Protocol Specification rfc2362