IGMP (Internet Group Management Protocol) is required for communication between hosts and routers to determine where the router have to send the Multicast traffic.
Imagine a network with a router connecting to 4 different subnets with 4 physical interfaces, but with only one Host in one subnet actually requesting the traffic. How does the router know where to send out the multicast traffic? If you automatically send out the traffic through every interface, it’s a waste of bandwidth. So here we need IGMP.
So the router needs to know about:
– Where are the hosts located which require the multicast traffic for a group?
– How do I learn about hosts requiring the traffic?
– How do I learn about hosts no longer requiring the traffic?
There are currently three versions of IGMP available: IGMPv1 (RFC1112), IGMPv2 (RFC2236), IGMPv3 (RFC3376). In this article i’ll focus myself on IGMPv2
Messages supported by IGMPv2
Membership Query
The membership query is used for two function: First to discover if there are any hosts required in receiving any multicast group, second to determine if there are any remaining hosts for a specific multicast group.
Version 1 Membership Report
Version 2 Membership Report
The membership reports is used by the hosts: As a solicited host membership report as an answer to a membership query and as a unsolicited host membership report when first joining the group. (without waiting for the next membership query)
Leave Group
The Leave Group message is, you guessed it, used by the host to tell the router that he’s no longer interested in receiving the traffic.