|
|
Internet Group Multicast Protocol(IGMP version 1)
|
| PC IP Address: | 172.17.8.23 |
| Class B Natural Mask: | 255.255.0.0 |
| Default Gateway: | 172.17.8.23 |
Most IP stacks support this configuration, however there are exceptions. As long as proxy-ARP is running on the router (and in most companies it is) this configuration will work fine.
At the data link layer the frames hit the wire as a multicast, as specified earlier, in the format 01-00-5E-XX-XX-XX. The trailing three octets (XX-XX-XX) actually become the last three octets of the four-octet class D IP address displayed in hexadecimal. For example: The first figure below demonstrates the math to convert to a multicast address. The second figure below shows an actual trace where this address was used in a video conference.
In order for a host to participate in a multicast it must also be able to perform two other operations:
JoinHostGroup (group address, interface)
LeaveHostGroup (group address, interface)
A JoinHostGroup datagram is sent by a host who wants to participate in the multicast (class D address) identified in the frame. The LeaveHostGroup is used to remove a host from a multicast group.
The following diagrams illustrate a multicast session:














There are three types of IGMP messages concerning interaction between the end station and the router:
Type Ð 0x11 (Membership Query)
There are two sub-types of Membership Query messages:
Type Ð 0x16 (Version 2 Membership Report)
Type Ð 0x17 (Leave Group)
This type is new to IGMP as in RFC 1112, a router periodically checked for
group participants by sending queries out every n seconds. If no end
stations responded, the branch was pruned from the tree.
There is an additional type of message, for backwards-compatibility with IGMPv1:
Type Ð 0x12 (Version 1 Membership Report)
Unrecognized message types should be silently ignored. New message types may be used by newer version of IGMP, by multicast routing protocols, or other issues.
Varying this setting allows IGMPv2 routers to tune the "leave latency" (the time between the moment the last host leaves a group and when the routing protocol is notified that there are no more members). It also allows tuning of the burstiness of IGMP traffic on a subnet.
The term "interface" is sometimes used in this document to mean "the primary interface on an attached network." If a router has multiple physical interfaces on a single network this protocol need only run on one of them. Hosts, on the other hand, need to perform their actions on all interfaces that have memberships associated with them.
Multicast routers use IGMP to learn which groups have members on each of their attached physical networks. A multicast router keeps a list of multicast group memberships for each attached network, and a timer for each membership. "Multicast group memberships" refers to the presence of at least one member of a multicast group on a given attached network, not a list of all of the members. With respect to each of its attached networks, a multicast router may assume one of two roles: Querier or Non-Querier. There is normally only one Querier per physical network. All multicast routers start up as a Querier on each attached network. If a multicast router hears a Query message from a router with a lower IP address, it must become a Non-Querier on that network. If a router has not heard a Query message from another router [Other Querier Present IntervalÑsee RFC 2236 section 8.5], it resumes the role of Querier.
Routers periodically [Query Interval Ð default = 125 seconds] send a General Query on each attached network for which this router is the Querier, to solicit membership information. On startup, a router should send [Startup Query Count Ð default = 2] General Queries spaced closely together [Startup Query Interval Ð default = the Query Interval] in order to quickly and reliably determine membership information. A General Query is addressed to the all-systems multicast group (224.0.0.1), has a Group Address field of 0, and has a Max Response Time of [Query Response Interval Ð default = (100) 10 seconds].
When a host receives a General Query, it sets delay timers for each group (excluding the all-systems group) in which it is a member on the interface from which it received the query. Each timer is set to a different random value, using the highest clock granularity available on the host, selected from the range (0, Max Response Time] with Max Response Time as specified in the Query packet. When a host receives a Group-Specific Query, it sets a delay timer to a random value selected from the range (0, Max Response Time] as above for the group being queried if it is a member on the interface from which it received the query. If a timer for the group is already running, it is reset to the random value only if the requested Max Response Time is less than the remaining value of the running timer. When a groupÕs timer expires, the host multicasts a Version 2 Membership Report to the group, with an IP TTL of 1. If the host receives another hostÕs Report (version 1 or 2) while it has a timer running, it stops its timer for the specified group and does not send a Report, in order to suppress duplicate Reports. This is how RFC 1112 explains the process.
When a router receives a Report, it adds the group being reported to the list of multicast group memberships on the network on which it received the Report and sets the timer for the membership to the [Group Membership Interval Ð see RFC 2236 section 8.4]. Repeated Reports refresh the timer.
If no Reports are received for a particular group before this timer has expired, the router assumes that the group has no local members and that it need not forward remotely-originated multicasts for that group onto the attached network. This is how RFC 1112 explains the process.
When a host joins a multicast group, it should immediately transmit an unsolicited Version 2 Membership Report for that group (type 0x16), in case it is the first member of that group on the network. To cover the possibility of the initial Membership Report being lost or damaged, it is recommended that it be repeated once or twice after short delays [Unsolicited Report Interval Ð default = 10 seconds]. A simple way to accomplish this is to send the initial Version 2 Membership Report and then act as if a Group-Specific Query was received for that group, and set a timer appropriately, as shown in the following figure:
When a host leaves a multicast group, if it was the last host to reply to a Query with a Membership Report for that group, it should send a Leave Group message to the all-routers multicast group (224.0.0.2). If it was not the last host to reply to a Query, it may send nothing, as there must be another member on the subnet. This is an optimization to reduce traffic; a host without sufficient storage to remember whether or not it was the last host to reply may always send a Leave Group message when it leaves a group. Routers should accept a Leave Group message addressed to the group being left, in order to accommodate implementations of an earlier version of this standard. Leave Group messages are addressed to the all-routers group because other group members have no need to know that a host has left the group, but it does no harm to address the message to the group.
When a Querier (router) receives a Leave Group message for a group that has group members on the reception interface, it sends [Last Member Query Count] Group-Specific Queries every [Last Member Query Interval Ð default = 10 or (1 second)] to the group being left. These Group-Specific Queries have their Max Response time set to [Last Member Query Interval]. If no Reports are received after the response time of the last query expires, the routers assume that the group has no local members, as above. Any Querier to non-Querier transition is ignored during this time; the same router keeps sending the Group-Specific Queries. See the figure below:
Non-Queriers must ignore Leave Group messages, and Queriers should ignore Leave Group messages for which there are no group members on the reception interface.
When a non-Querier receives a Group-Specific Query message, if its existing group membership timer is greater than [Last Member Query Count] times the Max Response Time specified in the message, it sets its group membership timer to that value.
| Back to Home | VoxTechnologies Corp. - Industrial
Computer Leader Tel: 972-234-4343 Fax: 972-234-4295 Toll-Free: 1-888-568-6224 |
|
An Industrial Partner 1999-2002. All rights reserved.
For over a decade, VoxTechnologies has been a leading source of industrial computers and complete system products for the O.E.M. and Systems Integrator. Our primary goal is to provide a solution source for engineers that have the challenging task of interfacing and controlling the real world.
Send mail
to webmaster@voxtechnologies.com
with questions or comments about this web site.
|