Multicast PIM Assert Explained

Hi Doky,

That’s right, basically R4 is just a computer that wants to listen to a certain multicast stream.


Hi Rene,thanks for the explanation

This behavior is the same for sparse mode as well?

Hi Paul,

Yes this behavior is the same. PIM Assert is used to determine which router will forward multicast traffic…PIM sparse, dense or sparse-dense mode are used for multicast routing.


Hi Rene, thanks for the article.

I don’t understand one thing , why do we need an assert mechanism if we have RPF?

RPF will prune the unnecessary paths anyway.


Hi Sergey,

RPF doesn’t prune, it’s only used to make sure packets won’t loop around.

When a multicast packet is received, the router will check the source IP and checks the outgoing interface in its routing table. When the incoming interface of the received IP packet is the same as the outgoing interface in the routing table, it will pass the RPF check. When the incoming interface and outgoing interface are different, it will be dropped.

In this example, R4 has two upstream routers to reach R1…both will pass the RPF check so R4 won’t drop any multicast packets.


Hello Rene, Do we have forwarder in Dense mode? there is no forwarder in Sparse mode?


Hi Rouzbeh,

We have a forwarder and we also use PIM Assert messages in sparse mode.


Thank you Rene for the answer.


It’s a good article

if R2, R3 and R4 are not connected to the same switch, R2 is connected to R4 with each other’s L3 port and R3 is connected to R4 with each other’s L3 port

in this case how does the R4 router work?

which one does the R4 router chose multicast traffic for R2 or R3 ?

Hi Mungi,

In this example, R4 is a host device where we used IGMP join to request multicast traffic on the interface.

The PIM assert mechanism is only triggered when there are two routers on the same multi-access segment. When you connect R4 to R2 and R3 directly, you will be using two different segments so we don’t have to use PIM assert.

Whether R4 will receive multicast traffic will depend if you configured IGMP join. If you do this on both interfaces then it will receive multicast traffic on both interfaces.


1 Like


Do we need a PIM Assert router in a PIM SParse mode environment, as well? or PIM DR is for Sparse mode, while Assert router is for Dense mode?

Hi Jose,

It’s very likely to see PIM assert in dense mode since we flood everything. It’s unlikely to encounter in sparse mode but it does exist. Let me give you an example. Take a look at the “pim-sparse-assert.png” image in the attachment for the topology.

On top, we have the RP, connected to R1/R2. At the bottom we have R3/R4 with a receiver each.

R1/R2/R3/R4 are connected to the same multi-access segment through the switch.

  • R3 uses R1 to get to the RP.
  • R4 uses R1 to get to the RP.

Let’s say our receivers both join group This is what happens:

R3 sends the PIM join to R1.
R4 sends the PIM join to R2.

R1 and R2 will both start forwarding traffic on their links to the switch and we get duplicate traffic. The assert mechanism will be used on the links that connect to the switch so that R1 or R2 will stop forwarding.

Hope this helps!


1 Like

Now when R1 starts streaming multicast traffic towards R2 and R3 they will both forward multicast packets to R4 resulting in duplicate traffic.
Can you integrate the lesson on PIM DR with this lesson on the Assert mechanism?
Consider that R3 is the PIM DR on Fa0/1 (As shown early on in the PIM DR lesson).
So as I understand it then R3 as the DR will be sending the PIM Join upstream when the receiver joins the MC group (not R2).
In this lesson you relate a state where both R2 and R3 are forwarding the same MC traffic to R4. This as you say causes the assert mechanism to come into play. But for both R2 ans R3 to be forwarding the MC traffic in question, would both R2 and R3 not have had to send a join upstream to R1?
I hope this makes sense. Thanks for any reply

I am having some issues understanding this statement -

“Now when R1 starts streaming multicast traffic towards R2 and R3 they will both forward multicast packets to R4 resulting in duplicate traffic.”

  1. Why will R1 start streaming simultaneously towards both R2 and R3?
  2. Why will R2 and R3 both forward multicast packets towards R4?

Can you explain this in a little more detail?

Hello Dhananjay

Multicast routing has two modes. Dense and Sparse mode. In dense mode, even if it is not requested, multicast traffic will be sent out all interfaces except for the incoming interface. In sparse mode, multicast traffic will only be transmitted to routers that request it. In both cases, if all four routers are configured with multicast and all four request multicast traffic, then R1 will send multicast traffic to both R2 and R3 and these will forward it to R4. You can find out more about this specific functionality at this lesson.

This is the behaviour of mutlicast if all routers request multicast traffic.

I hope this has been helpful!


@lagapides thanks for that explanation

Hello Rene,

Thanks for the great explanation

PIM DR is used in PIM-Sparsh mode while PIM ASSERT is used in PIM-DENSE mode.

Considering PIM DR is used to find router in the same broadcast domain for join message towards RP and same DR is used to forward traffic as per RPF check.

While with PIM ASSERT only for DENSE Mode where only need to avoid duplicate packet transmissions.

Please confirm if my understanding is right?

Hello Prashant,

You almost got it. The purpose of the DR is to forward PIM register packets from a source to the RP and to forward join/prune packets from receivers to the RP. We only use a DR in PIM sparse mode.

The purpose of PIM assert is to ensure that when you have two or more routers on a multi-access network, that only one router forwards the multicast packets. It is typically used in PIM dense mode but it’s not exclusive to dense mode…it’s also needed sometimes in sparse mode. Here’s an example for that:

Hi Rene,
Sometimes PIM DR and PIM forwrder do the same role? I meant when you told don’t confuse this 2 features I’am confuse.

Hi Djan,

The DR has two roles:

- Send PIM register packets from source to RP.
- Forward PIM join/prune packets towards the RP.

The forwarder does something else. It ensures that downstream multicast traffic (from source to receiver) is only forwarded on a multi-access segment by one router, not two (otherwise we get duplicate packets).


1 Like