Protocol-Independent Multicast is a family of multicast routing protocols
for Internet Protocol networks that provide one-to-many and many-to-many
distribution of data over a LAN, WAN or the Internet. It is termed
protocol-independent because PIM does not include its own topology discovery
mechanism, but instead uses routing information supplied by other routing
protocols. There are four variants of PIM:
PIM Sparse Mode explicitly builds unidirectional shared trees rooted at a
rendezvous point per group, and optionally creates shortest-path trees
per source. PIM-SM generally scales fairly well for wide-area usage.
PIM Dense Mode uses dense multicast routing. It implicitly builds
shortest-path trees by flooding multicast traffic domain wide, and then
pruning back branches of the tree where no receivers are present. PIM-DM is
straightforward to implement but generally has poor scaling properties.
The first multicast routing protocol, DVMRP used dense-mode multicast routing.
See the PIM Internet Standard RFC 3973. Bidirectional PIM explicitly builds
shared bi-directional trees. It never builds a shortest path tree, so may have
longer end-to-end delays than PIM-SM, but scales well because it needs no
source-specific state. See Bidirectional PIM Internet Standard RFC 5015.
PIM Source-Specific Multicast builds trees that are rooted in just one
source, offering a more secure and scalable model for a limited amount of
applications. In SSM, an IP datagram is transmitted by a source S to an SSM
destination address G, and receivers can receive this datagram by subscribing to
channel. See informational RFC 3569. PIM-SM is commonly used in IPTV systems
for routing multicast streams between VLANs, Subnets or local area networks.
Sparse mode Protocol Independent Multicast -
Sparse-Mode is a protocol for efficiently routing Internet Protocol
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 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.
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 sends periodic Join/Prune messages toward a
group-specific Rendezvous Point for each group for which it has active members.
Note that one router will be automatically or statically designated
as the rendezvous point, and all routers must explicitly join through the RP.
Each router along the path toward the RP builds a wild card 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 unicasts
Register messages to the Rendezvous Point 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 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
Dense mode multicast is one mode that multicast can use to construct a tree
for sending packets to the multicast subscribers. It is the opposite of
sparse multicast. The basic assumption behind dense mode
is that the multicast packet stream has receivers at most locations. Sparse mode
assumes relatively fewer receivers. Dense mode is ideal for groups where
many of the nodes will subscribe to receive the multicast packets, so that
most of the routers must receive and forward these packets.
This difference shows up in the initial behavior and mechanisms of the two
protocols. Dense Mode uses a fairly simple approach to handle IP multicast
routing. The source initially broadcasts to every router directly connected to
it. These neighboring routers further forward the data to their neighbors.
When a router does not wish to receive this group's data, it sends a Prune
message to indicate its lack of interest. Upon receiving a Prune
message, the router will modify its state so that it will not forward those
packets out that interface. If every interface on a router is pruned, the
router will also be pruned. In older Cisco IOS releases, PIM-DM
would re-flood all the multicast traffic every 3 minutes. This is fine for low
volume multicast, but not higher bandwidth multicast packet streams. More
recent Cisco IOS versions support a new feature called PIM Dense Mode State
Refresh, since 12.1(5)T. This feature uses a PIM state refresh messages to
refresh the Prune state on outgoing interfaces. Another benefit is that
topology changes are recognized more quickly. By default, the PIM state
refresh messages are sent every 60 seconds.
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. When a data packet is received on a non-RPF interface, a
mechanism is required to prevent loops. If the non-RPF interface is a LAN, an
Assert message is sent. Non-Forwarder routers then send a Prune on their RPF
interface if they don't need the multicast stream. Only one such Prune is
sent, at the time of the transition to having no interfaces in the Outgoing
Interface List. The LAN Prune receiver delays acting on it for 3 seconds, so
that if another LAN router still needs the multicast stream, it can send a PIM
Join message to counteract the Prune. Suppose a router has Pruned, and some
time later a receiver requests the multicast stream with an IGMP message.
The router then sends a Graft message. In effect, "hey, I need that multicast
stream over here now". See also
802.1aq Shortest Path Bridging Internet Group Management Protocol
IP Multicast Multicast address
Multicast Source Discovery Protocol References
External links Gorry Fairhurst. "PIM Routing".
Retrieved 2011-12-06. Protocol Independent Multicast-Sparse
Mode: Protocol Specification An Overview of Source-Specific Multicast
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: Protocol Specification rfc2362
qpimd – PIM Daemon for Quagga - Protocol Independent Multicast module
for the Quagga Routing Suite.