230 likes | 297 Views
Chapter 10. Internet Group Management Protocol (IGMP). 10. IGMP(Internet Group Management Protocol) : RFC 1112[ Deering 1989] 10.1 MULTICASTING Unicasting : Unicasting is the communication between one sender and one receiver.(one-to-one).
E N D
Chapter 10 Internet Group Management Protocol (IGMP)
10. IGMP(Internet Group Management Protocol) : RFC 1112[ Deering 1989] 10.1 MULTICASTING Unicasting: Unicasting is the communication between one sender and one receiver.(one-to-one). Multicasting: It is one-to-many communication. IGMP
Multicast Address • All 32-bit IP address that start with 1110(class D) are multicast address. • With 28 bits remaining for the group address, more than 250 million address are • available for assignment. • A multicast address can only be used as a destination address. • A multicast address is also known as a groupid. Figure 10-1 Class D addreaa
10.1 IGMP • The IGMP has been designed to help a multicast router identify the hosts in a LAN • that are members of a multicast group. • It is a companion to the IP protocol. Figure 10-2 Position of IGMP in the network layer
Types of Messages • IGMP has only two types of message: • Report : The report message is sent from the host to the router. • Query : The query message is sent from the router to the host. Figure 10-3 IGMP messages
Message Format • An IGMP message consist of only 8 bytes. • Ver : The Version of the protocol.(4-bit field) • Type: The type of the message.(4-bit field) • Checksum: Carrying the checksum.(16-bit), It is calculated on the 8-byte message. • Group address: The group address in a report message. It is filled with 0’s in the query • message. Figure 10-4 IGMP message format
Operation of IGMP in a Single Network • A multicast router connected to a LAN has a list of multicast addresses of the groups for which there is at least one royal member. Figure 10-5 Operation of IGMP
Operation of IGMP in a Single Network…… There are fourdifferent situations of IGMP operation. Figure 10-6 Four situation of IGMP operation
Joining a Group. Each hosts 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. The host only sends an IGMP report to the multicast router. If this is the first request for membership in that group. Monitoring Group Membership A 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 send a query message to the multicast address 224.0.0.1. (Group address field is set to 0.0.0.0) The router expects an answer for each of these groups. IGMP
Continuing Membership The host keeps a list of processes that wish to continue membership in a group. When a host receives a query, it checks this list. For each group with at least one process still interested in continuing the membership, the host must send a report. Note that a report sent in response to a query is to verify membership continuation, not for new membership. Leaving a Group When a host receive a query and finds that there is not a single process interested in that group anymore, it does not respond and does not send a report about that group. If no host on the LAN send a report for a specific group, the address of that group is purged, after a time-out, from the multicast address of the router. IGMP
Operation of IGMP in an Internet Figure 10-7 Operation of IGMP in a part of a spanning tree
Changing IP Address to Physical Address When a multicast router receives a class D IP packet, it checks its list for a matching group address. If the router encapsulates the packet in a frame and send it to the destination. It needs a physical address. There are two general cases; either the physical network can support multicasting or it cannot. Case1: Physical Multicast Support Most LANs support physical multicast addressing. An Ethernet Physical Address(MAC address): Six octets(48 bits) First 25 bit: defines a physical multicast address for the TCP/IP protocol( 0000000100000000010111100) The remaining 23 bits: define a group To convert an IP multicast address into an Ethernet address, the multicast router extracts the least significant 23 bits of class D IP address and insert them into a multicast Ethernet physical address. IGMP
The group identifier of a class D IP address is 28 bits long, which implies that five bits are unused. • This means that 32(25) multicast addresses at the IP level are mapped to a single multicast address. Figure 10-8 Mapping class D to Ethernet physical address
Changing IP Address to Physical Address….. Case 2: No Physical Multicast Support Most WANs do not support physical multicast addressing. 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. IGMP Figure 10-9 Tunneling
10.3 ENCAPSULATION • The IGMP message is encapsulated in an IP datagram with the protocol value of two. Figure 10-10 Encapsulation of IGMP packet
10.4 MULTICAST BACKBONE(MBONE) The MBONE(multicast backbone) is a set of router on the Internet that supports multicasting. MBONE is based on the multicasting capability of IP. We can think of MBONE as made of “islands” connected by “tunnels” through which data is multicast on the Internet. 10.5 IGMP DESIGN In our design an IGMP package involves a group table, a set of timers, and four software modules; Group joining module, Group-leaving module, Input module, Output module. IGMP
Group Table Group table gives information about a multicast address that has at least one process as a member. The table has a four fields; state, interface number, group address, and reference count. State : This field defines the state of the entry. FREE: It can be used for a new entry. DELAYING: A report should be sent for this entry when the time matures. IDLE: There is no timer running for this entry. Interface no. : This field defines the interface through which the multicast packet is sent and received. Group address. : This is the multicast address which defines the group. Reference count : This is the number of process still interested in this group. Every time a process joins the group, the reference count is incremented. Every time a process leaves the group, the reference count is decremented. When this value is zero, the entry is deleted from the table and the state is changed to FREE. IGMP
Timers Each entry in the table in the DELAYING state has a timer to govern the sending of reports. Each timer has a randomly selected expiration time to prevent a burst of report generation. When an expiration time matures, a signal goes to the output module which then generates a report. Group-Joining Module Receive: a request from a process to join a group Look for the corresponding entry in the table. If (found) Increment the reference count. If (not found) Create an entry with reference count set to one. Add the entry to the table. Inform the data link layer to update its configuration table. Set the state to DELAYING. Start a timer Return IGMP
Group-Leaving Module Receive: a request from a process toleave a group Look for the corresponding entry in the table. If (found) Decrement the reference count. If(reference count is zero) If (any timer for this entry) Cancel the timer. Change the state to FREE. Return. IGMP
Input Module Receive: an IGMP message Check the message type. If (query) Start a timer for each entry in the table with state IDLE. Change each IDLE state to DELAYING state. Return. If (report) Look for the corresponding entry in the table. If (found and state is DELAYING) Cancel the timer for this entry. Change the state to IDLE. Return. IGMP
Output Module Receive: a signal from a timer Look for the corresponding entry in the table. If (found and state is DELAYING) Create a report. Send the report. Reset the state to IDLE. Return. IGMP