PIM-DM
PIM-DM is a source-based tree technology. Multicast data is sent to all hosts in the network. Routers that do not have any interested hosts send PIM Prune messages to remove themselves from the tree associated with the multicast data source. If a router connects to a LAN with multiple routers, and that LAN contains both non-interested and interested routers for a given multicast data source:
- Non-interested routers will send a prune message upstream towards the source to inform the sending router that it does not have any receivers for the data stream
- Interested routers, having received a prune message, will send a join message upstream towards the source to inform the sending router that it has receivers for the data stream
Should a non-interested router become interested in a given mulitcast data stream, a graft message is sent upstream towards the source, informing the upstream router of its interest. The upstream router returns a graft ACK message acknowledging reception of the graft message. If no acknowledgment is received prior to the expiration of the graft retry timer (GRT), the interested router sends another graft message upstream.
The following figure illustrates the PIM-DM traffic
flow.
- The source sends
multicast data on VLAN 2. R1 floods the data out all interfaces enabled for PIM-DM.
- When R2 and R4
receive the multicast data, at this time no downstream receivers exist for the data‘s
multicast group. At this time, both R2 and R4 send prune messages on the upstream
interfaces indicating they have no receivers for the source data.
- R3 receives the
prune sent by R4 and responds by sending a join out its upstream interface indicating
that it does have a receiver for the source data.
- A receiver
connected to R2 joins the multicast group for the source data. R2 responds by sending a
graft message out its upstream interface informing R1 that it should now send its source
data out its downstream interfaces to R2.
- When R1 receives
the graft message, a graft ACK message is returned to R2. R2 initiates a graft retry
timer upon sending the graft message to R1. If R2 does not receive a graft ACK message
from R1 before the timer expires, a new graft message is sent to R1.
When receivers go away,
prunes are sent (S,G prune messages are sent towards the source). When new receivers
appear, the process begins again.