IGMP v1

IGMP version 1 is a simple protocol consisting of two messages. The structure of IGMP version 1 messages is shown in Figure 4.2.

Cc957911.INAF02(en-us,TechNet.10).gif

Figure 4.2 IGMP Version 1 Message Structure

Version    A 4-bit field set to the value of 0x1 for IGMP v1.

Type    A 4-bit field containing either 0x1 or 0x2. 0x1 indicates a Host Membership Query sent by an IP multicast router to query a subnet for current host membership. 0x2 indicates a Host Membership Report sent by IP multicast hosts when joining a group or in response to a Host Membership Query.

Unused    An unused 1-byte field set to the value of 0x00 by the sender and whose value is ignored by the receiver.

Checksum    A 2-byte field set to the value of the 16-bit checksum calculation on the IGMP message. The IGMP checksum does not include the IP header.

Group Address    A 4-byte field set to either 0.0.0.0 for a Host Membership Query, or the specific group address for a Host Membership Report.

Host Membership Report

When a host joins a multicast group, it sends an IGMP Host Membership Report message to the specific group address, regardless of whether there are already other hosts on its subnet that are host group members. Unlike a multicast router, a host does not keep track of the host group membership of other hosts on its subnet. Because a multicast router is listening in multicast promiscuous mode, it receives and processes IGMP Host Membership Report messages sent to any multicast address.

For a Windows 2000 Routing and Remote Access service configured with the IGMP routing protocol and an interface running in IGMP router mode, if this is the first host to join a host group on a particular subnet, the IGMP routing protocol creates an entry in the interface group table. If needed, an entry in the IP multicast forwarding table is created, containing the group address being registered and the interface on which the IGMP Host Membership Report message was received.

Host Membership Query

An IGMP v1 multicast router periodically sends an IGMP Host Membership Query message to 224.0.0.1 (the all hosts group) to refresh its knowledge of host members on the subnet. For each host group for which there are members on the subnet, one host group member responds with an IGMP Host Membership Report message. As previously discussed, a random response timer is used to stagger and randomly distribute the individual host group member who sends the IGMP Host Membership Report message for each group.

Upon receiving a response from a host group, the Windows 2000 Routing and Remote Access service updates the IGMP interface group table with a new expiry time, and the existing entry for the host group remains in the IP multicast forwarding table. If no hosts respond to the query for the host group and the expiry time for the entry in the IGMP interface group table becomes 0, then IGMP removes the host group entry from the multicast forwarding table.

Table 4.1 summarizes the values of the source and destination IP addresses and the TTL in the IP header and the value of the Group Address in the IGMP header for the two different types of IGMP v1 messages.

Table 4.1 Addresses and TTLs Used for IGMP v1 Messages

Address

IGMP Host Membership Query

IGMP Host Membership Report

Source IP Address

[Router interface IP address]

[Host interface IP address]

Destination IP Address

224.0.0.1

[Group address]

TTL

1

1

Group Address

0.0.0.0

[Group address]

For more information, see Appendix I of RFC 1112.