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.
Multicast clients A router receives explicit Join/Prune messages from those neighboring routers that have downstream group members. • In order to join a multicast group, G, a host conveys its membership information through the
Internet Group Management Protocol (IGMP). • The router then forwards data packets addressed to a multicast 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 as well as the directly connected hosts which have requested membership to group G. • This state creates a shared, RP-centered, distribution tree that reaches all group members.
Multicast sources • When a data source first sends to a group, its Designated Router (DR) unicasts 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. • Where a router's local receivers are only interested in packets from a specific source within a multicast group, the router may skip joining the RP centered shared tree and jump straight to joining the source-specific shortest path 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 multicast 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 multicast packets. ==Dense mode==