Hello aayouba379
Great question! Your mental model is close, but there’s an important clarification needed, and this actually touches on two distinct timers that are easy to confuse in IGMPv1.
You’re right that joining triggers a timer, but the cause-and-effect flow isn’t quite as you’ve described. The router’s periodic queries and the group’s expiration timer are actually two independent mechanisms and not a simple sequence. Let me describe how it works.
Router queries run on their own schedule. The router sends General Membership Queries to 224.0.0.1 periodically, every 60 seconds by default on Cisco IOS, regardless of whether any host has joined a group. This isn’t triggered by a host’s join, it just runs continuously.
Hosts join with unsolicited reports. When a host wants to join a group, it doesn’t wait for a query. Instead, it immediately sends an unsolicited Membership Report. This is what triggers the router to start forwarding traffic and to create a per-group expiration timer.
Reports refresh the group timer. When the router’s periodic query arrives, hosts that are still members respond with a fresh Report. Each Report resets the per-group expiration timer (shown as “Expires” in show ip igmp groups).
There are two key timers in the process, and this is where the confusion typically comes in.
- Query Interval: This is how often the router sends Host Membership Queries. The default is 60 seconds but is configurable via
ip igmp query-interval. This runs continuously and independently.
- Group Membership Interval, which is the expiry timer. This defines how long the router keeps the group active and forwards traffic if it receives no fresh reports. The default is 180 seconds (3 minutes) and is derived from 3 times the Query Interval on Cisco platforms.
The 180-second value is not mandated by any standard. RFC 1112 (the IGMPv1 spec) doesn’t define a specific group-membership timeout. It only says routers assume a group has “no local members” after “some number of Queries” go unanswered. Cisco’s approach is a sensible 3× multiplier of the query interval, which gives the router three chances to hear from at least one interested host before cleaning up.
The timeout does vary in practice: if you change the query interval to 30 seconds, the group-membership timeout scales proportionally to 90 seconds. Different vendors may also implement a different multiplier.
If the router stops receiving any Reports for a group (because hosts have left), that per-group timer counts down and eventually expires, ανδ the group is then removed. This is significant because IGMPv1 has no explicit Leave message. Timeout is the only way the router learns that membership has ended, which is one reason IGMPv2 was introduced with an explicit Leave Group message.
For Cisco IOS, remember that 60 seconds is the query interval, and 180 seconds the group expiry, which maintains a consistent 3:1 ratio. You can verify this with show ip igmp interface and show ip igmp groups (shows the countdown “Expires” timer, typically around 180 s after a fresh join).
I hope this has been helpful!
Laz