IGMP - Internet Group Management Protocol

What is IGMP?

IGMP stands for Internet Group Management Protocol. It’s a communication protocol used by devices and routers to manage multicast group memberships on IPv4 networks. It allows devices to join or leave multicast groups, enabling efficient delivery of data to multiple recipients.

Why is IGMP useful?

IGMP is essential for multicast communication, where data is sent to multiple devices simultaneously without sending separate copies to each one.

  • This is useful for:

  • Streaming media (like IPTV)

  • Online gaming

  • Real-time data feeds (like stock tickers or live sports scores)

How it works?

  • Device wants to join a multicast group – It sends an IGMP Membership Report to the router.

  • Router listens – The router keeps track of which devices are interested in which multicast groups.

  • Multicast data is sent – The router forwards multicast traffic only to the devices that requested it.

  • Leaving the group – When a device no longer wants the data, it sends a Leave Group message.

Where is IGMP used?

  • IPTV and video conferencing – To deliver the same video stream to many viewers efficiently.

  • Online multiplayer games – For real-time updates to multiple players.

  • Financial services – For distributing live market data to many clients.

  • Enterprise networks – For internal broadcasts like training or announcements.

Which OSI layer does this protocol belong to?

  • Works with IP multicast addresses (Class D addresses: 224.0.0.0 to 239.255.255.255).

  • Manages group membership for multicast routing.

  • Interacts directly with routers and IP-level multicast mechanisms.

  • In this section, you are going to learn

  • Terminology

  • Version Info

Version & RFC Details

IGMP Version

RFC Version

Year

Core Idea / Contribution

IGMPv1

RFC 1112

1989

Standardized IGMPv1; introduced multicast group join mechanism.

IGMPv2

RFC 2236

1997

Defined IGMPv2; added Leave Group messages and Group-Specific Queries.

IGMPv3

RFC 3376

2001

Introduced IGMPv3; added Source-Specific Multicast (SSM) with include/exclude filtering.

RFC 4541

2006

Guidelines for switches implementing IGMP snooping.

RFC 4605

2006

Describes multicast forwarding using IGMP/MLD without full routing protocols.

RFC 9776

2025

Clarifies and updates RFC 3376; latest standard for IGMPv3 behavior.

  • Setup

  • Setup

IGMP Membership Query Packet

S.No

Protocol Packets

Description

Size(bytes)

1

IGMP Membership Query

Sent by multicast routers to learn which groups have

8

members on an attached network.

Type

Specifies the type of IGMP message

1

0x11-Indiactes a Membership Query

Max Response Time

Specifies the maximum allowed time a host can

1

wait before sending a corresponding report.

Checksum

used for error-checking the IGMP message,Verifies

2

packet integrity

Group Address

All zeroes for a general query or the specific multicast

4

group address for a group-specific query.

IGMP Membership Report Packet

S.No

Protocol Packets

Description

Size(bytes)

2

IGMP Membership Report

Sent by hosts to indicate membership in a multicast

7

group

Type

Specifies the type of IGMP message

1

0x16-Indiactes a Membership Report

Max Response Time

Not used in Membership Report messages.

0

Checksum

Calculated over the IGMP message

2

Group Address

Contains the multicast group address.

4

IGMP Leave Group Packet

S.No

Protocol Packets

Description

Size(bytes)

3

IGMP Leave Group

Sent by hosts to indicate they are leaving a multicast

7

group.

Type

Specifies the type of IGMP message

1

0x17-Indiactes a Leave Group

Max Response Time

Not used in Leave Group messages.

0

Checksum

Calculated over the IGMP message

2

Group Address

Contains the multicast group address.

4

IGMP - Use Cases

S.no

Use Case

Description

1

IPTV (Internet Protocol Television)

igmp is used by set-top boxes to join or leave multicast groups for live TV channels, enabling efficient streaming without overloading the network.

2

Video Conferencing

In enterprise networks, igmp helps manage multicast streams for real-time video conferencing, ensuring only interested participants receive the stream.

3

Online Gaming

Multiplayer games use multicast for real-time updates. igmp ensures only players in a session receive relevant game data.

4

Financial Market Data Distribution

Stock exchanges use multicast to distribute real-time market data to subscribers. IGMP helps manage group memberships efficiently.

5

Software Updates in Enterprise Networks

Organizations use multicast to push software updates to multiple systems simultaneously. igmp ensures only intended devices receive the updates.

6

Smart Grid Communications

Utility companies use multicast for real-time data distribution to smart meters and control systems. igmp manages group memberships dynamically.

7

Surveillance Systems

IP cameras stream video to multiple monitoring stations using multicast. igmp ensures only active viewers receive the feed.

8

Digital Signage

Multicast is used to distribute content to multiple digital signs. igmp helps manage which signs receive which content.

9

Virtual Reality (VR) Streaming

In VR environments, multicast can be used to stream synchronized content to multiple users. igmp manages group participation.

10

Enterprise Training Broadcasts

Companies use multicast for live training sessions. igmp ensures only employees who opt in receive the stream.

IGMP - Basic Features

S.no

Features

Description

1

Multicast Group Management

IGMP allows hosts to join and leave multicast groups, enabling efficient delivery of data to multiple recipients.

2

Efficient Bandwidth Usage

By sending data only to interested receivers, IGMP helps reduce unnecessary network traffic.

3

Host-Router Communication

IGMP facilitates communication between hosts and local multicast routers to manage group memberships.

4

Dynamic Membership

Hosts can dynamically join or leave multicast groups at any time, allowing flexible participation.

5

Version Compatibility

IGMP supports multiple versions (v1, v2, v3), ensuring backward compatibility and feature enhancements.

6

Query and Report Mechanism

Routers send queries to discover group members, and hosts respond with membership reports.

7

Leave Group Notification

Hosts can notify routers when they leave a group, helping routers stop forwarding unnecessary traffic.

8

Support for Source Filtering (v3/v4)

IGMPv3 and igmp support source-specific multicast, allowing hosts to specify which sources they want to receive traffic from.

9

Minimal Overhead

IGMP messages are lightweight, minimizing the impact on network performance.

10

Integration with Multicast Routing Protocols

IGMP works with protocols like PIM (Protocol Independent Multicast) to build multicast distribution trees.

Multicast Group Management - Testcases

Multicast Group Management - Test Cases

#

Test Case

Description

Expected Result

1

Join Multicast Group

Host sends IGMP Membership Report

Host joins group successfully

2

Leave Multicast Group

Host sends IGMP Leave message

Group membership removed

3

Join Multiple Groups

Host joins 5 multicast groups

All groups joined successfully

4

Leave One of Multiple Groups

Host leaves one group

Only that group is removed

5

IGMPv1 Join

Host sends IGMPv1 Membership Report

Router accepts join

6

IGMPv2 Join

Host sends IGMPv2 Membership Report

Router accepts join

7

IGMPv3 Join

Host sends IGMPv3 Membership Report

Router accepts join

8

IGMPv3 Source-Specific Join

Join with specific source

Router filters by source

9

IGMPv3 Exclude Source Join

Join excluding specific source

Router filters accordingly

10

IGMP Query Response

Router sends query, host replies

Membership Report received

11

IGMP General Query

Router sends general query

All hosts respond

12

IGMP Group-Specific Query

Query for one group

Only relevant hosts respond

13

IGMP Group-and-Source-Specific Query

Query for group and source

Only matching hosts respond

14

IGMP Leave Without Join

Host sends Leave without join

Router ignores

15

IGMP Join Without Response

Host joins but router doesn’t respond

Join still processed

16

IGMP Join with Invalid Group

Join with invalid address

Join rejected

17

IGMP Leave with Invalid Group

Leave with invalid address

Leave ignored

18

IGMP Join with TTL = 1

Send with TTL=1

Join accepted

19

IGMP Join with TTL = 0

Send with TTL=0

Packet dropped

20

IGMP Join with Fragmented Packet

Send fragmented IGMP join

Join processed correctly

21

IGMP Join with Spoofed Source

Fake source IP

Router may log or drop

22

IGMP Join Flood

Send 100 joins/sec

Router rate limits or logs

23

IGMP Leave Flood

Send 100 leaves/sec

Router rate limits or logs

24

IGMP Query Flood

Router sends frequent queries

Hosts respond within limits

25

IGMP Join with Delay

Delay Membership Report

Router waits before pruning

26

IGMP Join with Duplicate Report

Send duplicate joins

Router handles gracefully

27

IGMP Leave with Duplicate Report

Send duplicate leaves

Router handles gracefully

28

IGMP Join with Multicast Routing Enabled

Join with PIM enabled

Multicast traffic forwarded

29

IGMP Join with Multicast Routing Disabled

Join with PIM disabled

No multicast forwarding

30

IGMP Join with VLAN Tagging

Join on tagged VLAN

Join processed per VLAN

31

IGMP Join with QoS

Join with DSCP marking

Join accepted

32

IGMP Join with ACL Blocking

ACL blocks IGMP

Join fails

33

IGMP Join with ACL Allowing

ACL allows IGMP

Join succeeds

34

IGMP Join with Interface Down

Interface down

Join fails

35

IGMP Join with Interface Up

Interface up

Join succeeds

36

IGMP Join with CPU Load

High CPU load

Join still processed

37

IGMP Join with Memory Pressure

Low memory

Join may be delayed

38

IGMP Join with Router Reboot

Reboot router

Memberships re-established

39

IGMP Join with Host Reboot

Reboot host

Host rejoins after boot

40

IGMP Join with Multicast Application

App joins group

Join succeeds

41

IGMP Leave with Multicast Application Exit

App exits

Leave sent

42

IGMP Join with Static Group

Static group configured

No join needed

43

IGMP Leave with Static Group

Static group configured

Leave ignored

44

IGMP Join with Fast Leave Enabled

Fast leave on interface

Immediate pruning

45

IGMP Join with Fast Leave Disabled

Fast leave off

Wait for query timeout

46

IGMP Join with Multiple Hosts

Multiple hosts join same group

Router maintains group

47

IGMP Leave with Last Host

Last host leaves

Router prunes group

48

IGMP Leave with Other Hosts

One host leaves, others remain

Group maintained

49

IGMP Join with Multicast Snooping

Switch with snooping

Traffic forwarded only to members

50

IGMP Join with Snooping Disabled

Snooping off

Traffic flooded to all

Efficient Bandwidth Usage - Testcases

Efficient Bandwidth Usage - Test Cases

#

Test Case

Description

Expected Result

1

Single Host Join

One host joins a multicast group

Multicast traffic sent only to that host

2

Multiple Hosts Same Group

Multiple hosts join same group

Traffic sent once per group, not per host

3

Host Leaves Group

Host leaves multicast group

Traffic stops for that host

4

All Hosts Leave Group

All hosts leave group

Multicast traffic pruned

5

IGMP Snooping Enabled

Switch with IGMP snooping

Traffic forwarded only to member ports

6

IGMP Snooping Disabled

Switch without snooping

Traffic flooded to all ports

7

Join on One VLAN

Join multicast on VLAN 10

Traffic scoped to VLAN 10

8

Join on Multiple VLANs

Join same group on VLANs 10, 20

Traffic scoped per VLAN

9

Join with Fast Leave

Fast leave enabled

Immediate pruning after leave

10

Join with Fast Leave Disabled

Fast leave disabled

Wait for query timeout

11

Join with Querier Present

IGMP querier active

Efficient group tracking

12

Join with Querier Absent

No querier

Group state may become stale

13

Join with Querier Election

Multiple routers, one elected

Only elected router sends queries

14

Join with Low Query Interval

Frequent queries

Faster pruning, more control traffic

15

Join with High Query Interval

Infrequent queries

Slower pruning, less control traffic

16

Join with Robustness Value = 2

Default robustness

Normal leave detection

17

Join with Robustness Value = 5

Higher robustness

More tolerance to packet loss

18

Join with IGMPv3 Include Mode

Include specific sources

Traffic limited to selected sources

19

Join with IGMPv3 Exclude Mode

Exclude specific sources

Traffic from excluded sources blocked

20

Join with Source Filtering

Join with source list

Only desired sources allowed

21

Join with No Source Filtering

Join without source list

All sources allowed

22

Join with Multicast Routing Enabled

PIM enabled

Traffic routed efficiently

23

Join with Multicast Routing Disabled

PIM disabled

No inter-subnet multicast

24

Join with Static Group

Static join on router

Traffic always forwarded

25

Leave with Static Group

Static group remains

Traffic not pruned

26

Join with ACL Blocking Multicast

ACL blocks group

No traffic forwarded

27

Join with ACL Allowing Multicast

ACL allows group

Traffic forwarded

28

Join with Bandwidth Monitoring

Monitor multicast bandwidth

Usage drops after leave

29

Join with Multicast Storm

Flood multicast traffic

IGMP limits unnecessary flooding

30

Join with Multicast Suppression

Suppress unnecessary joins

Bandwidth conserved

31

Join with Multicast Proxy

Proxy joins on behalf of clients

Efficient group management

32

Join with Multicast Load Balancing

Load balance across links

Optimized bandwidth usage

33

Join with Multicast over Wireless

Join on Wi-Fi

Traffic scoped to wireless clients

34

Join with Multicast over WAN

Join across WAN

Traffic optimized via PIM

35

Join with Multicast over VPN

Join via VPN tunnel

Traffic scoped to VPN clients

36

Join with Multicast over MPLS

Join in MPLS network

Traffic tunneled efficiently

37

Join with Multicast over IPv6

Use MLD instead of IGMP

Efficient IPv6 multicast

38

Join with Multicast Video Stream

Join IPTV stream

Only viewers receive stream

39

Leave Multicast Video Stream

Leave IPTV stream

Stream stops for that host

40

Join with Multicast Audio Stream

Join audio group

Bandwidth used only by listeners

41

Join with Multicast File Transfer

Join file distribution group

Efficient one-to-many delivery

42

Join with Multicast Gaming

Join game update group

Updates sent only to players

43

Join with Multicast Backup

Join backup sync group

Data sent once to all nodes

44

Join with Multicast IoT Devices

IoT devices join group

Efficient sensor data distribution

45

Join with Multicast Security Cameras

Cameras join group

Video sent only to viewers

46

Join with Multicast Classroom

Students join virtual class

Stream sent only to attendees

47

Join with Multicast CDN

CDN edge joins group

Content delivered efficiently

48

Join with Multicast Cloud Sync

Cloud nodes join group

Sync traffic optimized

49

Join with Multicast Firmware Update

Devices join update group

Update sent once to all

50

Join with Multicast Analytics

Analytics agents join group

Data collected efficiently

Host-Router Communication - Testcases

Host-Router Communication - Test Cases

#

Test Case

Description

Expected Result

1

Host Sends IGMP Join

Host sends Membership Report

Router updates group table

2

Host Sends IGMP Leave

Host sends Leave message

Router initiates group-specific query

3

Router Sends General Query

Router sends IGMP General Query

Host responds with Membership Report

4

Router Sends Group-Specific Query

Query for specific group

Only relevant hosts respond

5

Router Sends Group-and-Source-Specific Query

Query for group and source

Only matching hosts respond

6

Host Responds to Query

Host sends Membership Report

Router refreshes group membership

7

Host Does Not Respond

Host fails to respond

Router prunes group after timeout

8

Host Rejoins After Timeout

Host rejoins after pruning

Router re-adds group

9

Multiple Hosts Join Same Group

Multiple hosts send join

Router maintains group until all leave

10

Last Host Leaves Group

Last host sends leave

Router prunes group

11

Host Sends IGMPv1 Report

Router supports IGMPv2/3

Router accepts and downgrades version

12

Host Sends IGMPv2 Report

Router supports IGMPv3

Router accepts and downgrades version

13

Host Sends IGMPv3 Report

Router supports IGMPv3

Router processes source filtering

14

Host Sends Invalid Report

Malformed IGMP message

Router discards message

15

Host Sends Report with Invalid Group

Invalid multicast address

Router ignores message

16

Host Sends Report with TTL = 0

TTL too low

Router discards packet

17

Host Sends Report with TTL = 1

Valid TTL

Router accepts message

18

Host Sends Report with Spoofed IP

Fake source IP

Router may log or ignore

19

Host Sends Report with Duplicate Group

Same group joined twice

Router handles gracefully

20

Host Sends Leave Without Join

Leave without prior join

Router ignores message

21

Router Handles Join Flood

Burst of join messages

Router rate limits or logs

22

Router Handles Leave Flood

Burst of leave messages

Router rate limits or logs

23

Router Handles Query Flood

Frequent queries

Hosts respond within limits

24

Host Responds to Multiple Queries

Multiple queries received

Host responds once per group

25

Host Sends Source-Specific Join

IGMPv3 include mode

Router filters by source

26

Host Sends Source-Exclude Join

IGMPv3 exclude mode

Router blocks excluded sources

27

Router Handles Querier Election

Multiple routers present

One router elected as querier

28

Querier Router Fails

Querier goes down

Backup router takes over

29

Host Reboots

Host rejoins group

Router updates membership

30

Router Reboots

Router rebuilds group table

Hosts resend Membership Reports

31

Host Sends Join on VLAN

Join on VLAN 10

Router tracks per VLAN

32

Host Sends Join on Trunk Port

Tagged join

Router processes correctly

33

Host Sends Join on Access Port

Untagged join

Router processes correctly

34

Host Sends Join with ACL Blocking

ACL blocks IGMP

Router does not receive join

35

Host Sends Join with ACL Allowing

ACL allows IGMP

Router receives join

36

Host Sends Join with QoS Marking

DSCP marked IGMP

Router accepts join

37

Host Sends Join with Fragmented Packet

Fragmented IGMP

Router reassembles and processes

38

Host Sends Join with Extension Headers

IPv6 extension headers

Router processes correctly

39

Host Sends Join with High Latency

Delayed join

Router still updates group

40

Host Sends Join with Packet Loss

Some reports lost

Router maintains group due to robustness

41

Host Sends Join with Multicast App

App joins group

Router updates group table

42

Host Leaves Group on App Exit

App exits

Leave sent to router

43

Host Sends Join with Multicast Proxy

Proxy sends join

Router updates group

44

Host Sends Join with Multicast Snooping

Switch forwards to router

Router receives join

45

Host Sends Join with Multicast Routing Enabled

PIM enabled

Router forwards multicast traffic

46

Host Sends Join with Multicast Routing Disabled

PIM disabled

No multicast forwarding

47

Host Sends Join with Static Group

Static group configured

Router always forwards traffic

48

Host Sends Leave with Static Group

Static group remains

Router ignores leave

49

Host Sends Join with IGMP Timer Expiry

Timer expires

Router sends query

50

Host Sends Join with Robustness Value Change

Robustness increased

Router tolerates more loss

Dynamic Membership - Testcases

Dynamic Membership - Test Cases

#

Test Case

Description

Expected Result

1

Host Dynamically Joins Group

Host sends IGMP join

Router adds host to group

2

Host Dynamically Leaves Group

Host sends IGMP leave

Router removes host from group

3

Multiple Hosts Join at Different Times

Hosts join at intervals

Router updates group membership dynamically

4

Multiple Hosts Leave at Different Times

Hosts leave at intervals

Router prunes group as needed

5

Host Joins and Leaves Rapidly

Join and leave in quick succession

Router handles transitions correctly

6

Host Rejoins After Leave

Host rejoins same group

Router re-adds host

7

Host Joins Multiple Groups

Host joins 3 groups

Router tracks all memberships

8

Host Leaves One of Multiple Groups

Leaves one group

Router updates only that group

9

Host Joins with IGMPv1

Dynamic join using IGMPv1

Router accepts and tracks

10

Host Joins with IGMPv2

Dynamic join using IGMPv2

Router accepts and tracks

11

Host Joins with IGMPv3

Dynamic join using IGMPv3

Router accepts and tracks

12

Host Sends Source-Specific Join

IGMPv3 include mode

Router filters by source

13

Host Sends Source-Exclude Join

IGMPv3 exclude mode

Router blocks excluded sources

14

Host Sends Join with Delay

Delayed join after query

Router still updates group

15

Host Sends Leave with Delay

Delayed leave

Router prunes after timeout

16

Host Sends Join with TTL = 1

Valid TTL

Router accepts join

17

Host Sends Join with TTL = 0

Invalid TTL

Router drops packet

18

Host Sends Join with Spoofed IP

Fake source IP

Router may ignore or log

19

Host Sends Join with Invalid Group

Invalid multicast address

Router ignores join

20

Host Sends Leave Without Join

Leave without prior join

Router ignores leave

21

Host Sends Duplicate Join

Same group joined twice

Router handles gracefully

22

Host Sends Duplicate Leave

Same group left twice

Router handles gracefully

23

Host Sends Join During Query Interval

Join during active query

Router updates group

24

Host Sends Leave During Query Interval

Leave during active query

Router sends group-specific query

25

Host Sends Join After Query Timeout

Join after timeout

Router re-adds group

26

Host Sends Leave After Query Timeout

Leave after timeout

Router prunes group

27

Host Reboots After Join

Host rejoins after reboot

Router updates membership

28

Host Reboots After Leave

Host does not rejoin

Router does not add group

29

Host Joins via Proxy

Proxy sends join

Router updates group

30

Host Leaves via Proxy

Proxy sends leave

Router prunes group

31

Host Joins via Application

App triggers join

Router updates group

32

Host Leaves via Application Exit

App exits

Leave sent to router

33

Host Joins on VLAN

Join on VLAN 20

Router tracks per VLAN

34

Host Leaves on VLAN

Leave on VLAN 20

Router updates VLAN group

35

Host Joins on Trunk Port

Tagged join

Router processes correctly

36

Host Joins on Access Port

Untagged join

Router processes correctly

37

Host Joins with ACL Blocking

ACL blocks IGMP

Join fails

38

Host Joins with ACL Allowing

ACL allows IGMP

Join succeeds

39

Host Joins with QoS Marking

DSCP marked join

Router accepts join

40

Host Joins with Fragmented Packet

Fragmented IGMP

Router reassembles and processes

41

Host Joins with High Latency

Delayed join

Router still updates group

42

Host Joins with Packet Loss

Some reports lost

Router maintains group due to robustness

43

Host Joins with Multicast Snooping

Switch forwards to router

Router receives join

44

Host Leaves with Multicast Snooping

Leave forwarded

Router prunes group

45

Host Joins with Multicast Routing Enabled

PIM enabled

Multicast traffic forwarded

46

Host Joins with Multicast Routing Disabled

PIM disabled

No multicast forwarding

47

Host Joins with Static Group

Static group configured

Router always forwards traffic

48

Host Leaves with Static Group

Static group remains

Router ignores leave

49

Host Joins with Querier Present

Querier active

Group tracked dynamically

50

Host Joins with Querier Absent

No querier

Group state may become stale

Version Compatibility - Testcases

Version Compatibility - Test Cases

#

Test Case

Description

Expected Result

1

IGMPv1 Host with IGMPv2 Router

Host sends v1 join

Router accepts and downgrades to v1

2

IGMPv2 Host with IGMPv1 Router

Host sends v2 join

Router accepts as v1

3

IGMPv3 Host with IGMPv2 Router

Host sends v3 join

Router accepts in v2-compatible mode

4

IGMPv2 Host with IGMPv3 Router

Host sends v2 join

Router accepts and tracks as v2

5

IGMPv1 Host with IGMPv3 Router

Host sends v1 join

Router accepts and tracks as v1

6

IGMPv3 Host with IGMPv3 Router

Full v3 support

Source filtering supported

7

IGMPv2 Host with IGMPv2 Router

Full v2 support

Leave and query supported

8

IGMPv1 Host with IGMPv1 Router

Full v1 support

No leave messages used

9

Mixed Hosts (v1, v2, v3)

All versions present

Router downgrades to lowest version

10

IGMPv3 Source-Specific Join with v2 Router

v3 host sends SSM join

Router ignores source filtering

11

IGMPv3 Source-Exclude Join with v2 Router

v3 host sends exclude join

Router ignores exclude list

12

IGMPv2 Leave with v1 Router

v2 host sends leave

Router ignores leave

13

IGMPv1 Join with v2 Querier

v1 host joins

Querier sends v1-compatible queries

14

IGMPv2 Join with v3 Querier

v2 host joins

Querier sends v2-compatible queries

15

IGMPv3 Join with v1 Querier

v3 host joins

Querier ignores source filtering

16

Querier Election with Mixed Versions

v1, v2, v3 routers present

Lowest version wins election

17

IGMPv3 Host Sends v2-Compatible Join

v3 host in v2 mode

Join accepted without source filtering

18

IGMPv3 Host Sends v1-Compatible Join

v3 host in v1 mode

Join accepted, no leave support

19

IGMPv2 Host Sends v1-Compatible Join

v2 host in v1 mode

Join accepted, no leave support

20

IGMPv3 Host Sends Full Report to v3 Router

Full v3 report

Source filtering applied

21

IGMPv3 Host Sends Full Report to v2 Router

Full v3 report

Source filtering ignored

22

