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

Internet Group Management Protocol, IGMP Version 1
IGMP is used by hosts to inform the directly connected router of their choice to join a multicast group. IGMP messages have the format shown in Figure 3-5. IGMP messages are encapsulated in IP datagrams and use a protocol identifier of 2.
Figure 3-5: IGMP version 1 message format
Version Number = 1
Type
1 = Host Membership Query 2 = Host Membership Report
Unused
Set to zero when sending Ignore when receiving
Checksum
16-bit complement of the complement sum of the 8-byte IGMP message
Group Address
Host Membership Query Message = 0
Host Membership Report Message = IP multicast address of the group being reported
A router sends Host Membership Query messages to determine if any hosts are members of any multicast groups (see Figure 3-6). As long as one host responds to the query, then the router must continue to send multicast traffic for that group to the network. Queries are sent to the all-hosts group address (224.0.0.1) and have a TTL value of 1.
Figure 3-6: Multicast routers use IGMP Host Membership Query messages to determine if any hosts are members of any multicast group.
When a host receives a Host Membership Query message, the host responds with one or more Host Membership Report messages (see Figure 3-7). Each Host Membership Report message contains the multicast group of which the host is a member.
Figure 3-7: Hosts report their group memberships with IGMP Host Membership Reports.
If multiple group members are on the network, a flood of report messages can be generated. Two techniques can be employed to avoid this possibility. The first is to have the host start a delay timer with a delay value randomly chosen between zero and some maximum value, usually 10 seconds. When the delay timer expires, the host sends the report. This spreads the Host Membership Reports over time. Because a router only needs to know if there is at least one group member on the network, it is not necessary for every host that is a member of a group to send a Host Membership Report message.
The second technique is to send the report to the host group address that is being reported. Hosts still use the delay timer, but if they receive a Host Membership Report for the group that they are waiting to report, the timer is canceled and no report is sent. This method is preferred because only one report is generated for each Host Membership Query (see Figures 3-8 and 3-9).
Figure 3-8: Routers determine group membership using IGMP Host Membership Queries.
Figure 3-9: Host report group memberships with IGMP Host Membership Reports.
In Figure 3-8, when hosts A, C, and D receive a Host Membership Query message from the router, the hosts start a timer with a random value. When the first timer counts down to zero, an IGMP Host Membership Report is sent, as in the example by host A. When host A sends the report, the timer values for hosts C and D have decremented by one. Before the timers for host C and D expire, they receive the Host Membership Report that is sent by host A. Because this is a report for the group that they are waiting to report to, there is no need for hosts C and D to send their reports.
The various states that a host can be in are shown in Figure 3-10. Hosts can be in one of three states: Non-Member, Delaying Member, and Idle Member. In the Non-Member state, a host is simply not a member of the multicast group. The Delaying Member state indicates that the host is a member of the multicast group, has received a Host Membership Query message from the router, and has the report delay timer running. A host enters the idle state after it has sent a Host Membership Report message to the router or has heard a Host Membership Report from another host that is a member of the group. Hosts will make transition between states on the occurrence of the following events:
Figure 3-10: IGMP Version 1 host state diagram
  1. A host decides to join a multicast group.
  2. A host decides to leave a multicast group.
  3. A Host Membership Query message is received.
  4. A Host Membership Report is received.
  5. The host’s delay timer has expired.
When a host decides to join a multicast group, it does not know if any other hosts are on the network that are members of the group. If this host is the first member and the host waits for a Host Membership Query from the router, the host will wait forever. Therefore, when a host decides to join a multicast group, it should immediately send a Host Membership Report.
The possibility exists, however, that this initial report message will not reach the router. The host should make a transition from the Non-Member state to the Delaying Member state, as though the host had received a Host Membership Query message. The host then starts the delay timer. If a Host Membership Report is received, the host stops the timer and makes a transition to the Idle Member state. If the timer expires, the host sends a Host Membership Report message to the router and then moves to the idle state. When a Host Membership query is received, the host could be in any of the three states. In the Non-Member state, the host simply ignores the message. In the idle state, the host will make a transition to the delaying state and start the report delay timer. If the report is received while the host is in the delaying state, the host does not reset the timer but continues to delay with the current timer value. Finally, when a host decides to leave the group, it does so silently because there is not a leave group message in IGMP version 1. If the host is the last host to leave the group, the router does not know this until there has been no response to the router’s periodic Host Membership Query messages.

 


 
Books24x7.com, Inc © 2000 –  Feedback