The Internet Group Management Protocol(IGMP) is located as an auxiliary protocol on the network layer and supports group communication. The IGMP protocol is used for IP multicast, i.e. for broadcasting to multiple interfaces, such as for the live transmission of Internet television( IPTV). It is part of all Level 2 computers that support the IP protocol in multitasking.
There is no requirement that all IP implementations support multicast. Two different types are defined for multicast operation, referred to as levels. Level 1 supports transmission, but not reception of multicast datagrams. Level 2, on the other hand, supports sending as well as receiving multicast datagrams.
The mechanism of the IGMP protocol
The IGMP protocol has a mechanism that prevents flooding of the connected networks. This mechanism is triggered by the time-to-live( TTL) field by setting the TTL value for communication within networks to 1. If the TTL value is 0, the IGMP packets are cancelled and dropped. This achieves restricted communication.
The IGMP protocol is used by Open Shortest Path First( OSPF), the VMTP protocol and the rwho protocol(Remote Who Protocol), among others. In the IGMPv2 version, the IGMP header is always transmitted with the full IP header. The version field from the first version is omitted, the control field of the IP header is set to the digit 2, signaling that the following header is an IGMP header. The Type field has been extended to 8 bits in version 2 and the Max Response Time data field with 8 bits has also been added.
The Max Response Time specifies for query requests after which time a host must send a report. The default time is 10 seconds. The maximum time allowed before sending a response report is specified in 1/10 of a second. The data field for the maximum response time is followed by a 16-bit checksum field.
IGMPv2 has been extended by Internet draft version 3. IGMPv3 supports, among other things, group source report PDUs, which allow packets to be filtered by source.
The IGMP protocol was specified by the Internet Engineering Task Force( IETF) and is described in RFCs 1112, 2236 and 3376.