There are three dense-mode routing protocols:
- Protocol Independent Multicast Dense Mode (PIM-DM)
- Distance Vector Multicast Routing Protocol (DVMRP)
- Multicast Open Shortest Path First (MOSPF)
This article covers the operation of PIM-DM in detail.
Forming PIM Adjacencies Using PIM Hello Messages
PIM routers form adjacencies with neighboring PIM routers for the same general reasons, and with the same general mechanisms, as many other routing protocols. PIMv2, the current version of PIM, sends Hello messages every 30 seconds (default) on every interface on which PIM is configured. By receiving Hellos on the same interface, routers discover neighbors, establish adjacency, and maintain adjacency.
PIMv2 Hellos use IP protocol number 103 and reserved multicast destination address 18.104.22.168, called the All-PIMRouters multicast address. The Hello messages contain a Hold time value, typically three times the sender’s PIM hello interval. If the receiver does not receive a Hello message from the sender during the Holdtime period, it considers the sending neighbor to be dead.
Source-Based Distribution Trees
Dense-mode routing protocols are suitable for dense topology in which there are many multicast group members relative to the total number of hosts in a network. When a PIM-DM router receives a multicast packet, it first performs the RPF check. If the RPF check succeeds, the router forwards a copy of the packet to all the PIM neighbors except the one on which it received the packet.
Each PIM-DM router repeats the process and floods the entire network with the group traffic. Ultimately, the packets are flooded to all leaf routers that have no downstream PIM neighbors. The logic described in the previous paragraph actually describes the concepts behind what PIM calls a source-based distribution tree . It is also sometimes called a shortest path tree (SPT) or simply a source tree .
The tree defines a path between the source host that originates the multicast packets and all subnets that need to receive a copy of the multicasts sent by that host. The tree uses the source as the root, the routers as the nodes in the tree, and the subnets connected to the routers as the branches and leaves of the tree.
PIM-DM might have a different source-based distribution tree for each combination of source and multicast group, because the SPT will differ based on the location of the source and the locations of the hosts listening for each multicast group address. The notation (S,G) refers to a particular SPT, or to an individual router’s part of a particular SPT, where S is the source’s IP address and G is the multicast group address.
PIM-DM creates a new SPT when a source first sends multicast packets to a new multicast group address. The SPT includes all interfaces except RPF interfaces, because PIMDM assumes that all hosts need to receive a copy of each multicast packet. However, some subnets might not need a copy of the multicasts, so PIM-DM defines a process by which routers can remove interfaces from an SPT by using PIM Prune messages.
PIM-DM might have a different source-based distribution tree for each combination of source and multicast group, because the SPT will differ based on the location of the source and the locations of the hosts listening for each multicast group address.
The notation (S,G) refers to a particular SPT, or to an individual router’s part of a particular SPT, where S is the source’s IP address and G is the multicast group address. When new hosts join a group, routers might need to change the current SPT for a particular (S,G) entry. With PIM-DM, one option could be to wait on the pruned links to expire.
However, waiting on the (default) 3-minute Prune timer to expire is not very efficient. To allow routers to “unprune” a previously pruned interface from an SPT, PIM-DM includes the Graft message. A router sends a Graft message to an upstream neighbor—a neighbor to which it had formerly sent a Prune message—causing the upstream router to put the link back into a forwarding state [for a particular (S,G) SPT].
The figure below illustrate an example that shows the usage of graft message.
Without the Graft message, host H2 would have to wait for as much as 3 minutes before it would receive the group traffic. At this point, R1 immediately puts its s0/0 back into the outgoing interface list, as does R2, and now H2 receives the multicast packets. Note that R1 also sends a Graft Ack message to R2 in response to the Graft message, and R2 sends a Graft Ack in response to R3’s Graft message as well.
The final PIM-DM message Assert message. The Assert message is used to prevent wasted effort when more than one router attaches to the same LAN. Rather than sending multiple copies of each multicast packet onto the LAN, the PIM Assert message allows the routers to negotiate. The winner gets the right to be responsible for forwarding multicasts onto the LAN.
The figure below shows an example of the need for the Assert message. R2 and R3 both attach to the same LAN, with H1 being an active member of the group 22.214.171.124. Both R2 and R3 are receiving the group traffic for 126.96.36.199 from the source 10.1.1.10.
The goal of the Assert message is to assign the responsibility of forwarding group traffic on the LAN to the router that is closest to the source. When R2 and R3 receive group traffic from the source on their s0 interfaces, they forward it on their e0 interfaces.
The Assert process picks a winner based on the routing protocol and metric used to find the route to reach the unicast address of the source. The routers on the LAN compare their own routing protocol administrative distance and metrics to those learned in the Assert messages. The winner of the Assert process is determined as follows:
1- The router advertising the lowest administrative distance of the routing protocol used to learn the route wins.
2- If a tie occurs, the router with the lowest advertised routing protocol metric for that route wins.
3- If a tie occurs, the router with the highest IP address on that LAN wins.
Summary of PIM-DM Messages
The table below lists the key PIM-DM messages covered in this article, along with a brief definition of their use.