PIM Sparse Mode
This article needs additional citations for verification. (July 2007) |
Protocol Independent Multicast - Sparse-Mode (PIM-SM) is a protocol for efficiently routing to multicast groups that may span wide-area (and inter-domain) internets. This 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 PIM-DM which flooded packets everywhere 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 packets from the sender then follow this tree..
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, only onto 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 Designate 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 of 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.