Provided by Colasoft Co., Ltd.

IGMP ( Internet Group Management Protocol )

Home > Protocols > IGMP Update: 2006-01-12 17:40:49    I have words to say about this protocol
On this page
SUMMARY
Protocol : Internet Group Management Protocol
Protocol suite : TCP/IP
Layer : Network Layer
Type : Multicast protocol.
Latest Version : IGMPv3, IGMPv2, IGMPv1
Variant protocols : DVMRP, Distance Vector Multicast Routing Protocol.
IGAP, IGMP for user Authentication Protocol.
RGMP, Router-port Group Manage
SNMP MIBs : iso.org.dod.internet.mgmt.mib-2.igmpStdMIB (1.3.6.1.2.1.85)
Multicast addresses : 224.0.0.22
Working groups : IDMR, Inter-Domain Multicast Routing.
MAGMA, Multicast & Anycast Group Membership.
DESCRIPTION
The Internet Group Management Protocol (IGMP) is used by IPv4 systems (hosts and routers) to report their IP multicast group memberships to any neighboring multicast routers. Note that an IP multicast router may itself be a member of one or more multicast groups, in which case it performs both the "multicast router part" of the protocol (to collect the membership information needed by its multicast routing protocol) and the "group member part" of the protocol (to inform itself and other, neighboring multicast routers of its memberships).

IGMP is also used for other IP multicast management functions, using message types other than those used for group membership reporting. This document specifies only the group membership reporting functions and messages.

IGMP has three version: IGMP version 1, IGMP version 2 and IGMP version 3.
  • Version 1

  • Version 1 was the first widely-deployed version and the first version to become an Internet Standard.

  • Version 2

  • Version 2 added support for "low leave latency", that is, a reduction in the time it takes for a multicast router to learn that there are no longer any members of a particular group present on an attached network.

  • Version 3

  • Version 3 adds support for "source filtering", that is, the ability for a system to report interest in receiving packets only from specific source addresses, as required to support Source-Specific Multicast(SSM), or from all but specific source addresses, sent to a particular multicast address. Version 3 is designed to be interoperable with Versions 1 and 2.

    IGMPv3 supports applications that explicitly signal sources from which they want to receive traffic. With IGMPv3, receivers signal membership to a multicast host group in the following two modes:
    • INCLUDE mode

    • In this mode, the receiver announces membership to a host group and provides a list of IP addresses (the INCLUDE list) from which it wants to receive traffic.

    • EXCLUDE mode

    • In this mode, the receiver announces membership to a host group and provides a list of IP addresses (the EXCLUDE list) from which it does not want to receive traffic. This indicates that the host wants to receive traffic only from other sources whose IP addresses are not listed in the EXCLUDE list. To receive traffic from all sources, like in the case of the Internet Standard Multicast (ISM) service model, a host expresses EXCLUDE mode membership with an empty EXCLUDE list.


    Multicast Listener Discovery (MLD) is used in a similar way by IPv6 systems. MLD version 1 implements the functionality of IGMP version 2; MLD version 2 implements the functionality of IGMP version 3.


Within an IP system, there is (at least conceptually) a service interface used by upper-layer protocols or application programs to ask the IP layer to enable and disable reception of packets sent to specific IP multicast addresses. In order to take full advantage of the capabilities of IGMPv3, a system's IP service interface must support the following operation: IPMulticastListen (socket, interface, multicast-address, filter-mode, source-list)

For each socket on which IPMulticastListen has been invoked, the system records the desired multicast reception state for that socket. That state conceptually consists of a set of records of the form: (interface, multicast-address, filter-mode, source-list) In addition to the per-socket multicast reception state, a system must also maintain or compute multicast reception state for each of its interfaces. That state conceptually consists of a set of records of the form: (multicast-address, filter-mode, source-list) At most one record per multicast-address exists for a given interface.

After a multicast packet has been accepted from an interface by the IP layer, its subsequent delivery to the application or process listening on a particular socket depends on the multicast reception state of that socket [and possibly also on other conditions, such as what transport-layer port the socket is bound to].


Message Formats
IGMP messages are encapsulated in IPv4 datagrams, with an IP protocol number of 2. IGMP message types are registered by the IANA. There are two IGMP message types of concern to the IGMPv3 protocol:
Type Number (hex)

Message Name

0x11

Membership Query

0x22

Version 3 Membership Report


An implementation of IGMPv3 MUST also support the following three message types:

Type Number (hex)

Message Name

0x12

Version 1 Membership Report

0x16

Version 2 Membership Report

0x17

Version 2 Leave Group


