< Home

Changes in IGMPv3

IGMPv3 was developed to support the source-specific multicast (SSM) model. IGMPv3 messages can contain multicast source information so that hosts can receive data sent from a specific source to a specific group.

IGMPv3 Messages

IGMPv3 differs from IGMPv2 in the following ways:

  • Unlike IGMPv2, IGMPv3 does not define a Leave message. Group members send Report messages of a specified type to notify multicast routers that they have left a group.
  • In addition to General Query and Group-Specific Query messages, IGMPv3 defines another Query message type: Group-and-Source-Specific Query. A querier sends a Group-and-Source-Specific Query message to members of a specific group on a shared network segment, to check whether the group members want data from specific sources. A Group-and-Source-Specific Query message can carry one or more multicast source addresses.
  • A Membership Report message contains the group that a host wants to join and the multicast sources from which the host wants to receive data. IGMPv3 supports source filtering and defines two filter modes: INCLUDE and EXCLUDE. Group-source mappings are represented by (G, INCLUDE, (S1, S2...)) or (G, EXCLUDE, (S1, S2...)). INCLUDE indicates that a host only wants to receive data sent from the listed multicast sources to group G. EXCLUD indicates that a host wants to receive data sent from all multicast sources except the listed ones to group G. When group-source mappings change, hosts add these changes to the Group Record fields in IGMPv3 Report messages and send IGMPv3 Report messages to the IGMP querier on the local network segment.
  • An IGMPv3 Report message can carry multiple groups, whereas an IGMPv1 or IGMPv2 Report message can carry only one group. IGMPv3 greatly reduces the number of messages transmitted on a network.

Figure 1 shows the IGMPv3 Query message format, and Table 1 describes message fields.

Figure 1 IGMPv3 Query message format
Table 1 Fields in an IGMPv3 Query message

Field

Description

Type

In IGMPv3 Query messages, this field is set to 0x11.

Max Response Code

Maximum response time. After receiving a General Query message, hosts must respond with a Report message within the maximum response time.

Checksum

The checksum is 16 bits long. It is the one's complement of the one's complement sum of the whole IGMP message (the entire IP payload). When computing the checksum, a device initially sets the checksum field to 0. The sender computes the checksum and inserts it into this field. The receiver verifies the checksum before processing the message.

Group Address

The group address is set differently in different Query messages:

  • In a General Query message, this field is set to 0.
  • In a Group-Specific Query or Group-and-Source-Specific Query message, this field is set to the address of the queried group.

Resv

Reserved field. This field is set to 0 by the sender and is ignored by the receiver.

S

Suppress router-side processing. When this flag is set to 1, routers receiving the Query message suppress timer updates, but do not suppress the querier election or normal host-side processing.

QRV

Querier's robustness variable. A non-0 value indicates the robustness variable of the querier. This field is set to 0 if the robustness variable of the querier exceeds 7. When a router receives a Query message and finds that the QRV field is not 0, the router sets its robustness variable to the value of the QRV field. If the QRV field is 0, the router ignores this field.

QQIC

Querier's query interval code, expressed in seconds. When a non-querier receives a Query message and finds that the QQIC field is not 0, the non-querier sets its query interval to the value of the QQIC field. If the QQIC field is 0, the non-querier ignores this field.

Number of Sources

In a General Query or Group-Specific Query message, this field is set to 0. In a Group-and-Source-Specific Query message, this field is a non-zero integer. The number is limited by the MTU of the network over which the Query message is transmitted.

Source Address

The value of this field is limited by the value of the Number of Sources field.

Figure 2 shows the IGMPv3 Membership Report message format, and Table 2 describe the message fields.

Figure 2 IGMPv3 Membership Report message format
Table 2 Fields in an IGMPv3 Membership Report message

Field

Description

Type

In IGMPv3 Membership Report messages, this field is set to 0x22.

Reserved

This field is set to 0 by the sender and is ignored by the receiver.

Checksum

The checksum is 16 bits long. It is the one's complement of the one's complement sum of the whole IGMP message (the entire IP payload). When computing the checksum, a device initially sets the checksum field to 0. The sender computes the checksum and inserts it into this field. The receiver verifies the checksum before processing the message.

Number of Group Records

Number of group records in the message.

Group Record

Group information in the message. Figure 3 shows the format of a group record, and Table 3 describes the fields in a group record.

Figure 3 Group record format
Table 3 Fields in a group record

Field

Description

Record Type

The three group record type options are:
  • Current-State Record: sent by a host in response to a Query message to report the current state. This record type is one of the following two values:

    1. MODE_IS_INCLUDE: indicates that the host wants to receive multicast data sent from the listed source addresses to the specified multicast group address. The Report message is invalid if the source list is empty.

    2. MODE_IS_EXCLUDE: indicates that the host does not want to receive multicast data sent from the listed source addresses to the specified multicast group address.

  • Filter-Mode-Change Record: sent by a host when the filter mode changes. This record type is one of the following two values:

    1. CHANGE_TO_INCLUDE_MODE: indicates that the filter mode has changed from EXCLUDE to INCLUDE. The host wants to receive multicast data sent from the new sources in the Source Address fields to the specified multicast group address. If the source list is empty, the host will leave the group.

    2. CHANGE_TO_EXCLUDE_MODE: indicates that the filter mode has changed from INCLUDE to EXCLUDE. The host rejects multicast data sent from the new sources in the Source Address fields to the specified multicast group address.

  • Source-List-Change Record: sent by a host when the source list changes. This record type is one of the following two values:

    1. ALLOW_NEW_SOURCES: indicates that the Source Address fields in this group record contain additional sources from which the host wants to receive multicast data, sent to the specified multicast group address. If the filter mode is INCLUDE, the sources in the Source Address fields are added to the source list. If the filter mode is EXCLUDE, the sources in the Source Address fields are deleted from the source list.

    2. BLOCK_OLD_SOURCES: indicates that the Source Address fields in this group record contain the sources from which the host no longer wants to receive multicast data. If the filter mode is INCLUDE, the sources in the Source Address fields are deleted from the source list. If the filter mode is EXCLUDE, the sources in the Source Address fields are added to the source list.

Aux Data Len

Length of the Auxiliary Data field. IGMPv3 Report messages do not contain auxiliary data, so this field is set to 0.

Number of Sources

Number of source addresses in this group record.

Multicast Address

Address of a multicast group.

Sources Address

Address of a multicast source.

Auxiliary Data

Additional information in this group record. This field is reserved for IGMP extensions or later IGMP versions, and is not included in IGMPv3 Report messages.

How IGMPv3 Works

IGMPv3 differs from IGMPv2 and IGMPv3 in that it allows hosts to select specific multicast sources.

Joining a specific source and group

IGMPv3 Report messages have a destination address of 224.0.0.22, which represents all IGMPv3-capable multicast routers on the same network segment. A Report message contains Group Record fields, allowing hosts to specify the multicast sources from which they do or do not want to receive data when joining a multicast group. Figure 4 shows two multicast sources, S1 and S2, sending data to multicast group G. The host only wants to receive data sent from S1 to G.

Figure 4 IGMPv3 source-and-group-specific multicast data flow

If IGMPv1 or IGMPv2 is running between the host and the routers, the host cannot select multicast sources when it joins group G. The host receives data from both S1 and S2, regardless of whether it requires the data. If IGMPv3 is running between the host and the routers, the host can choose to receive only data from S1 using either of the following methods:

  • Send an IGMPv3 Report (G, INCLUDE, (S1)), requesting to receive only the data sent from S1 to G.
  • Send an IGMPv3 Report (G, EXCLUDE, (S2)), notifying the upstream router that it does not want to receive data from S2. Only data sent from S1 is then forwarded to the host.

Group-and-Source-Specific Query

When an IGMP querier receives a Report message with Filter-Mode-Change Records or Source-List-Change Records (such as CHANGE_TO_INCLUDE_MODE or CHANGE_TO_EXCLUDE_MODE), it sends a Group-and-Source-Specific Query message. If members want to receive data from any source in the source list, they send Report messages. The IGMP querier updates the source list of the corresponding group according to the received Report messages.

Copyright © Huawei Technologies Co., Ltd.
Copyright © Huawei Technologies Co., Ltd.
< Previous topic Next topic >