Hey Folks, let’s talk about an interesting topic which will both covered in R&S Track and mostly in Service Provider Track. IGMP Messages are used primarily by multicast hosts to signal their local multicast router when they wish to join a specific multicast group and begin receiving group traffic. Host may also signal to the local multicast router that they wish to leave an IP multicast group and therefore are no longer interested in receiving the multicast group traffic.
Using the information obtained via IGMP, routers maintain a list of multicast group memberships on a per interface basis. A multicast group membership is active on an interface if at least one host on that interface has signaled its desire, via IGMP, to receive the multicast group traffic. IGMP Has 3 Version and we will discuss the Version 1 of IGMP in this Post.
The reason for discussing IGMP V1 rather than V2 or V3 is that the most IP Stacks in today’s hosts still use IGMP V1, like MS Windows 95 OS Includes built-in support for multicast but unless you download an upgraded version of MS Winsock DLL you will be still running Version 1, the same goes with the UNIX OS, unless you install a patch or are running the very latest version of UNIX OS you very possible will be using IGMP Version 1, so to have a well understanding of the newer version it will be very important to understand the older version in details as it will be easier to understand the rest.
In this Post i will discuss about the following IGMP V1 Details:
- IGMP V1 Message Format
- The IGMP V1 Query Process
- IGMP V1 Report Suppression Mechanism
- IGMP V1 Query Router
- The IGMP V1 Join Process
- The IGMP V1 Leave Process
- So let’s start first with the IGMP V1 Message Format:
IGMP Messages are transmitted inside IP datagrams and denoted by an IP protocol number of 2. IGMP messages are transmitted with the IP TTL (Time-to-Live) field set to 1 and therefore are local in scope and not forwarded by routers.
Following i will define the fields:
The Version Field contains the IGMP Version identification and is therefore set to 1, as well this field has been eliminated in Version 2.
In Version 1 of IGMP, the following Two Message types are used between hosts and routers:
- Membership Query
- Membership Report
The Checksum field is a 16-bit, one’s complement of the one’s complement sum of the IGMP Message, the checksum field is zeroed when making the checksum computation.
Group Address Field:
The Group Address Field contains the multicast group address when a membership report is being sent, this field is zero when used in the membership query and should be ignored by hosts.
2. The IGMP V1 Query-Response Process
IGMP Primarily uses a Query-Response model that allows the multicast router to determine which multicast group are active on the local Subnet let’s assume following topology:
In this example Hosts (H1,H2) each want to receive multicast traffic for group 220.127.116.11, Furthermore, H3 wants to receive multicast traffic for the group 18.104.22.168. Router A is the IGMP Querier for the subnet and is responsible for performing the queries. Router B is a non-querier and simple listen and records the host’s responses.
The query response for the above scenario works as follow:
- Router A ( THE IGMP QUERIER) periodically (default 60 sec) multicasts an IGMP V1 Membership Query to the ALL-Hosts multicast group (224..0.0.1) on the local subnet. All hosts must listen to this group as long as they have enables multicast so that these queries can be received.
- All host receives the IGMP V1 Membership Query and one host in this scenario it is H2 responds first by multicasting an IGMP V1 Membership Report to the Multicast group 22.214.171.124, of which the host is a member. The report informs the routers on the subnet that a host is interested in receiving multicast traffic for group 126.96.36.199.
- Because H1 is listening to multicast group 188.8.131.52, it hears the IGMP V1 Membership Report that was multicast by H2. H1, therefore suppresses the sending of its report for group 184.108.40.206 because H2 already has informed the routers on the subnet that there is at least one host interested in receiving multicast traffic for group 220.127.116.11, while this report suppression mechanism helps reduce the amount of traffic on the local network.
- H3 also received the IGMP V1 Membership Query, and it responds by multicasting an IGMP V1 Membership Report to the Multicast Group 18.104.22.168, of which it is a member. This report informs the routers on the subnet that a host is interested in receiving multicast traffic for group 22.214.171.124.
As a result of this Query-Response exchange, Router A now knows that there are active receivers for multicast groups 126.96.36.199 and 188.8.131.52 on the local subnet. in addition, Router B has been eavesdropping on the whole process and also knows the same information.
3. The IGMP V1 Report Suppression Mechanism
The IGMP Report Suppression Mechanism helps to reduce the amount of IGMP traffic on a subnet to the minimum necessary to maintain a multicast group state. Following describes the mechanism in details:
- When a Host receives an IGMP Membership Query, the host starts a countdown report-timer for each multicast group it has joined. Each report-timer is initialized to a random value between zero and the maximum response interval, in which the default is 10 Sec.
- If a report-timer expires, the host multicasts an IGMP Membership report for active multicast group associated with the report-timer.
- If the host hears another host send an IGMP Membership Report, it cancels its report-timer associated with the received Membership Report, thereby suppression the sending of a Membership Report for the group.
4. The IGMP V1 Query Router
If multiple multicast routers are on a subnet, having more than one of them send IGMP V1 Queries is a waste of bandwidth, in this case, an IGMP V1 Querier, a router responsible for sending all IGMPv1 Queries on a subnet, becomes essential.
5. The IGMP V1 Join Process
To reduce the join latency it is not necessary to wait for the next Membership Query before sending a Membership Report to join a multicast group. Therefore, when a host wants to join a multicast group, the host immediately will send one ore more unsolicited Membership Report for the multicast group it desires to join.
6. The IGMP V1 Leave Process
Unfortunately, IGMP V1 has a rather simple-minded method for hosts to leave a multicast group; they just quietly go away. There is no Leave Group message in IGMP V1 to notify the routers on the subent that a host no longer wants to receive the multicast traffic from a specific group. The host simple stops procession traffic for the multicast group and ceases responding to IGMP Queries with IGMP Membership Report for the group.
The only way that the IGMP V1 routers knows that there is no longer any active receivers for particular multicast group on a subnet is when the routers stops getting Membership Reports. and default timer is 3 Minutes.
That’s all folks for the IGMP v1 if you interested to have more information on this particular version of IGMP you can refer to RFC 1112.
Next we will discuss IGMP Version 2 in same detail: