Introduction

Internet Group Management Protocol (IGMP) is a TCP/IP network layer protocol used for informing routers of the availability of multicast groups on the network.

Figure 1. Multicast Distribution Tree


Multicast routing protocols are used to construct a multicast tree along which multicast data can be sent from the first-hop router to each multicast receiver avoiding users or network branches that do not need the data. In the figure above, R1 is a first-hop router, and R4, R5, and R6 last-hop routers. Multicast receivers and the routers directly connected to them (last-hop routers) constitute the third module. A multicast receiver, such as a PC that received live multimedia content is a member of a multicast group —a group of hosts who require the same content. In this figure, PC 1, PC 2, PC 3 are hosts / receivers.

IGMP is used by the last-hop routers to learn whether multicast receivers exist on the attached network segments and to maintain member relationships. IGMP is used by hosts to send Membership Report messages when they want to receive the data of multicast groups. The components in the tree modules collaborate with each other to ensure the normal working of a multicast network.

By becoming a member of a group, a multicast receiver (host) expresses int interest in receiving the data destined for the multicast address of the group. A multicast IP address can only be a destination address not a source address. Data packets destined for multicast group address can be received only by hosts that have joined the group.

To join a multicast group, a host must report its request for membership to nearby routers. These routers periodically poll the hosts in their locally attached networks to check on their membership status. When a host first joins a multicast group, it sends an IGMP message (Host Membership Query message) that is directed to a specific multicast address. The Internet Assigned Numbers Authority (IANA) has assigned that all IP multicast group addresses should fall in the range from 224.0.0.0 through 239.255.255.255. IGMP version 1 uses 224.0.0.1 as a general query address.

The routers poll the hosts regularly by sending Host Membership Query messages to determine whether any of them are still members of that group. If no hosts on the network belong to that group any longer, the router stops advertising the information to other routers so that multicast messages directed to that group are no longer forwarded to it.

IGMP messages

IGMP messages are encapsulated in IP datagrams. To indicate an IGMP packet, the IP header contains a protocol number of 2. For IGMP version 2 (defined by RFC 2236), the IP data field contains the 8-octet IGMP message shown in the figure below.

Figure 2. IGMP Message Format


The fields in the IGMP message contain the following information:

IGMPv3 messages

TheIGMPv2 message format has been extended in IGMP version 3, defined in RFC 3376 (which obsoletes RFC 2236). Version 3 allows receivers to subscribe to or exclude a specific set of sources within a multicast group. To accommodate this, the 0 x 11 type membership query packet has been altered to 0 x 22. However, all IGMPv3 implementation still supports packet types 0 x 12, 0 x 16, and 0 x 17.

Figure 3. IGMPv3 Membership Query Message Format (0 x 11)


The fields in the IGMP v3 message contain the following information: This set of fields are a vector of NIP unicast addresses, where the value N corresponds to the Number or Sources (N) field.

When a router receives an IGMP message from a host on an attached network segment, the router learns that a multicast group resides on that segment and starts forwarding multicast traffic to the interface attached to it.

Types of IGMPv2 Messages

There are 5 types of IGMPv2 messages:

IGMPv2 Querier

On a LAN with multiple multicast routers, it would be very inefficient for all those routers to send their own IGMP queries. Instead, the interface of one router is selected as the IGMP queries for that LAN. In IGMPv2, routers check the source address of the General Query messages send by other routers to determine their role. Any router that sees a General Query with a lower source address than its own acts as a non-querier, and in this way the router whose IP address is lowest becomes the IGMP querier.

Afterward, if routers do not receive a query message from the querier within the Other Querier Present Interval (125 seconds by default), they determine that the querier has gone down, and a new querier is selected using the same process. Once IGMP is enabled on the first-hop router R1, the router will begin sending periodically general queries to this network segment. When the hosts PC 1 an PC 3 receive these queries, the report delay timer on each host is started at a number chosen uniformly between 0 and the value of the maximum response time included in the query (10 seconds by default). This timer counts down to 0, at which points the host sends a Membership Report message.

IGMPv2 Leave Group Process (Scenario 1)

  1. If the host PC1 wants to leave group 224.1.1.1, it sends a Leave Group message to 224.0.0.2.
  2. The first-hop router R1 (theIGMPv2 Querier) responds to this message with two Group-Specific Queries (at a 1 second interval) to determine whether the network segment still contains any 224.1.1.1 members.
  3. If the other host PC3 has not left the group, it responds with a Membership Report. R1 continues forwarding traffic to the group.

IGMPv2 Leave Group Process (Scenario 2)

  1. If host PC1 wants to leave group 224.2.2.2, so it sends a Leave Group message.
  2. The first-hop router R1 (theIGMPv2 Querier) responds to this message with two Group-Specific Queries (at a 1 second interval). There are no 224.2.2.2 members on the segment, so R1 does not receive a response.
  3. Shortly thereafter, R1 decides that there are no 224.2.2.2 members remaining and stops forwarding that group multicast traffic to the segment.

Multicast Routing Table

A multicast packet is sent to a group of hosts. The multicast routers are responsible for sending the packet to all hosts that require the data. Each multicast router maintain a multicast routing table for ensuring correct data forwarding from upstream node to downstream node. A multicast routing protocol must determine upstream interface closer to data sources.

This chapter describes the purpose and scope of the document and general configurations used in this document.