The Internet Group Management Protocol (IGMP) is a
communications protocol
A communication protocol is a system of rules that allows two or more entities of a communications system to transmit information via any variation of a physical quantity. The protocol defines the rules, syntax, semantics (computer science), sem ...
used by
hosts and adjacent
routers on
IPv4 networks to establish multicast group memberships. IGMP is an integral part of
IP multicast
IP multicast is a method of sending Internet Protocol (IP) datagrams to a group of interested receivers in a single transmission. It is the IP-specific form of multicast and is used for streaming media and other network applications. It uses speci ...
and allows the network to direct multicast transmissions only to hosts that have requested them.
IGMP can be used for one-to-many networking applications such as online
streaming video
Video on demand (VOD) is a media distribution system that allows users to access videos, television shows and films digitally on request. These multimedia are accessed without a traditional video playback device and a typical static broadcasting ...
and
gaming, and allows more efficient use of resources when supporting these types of applications.
IGMP is used on
IPv4
Internet Protocol version 4 (IPv4) is the first version of the Internet Protocol (IP) as a standalone specification. It is one of the core protocols of standards-based internetworking methods in the Internet and other packet-switched networks. ...
networks. Multicast management on
IPv6
Internet Protocol version 6 (IPv6) is the most recent version of the Internet Protocol (IP), the communication protocol, communications protocol that provides an identification and location system for computers on networks and routes traffic ...
networks is handled by
Multicast Listener Discovery (MLD) which is a part of
ICMPv6
Internet Control Message Protocol version 6 (ICMPv6) is the implementation of the Internet Control Message Protocol (ICMP) for Internet Protocol version 6 (IPv6). ICMPv6 is an integral part of IPv6 and performs error reporting and diagnostic fu ...
in contrast to IGMP's bare IP encapsulation.
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.
Switches featuring
IGMP snooping also derive useful information by observing these IGMP transactions.
Protocol Independent Multicast
image:IGMP basic architecture.png, 400px, Example of a multicast network architecture
Protocol-Independent Multicast (PIM) is a family of multicast routing protocols for Internet Protocol (IP) networks that provide Point-to-multipoint communicatio ...
(PIM) is then used between the local and remote multicast routers to direct multicast traffic from hosts sending multicasts to hosts that have registered through IGMP to receive them.
IGMP operates on the
network layer
In the seven-layer OSI model of computer networking, the network layer is layer 3. The network layer is responsible for packet forwarding including routing through intermediate Router (computing), routers.
Functions
The network layer provides t ...
(layer 3), just the same as other network management protocols like
ICMP.
The IGMP protocol is implemented on hosts and within
routers. A host requests membership to a group through its local router while a router listens for these requests and periodically sends out subscription queries. A single router per subnet is elected to perform this querying function. Some
multilayer switches include an IGMP querier capability to allow their IGMP snooping features to work in the absence of an IGMP-capable router in the layer 2 network.
IGMP is vulnerable to some attacks, and firewalls commonly allow the user to disable it if not needed.
Versions
There are three versions of IGMP.
IGMPv1 was defined in 1989. IGMPv2, defined in 1997, improves IGMPv1 by adding the ability for a host to signal a desire to leave a multicast group.
In 2002, IGMPv3 improved IGMPv2 by supporting
source-specific multicast and introduces membership report aggregation. The support for source-specific multicast was improved in 2006.
The three versions of IGMP are backward compatible. A router supporting IGMPv3 can support clients running IGMPv1, IGMPv2, and IGMPv3. IGMPv1 uses a query-response model. Queries are sent to . 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 . 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 .
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
The Internet Control Message Protocol (ICMP) is a supporting protocol in the Internet protocol suite. It is used by network devices, including routers, to send error messages and operational information indicating success or failure when com ...
, there is no
transport layer
In computer networking, the transport layer is a conceptual division of methods in the layered architecture of protocols in the network stack in the Internet protocol suite and the OSI model. The protocols of this layer provide end-to-end c ...
used with IGMP messaging.
IGMPv2 messages
;
:
;
;
;
:The message is sent to the following IP
multicast addresses:
:
IGMPv3 membership query
;
;
;
;
;
;
;
;
;
;
Implementations
FreeBSD
FreeBSD is a free-software Unix-like operating system descended from the Berkeley Software Distribution (BSD). The first version was released in 1993 developed from 386BSD, one of the first fully functional and free Unix clones on affordable ...
,
[IGMPv3 was added to FreeBSD in version 8.0.] Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
[IGMPv3 was added in the Linux 2.5 kernel series.] and
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
all support IGMP on the host side.
See also
*
Internet Group Management Protocol with Access Control
Notes
References
{{Authority control
Internet protocols
Internet Standards
Internet layer protocols
Network layer protocols