What is the Internet Group Management Protocol (IGMP)?
The Internet Group Management Protocol (IGMP) is a protocol that allows several devices to share one IP address so they can all receive the same data. IGMP is a network layer protocol used to set up multicasting on networks that use the Internet Protocol version 4 (IPv4). Specifically, IGMP allows devices to join a multicasting group.
What is multicasting?
Multicasting is when a group of devices all receive the same messages or packets. Multicasting works by sharing an IP address between multiple devices. Any network traffic directed at that IP address will reach all devices that share the IP address, instead of just one device. This is much like when a group of employees all receive company emails directed at a certain email alias.
How does IGMP work?
Computers and other devices connected to a network use IGMP when they want to join a multicast group. A router that supports IGMP listens to IGMP transmissions from devices in order to figure out which devices belong to which multicast groups.
IGMP uses IP addresses that are set aside for multicasting. Multicast IP addresses are in the range between 126.96.36.199 and 188.8.131.52. (In contrast, anycast networks can use any regular IP address.) Each multicast group shares one of these IP addresses. When a router receives a series of packets directed at the shared IP address, it will duplicate those packets, sending copies to all members of the multicast group.
IGMP multicast groups can change at any time. A device can send an IGMP "join group" or "leave group" message at any point.
What types of IGMP messages are there?
The IGMP protocol allows for several kinds of IGMP messages:
- Membership reports: Devices send these to a multicast router in order to become a member of a multicast group.
- "Leave group" messages: These messages go from a device to a router and allow devices to leave a multicast group.
- General membership queries: A multicast-capable router sends out these messages to the entire connected network of devices to update multicast group membership for all groups on the network.
- Group-specific membership queries: Routers send these messages to a specific multicast group, instead of the entire network.
What is IGMP snooping?
IGMP is a network layer protocol, and only networking devices that are aware of the network layer can send and receive messages. A router operates at the network layer, while a network switch may only be aware of layer 2, also known as the data link layer. As a result, a switch may be unaware of which network devices are part of multicast groups, and which are not. It may end up forwarding multicast traffic to devices that do not need it, which takes up network bandwidth and device processing power, slowing the entire network down.
IGMP snooping solves for this issue by enabling switches to "snoop" on IGMP messages. Ordinarily, a layer 2 switch would not be aware of IGMP messages, but they can listen in to these via IGMP snooping. This enables them to identify where multicast messages should be forwarded, so that only the correct devices receive multicast traffic.
How is multicasting different in IPv4 and IPv6?
IPv4 and IPv6 are two different versions of the Internet Protocol (IP). IPv6 is more modern, but IPv4 is still in wide use. In IPv6, Multicast Listener Discovery (MLD) is the protocol for multicasting, not IGMP.
How is multicasting different from anycast and unicast?
Multicast vs. anycast
Anycast is another technology that enables network communications to go to multiple places. Similar to multicast, an anycast network allows the same group of servers to share one or more IP addresses. However, instead of all servers receiving all traffic to those IP addresses, the network routes traffic to one of those servers based on a predetermined set of criteria. Anycast networks can also support a wider range of IP addresses than multicast groups. As an example, the Cloudflare network uses anycast to route all user traffic to the closest data center.
Multicast vs. unicast
"Unicast" describes how most of the Internet works. In unicast networks, every connected device on the network has a unique address. Messages directed at that address (on the Internet, an IP address) only go to that device — rather than to multiple devices, as in multicasting.