【正文】
rs) Action on Change of Interface State To cover the possibility of the StateChange Report being missed by one or more multicast routers, it is retransmitted [Robustness Variable] – 1 more times, at intervals chosen at random from the range (0, [Unsolicited Report Interval]). router IGMP Statechange report A + B IPMulticastListen ( s1, i, m, INCLUDE, {A} ) IPMulticastListen ( s2, i, m, INCLUDE, {B} ) IPMulticastListen ( s1, i, m, INCLUDE, {} ) BAlberto Ornaghi 2022 27 IGMP v3 The protocol (for group members) Interface Filter State EXCLUDE if *any* such record has a filter mode of EXCLUDE, then the filter mode of the interface record is EXCLUDE, and the source list of the interface record is the intersection of the source lists of all socket records in EXCLUDE mode, minus those source addresses that appear in any socket record in INCLUDE mode. from socket s1: ( i, m, EXCLUDE, {a, b, c, d} ) from socket s2: ( i, m, EXCLUDE, {b, c, d, e} ) from socket s3: ( i, m, INCLUDE, {d, e, f} ) then the corresponding interface record on interface i is: ( m, EXCLUDE, {b, c} ) Alberto Ornaghi 2022 28 IGMP v3 The protocol (for group members) Interface Filter State INCLUDE if *all* such records have a filter mode of INCLUDE, then the filter mode of the interface record is INCLUDE, and the source list of the interface record is the union of the source lists of all the socket records. For example, if the socket records for multicast address m on interface i are: from socket s1: ( i, m, INCLUDE, {a, b, c} ) from socket s2: ( i, m, INCLUDE, {b, c, d} ) from socket s3: ( i, m, INCLUDE, {e, f} ) then the corresponding interface record on interface i is: ( m, INCLUDE, {a, b, c, d, e, f} ) Alberto Ornaghi 2022 29 IGMP v3 The protocol (for group members) Action on Reception of a Query When a system receives a Query, it does not respond immediately. Instead, it delays its response by a random amount of time, bounded by the Max Resp Time value derived from the Max Resp Code in the received Query message. A system may receive a variety of Queries on different interfaces and of different kinds (., General Queries, GroupSpecific Queries, and Groupand SourceSpecific Queries), each of which may require its own delayed response. Before scheduling a response to a Query, the system must first consider previously scheduled pending responses and in many cases schedule a bined response. Alberto Ornaghi 2022 30 IGMP v3 The protocol (for group members) Action on Reception of a Query Therefore, the system must be able to maintain the following state: ? A timer per interface for scheduling responses to General Queries. ? A pergroup and interface timer for scheduling responses to Group Specific and GroupandSource Specific Queries. ? A pergroup and interface list of sources to be reported in the response to a GroupandSource Specific Query. router IGMP query IGMP report Wait for random interval Alberto Ornaghi 2022 31 IGMP v3 The protocol (for multicast routers) The purpose of IGMP is to enable each multicast router to learn, for each of its directly attached works, which multicast addresses are of interest to the systems attached to those works. IGMP version 3 adds the capability for a multicast router to also learn which *sources* are of interest to neighboring systems, for packets sent to any particular multicast address. The information gathered by IGMP is provided to whichever multicast routing protocol is being used by the router, in order to ensure that multicast packets are delivered to all works where there are interested receivers. NOTE: Multicast routers may also themselves bee members of multicast groups, and therefore also perform the group member part of IGMPv3 Alberto Ornaghi 2022 32 IGMP v3 The protocol (for multicast routers) If a multicast router has more than one interface to the same work, it only needs to operate this protocol over one of those interfaces. On each interface over which this protocol is being run, the router MUST enable reception of multicast address , from all sources. Multicast routers need to know only that *at least one* system on an attached work is interested in packets to a particular multicast address from a particular source。 a multicast router is not required to keep track of the interests of each individual neighboring system. IGMPv3 is backward patible with previous versions of the IGMP protocol. In order to remain backward patible with older IGMP systems, IGMPv3 multicast routers MUST also implement versions 1 and 2 of the protocol. Alberto Ornaghi 2022 33 IGMP v3 The protocol (for multicast routers) Conditions for IGMP Queries ? Periodic request for membership Multicast routers send General Queries periodically to request group membership information from an attached work. These queries are used to build and refresh the group membership state of systems on attached works. Systems respond to these queries by reporting their group membership state (and their desired set of sources) with CurrentState Group Records in IGMPv3 Membership Reports. router IGMP Request Alberto Ornaghi 2022 34 IGMP v3 The protocol (for multicast routers) ? Group Specific Query To enable all systems on a work to respond to changes in group membership, multicast routers send specific queries. A Group Specific Query is sent to verify there are no systems that desire reception of the specified group or to rebuild the desired reception state