Architecture
A network designed to deliver a multicast service using IGMP might use this basic architecture: IGMP operates between a host and a local multicast router.Versions
There are three versions of IGMP. IGMPv1 is defined by , IGMPv2 is defined by and IGMPv3 was initially defined by . updates both IGMPv3 and MLDv2 to better support source-specific multicast. IGMPv2 improves IGMPv1 by adding the ability for a host to signal desire to leave a multicast group. IGMPv3 improves IGMPv2 by supporting source-specific multicast and introduces membership report aggregation. These versions are backwards compatible. A router supporting IGMPv3 can support clients running IGMPv1, IGMPv2 and IGMPv3. IGMPv1 uses a query-response model. Queries are sent to 224.0.0.1. Membership reports are sent to the group's multicast address. IGMPv2 accelerates the process of leaving a group and adjusts other timeouts. Leave-group messages are sent to 224.0.0.2. A group-specific query is introduced. Group-specific queries are sent to the group's multicast address. A means for routers to select an IGMP querier for the network is introduced. IGMPv3 introduces source-specific multicast capability. Membership reports are sent to 224.0.0.22.Messages
There are several types of IGMP messages: ;General membership queries :Sent by multicast routers to determine which multicast addresses are of interest to systems attached to the network(s) they serve to refresh the group membership state for all systems on its network. ;Group-specific membership queries :Used for determining the reception state for a particular multicast address ;Group-and-source-specific queries :Allow the router to determine if any systems desire reception of messages sent to a multicast group from a source address specified in a list of unicast addresses ;Membership reports :Sent by multicast receivers in response to a membership query or asynchronously when first registering for a multicast group ;Leave group messages :Sent by multicast receivers when specified multicast transmissions are no longer needed at the receiver IGMP messages are carried in bare IP packets with IP protocol number 2. Similar to the Internet Control Message Protocol, there is noIGMPv2 messages
Where: ; Type : Indicates the message type as follows : ; Max Resp Time : Specifies the required responsiveness of replies to a Membership Query (0x11). This field is meaningful only in Membership Query; in other messages it is set to 0 and ignored by the receiver. The field specifies time in units of 0.1 second (a field value of 10 specifies 1 second). Larger values reduce IGMP traffic burstiness and smaller values improve protocol responsiveness when the last host leaves a group. ; Group Address : This is the multicast address being queried when sending a Group-Specific or Group-and-Source-Specific Query. The field is zeroed when sending a General Query. The message is sent using the following IP destination addresses:IGMPv3 membership query
Where: ; Max Resp Code : This field specifies the maximum time (in 1/10 second increments) allowed before sending a responding report. If the number is below 128, the value is used directly. If the value is 128 or more, it is interpreted as an exponent and mantissa. ; Checksum : This is the 16-bit one's complement of the one's complement sum of the entire IGMP message. ; Group Address : This is the multicast address being queried when sending a Group-Specific or Group-and-Source-Specific Query. The field is zeroed when sending a General Query. ; Resv : This field is reserved. It should be zeroed when sent and ignored when received. ; S (Suppress Router-side Processing) Flag : When this flag is set, it indicates to receiving routers that they are to suppress the normal timer updates. ; QRV (Querier's Robustness Variable) : If this is non-zero, it contains the Robustness Variable value used by the sender of the query. Routers should update their Robustness Variable to match the most recently received query unless the value is zero. ; QQIC (Querier's Query Interval Code) : This code is used to specify the Query Interval value (in seconds) used by the querier. If the number is below 128, the value is used directly. If the value is 128 or more, it is interpreted as an exponent and mantissa. ; Number of Sources (N) : This field specifies the number of source addresses present in the query. For General and Group-Specific Queries, this value is zero. For Group-and-Source-Specific Queries, this value is non-zero, but limited by the network's MTU. ; Source Address : The Source Address fields are a vector of n IP unicast addresses, where n is the value in the Number of Sources (N) field.Implementations
The FreeBSD,IGMPv3 was added to FreeBSD in version 8.0.See also
* Internet Group Management Protocol with Access ControlNotes
References
{{Authority control Internet protocols Internet Standards Internet layer protocols Network layer protocols