Multicast - PIM Control Messages

Protocol Independent Multicast or PIM is a multicast routing protocol used in obsidian/notes/Multicast topologies. PIM uses specific messages to allow multicast-enabled routers to exchange information.

According to the RFC that defines PIM Sparse Mode:

  • All PIM control messages have IP protocol number 103.
  • PIM messages are either unicast or multicast with TTL 1 to the ALL-PIM-ROUTERS group.
  • The source address used for unicast messages is a domain-wide reachable address.
  • The source address used for multicast messages is the link-local address of the interface from which the message is being sent.

The PIM header that is common to all PIM messages is the following:

multicast-pim-message-header.excalidraw

  • The PIM version is 2.
  • The Type field contains a value that indicates the control message type that the PIM message is carrying. The values of the PIM control message Types are as follows:
Type ValueMessage TypeDestination
0HelloMulticast to ALL-PIM-ROUTERS
1RegisterUnicast to RP
2Register-StopUnicast to source of Register Message
3Join/PruneMulticast to ALL-PIM-ROUTERS
4BootstrapMulticast to ALL-PIM-ROUTERS
5AssertMulticast to ALL-PIM-ROUTERS
6Graft (used in PIM-DM only)Unicast to RPF'(S)
7Graft-Ack (used in PIM-DM only)Unicast to source of Graft Message
8Candidate-RP-AdvertisementUnicast to Domain's BSR
  • The Reserved field is reserved for future use and is set to all zeros and is ignored.
  • The Checksum is a standard IP checksum.

Links:

https://forum.networklessons.com/t/multicast-pim-sparse-mode/1335/114?u=lagapidis

https://datatracker.ietf.org/doc/html/rfc4601#page-108