Communication Engineering

Internet Group
Management Protocol

Master the protocol that enables efficient IP multicast communication. Learn how hosts join multicast groups and routers manage group membership.

What is IGMP?

Internet Group Management Protocol (IGMP) is a communications protocol used by hosts and adjacent routers on IPv4 networks to establish multicast group memberships.

IGMP is an integral part of IP multicast and operates between the host and the local multicast router. It provides the mechanism for hosts to inform routers about their desire to receive traffic for specific multicast groups.

Key Characteristics

  • Operates at Network Layer (Layer 3)
  • Uses IP Protocol Number 2
  • Multicast destination address: 224.0.0.22 (IGMPv3)
  • Enables bandwidth-efficient multicast delivery
Host A
Membership Report
General Query
Router
Source Destination Type
192.168.1.10 224.0.0.22 Report
192.168.1.1 224.0.0.1 Query

Multicast Addressing

01

Link-Local (224.0.0.0/24)

Reserved for network protocols on local subnet. Not forwarded by routers.

224.0.0.1 - All Hosts
224.0.0.2 - All Routers
224.0.0.5 - OSPF
224.0.0.22 - IGMPv3
02

Globally Scoped (224.0.1.0 - 238.255.255.255)

Available for dynamic assignment and global multicast applications.

224.0.1.1 - NTP
239.255.255.250 - SSDP
232.0.0.0/8 - SSM
03

Administratively Scoped (239.0.0.0/8)

Private multicast space for organizational use. Not routed globally.

239.255.0.0/16 - Site-local
239.192.0.0/14 - Org-local
239.0.0.0/10 - Reserved

IP to MAC Address Mapping

Multicast IP addresses (224.0.0.0/4) map to specific Ethernet MAC addresses (01-00-5E-00-00-00 through 01-00-5E-7F-FF-FF) using the lower 23 bits of the IP address.

Mapping Formula:
MAC = 01:00:5E:xx:xx:xx
where xx:xx:xx = lower 23 bits of IP
Example:
224.0.1.1 → 01:00:5E:00:01:01
239.255.0.1 → 01:00:5E:7F:00:01
IP Multicast Address 239.192.0.100
Ethernet MAC 01:00:5E:40:00:64
Lower 23 bits: 0x400064

IGMP Versions Evolution

IGMP Version 1 (RFC 1112)

The original specification providing basic multicast group membership functionality.

1

Membership Query

Router sends periodic queries to 224.0.0.1 (All Hosts)

2

Membership Report

Hosts respond to join groups. No leave mechanism!

⚠️ Limitation: No Leave Group message

Routers must wait for timeout (3x query interval) to remove group

Message Format

0-78-1516-31
Type (0x11/0x12)
Unused
Checksum
Group Address (32 bits)
0x11 Membership Query
0x12 Membership Report

IGMP Message Types

Membership Query

0x11

Sent by routers to discover multicast group members on a subnet.

  • General Query (all groups)
  • Group-Specific Query
  • Group-and-Source-Specific (v3)

Membership Report

0x16 0x22

Sent by hosts to declare membership in a multicast group.

  • v2 Report (0x16)
  • v3 Report (0x22)
  • Suppressible by other reports

Leave Group

0x17

Sent by hosts to indicate departure from a multicast group (v2/v3).

  • Triggers Group-Specific Query
  • Faster leave than v1 timeout
  • Last member query interval

Message Format Comparison

Field IGMPv1 IGMPv2 IGMPv3
Type Field 0x11, 0x12 0x11, 0x16, 0x17 0x11, 0x22, 0x30
Max Resp Time Not present Present Present (floating point)
Checksum 16-bit 16-bit 16-bit
Group Address 32-bit 32-bit Multiple in records
Source Addresses Not supported Not supported Supported (v3)
Leave Mechanism Silent leave Explicit (0x17) State change records

IGMP Operations & State Machine

1 Joining a Multicast Group

Application Join

App requests group membership

Send Report

Host sends unsolicited report

Router Updates

Router adds interface to group

2 Leaving a Multicast Group (v2/v3)

Send Leave

Group Query

Remove Group

If no reports received during Last Member Query Interval (default 1 second), router removes the group

Host State Machine (IGMPv3)

Non-Member State

Host is not interested in the group. Ignores queries for this group.

Delaying Member State

Host wants to join. Sets random delay timer (0 to Max Resp Time). If timer expires, sends report. If matching report heard, cancel timer (suppress).

Idle Member State

Host is a member. Listens for queries. Responds to queries by transitioning to Delaying state.

State Transitions

Non-Member Delaying (Application Join)
Delaying Idle (Timer Expired/Suppress)
Idle Delaying (Query Received)
Idle Non-Member (Application Leave)

IGMP Snooping

IGMP Snooping is a Layer 2 optimization technique where switches listen to IGMP conversations between hosts and routers to build a multicast forwarding table.

Problem: Flooding

Without snooping, multicast traffic is flooded to all ports like broadcast, wasting bandwidth.

Solution: Selective Forwarding

Switch forwards multicast only to ports with registered members and router ports.

Snooping Switch Operations:

  • Intercept IGMP Reports (don't forward to other hosts)
  • Build (Group, Port) mapping table
  • Forward multicast only to interested ports
  • Handle Leave messages immediately
Switch
Host A Joined
Host B Not Joined
Host C Joined
Router
Multicast traffic forwarded only to Host A, Host C, and Router

Interactive IGMP Calculators

IGMP Query Response Timer

IGMPv3: Floating point value (max 317.44s)

Query Interval 125s
Robustness Variable 2

Calculated Timers

Group Membership Interval 250s
(Robustness × Query Interval + Max Resp)
Other Querier Present Timeout 255s
Startup Query Count 2

Bandwidth Impact

Low control traffic overhead

Key Takeaways

Protocol Essentials

  • IGMP operates between hosts and local routers only
  • Uses IP Protocol 2 (directly over IP)
  • Reports are suppressible to reduce traffic
  • v3 enables source filtering for security

Exam Tips

  • Remember: 224.0.0.0/24 is link-local (TTL=1)
  • MAC mapping uses lower 23 bits only
  • SSM uses 232.0.0.0/8 range
  • IGMP Snooping prevents multicast flooding

Common Applications

  • IPTV and video streaming
  • Online gaming (discovery)
  • Financial data distribution
  • Routing protocol updates (OSPF, EIGRP)

Troubleshooting

  • Check IGMP version compatibility
  • Verify multicast routing (PIM) is enabled
  • Check for IGMP Snooping misconfiguration
  • Verify TTL values for remote groups