Chapter 10 IGMP Prof. Choong Seon HONG
Introduction Discussing the multicasting capability of the TCP/IP protocol suite and the protocol that is involved in multicasting, IGMP (Internet Group Management Protocol)
10.1 Group Management IGMP is a group management protocol. It helps a multicast router create and update a list of loyal members related to each router interface.
Group Management In any network, there are one or more multicast routers that distribute multicast packets to hosts or other routers. The IGMP Protocol gives the multicast routers information about the membership status of hosts (routers) connected to the network. Position of IGMP in the network layer
10.2 IGMP Messages IGMPv2 Message Types
IGMP (cont’d) Type : General and Special Query : 0x11 or 00010001 Message Format Type : General and Special Query : 0x11 or 00010001 Membership Report : 0x16 or 00010110 Leave Report : 0x17 or 00010111 Maximum Response Type : defining the amount of time in which a query must be answered. Group address : - 0 for a general query message - defining the group id (multicast address of the group) in the special query, the membership report, and leave report messages
10.3 IGMP Operation Operation of IGMP in a Single Network A multicast router connected to a network has a list of multicast addresses of the groups for which there is at least one loyal member.
IGMP Operations (cont’d) Joining a Group A host maintains a list of processes with membership in a group When a process wants to join a new group, it sends its request to the host The host will add the name of the process and the name of the requested group to its list Host only sends an IGMP report to the multicast router if this is the first request for membership in that group. Membership report - In IGMP, a membership report is sent twice, one after the other.
IGMP Operations (cont’d) Leaving a Group When a host sees that no process is interested in a specific group, it sends a leave report. When a router sees that none of the networks connected to its interface is interested in a specific group, it sends a leave report about that group. No Response
IGMP Operations (cont’d) Monitoring Group Membership Multicast router is responsible for monitoring all of the hosts in a LAN to see if they want to continue their membership in a group the router periodically (by default, every 125s) sends a query message. In this message, the group address field is set to 0.0.0.0 (to all systems on a LAN) The general query message does not define a particular group
IGMP Operations (cont’d) General Query Message No Response
IGMP Operations (cont’d) Delayed Response To prevent unnecessary traffic, IGMP uses a delayed response strategy.
IGMP Operations (cont’d) Example 1 - Imagine there are three hosts in a network as shown in Figure. A query message was received at time 0; the random delay time (in tenths of seconds) for each group is shown next to the group address. Show the sequence of report messages.
IGMP Operations (cont’d) The events occur in this sequence: a. Time 12: The timer for 228.42.0.0 in host A expires and a membership report is sent, which is received by the router and every host including host B which cancels its timer for 228.42.0.0. b. Time 30: The timer for 225.14.0.0 in host A expires and a membership report is sent, which is received by the router and every host including host C which cancels its timer for 225.14.0.0.
IGMP Operations (cont’d) c. Time 50: The timer for 251.70.0.0 in host C expires and a membership report is sent, which is received by the router and every host. d. Time 70: The timer for 230.43.0.0 in host A expires and a membership report is sent, which is received by the router and every host including host A which cancels its timer for 230.43.0.0. Note that if each host had sent a report for every group in its list, there would have been seven reports; with this strategy only four reports are sent.
10.4 Encapsulation
Encapsulation (cont’d) Protocol field The IP packet that carries an IGMP packet has a value of 2 in its protocol field. TTL Field The IP packet that carries an IGMP packet has a value of 1 in its TTL field.
Encapsulation (cont’d) Destination IP Addresses Query : 224.0.0.1 All systems on this subnet Membership Report : The multicast address of the group Leave Report : 224.0.0.2 All routers on this subnet
Encapsulation (cont’d) Data Link Layer Because the IP packet has a multicast IP address, the ARP protocol cannot find the corresponding MAC (Physical) address to forward the packet at the data link layer. What happens next depends on whether or not the underlying data link layer supports physical multicast addresses.
Encapsulation (cont’d) Case 1 : Physical Multicast Support Most LANs support physical multicasting addressing 32 (25)multicast addresses at the IP level are mapped to a single multicast address : many-to-one mapping a host may receive packets that do not really belong to the group in which it is involved Physical multicast address for the TCP/IP protocol
IGMP (cont’d) Case 2 : No Physical Multicast Support Most WANs do not support physical multicast addressing . To send a multicast packet through these networks, a process called tunneling is used. In tunneling , the multicast packet is encapsulated in a unicast packet and sent through the network, where it emerges from the other side as a multicast packet
10.5 IGMP Package Showing only the modules used in an IGMP host involving a group table, a set of timers, and 4 software modules as follows. a group-joining module, a group-leaving module, an input module, and an output module Group table
IGMP Package (cont’d)
IGMP Package (cont’d) state : defining the state of the entry FREE : available for a new entry DELAYING : meaning that a report should be sent for this entry when the timer matures IDLE : meaning that there is no timer running for the entry Interface no. defining the interface through which the multicast packet is sent for this entry Group address : multicast address which defines the group Reference count meaning the number of processes still interested in this group
IGMP Package (cont’d) Timers each entry in the table in the DELAYING state has a timer to govern the sending of reports When an expiration time matures, a signal goes to the output module which then generates a report
IGMP Package (cont’d) Group-joining Module a process that wants to join a group invokes this module module searches the group table to find an entry with the same multicast address if found, the module increments the reference count to show that one more process has joined this group if the multicast address is not found, the module creates a new entry and sets the reference count to one Then, inform the data link layer to update its configuration table so that this type of multicast packet can be received
IGMP Package (cont’d) 3. Request a membership report from the output module. 4. Inform the data link layer to update its configuration table. 4. Return
IGMP Package (cont’d) Group-Leaving Module a process that wants to leave a group invokes this module 3. Request a leave report from the output
IGMP Package (cont’d) Input Module Random number between zero and the maximum delay time
IGMP Package (cont’d) Output Module If the message comes from a timer 1. if (found and state is DELAYING0 1. Create a membership report. 2. Reset the state to IDLE. 2. If message comes from the Group- joining module 1. Create a membership report 3. If the message comes from group-living module 1. Create the message 4. Send the message. 5. Return or a request from joining or leaving module