Add Book to My BookshelfPurchase This Book Online

Chapter 3 - Internet Group Management Protocol

Cisco Multicast Routing & Switching
William R. Parkhurst
  Copyright © 1999 The McGraw-Hill Companies

IGMP Version 2: Timers and Counters
To account for the possibility of router A ceasing to send Query messages, Non-Querier routers set a timer, the Other Querier Present Interval timer, whenever a Query message is received. If this timer expires before receiving a Query message, the router assumes the role of Querier. Of course, more than one Non-Querier router may be attached to the network and they will all try to assume the role of Querier. As before, the router with the lowest IP address on the net work becomes Querier and the others assume the Non-Querier role.
To prevent Non-Querier routers from mistakenly assuming the role of Querier, the Querier router must periodically send Membership Query messages using the Query Interval timer. Of course, the Query Interval Timer must be less than the Other Querier Present Interval timer. The timer values that are used in IGMP Version 2 are listed in Table 3-2.
TABLE 3-2: IGMP Version 2 timers, counters, and variables
Parameter
Default Value
Robustness Variable (RV)
2 (Must not be zero and should not be 1)
Query Interval (QI)
125 Seconds
Query Response Interval (QRI)
100 (10 seconds)
Startup Query Interval (SQI)
One-quarter of the Query Interval = 31
Startup Query Count (SQC)
Robustness Variable Value
Other Querier Present Interval (OQPI)
(RV * QI) 1 QRI/2 = 255
Group Membership Interval (GMI)
(RV * QI) 1 QRI = 260
Last Member Query Interval (LMQI)
10 (1 second)
Last Member Query Count (LMQC)
Robustness Variable Value
Unsolicited Report Interval (URI)
10 seconds
Version 1 Router Present Timeout
400 Seconds
When IGMP is first enabled on a multicast router, the router should send a number of General Query messages to determine if the hosts on the network are members of any multicast groups. The number of initial queries is given by the Startup Query Count and the initial queries are separated in time by the Startup Query Interval. When a host receives a General Query message from the router, the host sets a delay timer for each multicast group of which the host is a member. These delay values are chosen at random from the range 0 to Maximum Response Time (specified in the IGMP version 2 packet), and the value zero is not used. If any of these timers counts down to zero before the host has heard a Membership Report for a particular group, the host sends a Membership Report to the multicast group. If a host receives a Membership Report from another host for a group that the host is a member, the timer and report for that group is canceled. If a host receives a Membership Query for a group that the host already has a timer running, the timer is reset only if the remaining value of the timer is greater than the value of the Maximum Response Time contained in the IGMP packet.
When an IGMP-enabled multicast router receives a Membership Report from a host, the router checks the table of multicast groups for which the router is forwarding multicast traffic. If the group being reported by the host is not in the router’s table, the router adds this group to the table. For each multicast group in the router’s table, a periodic timer is set to the value Group Membership Interval. Whenever a router receives a Membership Report from a host for a multicast group, the timer associated with that group is reset to the value Group Membership Interval. When the Group Membership Interval timer counts down to zero, meaning that no Membership Reports have been received from a host during this time period, the router assumes that hosts on the network no longer want to receive multicast traffic for that particular group, and the router does not forward multicast traffic for it.
When a multicast application is enabled, the host should immediately send a Membership Report for the group that the application needs to join. Because the possibility exists that the report could be lost, the host should send a Membership Report at least one more time after delaying for the Unsolicited Report Interval.
Another addition to IGMP version 2 is the Leave Group message. In IGMP version 1, hosts left the group quietly and no message was sent. When a host decides to leave a group and if the host was the one that responded to the last Membership Query message, then the host should send a Leave Group message to the address 224.0.0.2, the all-routers multicast group. If the host was not the last one to respond to the Membership Query message, then a Leave Group message does not have to be sent, but it does no harm to send one, except for using a little bit of bandwidth. The RFC also allows the sending of the Leave Group message to the group address instead of the all-routers address. The benefit of sending the Leave Group message to the all-routers address is that hosts that are members of that group do not have to process the message.
When the Querier router receives the Leave Group message, the router does not know if this was the last host on the network for that group. The Querier router sends a number of Group-Specific Membership Queries, one in which the group address in the IGMP packet contains the address of the group being left. The number of Group-Specific Queries that are sent is given by the value Last Member Query Count, which is equal to the value of the Robustness Variable (RV) as shown in Table 3-2. The Group-Specific Queries are sent on an interval equal to the Last Member Query Interval. The Group-Specific Queries have the Maximum Response Interval in the IGMP packet set to the value of the Last Member Query Interval (see Figure 3-13). After sending the Group-Specific Queries, the router waits for a time given by the Last Member Query Interval for Group Membership reports. If none are received, then multicast traffic for the specific group is no longer forwarded by the router. The state diagram for a host running IGMP version 2 is shown in Figure 3-14.
Figure 3-13: IGMP version 2 packet format for the Group-Specific Query in response to a Leave Group message
Figure 3-14: IGMP version 2 host state diagram. Each group a host belongs to has its own state.
As shown in Figure 3-14, an IGMP version 2 host can be in one of three states. The Non-Member state indicates that the host does not belong to the multicast group; the host will make a transition to the Delaying Member state when the host decides to join the multicast group. The host sends a Membership Report for the group and sets a timer as though the host received a Membership Query from the router.
There are four transitions from the Delaying Member state. If the host’s timer counts down to zero, the host sends a Membership Report and makes a transition to the Idle Member state. If a Membership Report for the group is received from another host, the host stops the delay timer and makes a transition to the Idle Member state. If a Membership Query is received from the router, the host resets the delay timer if the Maximum Response Time in the IGMP message is less than the time remaining on the delay timer. In this case, the host remains in the Delaying Member state. Finally, a host makes a transition from the Delaying Member state to the Non-Member state if the host decides to leave the group. The host sends a Leave Group message if it was the host that responded to the last Membership Query message. A host makes a transition from the Idle Member state on one of two events. If a Membership Query is received for the group, the host makes a transition to the Delaying Member state and starts the delay timer. If a host decides to leave the group while in the Idle Member state, the host sends a Leave Group message and makes a transition to the Non-Member state. The all-systems group (224.0.0.1) is a special case with respect to the host state diagram. Every host that is running IGMP version 2 is a member of the all-systems group, but no reports are ever sent for this group and the hosts are always in the Idle Member state with respect to this group.
If there is more than one router on the network, then the possibility exists that one or more routers are running IGMP version 1 and one or more routers are running IGMP version 2. A version 2 host can therefore be in one of two states with respect to the multicast routers that are present on the network, as shown in Figure 3-15.
Figure 3-15: IGMP version 1 and version 2 interaction
Hosts will initially be in the state No IGMP Version 1 Router Present. If a host receives a version 1 IGMP Membership Query, one in which the Maximum Runtime field is zero, the host makes a transition to the state IGMP Version 1 Router Present and sets a timer equal to the value Version 1 Router Present Timeout. Whenever a version 1 Membership Query is received while in this state, the timer is reset to the Version 1 Router Present Timeout value. If this timer counts down to zero, then the host makes a transition to the No IGMP Version 1 Router Present state.

 


 
Books24x7.com, Inc © 2000 –  Feedback