IETF RFC
1112 1989-08http://www.cis.ohio-state.edu/htbin/rfc/rfc1112.html
RFC2236 http://www.cis.ohio-state.edu/htbin/rfc/rfc2236.html
Internet Draft
The Internet Group Management Protocol (IGMP)
is used by IP hosts to report their host group memberships to
any immediately neighboring multicast routers. IGMP is
a integral part of IP. It must be implemented by all hosts
conforming to level 2 of the IP multicasting specification.
IGMP messages are encapsulated in IP datagrams, with an
IP protocol number of 2.Version 3 of IGMP adds support
for source filtering. This indicates the ability for a
system to report interest in receiving packets;only from
specific source addresses, or from all but specific source
addresses, sent to a particular multicast address.
The format of the IGMP packet is shown in the following
illustration:
8
|
16
|
32 bits
|
Type
|
Max response
time |
Checksum
|
Group address
|
||
IGMP
packet structure
|
Version
The protocol version.
Type
The message type:
0x11 | Membership query. There are 2 sub-types of membership queries, general query and group-specific query. |
0x16 | Version 2 membership report. |
0x17 | Leave group. |
0x12 | Version 1 membership report. Provides compatibility with IGMPv1. |
0x22 | Version 3 membership report. |
Max Response Time
Used only in Membership query messages. Specifies the
maximum time allowed before sending a responding report
in units of 1/10 second. In all other messages, it is
set to 0 by the sender and ignored by the receiver.
Checksum
The checksum.
Group Address
In a Membership query message, The Group address is set
to 0 when sending a general query. It is set to the group
address being queried, when sending a group specific query
or group-and-source-specific query. In a membership report
of a leave group message, it holds the IP multicast group
address of the group being reported or left.
IGMP Version Membership
Report Messages
IGMP Version Membership Report messages have the following
format:
8 | 16 | 32 bits | |
Type | Reserved | Checksum | |
Reserved | Number of group record | ||
Group record | |||
Group record | |||
Group record | |||
Group record |
Type
The Type field has a value of 21.
Reserved.
Set to zero on transmission, and ignored on reception.
Checksum
The Checksum is the 16-bit one's complement of the one's
complement sum of the whole IGMP message.
Number of Group Records
(M)
The number of Group records present in this report.
Group Record
A block of fields containing information about the sender's
membership in a single multicast group, on the interface
from which the report is sent.
Group Record Type
There are a number of different types of Group Records
that may be included in a Report message:
Current-State Record, which has the following record types:
1. Include mode
2. Exclude mode
Filter-Mode-Change Record, which has the following two
record types:
3. Change to Include Mode
4. Change to Exclude Mode
Source-List-Change Record, which has the following two
record types:
5. Allow New Sources
6. Block Old Sources