IGMPv2 Host Sends Leave to v3 Router

Leave message

Router prunes group

23

IGMPv1 Host Sends Join to v3 Router

Join message

Router accepts, no leave expected

24

IGMPv3 Host Sends Join with Invalid Source

Invalid source list

Router ignores or logs error

25

IGMPv2 Host Sends Join with Invalid Group

Invalid group address

Router ignores join

26

IGMPv1 Host Sends Join with TTL = 0

TTL too low

Router drops packet

27

IGMPv3 Host Sends Join with TTL = 1

Valid TTL

Router accepts join

28

IGMPv3 Host Sends Join with Fragmented Packet

Fragmented IGMP

Router reassembles and processes

29

IGMPv2 Host Sends Join with Spoofed IP

Fake source IP

Router may log or ignore

30

IGMPv3 Host Sends Join with Source Filtering

Include mode

Router applies filtering if supported

31

IGMPv3 Host Sends Join with Exclude Mode

Exclude mode

Router applies filtering if supported

32

IGMPv2 Host Sends Join During Query Interval

Join during active query

Router updates group

33

IGMPv1 Host Sends Join During Query Interval

Join during active query

Router updates group

34

IGMPv3 Host Sends Join After Query Timeout

Join after timeout

Router re-adds group

35

IGMPv2 Host Sends Leave After Timeout

Leave after timeout

Router prunes group

36

IGMPv3 Host Sends Join with Robustness = 2

Default robustness

Normal tolerance to loss

37

IGMPv3 Host Sends Join with Robustness = 5

High robustness

More tolerance to packet loss

38

IGMPv3 Host Sends Join with Querier Present

Querier active

Group tracked dynamically

39

IGMPv3 Host Sends Join with Querier Absent

No querier

Group state may become stale

40

IGMPv3 Host Sends Join with ACL Blocking

ACL blocks IGMP

Join fails

41

IGMPv3 Host Sends Join with ACL Allowing

ACL allows IGMP

Join succeeds

42

IGMPv3 Host Sends Join with QoS Marking

DSCP marked join

Router accepts join

43

IGMPv3 Host Sends Join with High Latency

Delayed join

Router still updates group

44

IGMPv3 Host Sends Join with Packet Loss

Some reports lost

Router maintains group due to robustness

45

IGMPv3 Host Sends Join with Multicast Snooping

Switch forwards to router

Router receives join

46

IGMPv3 Host Sends Leave with Snooping

Leave forwarded

Router prunes group

47

IGMPv3 Host Sends Join with Multicast Routing Enabled

PIM enabled

Multicast traffic forwarded

48

IGMPv3 Host Sends Join with Multicast Routing Disabled

PIM disabled

No multicast forwarding

49

IGMPv3 Host Sends Join with Static Group

Static group configured

Router always forwards traffic

50

IGMPv3 Host Sends Leave with Static Group

Static group remains

Router ignores leave

Query and Report Mechanism - Testcases

Query and Report Mechanism - Test Cases

#

Test Case

Description

Expected Result

1

Router Sends General Query

Query to all hosts

All hosts respond with Membership Reports

2

Router Sends Group-Specific Query

Query for one group

Only hosts in that group respond

3

Router Sends Group-and-Source-Specific Query

Query for group and source

Only matching hosts respond

4

Host Responds to General Query

Host sends Membership Report

Router updates group membership

5

Host Responds to Group-Specific Query

Host sends report for that group

Router refreshes group state

6

Host Responds to Group-and-Source-Specific Query

Host sends source-specific report

Router updates source list

7

Host Ignores Unrelated Group Query

Query for group not joined

Host does not respond

8

Host Sends Report Without Query

Host joins group

Router updates membership

9

Host Sends Report After Query Timeout

Delayed response

Router still accepts report

10

Host Sends Report with Delay

Response after random delay

Prevents report collisions

11

Host Sends Report with Suppression

Another host already responded

Host suppresses its own report

12

Host Sends Report with TTL = 1

Valid TTL

Router accepts report

13

Host Sends Report with TTL = 0

Invalid TTL

Router drops packet

14

Host Sends Report with Invalid Group

Invalid multicast address

Router ignores report

15

Host Sends Report with Spoofed IP

Fake source IP

Router may log or ignore

16

Host Sends Report with Fragmented Packet

Fragmented IGMP

Router reassembles and processes

17

Host Sends Report with Source Filtering

IGMPv3 include/exclude

Router applies filtering

18

Host Sends Report with No Source Filtering

IGMPv1/v2

Router tracks group only

19

Router Sends Query with Low Interval

Frequent queries

Hosts respond more often

20

Router Sends Query with High Interval

Infrequent queries

Hosts respond less often

21

Router Sends Query with Robustness = 2

Default robustness

Normal tolerance to loss

22

Router Sends Query with Robustness = 5

High robustness

More retries before pruning

23

Router Sends Query with Max Response Time = 10s

Hosts delay response

Responses spread out

24

Router Sends Query with Max Response Time = 1s

Quick responses

Higher chance of collision

25

Host Sends Report with Duplicate Group

Same group reported twice

Router handles gracefully

26

Host Sends Report with Multiple Groups

Reports multiple memberships

Router updates all groups

27

Host Sends Report with Source List

IGMPv3 report

Router updates source-specific state

28

Host Sends Report with Empty Source List

IGMPv3 exclude all

Router blocks all sources

29

Host Sends Report with Invalid Source

Invalid IP in source list

Router ignores or logs

30

Host Sends Report with ACL Blocking

ACL blocks IGMP

Report not received by router

31

Host Sends Report with ACL Allowing

ACL allows IGMP

Report received successfully

32

Host Sends Report with QoS Marking

DSCP marked packet

Router accepts report

33

Host Sends Report with High Latency

Delayed due to network

Router still updates group

34

Host Sends Report with Packet Loss

Some reports lost

Router maintains group due to robustness

35

Host Sends Report with Multicast Snooping

Switch forwards to router

Router receives report

36

Host Sends Report with Snooping Disabled

Report flooded

Router still receives it

37

Host Sends Report with Multicast Routing Enabled

PIM enabled

Multicast traffic forwarded

38

Host Sends Report with Multicast Routing Disabled

PIM disabled

No multicast forwarding

39

Host Sends Report with Querier Present

Querier active

Group tracked dynamically

40

Host Sends Report with Querier Absent

No querier

Group state may become stale

41

