Internet Group Management Protocol (IGMP) is a network layer communication protocol used by hosts and adjacent routers to manage multicast group memberships in IPv4 networks. IGMP enables communication between hosts and local routers to identify multicast group members within a LAN. Unlike unicast (one-to-one) or broadcast (one-to-all), IGMP supports multicast (one-to-many) communication.
- Unicast: One sender -> One receiver.
- Multicast: One sender -> Multiple specific receivers.
- Anycast: One sender -> Nearest member of a group of receivers.
Note: In IPv6, IGMP is replaced by Multicast Listener Discovery (MLD) protocol.
Applications of IGMP
- Streaming Media: Efficient one-to-many or many-to-many delivery of video/audio streams.
- Online Gaming: Enables multiple players to exchange game state updates in real-time.
- Web Conferencing: Supports group communication for video meetings and collaboration tools.
Types of IGMP Messages
IGMP uses different message types to manage multicast memberships:
- Membership Query: Sent by routers to discover which multicast groups have active members on a network segment.
- Membership Report: Sent by hosts to indicate interest in joining a multicast group.
- Leave Group: Sent by hosts when they no longer wish to receive traffic for a multicast group.
- IGMPv3 Membership Report: Allows hosts to specify exact multicast addresses and sources (supports SSM).
Working of IGMP

- Host–Router Interaction: Hosts send reports to join or leave multicast groups; routers maintain group membership tables.
- Multicast Addressing: Multicast groups use Class D IP addresses (224.0.0.0 to 239.255.255.255).
- IGMP Snooping: Switches listen to IGMP messages to maintain a mapping of multicast groups to ports, preventing unnecessary flooding.
- Multicast Routing: Routers use Protocol Independent Multicast (PIM) to forward multicast traffic between networks.
IGMP Snooping
IGMP snooping is a feature in network switches that listens to IGMP messages exchanged between hosts and routers.
- Prevents multicast traffic from being broadcast to all ports.
- Forwards multicast traffic only to ports with interested members.
- Improves network efficiency and bandwidth usage.
IGMP Versions and Packet Formats
1. IGMPv1

- Hosts join multicast groups using membership requests.
- No explicit leave option — hosts wait for timeout.
- Fields: Version, Type, Unused, Checksum, Group Address.
2. IGMPv2
- Adds Leave Group message for faster group exit.
- Supports General, Group-specific and Source-specific queries.
- Fields: Type, Max Response Time, Checksum, Group Address.

Type:
- 0x11 for Membership Query
- 0x12 for IGMPv1 Membership Report
- 0x16 for IGMPv2 Membership Report
- 0x22 for IGMPv3 Membership Report
- 0x17 for Leave Group
3. IGMPv3

- Adds Source-Specific Multicast (SSM) and report aggregation.
- Hosts can specify inclusion (receive from specific sources) or exclusion (block specific sources).
- Fields: Max Response Time, Checksum, Group Address, Flags (S, QRV), QQIC, Source Address list.
Multicasting
Multicasting is a method where a sender transmits packets once and the network delivers them to all interested receivers.
- More efficient than sending individual unicast streams.
- Commonly used in IPTV, financial trading updates and real-time applications.
Is IGMP a Layer 3 Protocol? Yes, IGMP operates at Layer 3 of the OSI model which is the Network layer. It is used to the manage the membership of the multicast groups within IP networks facilitating the efficient distribution of the multicast traffic across the network segments.
History of IGMP Versions
- IGMPv1 (1989): Developed at Stanford University; allowed hosts to join multicast groups but could not explicitly leave.
- IGMPv2 (1997): Introduced leave group messages, reducing timeout delays.
- IGMPv3 (2002): Added Source-Specific Multicast (SSM), allowing hosts to specify sources they want to receive traffic from.