【正文】
s Query Interval Code field specifies the [Query Interval] used by the querier. The Number of Sources (N) field specifies how many source addresses are present in the Query. The Source Address [i] fields are a vector of n IP unicast addresses, where n is the value in the Number of Sources (N) field. Membership Query Message Alberto Ornaghi 2022 19 IGMP v3 Message format There are three variants of the Query message: 1. A General Query” 2. A GroupSpecific Query” 3. A GroupandSourceSpecific Query” Membership Query Message In IGMPv3, General Queries are sent with an IP destination address of , the allsystems multicast address. GroupSpecific and GroupandSourceSpecific Queries are sent with an IP destination address equal to the multicast address of interest. Alberto Ornaghi 2022 20 IGMP v3 Message format 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +++++++++++++++++++++++++++++++++ | Type = 0x22 | Reserved | Checksum | +++++++++++++++++++++++++++++++++ | Reserved | Number of Group Records (M) | +++++++++++++++++++++++++++++++++ | | . Group Record [1] . | | +++++++++++++++++++++++++++++++++ | . | . . . | . | +++++++++++++++++++++++++++++++++ | | . Group Record [M] . | | +++++++++++++++++++++++++++++++++ Membership Report Message Alberto Ornaghi 2022 21 IGMP v3 Message format Each Group Record has the following internal format: +++++++++++++++++++++++++++++++++ | Record Type | Aux Data Len | Number of Sources (N) | +++++++++++++++++++++++++++++++++ | Multicast Address | +++++++++++++++++++++++++++++++++ | Source Address [1] | + + . . . . . . + + | Source Address [N] | +++++++++++++++++++++++++++++++++ | | . Auxiliary Data . | | +++++++++++++++++++++++++++++++++ Membership Report Message Alberto Ornaghi 2022 22 Membership Report Message IGMP v3 Message format There are a number of different types of Group Records that may be included in a Report message: ? A CurrentState Record“ (in response to a Query) 1. MODE_IS_INCLUDE INCLUDE() 2. MODE_IS_EXCLUDE EXCLUDE() ? A FilterModeChange Record“ (when the filter mode change) 3. CHANGE_TO_INCLUDE_MODE TO_IN() 4. CHANGE_TO_EXCLUDE_MODE TO_EX() ? A SourceListChange Record“ (when the source list change) 5. ALLOW_NEW_SOURCES ALLOW() 6. BLOCK_OLD_SOURCES BLOCK() Alberto Ornaghi 2022 23 Membership Report Message IGMP v3 Message format Version 3 Reports are sent with an IP destination address of , to which all IGMPv3capable multicast routers listen. A system that is operating in version 1 or version 2 patibility modes sends version 1 or version 2 Reports to the multicast group specified in the Group Address field of the Report. Alberto Ornaghi 2022 24 IGMP v3 The protocol (for group members) The allsystems multicast address, , is handled as a special case. On all systems that is all hosts and routers, including multicast routers reception of packets destined to the allsystems multicast address, from all sources, is permanently enabled on all interfaces on which multicast reception is supported. No IGMP messages are ever sent regarding the allsystems multicast address. There are two types of events that trigger IGMPv3 protocol actions on an interface: ? A change of the interface reception state, caused by a local invocation of IPMulticastListen. ? Reception of a Query. Alberto Ornaghi 2022 25 IGMP v3 The protocol (for group members) Action on Change of Interface State A change of interface state causes the system to immediately transmit a StateChange Report from that interface. The type and contents of the Group Record(s) in that Report are determined by paring the filter mode and source list for the affected multicast address before and after the change, according to the table below. Old State New State StateChange Record Sent INCLUDE (A) INCLUDE (B) ALLOW (BA), BLOCK (AB) EXCLUDE (A) EXCLUDE (B) ALLOW (AB), BLOCK (BA) INCLUDE (A) EXCLUDE (B) TO_EX (B) EXCLUDE (A) INCLUDE (B) TO_IN (B) Alberto Ornaghi 2022 26 IGMP v3 The protocol (for group membe