Querier Election with Multiple Routers

Routers send queries

Lowest IP becomes querier

42

Querier Fails

Querier stops sending queries

Backup router takes over

43

Host Sends Report After Reboot

Host rejoins group

Router updates membership

44

Router Sends Query After Reboot

Queries all hosts

Hosts respond with reports

45

Host Sends Report via Proxy

Proxy sends on behalf

Router updates group

46

Host Sends Report via Application

App triggers join

Report sent to router

47

Host Sends Report on VLAN

VLAN-specific join

Router tracks per VLAN

48

Host Sends Report on Trunk Port

Tagged report

Router processes correctly

49

Host Sends Report on Access Port

Untagged report

Router processes correctly

50

Host Sends Report with Static Group

Static group configured

Report not required, router always forwards

Leave Group Notification - Testcases

Leave Group Notification - Test Cases

#

Test Case

Description

Expected Result

1

Host Sends Leave Message

Host leaves group

Router sends group-specific query

2

Host Leaves Last in Group

Last host leaves

Router prunes group after query

3

Host Leaves but Others Remain

One host leaves, others stay

Router maintains group

4

Host Leaves Without Join

Sends leave without prior join

Router ignores message

5

Host Sends Leave with Invalid Group

Invalid multicast address

Router ignores message

6

Host Sends Leave with TTL = 0

TTL too low

Router drops packet

7

Host Sends Leave with TTL = 1

Valid TTL

Router accepts message

8

Host Sends Leave with Spoofed IP

Fake source IP

Router may log or ignore

9

Host Sends Leave with Fragmented Packet

Fragmented IGMP

Router reassembles and processes

10

Host Sends Leave with Delay

Delayed leave

Router still processes

11

Host Sends Duplicate Leave

Sends leave twice

Router handles gracefully

12

Host Leaves Multiple Groups

Leaves 3 groups

Router updates all memberships

13

Host Leaves One of Multiple Groups

Leaves one group

Router updates only that group

14

Host Leaves During Query Interval

Leave during active query

Router sends group-specific query

15

Host Leaves After Query Timeout

Leave after timeout

Router prunes group

16

Host Leaves with Fast Leave Enabled

Fast leave on switch

Immediate pruning

17

Host Leaves with Fast Leave Disabled

Fast leave off

Router waits for query response

18

Host Leaves with IGMPv2

Sends IGMPv2 leave

Router sends group-specific query

19

Host Leaves with IGMPv3

Sends IGMPv3 leave

Router processes source filtering

20

Host Leaves with IGMPv1

No leave message sent

Router relies on query timeout

21

Host Leaves with Source Filtering

IGMPv3 exclude mode

Router updates source list

22

Host Leaves Source-Specific Group

Leaves SSM group

Router updates source-specific state

23

Host Leaves with ACL Blocking

ACL blocks IGMP

Leave not received by router

24

Host Leaves with ACL Allowing

ACL allows IGMP

Leave received successfully

25

Host Leaves with QoS Marking

DSCP marked leave

Router accepts message

26

Host Leaves with High Latency

Delayed leave

Router still updates group

27

Host Leaves with Packet Loss

Leave lost

Router relies on query timeout

28

Host Leaves with Multicast Snooping

Switch forwards leave

Router receives message

29

Host Leaves with Snooping Disabled

Leave flooded

Router still receives it

30

Host Leaves with Multicast Routing Enabled

PIM enabled

Multicast traffic pruned

31

Host Leaves with Multicast Routing Disabled

PIM disabled

No multicast forwarding

32

Host Leaves with Querier Present

Querier active

Group tracked dynamically

33

Host Leaves with Querier Absent

No querier

Group state may become stale

34

Querier Sends Group-Specific Query

After leave

Hosts respond if still interested

35

No Response to Group-Specific Query

No hosts respond

Router prunes group

36

Host Leaves via Proxy

Proxy sends leave

Router updates group

37

Host Leaves via Application Exit

App exits

Leave sent to router

38

Host Leaves on VLAN

VLAN-specific leave

Router updates VLAN group

39

Host Leaves on Trunk Port

Tagged leave

Router processes correctly

40

Host Leaves on Access Port

Untagged leave

Router processes correctly

41

Host Leaves with Static Group

Static group configured

Router ignores leave

42

Host Leaves with Robustness = 2

Default robustness

Normal tolerance to loss

43

Host Leaves with Robustness = 5

High robustness

More retries before pruning

44

Host Leaves During Network Congestion

High traffic

Leave still processed

45

Host Leaves During CPU Load

High CPU usage

Leave still processed

46

Host Leaves During Memory Pressure

Low memory

Leave still processed

47

Host Leaves After Reboot

Host does not rejoin

Router prunes group after timeout

48

Host Leaves with Querier Election

Querier changes

Leave still processed

49

Host Leaves with Multicast Application

App stops stream

Leave sent to router

50

Host Leaves with Multicast Proxy

Proxy stops forwarding

Router updates group

Support for Source Filtering - Testcases

Support for Source Filtering (v3/v4) - Test Cases

#

Test Case

Description

Expected Result

1

IGMPv3 Include Mode Join

Host joins group with specific source

Router forwards only from specified source

2

IGMPv3 Exclude Mode Join

Host joins group excluding a source

Router forwards from all except excluded source

3

IGMPv3 Include Mode with Multiple Sources

Host includes multiple sources

Router forwards from all listed sources

4

IGMPv3 Exclude Mode with Multiple Sources

Host excludes multiple sources

Router blocks all listed sources

5

IGMPv3 Include Mode with Empty Source List

Host includes no sources

No traffic forwarded

6

IGMPv3 Exclude Mode with Empty Source List

Host excludes no sources

All sources allowed

7

IGMPv3 Source Filter Change

Host changes source list

Router updates forwarding accordingly

8

IGMPv3 Source Filter Timeout

Host stops sending reports

Router prunes group after timeout

9

IGMPv3 Source Filter with General Query

Router sends general query

Host responds with full source list

10

IGMPv3 Source Filter with Group-Specific Query

Router queries specific group

Host responds with source list for that group

11

IGMPv3 Source Filter with Group-and-Source-Specific Query

Router queries group and source

Host responds if matching

12

IGMPv3 Source Filter with Querier Present

Querier active

Source filtering maintained

13

IGMPv3 Source Filter with Querier Absent

No querier

Source filtering may become stale

14

IGMPv3 Source Filter with Querier Election

