IP Multicasting – Part 3 – IGMP

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.


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s