IGMP has evolved from the Host Membership Protocol. IGMP messages are sent in IP datagrams with IP protocol number 2, with the IP Time-to-Live (TTL) field set to 1. IGMP packets pass only over a LAN and are not forwarded by routers, because of their TTL field values.
The two most important goals of IGMP are as follows:
- To inform a local multicast router that a host wants to receive multicast traffic for a specific group
- To inform local multicast routers that a host wants to leave a multicast group (in other words, the host is no longer interested in receiving the multicast group traffic)
Multicast routers use IGMP to maintain information for each router interface about which multicast group traffic they should forward and which hosts want to receive it.
IGMP version 2
IGMP is automatically enabled when multicast routing and PIM are configured on a router. The version can be changed on an interface-by-interface basis. Version 2 is the current default version. The figure below shows the 8-octet format of an IGMPv2 message.
IGMPv2 has four fields, which are defined as follows:
Type: 8-bit field that is one of four message types defined by IGMPv2:
1) Membership Query (Type code = 0x11): Used by multicast routers to discover the presence of group members on a subnet. A General Membership Query message sets the Group Address fi eld to 0.0.0.0. A Group-Specifi c Query sets the Group Address fi eld to the address of the group being queried. It is sent by a router after it receives the IGMPv2 Leave Group message from a host.
2) Version 1 Membership Report (Type code = 0x12): Used by IGMPv2 hosts for backward compatibility with IGMPv1.
3) Version 2 Membership Report (Type Code = 0x16): Sent by a group member to inform the router that at least one group member is present on the subnet.
4) Leave Group (Type code = 0x17): Sent by a group member if it was the last member to send a Membership Report to inform the router that it is leaving the group.
Maximum Response Time: 8-bit field included only in Query messages. The units are 1/10 of a second, with 100 (10 seconds) being the default. The values range from 1 to 255 (0.1 to 25.5 seconds).
Checksum: Carries the 16-bit checksum computed by the source. The IGMP checksum is computed over the entire IP payload, not just over the first 8 octets, even though IGMPv2 messages are only 8 bytes in length.
Group Address: Set to 0.0.0.0 in General Query messages and to the group address in Group Specific messages. Membership Report messages carry the address of the group being reported in this field; Leave Group messages carry the address of the group being left in this field.
One of the primary reasons for developing IGMPv2 was to provide a better Leave mechanism to shorten the leave latency compared to IGMPv1.
IGMPv2 Host Membership Query Functions
As illustrated in the figure below, multicast routers send IGMPv2 Host Membership Query messages out LAN interfaces to determine whether a multicast group member is on any interface. Routers send these messages every Query Interval, which is 60 seconds by default.
Host Membership Queries use a destination IP address and MAC address of 18.104.22.168 and 01 00-5e-00-00-01, with the source IP address and MAC address of the router’s interface IP address and Burned-In Addresses (BIA), respectively. IGMPv2 Queries use a TTL of 1 to prevent the packet from being routed.
The details of the two steps are as follows:
1) Hosts H1 and H3 join multicast group 22.214.171.124. The hosts prepare to receive messages sent to both 126.96.36.199 (the joined group) and 188.8.131.52 (the address to which IGMPv2 Queries will be sent). The Join causes these hosts to calculate the two multicast MAC (MM) addresses, 01-00-5e-01-01-01 (from 184.108.40.206) and 01-00-5e-00-00- 01 (from 220.127.116.11), and then listen for frames sent to these two MMs.
2) R1 periodically sends an IGMPv2 Host Membership Query out each LAN interface, looking for any host interested in receiving packets for any multicast group. After sending IGMPv2 Queries, R1 expects any host that has joined any group to reply with an IGMPv2 Report.
IGMPv2 Host Membership Report Functions
Hosts use IGMPv2 Host Membership Report messages to reply to IGMP Queries and communicate to a local router for which multicast groups they want to receive traffic.
In IGMPv2, a host sends a Host Membership Report under the following two conditions:
When a host receives an IGMPv2 Query from a local router, it is supposed to send an IGMPv2 Host Membership Report for all the multicast groups for which it wants to receive multicast traffic. This Report is called an IGMPv2 Solicited Host Membership Report.
When a host joins a new group, the host immediately sends an IGMPv2 Host Membership Report to inform a local router that it wants to receive multicast traffic for the group it has just joined. This Report is called an IGMPv2 Unsolicited Host Membership Report.
IGMPv2 Solicited Host Membership Report
If many hosts have launched multicast applications and if all of them respond to the Host Membership Query, unnecessary bandwidth and router resources would be used to process all the redundant reports. A multicast router needs to receive only one report for each application on each of its LAN interfaces. It forwards multicast traffic on an interface whether 1 user or 200 users belong to a given multicast group.
The Report Suppression mechanism helps to solve these problems. It uses the IGMPv2 Maximum Response Time (MRT) timer to suppress many of the unnecessary IGMP Reports. This timer is called the Query Response Interval . In other words, when any host receives an IGMPv2 Query, it has a maximum of the configured MRT to send the IGMP Report if it wants to receive multicast traffic for that application.
Each host picks a random time between 0 and the MRT and starts a timer. When this timer expires, the host will send a Host Membership report—but only if it has not already heard another host send a report for its group. This is called Report Suppression and is designed to reduce redundant reports.
IGMPv2 Unsolicited Host Membership Report
In IGMPv2, a host does not have to wait for a Host Membership Query message from the router. Hosts can send an IGMPv2 Unsolicited Host Membership Report anytime a user launches a multicast application. This feature reduces the waiting time for a host to receive traffic for a multicast group.
For example, the figure below shows that a user has launched a multicast application that uses 18.104.22.168 on H4. H4 sends an IGMPv2 Unsolicited Host Membership Report, and R1 then starts forwarding traffic for 22.214.171.124 on its fa0/1 interface.
IGMPv2 defines a querier election process that is used when multiple routers are connected to a subnet. When IGMPv2 routers start, they each send an IGMPv2 General Query message to the well-known All Hosts group 126.96.36.199. When an IGMPv2 router receives a General Query message, it compares the source IP address of the General Query message with its own interface address.
The router with the lowest IP address on the subnet is elected as the IGMP querier. The nonquerier routers do not send queries but monitor how frequently the querier is sending general IGMPv2 Queries. When the elected querier does not send a query for two consecutive Query Intervals plus one half of one Query Response Interval, it is considered to be dead, and a new querier is selected.
The default value for the Other Querier Present Interval is 255 seconds, because the default General IGMPv2 Query Interval is 125 seconds and the default Query Response Interval is 10 seconds.
The table below summarizes important timers used in IGMPv2, their usage, and default values.
IGMP Version 3
In IGMPv2, when a host makes a request to join a group, a multicast router forwards the traffic for the group to the subnet regardless of the source IP address of the packets. In very large networks, such as an Internet broadcast, this can cause problems.
For example, assume that a multimedia conference is in session. A group member decides to maliciously disturb the session by sending talking or music to the same group. Although multimedia applications allow a user to mute any of the other members, it does not stop the unwanted traffic from being delivered to the host.
In addition, if a group of hackers decides to flood a company’s network with bogus high bandwidth data using the same multicast group address that the company’s employees have joined, it can create a DoS attack for the company by overwhelming low-speed links. Neither IGMPv1 nor IGMPv2 has a mechanism to prevent such an attack.
IGMPv3 allows a host to filter incoming traffic based on the source IP addresses from which it is willing to receive packets, through a feature called Source-Specific Multicast (SSM) . SSM allows a host to indicate interest in receiving packets only from specific source addresses, or from all but specific source addresses, sent to a particular multicast address.