Multiple routers

Lowest IP becomes querier

15

IGMPv3 Source Filter with TTL = 1

Valid TTL

Router accepts report

16

IGMPv3 Source Filter with TTL = 0

Invalid TTL

Router drops packet

17

IGMPv3 Source Filter with Invalid Source IP

Invalid IP in source list

Router ignores or logs

18

IGMPv3 Source Filter with Invalid Group

Invalid multicast address

Router ignores report

19

IGMPv3 Source Filter with Fragmented Packet

Fragmented IGMP

Router reassembles and processes

20

IGMPv3 Source Filter with Spoofed Source

Fake source IP

Router may log or ignore

21

IGMPv3 Source Filter with ACL Blocking Source

ACL blocks source IP

Traffic from source blocked

22

IGMPv3 Source Filter with ACL Allowing Source

ACL allows source IP

Traffic forwarded

23

IGMPv3 Source Filter with QoS Marking

DSCP marked packet

Router accepts report

24

IGMPv3 Source Filter with High Latency

Delayed report

Router still updates group

25

IGMPv3 Source Filter with Packet Loss

Some reports lost

Router maintains group due to robustness

26

IGMPv3 Source Filter with Multicast Snooping

Switch forwards to router

Router receives report

27

IGMPv3 Source Filter with Snooping Disabled

Report flooded

Router still receives it

28

IGMPv3 Source Filter with Multicast Routing Enabled

PIM enabled

Source-specific forwarding applied

29

IGMPv3 Source Filter with Multicast Routing Disabled

PIM disabled

No multicast forwarding

30

IGMPv3 Source Filter with Static Group

Static group configured

Source filtering not applied

31

IGMPv3 Source Filter with VLAN Tagging

Join on VLAN 10

Source filtering scoped to VLAN

32

IGMPv3 Source Filter with Trunk Port

Tagged report

Router processes correctly

33

IGMPv3 Source Filter with Access Port

Untagged report

Router processes correctly

34

IGMPv3 Source Filter with Host Reboot

Host rejoins with source list

Router updates group

35

IGMPv3 Source Filter with Router Reboot

Router queries hosts

Hosts resend source lists

36

IGMPv3 Source Filter with Application Join

App joins with source filter

Router updates group

37

IGMPv3 Source Filter with Application Exit

App exits

Leave or timeout triggers pruning

38

IGMPv3 Source Filter with Proxy

Proxy sends report

Router updates group

39

IGMPv3 Source Filter with Mixed Hosts

v2 and v3 hosts

Router downgrades to v2 behavior

40

IGMPv3 Source Filter with v2 Router

v3 host sends report

Source filtering ignored

41

IGMPv3 Source Filter with v3 Router

Full support

Source filtering applied

42

IGMPv3 Source Filter with Duplicate Sources

Same source listed twice

Router handles gracefully

43

IGMPv3 Source Filter with Overlapping Groups

Same source in multiple groups

Router tracks per group

44

IGMPv3 Source Filter with Leave Message

Host leaves group

Router prunes source list

45

IGMPv3 Source Filter with No Leave Message

Host stops reporting

Router prunes after timeout

46

IGMPv3 Source Filter with Robustness = 2

Default robustness

Normal tolerance to loss

47

IGMPv3 Source Filter with Robustness = 5

High robustness

More retries before pruning

48

IGMPv3 Source Filter with Max Response Time = 10s

Delayed responses

Router accepts within window

49

IGMPv3 Source Filter with Max Response Time = 1s

Quick responses

Higher chance of collision

50

IGMPv3 Source Filter with Multicast Application

App uses include/exclude

Router filters traffic accordingly

Minimal Overhead - Testcases

Minimal Overhead - Test Cases

#

Test Case

Description

Expected Result

1

Host Sends Single Join

One join message sent

Minimal bandwidth used

2

Host Sends Single Leave

One leave message sent

Minimal bandwidth used

3

Host Responds to General Query Once

One report per group

No redundant messages

4

Host Suppresses Report

Another host already responded

Report suppressed

5

Host Sends Report with Delay

Random delay before response

Reduces collision

6

Host Sends Report for Multiple Groups

One message with multiple groups

Efficient reporting

7

Router Sends General Query Periodically

Controlled interval

Avoids excessive queries

8

Router Sends Group-Specific Query

Targets only one group

Reduces unnecessary responses

9

Router Sends Query with Max Response Time = 10s

Spreads out responses

Reduces burst traffic

10

Router Sends Query with Max Response Time = 1s

Quick response

Higher overhead risk

11

Host Sends Report with TTL = 1

Valid TTL

No unnecessary routing

12

Host Sends Report with TTL = 0

Invalid TTL

Packet dropped, no overhead

13

Host Sends Report with Source Filtering

IGMPv3 include/exclude

Efficient source control

14

Host Sends Report with Empty Source List

No sources included

No traffic forwarded

15

Host Sends Report with Duplicate Group

Same group listed twice

Router handles gracefully

16

Host Sends Report with Fragmented Packet

Fragmented IGMP

Router reassembles efficiently

17

Host Sends Report with Spoofed IP

Fake source

Router ignores, no processing overhead

18

Host Sends Report with Invalid Group

Invalid address

Router ignores

19

Host Sends Report with ACL Blocking

ACL blocks IGMP

No processing overhead

20

Host Sends Report with ACL Allowing

ACL allows IGMP

Report processed

21

Host Sends Report with QoS Marking

DSCP marked

Prioritized without extra load

22

Host Sends Report with High Latency

Delayed report

Still within response window

23

Host Sends Report with Packet Loss

Some reports lost

Router maintains group due to robustness

24

Host Sends Report with Multicast Snooping

Switch forwards only to router

Reduces broadcast overhead

25

Host Sends Report with Snooping Disabled

Report flooded

Higher overhead

26

Host Sends Report with Multicast Routing Enabled

PIM enabled

Efficient traffic forwarding

27

Host Sends Report with Multicast Routing Disabled

PIM disabled

No unnecessary routing

28

Host Sends Report with Static Group

Static join

No dynamic overhead

29

Host Sends Report with VLAN Tagging

VLAN-specific join

Scoped traffic

30

Host Sends Report on Trunk Port

Tagged report

Efficient VLAN handling

31

Host Sends Report on Access Port

Untagged report

Standard processing

32

Host Sends Report After Reboot

Rejoins group

Minimal rejoin overhead