Unrecognized message types MUST be silently ignored. Other message types may be used by newer versions or extensions of IGMP, by multicast routing protocols, or for other uses.

  • Membership Query Message

  • 8

    16

    32 bits

    Type

    Max Resp Code

    Checksum

    Resv

    S

    QRV

    QQIC

    Number of Sources

    Group address

    Source Address


    • 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.

      0x12

      Version 1 membership report. Provides compatibility with IGMPv1.

      0x13

      Distance Vector Multicast Routing Protocol

      0x14

      . PIMv1

      0x15

      Cisco Trace Messages.

      0x16

      IGMPv2 Membership Report.

      0x17

      Leave group

      0x1E

      Multicast Traceroute Response.

      0x1F

      Multicast Traceroute.

      0x22

      Version 3 membership report.

      0x24

      Multicast Router Advertisement.

      0x25

      Multicast Router Solicitation.

      0x26

      Multicast Router Termination.

      0xF0
      -
      0xFF

      Experimental.

    • Max Resp Code

    • The Max Resp Code field specifies the maximum time allowed before sending a responding report. 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.

      In a Reply message, the Code field specifies the outcome of the request.

      Code

      Description

      0

      Request granted.

      1

      Request denied, no resources.

      2

      Request denied, invalid code.

      3

      Request denied, invalid group address.

      4

      Request denied, invalid access key.

      5
      -
      255

      Request pending, retry in this many seconds.


    • Checksum

    • The Checksum is the 16-bit one's complement of the one's complement sum of the whole IGMP message (the entire IP payload). For computing the checksum, the Checksum field is set to zero. When receiving packets, the checksum MUST be verified before processing a packet.

    • 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.

    • Resv (Reserved)

    • The Resv field is set to zero on transmission, and ignored on reception.

    • S Flag (Suppress Router-Side Processing)

    • When set to one, the S Flag indicates to any receiving multicast routers that they are to suppress the normal timer updates they perform upon hearing a Query. It does not, however, suppress the querier election or the normal "host-side" processing of a Query that a router may be required to perform as a consequence of itself being a group member.

    • QRV (Querier's Robustness Variable)

    • If non-zero, the QRV field contains the [Robustness Variable] value used by the querier, i.e., the sender of the Query. If the querier's [Robustness Variable] exceeds 7, the maximum value of the QRV field, the QRV is set to zero. Routers adopt the QRV value from the most recently received Query as their own [Robustness Variable] value, unless that most recently received QRV was zero, in which case the receivers use the default [Robustness Variable] value specified in section 8.1 or a statically configured value.

    • QQIC (Querier's Query Interval Code)

    • The Querier's Query Interval Code field specifies the [Query Interval] used by the querier. Multicast routers that are not the current querier adopt the QQI value from the most recently received Query as their own [Query Interval] value, unless that most recently received QQI was zero, in which case the receiving routers use the default [Query Interval] value.

    • Number of Sources (N)

    • The Number of Sources (N) field specifies how many source addresses are present in the Query. This number is zero in a General Query or a Group-Specific Query, and non-zero in a Group-and-Source-Specific Query. This number is limited by the MTU of the network over which the Query is transmitted. For example, on an Ethernet with an MTU of 1500 octets, the IP header including the Router Alert option consumes 24 octets, and the IGMP fields up to including the Number of Sources (N) field consume 12 octets, leaving 1464 octets for source addresses, which limits the number of source addresses to 366 (1464/4).

    • Source Address

    • The Source Address [i] fields are a vector of n IP unicast addresses, where n is the value in the Number of Sources (N) field.


  • Version 3 Membership Report Message

  • Version 3 Membership Reports are sent by IP systems to report (to neighboring routers) the current multicast reception state, or changes in the multicast reception state, of their interfaces. Reports have the following format:

    8

    16

    32 bits

    Type = 0x22

    Reserved

    Checksum

    Reserved

    Number of Group Records (M)

    Group Record


    • Reserved

    • The Reserved fields are 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 (the entire IP payload). For computing the checksum, the Checksum field is set to zero. When receiving packets, the checksum MUST be verified before processing a message.
      Number of Group Records (M)
      The Number of Group Records (M) field specifies how many Group Records are present in this Report.

    • Group Record

    • Each Group Record is a block of fields containing information pertaining to the sender's membership in a single multicast group on the interface from which the Report is sent.


    Where each Group Record has the following internal format:

    8

    16

    32 bits

    Record Type

    Aux Data Len

    Number of Sources (N)

    Multicast Address

    Source Address

    Auxiliary Data


    • Aux Data Len

    • The Aux Data Len field contains the length of the Auxiliary Data field in this Group Record, in units of 32-bit words. It may contain zero, to indicate the absence of any auxiliary data.

    • Number of Sources (N)

    • The Number of Sources (N) field specifies how many source addresses are present in this Group Record.

    • Multicast Address

    • The Multicast Address field contains the IP multicast address to which this Group Record pertains.

    • Source Address

    • The Source Address fields are a vector of n IP unicast addresses, where n is the value in this record's Number of Sources (N) field.

    • Auxiliary Data

    • The Auxiliary Data field, if present, contains additional information pertaining to this Group Record. The protocol specified in this document, IGMPv3, does not define any auxiliary data. Therefore, implementations of IGMPv3 MUST NOT include any auxiliary data (i.e., MUST set the Aux Data Len field to zero) in any transmitted Group Record, and MUST ignore any auxiliary data present in any received Group Record. The semantics and internal encoding of the Auxiliary Data field are to be defined by any future version or extension of IGMP that uses this field.



Group Members
IGMP is an asymmetric protocol, specifying separate behaviors for group members -- that is, hosts or routers that wish to receive multicast packets -- and multicast routers. For interoperability with multicast routers running older versions of IGMP, systems maintain a MulticastRouterVersion variable for each interface on which multicast reception is supported.

There are two types of events that trigger IGMPv3 protocol actions on an interface:
  • A change of the interface reception state, caused by a local invocation of IPMulticastListen.

  • Reception of a Query.


Received IGMP messages of types other than Query are silently ignored, except as required for interoperation with earlier versions of IGMP.
  • Action on Change of Interface State

  • An invocation of IPMulticastListen may cause the multicast reception state of an interface to change. Each such change affects the per-interface entry for a single multicast address.

    Each time a source is included in the difference report calculated above, retransmission state for that source needs to be maintained until [Robustness Variable] State-Change reports have been sent by the host.

  • Action on Reception of a Query

  • When a system receives a Query, it does not respond immediately. Instead, it delays its response by a random amount of time, bounded by the Max Resp Time value derived from the Max Resp Code in the received Query message.

    A system may receive a variety of Queries on different interfaces and of different kinds (e.g., General Queries, Group-Specific Queries, and Group-and-Source-Specific Queries), each of which may require its own delayed response.

    Before scheduling a response to a Query, the system must first consider previously scheduled pending responses and in many cases schedule a combined response. Therefore, the system must be able to maintain the following state:
    • A timer per interface for scheduling responses to General Queries.

    • A per-group and interface timer for scheduling responses to Group- Specific and Group-and-Source-Specific Queries.

    • A per-group and interface list of sources to be reported in the response to a Group-and-Source-Specific Query.


  • Multicast Routers

  • The purpose of IGMP is to enable each multicast router to learn, for each of its directly attached networks, which multicast addresses are of interest to the systems attached to those networks. IGMP version 3 adds the capability for a multicast router to also learn which sources are of interest to neighboring systems, for packets sent to any particular multicast address. The information gathered by IGMP is provided to whichever multicast routing protocol is being used by the router, in order to ensure that multicast packets are delivered to all networks where there are interested receivers.

    • Conditions for IGMP Queries

    • Multicast routers send General Queries periodically to request group membership information from an attached network. These queries are used to build and refresh the group membership state of systems on attached networks. Systems respond to these queries by reporting their group membership state (and their desired set of sources) with Current-State Group Records in IGMPv3 Membership Reports.

    • IGMP State Maintained by Multicast Routers

    • Multicast routers implementing IGMPv3 keep state per group per attached network. This group state consists of a filter-mode, a list of sources, and various timers. For each attached network running IGMP, a multicast router records the desired reception state for that network.

    • IGMPv3 Source-Specific Forwarding Rules

    • When a multicast router receives a datagram from a source destined to a particular group, a decision has to be made whether to forward the datagram onto an attached network or not. The multicast routing protocol in use is in charge of this decision, and should use the IGMPv3 information to ensure that all sources/groups desired on a subnetwork are forwarded to that subnetwork. IGMPv3 information does not override multicast routing information; for example, if the IGMPv3 filter-mode group for G is EXCLUDE, a router may still forward packets for excluded sources to a transit subnet.

    • Action on Reception of Reports

    • When receiving Current-State Records, a router updates both its group and source timers. In some circumstances, the reception of a type of group record will cause the router filter-mode for that group to change.

      When a change in the global state of a group occurs in a system, the system sends either a Source-List-Change Record or a Filter-Mode-Change Record for that group. As with Current-State Records, routers must act upon these records and possibly change their own state to reflect the new desired membership state of the network.



Interoperation With Older Versions of IGMP
IGMP version 3 hosts and routers interoperate with hosts and routers that have not yet been upgraded to IGMPv3. This compatibility is maintained by hosts and routers taking appropriate actions depending on the versions of IGMP operating on hosts and routers within a network.
    Query Version Distinctions
    The IGMP version of a Membership Query message is determined as follows:
      IGMPv1 Query: length = 8 octets AND Max Resp Code field is zero
      IGMPv2 Query: length = 8 octets AND Max Resp Code field is non-zero
      IGMPv3 Query: length >= 12 octets


Top of Page

EXAMPLES
Example 1: QQIC


The actual interval, called the Querier's Query Interval (QQI), is represented in units
of seconds and is derived from the Querier's Query Interval Code as follows:
If QQIC < 128, QQI = QQIC
If QQIC >= 128, QQIC represents a floating-point value as follows:

0 1 2 3 4 5 6 7
+-+-+-+-+-+-+-+-+
|1| exp | mant |
+-+-+-+-+-+-+-+-+

QQI = (mant | 0x10) << (exp + 3)
Example 2: Configuration Examples


The following configuration example shows how to configure a router (running IGMPv3)
for SSM:

ip multicast-routing
!
interface Ethernet3/1
ip address 172.21.200.203 255.255.255.0
ip pim sparse-dense-mode
ip igmp version 3
!
interface Ethernet3/2
ip address 131.108.1.2 255.255.255.0
ip pim sparse-dense-mode
ip igmp version 3
!
ip pim ssm default
Example 3: Command


The following is sample output from the show ip igmp groups command:

Router# show ip igmp groups
IGMP Connected Group Membership

Group Address Interface Uptime Expires Last Reporter
239.255.255.254 Ethernet3/1 1w0d 00:02:19 172.21.200.159
224.0.1.40 Ethernet3/1 1w0d 00:02:15 172.21.200.1
224.0.1.40 Ethernet3/3 1w0d never 171.69.214.251
224.0.1.1 Ethernet3/1 1w0d 00:02:11 172.21.200.11
224.9.9.2 Ethernet3/1 1w0d 00:02:10 172.21.200.155
232.1.1.1 Ethernet3/1 5d21h stopped 172.21.200.206
Example 4: Command


The following is sample output from the show ip igmp groups command with the
group-address argument and detail keyword:

Router# show ip igmp groups 232.1.1.1 detail
Interface: Ethernet3/2
Group: 232.1.1.1
Uptime: 01:58:28
Group mode: INCLUDE
Last reporter: 10.0.119.133
CSR Grp Exp: 00:02:38
Group source list: (C - Cisco Src Report, U - URD, R - Remote)
Source Address Uptime v3 Exp CSR Exp Fwd Flags
171.69.214.1 01:58:28 stopped 00:02:31 Yes C

Top of Page


PROTOCOL RELATIONS
Parent layer
Child layer
IP
IGMP
IGAP
RGMP
Top of Page

GLOSSARY
ISM
ISM is abbreviation of Internet Standard Multicast. There are two kinds of multicast-enabled networks available. The first is based on the original multicast service model. This model is known by a number of names including Internet Standard Multicast (ISM), Internet Traditional Multicast (ITM), Deering multicast, etc.

MLD
MLD (Multicast Listener Discovery Protocol) is used by IPv6 routers to discover the presence of multicast listeners on their directly attached links, and to discover specifically which multicast addresses are of interest to those neighboring nodes.

SSM
SSM (Source Specific Multicast) feature is an extension of IP multicast where datagram traffic is forwarded to receivers from only those multicast sources to which the receivers have explicitly joined.

An SSM destination address range already exists for IPv6. A source S transmits IP datagrams to an SSM destination address G. A receiver can receive these datagrams by subscribing to the channel (Source, Group) or (S,G).

Top of Page

REFERENCES
Related links:
                IGMP type numbers
RFCs:
[RFC 1112] Host Extensions for IP Multicasting.
                Defines IGMP version 1.
                Obsoletes: RFC 988, RFC 1054.
[RFC 1122] Requirements for Internet Hosts -- Communication Layers.
[RFC 1812] Requirements for IP Version 4 Routers.
                Obsoletes: RFC 1009, RFC 1716.
[RFC 2715] Interoperability Rules for Multicast Routing Protocols.
[RFC 2933] Internet Group Management Protocol MIB.
                Defines SNMP MIB iso.org.dod.internet.mgmt.mib-2.igmpStdMIB (1.3.6.1.2.1.85).
[RFC 3228] IANA Considerations for IPv4 Internet Group Management Protocol (IGMP).
[RFC 3376] Internet Group Management Protocol, Version 3.
                Defines IGMP version 3.
                Obsoletes: RFC 2236.
Obsolete RFCs:
[RFC 966] Host Groups: A Multicast Extension to the Internet Protocol.
                Obsoleted by: RFC 988.
[RFC 988] Host Extensions for IP Multicasting.
                Obsoleted by: RFC 1054, RFC 1112.
                Defines IGMP version 0.
                Obsoletes: RFC 966.
[RFC 1009] Requirements for Internet Gateways.
                Obsoleted by: RFC 1812.
[RFC 1054] Host Extensions for IP Multicasting.
                Obsoleted by: RFC 1112.
                Obsoletes: RFC 988.
[RFC 1716] Towards Requirements for IP Routers.
                Obsoleted by: RFC 1812.
[RFC 2236] Internet Group Management Protocol, Version 2.
                Obsoleted by: RFC 3376.
                Defines IGMP version 2.
                


Top of Page

OTHER PROTOCOLS OF TCP/IP SUITE
AARP   RRP   RTP Video   RTP Audio   RTP   COPS   Gopher   HSRP   ICP   MPLS   IEEE 802.2   CIP   FTP - Data   FTP - Ctrl   IMAPS   IP Fragment   LDAPS   PUP   MSSQL   RSH   SQL   POP3s   RTELNET   RSVP   STP   VLAN   MSN   H.323   MSRDP   HTTPS   WINS   LPD   GTP   ICMPv6   POP   TELNET   H.225   VRRP   PIM   RARP   SAP   OSPF   RLOGIN   SCTP   SIP   RTCP   PPPoE   Mobile IP   IMAP3   WhoIs   SLP   NCP   PPTP   MGCP   LDAP   L2TP   Kerberos   IPv6   GRE   Ethernet SNAP   AFP   CIFS   IEEE 802.3   Finger   NBDGM   NetBEUI   NBSSN   ESP   EIGRP   EGP   DHCP   CGMP   CDP   BOOTP   AH   NBNS   EthernetII   ICQ   PPP   ARP   RIP   IPX   IGRP   IGMP   SSH   RPC   NetBIOS   TFTP   SNMP   SNA   SMB   RADIUS   NTP   NNTP   UDP   TCP   BGP   DNS   SOCKS   IMAP   RTSP   NFS   ICMP   IP   FTP   Telnet   POP3   SMTP   HTTP  
Search RFCs:

Advanced Search
Search Glossary:
Exact search
Fuzzy search


All Protocols
Submit a Request

Recommend an Article

 Layer 7 Application Layer
  AFP
  BOOTP
  CIFS
  CIP
  COPS
  DHCP
  DNS
  Finger
  FTP
  FTP - Ctrl
  FTP - Data
  Gopher
  HSRP
  HTTP
  HTTPS
  ICP
  ICQ
  IMAP
  IMAP3
  IMAPS
  Kerberos
  LPD
  MGCP
  MSN
  MSRDP
  MSSQL
  NCP
  NFS
  NNTP
  NTP
  POP
  POP3
  POP3s
  RADIUS
  RLOGIN
  RRP
  RSH
  RTCP
  RTELNET
  RTP
  RTP Audio
  RTP Video
  RTSP
  SAP
  SIP
  SLP
  SMB
  SMTP
  SNA
  SNMP
  SOCKS
  SSH
  Telnet
  TELNET
  TFTP
  WhoIs
  WINS
 Layer 6 Presentation Layer
  NBNS
  NBSSN
  NCP
  NetBIOS
 Layer 5 Session Layer
  LDAP
  LDAPS
  NCP
  NetBEUI
  RPC
 Layer 4 Transport Layer
  H.225
  H.323
  NBDGM
  NetBEUI
  PUP
  SCTP
  TCP
  UDP
 Layer 3 Network Layer
  AARP
  AH
  BGP
  EGP
  EIGRP
  ESP
  GRE
  GTP
  ICMP
  ICMPv6
  IGMP
  IGRP
  IP
  IP Fragment
  IPv6
  IPX
  Mobile IP
  MPLS
  OSPF
  PIM
  PPPoE
  RIP
  RSVP
  STP
  VRRP
 Layer 2 Data Link Layer
  ARP
  CDP
  CGMP
  Ethernet SNAP
  EthernetII
  IEEE 802.2
  IEEE 802.3
  L2TP
  PPP
  PPTP
  RARP
  SQL
  VLAN
 Layer 1 Physical Layer
© 2006 - 2007 Colasoft Co., Ltd. All rights reserved.