⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc3810.txt

📁 xorp源码hg
💻 TXT
📖 第 1 页 / 共 5 页
字号:
   Source Specific Queries are only sent in response to State Change   Reports, never in response to Current State Reports.  This   distinction between the two types of reports is needed to avoid the   router treating all Multicast Listener Reports as potential changes   in state.  By doing so, the fast leave mechanism of MLDv2, described   in more detail in section 2.2, might not be effective if a State   Change Report is lost, and only the following Current State Report is   received by the router.  Nevertheless, it avoids an increased   processing at the router and it reduces the MLD traffic on the link.   More details on the necessity of distinguishing between the two   report types can be found in Appendix A1.   Nodes respond to the above queries through Current State Reports,   that contain their per-interface Multicast Address Listening state   only for the multicast addresses (or sources) being queried.   As stated earlier, in order to ensure protocol robustness, all the   queries, except the periodical General Queries, are retransmitted   several times within a given time interval.  The number of   retransmissions depends on the Robustness Variable.  If, while   scheduling new queries, there are pending queries to be retransmitted   for the same multicast address, the new queries and the pending   queries have to be merged.  In addition, host reports received for a   multicast address with pending queries may affect the contents of   those queries.  The process of building and maintaining the state of   pending queries is presented in section 7.6.3.   Protocol robustness is also enhanced through the use of the S flag   (Suppress Router-Side Processing).  As described above, when a   Multicast Address Specific or a Multicast Address and Source Specific   Query is sent by the Querier, a number of retransmissions of the   query are scheduled.  In the original (first) query the S flag is   clear.  When the Querier sends this query, it lowers the timers for   the concerned multicast address (or source) to a given value;   similarly, any non-querier multicast router that receives the query   lowers its timers in the same way.  Nevertheless, while waiting for   the next scheduled queries to be sent, the Querier may receive a   report that updates the timers.  The scheduled queries still have to   be sent, in order to ensure that a non-querier router keeps its state   synchronized with the current Querier (the non-querier router mightVida & Costa                Standards Track                     [Page 6]RFC 3810                     MLDv2 for IPv6                    June 2004   have missed the first query).  Nevertheless, the timers should not be   lowered again, as a valid answer was already received.  Therefore, in   subsequent queries the Querier sets the S flag.2.3.  Building Multicast Address Listener State on Multicast Routers   Multicast routers that implement MLDv2 (whether they are in Querier   state or not) keep state per multicast address per attached link.   This multicast address listener state consists of a Filter Mode, a   Filter Timer, and a Source List, with a timer associated to each   source from the list.  The Filter Mode is used to summarize the total   listening state of a multicast address to a minimum set, such that   all nodes' listening states are respected.  The Filter Mode may   change in response to the reception of particular types of report   messages, or when certain timer conditions occur.   A router is in INCLUDE mode for a specific multicast address on a   given interface if all the listeners on the link interested in that   address are in INCLUDE mode.  The router state is represented through   the notation INCLUDE (A), where A is a list of sources, called the   "Include List".  The Include List is the set of sources that one or   more listeners on the link have requested to receive.  All the   sources from the Include List will be forwarded by the router.  Any   other source that is not in the Include List will be blocked by the   router.   A source can be added to the current Include List if a listener in   INCLUDE mode sends a Current State or a State Change Report that   includes that source.  Each source from the Include List is   associated with a source timer that is updated whenever a listener in   INCLUDE mode sends a report that confirms its interest in that   specific source.  If the timer of a source from the Include List   expires, the source is deleted from the Include List.   Besides this "soft leave" mechanism, there is also a "fast leave"   scheme in MLDv2; it is also based on the use of source timers.  When   a node in INCLUDE mode expresses its desire to stop listening to a   specific source, all the multicast routers on the link lower their   timers for that source to a given value.  The Querier then sends a   Multicast Address and Source Specific Query, to verify whether there   are other listeners for that source on the link, or not.  If a report   that includes this source is received before the timer expiration,   all the multicast routers on the link update the source timer.  If   not, the source is deleted from the Include List.  The handling of   the Include List, according to the received reports, is detailed in   Tables 7.4.1 and 7.4.2.Vida & Costa                Standards Track                     [Page 7]RFC 3810                     MLDv2 for IPv6                    June 2004   A router is in EXCLUDE mode for a specific multicast address on a   given interface if there is at least one listener in EXCLUDE mode for   that address on the link.  When the first report is received from   such a listener, the router sets the Filter Timer that corresponds to   that address.  This timer is reset each time an EXCLUDE mode listener   confirms its listening state through a Current State Report.  The   timer is also updated when a listener, formerly in INCLUDE mode,   announces its filter mode change through a State Change Report   message.  If the Filter Timer expires, it means that there are no   more listeners in EXCLUDE mode on the link.  In this case, the router   switches back to INCLUDE mode for that multicast address.   When the router is in EXCLUDE mode, the router state is represented   by the notation EXCLUDE (X,Y), where X is called the "Requested List"   and Y is called the "Exclude List".  All sources, except those from   the Exclude List, will be forwarded by the router.  The Requested   List has no effect on forwarding.  Nevertheless, the router has to   maintain the Requested List for two reasons:   o  To keep track of sources that listeners in INCLUDE mode listen to.      This is necessary to assure a seamless transition of the router to      INCLUDE mode, when there is no listener in EXCLUDE mode left.      This transition should not interrupt the flow of traffic to      listeners in INCLUDE mode for that multicast address.  Therefore,      at the time of the transition, the Requested List should contain      the set of sources that nodes in INCLUDE mode have explicitly      requested.      When the router switches to INCLUDE mode, the sources in the      Requested List are moved to the Include List, and the Exclude List      is deleted.  Before switching, the Requested List can contain an      inexact guess of the sources listeners in INCLUDE mode listen to -      might be too large or too small.  These inexactitudes are due to      the fact that the Requested List is also used for fast blocking      purposes, as described below.  If such a fast blocking is      required, some sources may be deleted from the Requested List (as      shown in Tables 7.4.1 and 7.4.2) in order to reduce router state.      Nevertheless, in each such case the Filter Timer is updated as      well.  Therefore, listeners in INCLUDE mode will have enough time,      before an eventual switching, to reconfirm their interest in the      eliminated source(s), and rebuild the Requested List accordingly.      The protocol ensures that when a switch to INCLUDE mode occurs,      the Requested List will be accurate.  Details about the transition      of the router to INCLUDE mode are presented in Appendix A3.   o  To allow the fast blocking of previously unblocked sources.  If      the router receives a report that contains such a request, the      concerned sources are added to the Requested List.  Their timersVida & Costa                Standards Track                     [Page 8]RFC 3810                     MLDv2 for IPv6                    June 2004      are set to a given small value, and a Multicast Address and Source      Specific Query is sent by the Querier, to check whether there are      nodes on the link still interested in those sources, or not.  If      no node announces its interest in receiving those specific source,      the timers of those sources expire.  Then, the sources are moved      from the Requested List to the Exclude List.  From then on, the      sources will be blocked by the router.   The handling of the EXCLUDE mode router state, according to the   received reports, is detailed in Tables 7.4.1 and 7.4.2.   Both the MLDv2 router and listener behaviors described in this   document were defined to ensure backward interoperability with MLDv1   hosts and routers.  Interoperability issues are detailed in section   8.3.  The Service Interface for Requesting IP Multicast Reception   Within an IP system, there is (at least conceptually) a service   interface used by upper-layer protocols or application programs to   ask the IP layer to enable or disable reception of packets sent to   specific IP multicast addresses.  In order to take full advantage of   the capabilities of MLDv2, a node's IP service interface must support   the following operation:      IPv6MulticastListen ( socket, interface, IPv6 multicast address,      filter mode, source list )      where:   o  "socket" is an implementation-specific parameter used to      distinguish among different requesting entities (e.g., programs,      processes) within the node; the socket parameter of BSD Unix      system calls is a specific example.   o  "interface" is a local identifier of the network interface on      which reception of the specified multicast address is to be      enabled or disabled.  Interfaces may be physical (e.g., an      Ethernet interface) or virtual (e.g., the endpoint of a Frame      Relay virtual circuit or an IP-in-IP "tunnel").  An implementation      may allow a special "unspecified" value to be passed as the      interface parameter, in which case the request would apply to the      "primary" or "default" interface of the node (perhaps established      by system configuration).  If reception of the same multicast      address is desired on more than one interface, IPv6MulticastListen      is invoked separately for each desired interface.Vida & Costa                Standards Track                     [Page 9]RFC 3810                     MLDv2 for IPv6                    June 2004   o  "IPv6 multicast address" is the multicast address to which the      request pertains.  If reception of more than one multicast address      on a given interface is desired, IPv6MulticastListen is invoked      separately for each desired address.   o  "filter mode" may be either INCLUDE or EXCLUDE.  In INCLUDE mode,      reception of packets sent to the specified multicast address is      requested *only* from the source addresses listed in the source      list parameter.  In EXCLUDE mode, reception of packets sent to the      given multicast address is requested from all source addresses      *except* those listed in the source list parameter.   o  "source list" is an unordered list of zero or more unicast      addresses from which multicast reception is desired or not      desired, depending on the filter mode.  An implementation MAY      impose a limit on the size of source lists.  When an operation      causes the source list size limit to be exceeded, the service      interface SHOULD return an error.   For a given combination of socket, interface, and IPv6 multicast   address, only a single filter mode and source list can be in effect   at any one time.  Nevertheless, either the filter mode or the source   list, or both, may be changed by subsequent IPv6MulticastListen   requests that specify the same socket, interface, and IPv6 multicast   address.  Each subsequent request completely replaces any earlier   request for the given socket, interface, and multicast address.   The MLDv1 protocol did not support source filters, and had a simpler   service interface; it consisted of Start Listening and Stop Listening   operations to enable and disable listening to a given multicast   address (from *all* sources) on a given interface.  The equivalent   operations in the new service interface are as follows:   The Start Listening operation is equivalent to:      IPv6MulticastListen ( socket, interface, IPv6 multicast address,                            EXCLUDE, {} )   and the Stop Listening operation is equivalent to:      IPv6MulticastListen ( socket, interface, IPv6 multicast address,                            INCLUDE, {} )   where {} is an empty source list.   An example of an API that provides the capabilities outlined in this   service interface is given in [RFC3678].Vida & Costa                Standards Track                    [Page 10]RFC 3810                     MLDv2 for IPv6                    June 20044.  Multicast Listening State Maintained by Nodes4.1.  Per-Socket State   For each socket on which IPv6MulticastListen has been invoked, the   node records the desired multicast listening state for that socket.   That state conceptually consists of a set of records of the form:   (interface, IPv6 multicast address, filter mode, source list)   The per-socket state evolves in response to each invocation of   IPv6MulticastListen on the socket, as follows:   o  If the requested filter mode is INCLUDE *and* the requested source      list is empty, then the entry that corresponds to the requested      interface and multicast address is deleted, if present.  If no      such entry is present, the request has no effect.   o  If the requested filter mode is EXCLUDE *or* the requested source      list is non-empty, then the entry that corresponds to the      requested interface and multicast address, if present, is changed      to contain the requested filter mode and source list.  If no such

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -