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
Sparse Mode (PIM-SM)
a many-to-many multicast
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
rendezvous point (RP) - a router chosen as root for a group
designated router - a router that receives a multicast packet within a local network
Source Specific Multicast (PIM-SSM)
a one-to-many multicast
channel - a combination of source address S and a group address G
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)
Bidirectional PIM (BIDIR-PIM)
an enhancement to PIM
a many-to-many multicast
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