33

Router Sends Query After Reboot

Queries all hosts

Hosts respond efficiently

34

Host Sends Report via Proxy

Proxy aggregates joins

Reduces host overhead

35

Host Sends Report via Application

App triggers join

Efficient group management

36

Host Sends Report with Robustness = 2

Default robustness

Balanced overhead

37

Host Sends Report with Robustness = 5

Higher robustness

More tolerance, more traffic

38

Host Sends Report with Querier Present

Querier active

Controlled query traffic

39

Host Sends Report with Querier Absent

No querier

Group state may become stale

40

Querier Election with Multiple Routers

One elected

Prevents redundant queries

41

Querier Fails

Backup takes over

Minimal disruption

42

Host Sends Report with Duplicate Sources

Same source listed twice

Router handles efficiently

43

Host Sends Report with Overlapping Groups

Same source in multiple groups

Router tracks per group

44

Host Sends Leave with No Join

Leave without prior join

Router ignores

45

Host Sends Join with No Leave

Host stops reporting

Router prunes after timeout

46

Host Sends Join with Low Frequency

Infrequent joins

Minimal control traffic

47

Host Sends Join with High Frequency

Frequent joins

Router handles without overload

48

Host Sends Join with Multicast Application

App joins group

Efficient traffic delivery

49

Host Leaves Group on App Exit

App exits

Leave sent, group pruned

50

Host Sends Join with Minimal Payload

Small IGMP message

Minimal bandwidth usage

Integration with Multicast Routing Protocols - Testcases

Integration with Multicast Routing Protocols - Test Cases

#

Test Case

Description

Expected Result

1

IGMP Join with PIM-SM Enabled

Host joins group

PIM-SM builds multicast tree

2

IGMP Leave with PIM-SM Enabled

Host leaves group

PIM prunes branch if no members

3

IGMP Join with PIM-DM Enabled

Host joins group

PIM-DM floods and prunes traffic

4

IGMP Leave with PIM-DM Enabled

Host leaves group

PIM-DM prunes traffic to router

5

IGMP Join with DVMRP Enabled

Host joins group

DVMRP forwards multicast traffic

6

IGMP Leave with DVMRP Enabled

Host leaves group

DVMRP prunes traffic

7

IGMP Join with MOSPF Enabled

Host joins group

MOSPF updates multicast routing table

8

IGMP Leave with MOSPF Enabled

Host leaves group

MOSPF recalculates tree

9

IGMP Join with No Routing Protocol

Host joins group

No multicast forwarding occurs

10

IGMP Join with Static Multicast Routing

Static route configured

Traffic forwarded regardless of IGMP

11

IGMP Join with PIM Assert Mechanism

Multiple routers on LAN

Assert winner forwards traffic

12

IGMP Join with RP Discovery

PIM-SM uses RP

RP receives join and builds tree

13

IGMP Join with SPT Switchover

PIM-SM switches to SPT

Traffic forwarded via shortest path

14

IGMP Join with RP Failure

RP becomes unreachable

Multicast traffic disrupted

15

IGMP Join with RP Redundancy

Backup RP available

Traffic continues via backup RP

16

IGMP Join with MSDP Enabled

RP shares group info

Inter-domain multicast supported

17

IGMP Join with BSR Mechanism

Bootstrap router assigns RP

RP discovered dynamically

18

IGMP Join with PIM Register Process

First packet encapsulated

RP receives register message

19

IGMP Join with PIM Join/Prune Messages

Router sends join/prune

Upstream routers update state

20

IGMP Join with Multicast RPF Check

RPF check passes

Traffic accepted

21

IGMP Join with RPF Failure

RPF check fails

Traffic dropped

22

IGMP Join with Multicast Loop Prevention

Loop detected

Traffic dropped or pruned

23

IGMP Join with Multicast Load Balancing

ECMP enabled

Traffic balanced across paths

24

IGMP Join with Multicast VPN

Join in VPN context

Traffic scoped to VPN

25

IGMP Join with Multicast over MPLS

MVPN enabled

Traffic tunneled via MPLS

26

IGMP Join with Multicast over GRE

GRE tunnel used

Traffic encapsulated and forwarded

27

IGMP Join with Multicast over IPsec

Secure multicast

Traffic encrypted and routed

28

IGMP Join with Multicast over WAN

WAN link used

Traffic forwarded across WAN

29

IGMP Join with Multicast over LAN

LAN segment

Traffic scoped to LAN

30

IGMP Join with Multicast over VLAN

VLAN-specific join

Traffic scoped to VLAN

31

IGMP Join with Multicast over Trunk Port

Tagged join

Traffic forwarded correctly

32

IGMP Join with Multicast over Access Port

Untagged join

Traffic forwarded correctly

33

IGMP Join with Multicast over Wireless

Wireless AP forwards

Traffic scoped to wireless clients

34

IGMP Join with Multicast over IPv6

MLD used instead of IGMP

IPv6 multicast routing applies

35

IGMP Join with Multicast ACLs

ACLs permit group

Traffic forwarded

36

IGMP Join with Multicast ACLs Deny

ACLs block group

Traffic dropped

37

IGMP Join with Multicast QoS

QoS policies applied

Traffic prioritized

38

IGMP Join with Multicast Policing

Rate limits applied

Excess traffic dropped

39

IGMP Join with Multicast Logging

Logging enabled

Join/leave events logged

40

IGMP Join with Multicast Monitoring

SNMP or telemetry

Group state monitored

41

IGMP Join with Multicast Troubleshooting

Debug enabled

Join/prune messages visible

42

IGMP Join with Multicast Redundancy

HSRP/VRRP active

Redundant routers handle joins

43

IGMP Join with Multicast Failover

Primary router fails

Backup router takes over

44

IGMP Join with Multicast Convergence

Network reconverges

Traffic resumes after delay

45

IGMP Join with Multicast Flapping

Frequent join/leave

Routing protocol handles gracefully

46

IGMP Join with Multicast Timer Tuning

Query/response timers adjusted

Optimized convergence

47

IGMP Join with Multicast Source Mobility

Source IP changes

Routing protocol adapts

48

IGMP Join with Multicast Receiver Mobility

Host moves subnets

Join re-initiated from new location

49

IGMP Join with Multicast Application

App triggers join

Routing protocol forwards traffic

50

IGMP Leave with Multicast Application Exit

App exits

Routing protocol prunes tree

  • Reference links