Protocol-Independent Multicast (PIM) is a family of
multicast routing protocols for Internet Protocol (IP) 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. PIM
is not dependent on a specific unicast routing protocol; it can
make use of any unicast routing protocol in use on the network.
PIM does not build its own routing tables. PIM uses the unicast
routing table for reverse-path forwarding.
There are four
variants of PIM:
- PIM Sparse Mode (PIM-SM) explicitly
builds unidirectional shared trees rooted at a rendezvous point
(RP) per group, and optionally creates shortest-path trees per source.
PIM-SM generally scales fairly well for wide-area usage.
- PIM Dense Mode (PIM-DM) 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 (Bidir-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, 70–73 .
- PIM Source-Specific Multicast (PIM-SSM) builds trees that are
rooted in just one source, offering a more secure and scalable model
for a limited number of applications (mostly broadcasting of content).
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 (S,G). See informational RFC 3569