IGMP (Internet Group Management Protocol) and PIM (Protocol Independent Multicasting) are the two protocols provide support for IPv4 multicasting. Multicast can be defined as "send once and receive many" type of network communication. Multicast type of network communication consumes less network bandwidth utilization and conserves other system resources for streaming type of network traffic. IGMP is used to exchange multicast group information between multicast receivers (multicast clients) and local multicast router. PIM (Protocol Independent Multicast) is a multicast routing protocol that advertises multicast sources and receivers in a routed layer 3 network.
Please refer below image.
Please visit below links and learn the concepts of IPv4 multicast before proceeding further.
- Unicast, Multicast and Broadcast
- Broadcast domain
- Broadcast MAC Address - ff:ff:ff:ff:ff:ff
- IPv4 multicast MAC Addresses
- IPv4 Protocol, IPv4 header and fields of IPv4 header
- IPv4 addresses
- Class D multicast IP addresses
- IPv4 link-local multicast addresses
- IPv4 Internetwork control block multicast addresses
- IPv4 Source-Specific Multicast (SSM) address reservation
- IPv4 GLOP multicast addresses
- Administratively scoped multicast address block or Limited scope addresses
- Multicast IPv4 address to MAC address mapping
- TCP/IP Encapsulation and Decapsulation
- What is multicast
- What is multicast group
- Advantages and disadvantages of multicast
- Comparison of multicast with unicast and broadcast
- Advantages and disadvantages of multicast
- How IPv4 multicast works on LAN
IGMP messages allows multicast clients to;
- Join to any available multicast group if interested
- Remain in the multicast group and receive multicast traffic addressed to that multicast group
- Leave the multicast group when no longer interested
IGMP has a Query-Response type of operation. A term you have to remember related with IGMP is Querier. A Querier device is normally a local multicast enabled router. A Querier sends IGMP Membership Query (MR) messages periodically to find out which devices are members of a particular multicast group.
One member per multicast group responds with a Membership Report (MR) message to the IGMP Membership Query (MR) message sent by the Querier.
IGMP is used by the computers located in a subnet to inform their interest to join or leave a multicast group to local multicast routers. Local multicast routers use IGMP to keep track of different multicast groups its computers are interested, so that the router can deliver the multicast traffic belongs to that specific multicast groups to computers those are interested. Local multicast routers periodically send out membership queries to discover which multicast groups have listeners on subnets connected on its interfaces. Thus, IGMP messages allows multicast traffic control in a subnet between multicast clients (those who are interested in receiving multicast traffic) and multicast router (device distributing multicast traffic).
When a computer in a subnet connected to a multicast router’s subnet is interested in receiving multicast traffic from a multicast group, the computer will send an unsolicited Multicast Report (MR) type of IGMP message to inform the local router that it is interested in receiving multicast traffic addressed to that particular multicast group. Routers those can support multicast use IGMP to determine and to keep track of the what multicast groups have interested listeners (or subscribers) in subnets connected to its interfaces. IGMP Membership Query (MQ) messages are sent out by multicast router periodically to check any computer is still interested to listen to a particular multicast group. When a computer located in a subnet of that router receives the Multicast Query (MQ) message sent from the router, it will reply back with a Membership Report (MR) type of IGMP message to inform the router that it is still interested in receiving the multicast traffic. Please click next link to know more about different types of IGMP messages.
IGMP has three versions; IGMPv1, IGMPv2 and IGMPv3. IGMP is backward compatible. Means that, is router running IGMPv3 can support multicast clients running previous IGMP versions IGMPv1, IGMPv2. IGMPv1 was defined in RFC 1112 and IGMPv2 is defined in RFC 2236. In IGMP1, multicast router sends Membership Query (MQ) messages on multicast group address 188.8.131.52 (All systems link-local multicast address). In IGMPv1, multicast clients send back Membership Report (MR) messages at multicast group address (Class D IPv4 address).
Please visit next link to learn more about IGMPv1.
The main improvement made in IGMPv2 was that the multicast clients can inform the local multicast router that it is no longer interested in receiving traffic from a multicast group by IGMP Leave Group type message. When a multicast client wants to leave a multicast group, it will send an IGMPv2 Leave Group message to 184.108.40.206 (All routers link-local multicast address).
Please visit next link to learn more about IGMPv2.
The latest version (and probably the final version) of IGMP is IGMPv3. IGMPv3 is defined in RFC 3376 and then updated by RFC 4604. The main improvement IGMPv3 has is Source-Specific Multicasting (SSM). Source-Specific Multicasting (SSM) allows the multicast clients to specify the unicast source address also, from where it want to receive multicast traffic. Please note that source address and group address are different. Normally represented by (S,G); where ’S’ represents the unicast source address and ’G’ represents the multicast group address.
IGMPv3 also has a dedicated IPv4 link-local multicast address, 220.127.116.11 (All IGMPv3-capable multicast routers). IGMPv3 Membership Report (MR) messages are sent to IGMPv3 link-local multicast address, 18.104.22.168.
Please visit next link to learn more about IGMPv3.