Network Working Group                                       R. Vida, Ed.
Request for Comments: 3810                                 L. Costa, Ed.
Updates: 2710                                                       LIP6
Category: Standards Track                                      June 2004
        
Network Working Group                                       R. Vida, Ed.
Request for Comments: 3810                                 L. Costa, Ed.
Updates: 2710                                                       LIP6
Category: Standards Track                                      June 2004
        

Multicast Listener Discovery Version 2 (MLDv2) for IPv6

IPv6的多播侦听器发现版本2(MLDv2)

Status of this Memo

本备忘录的状况

This document specifies an Internet standards track protocol for the Internet community, and requests discussion and suggestions for improvements. Please refer to the current edition of the "Internet Official Protocol Standards" (STD 1) for the standardization state and status of this protocol. Distribution of this memo is unlimited.

本文件规定了互联网社区的互联网标准跟踪协议,并要求进行讨论和提出改进建议。有关本协议的标准化状态和状态,请参考当前版本的“互联网官方协议标准”(STD 1)。本备忘录的分发不受限制。

Copyright Notice

版权公告

Copyright (C) The Internet Society (2004).

版权所有(C)互联网协会(2004年)。

Abstract

摘要

This document updates RFC 2710, and it specifies Version 2 of the Multicast Listener Discovery Protocol (MLDv2). MLD is used by an IPv6 router to discover the presence of multicast listeners on directly attached links, and to discover which multicast addresses are of interest to those neighboring nodes. MLDv2 is designed to be interoperable with MLDv1. MLDv2 adds the ability for a node to report interest in listening to packets with a particular multicast address only from specific source addresses or from all sources except for specific source addresses.

本文档更新了RFC2710,并指定了多播侦听器发现协议(MLDv2)的版本2。IPv6路由器使用MLD来发现直接连接的链路上是否存在多播侦听器,并发现那些相邻节点感兴趣的多播地址。MLDv2旨在与MLDv1互操作。MLDv2增加了节点仅从特定源地址或从除特定源地址以外的所有源报告对侦听具有特定多播地址的数据包感兴趣的能力。

Table of Contents

目录

   1.  Introduction. . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Protocol Overview . . . . . . . . . . . . . . . . . . . . . .   3
   3.  The Service Interface for Requesting IP Multicast Reception .   9
   4.  Multicast Listening State Maintained by Nodes . . . . . . . .  11
   5.  Message Formats . . . . . . . . . . . . . . . . . . . . . . .  13
   6.  Protocol Description for Multicast Address Listeners. . . . .  27
   7.  Protocol Description for Multicast Routers. . . . . . . . . .  34
   8.  Interoperation with MLDv1 . . . . . . . . . . . . . . . . . .  48
   9.  List of Timers, Counters, and their Default Values. . . . . .  51
   10. Security Considerations . . . . . . . . . . . . . . . . . . .  55
   11. IANA Considerations . . . . . . . . . . . . . . . . . . . . .  56
   12. References. . . . . . . . . . . . . . . . . . . . . . . . . .  56
   13. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . .  57
   Appendix A. Design Rationale. . . . . . . . . . . . . . . . . . .  58
   Appendix B. Summary of Changes from MLDv1 . . . . . . . . . . . .  59
   Editors' Contact Information. . . . . . . . . . . . . . . . . . .  61
   Authors' Addresses. . . . . . . . . . . . . . . . . . . . . . . .  61
   Full Copyright Statement. . . . . . . . . . . . . . . . . . . . .  62
        
   1.  Introduction. . . . . . . . . . . . . . . . . . . . . . . . .   2
   2.  Protocol Overview . . . . . . . . . . . . . . . . . . . . . .   3
   3.  The Service Interface for Requesting IP Multicast Reception .   9
   4.  Multicast Listening State Maintained by Nodes . . . . . . . .  11
   5.  Message Formats . . . . . . . . . . . . . . . . . . . . . . .  13
   6.  Protocol Description for Multicast Address Listeners. . . . .  27
   7.  Protocol Description for Multicast Routers. . . . . . . . . .  34
   8.  Interoperation with MLDv1 . . . . . . . . . . . . . . . . . .  48
   9.  List of Timers, Counters, and their Default Values. . . . . .  51
   10. Security Considerations . . . . . . . . . . . . . . . . . . .  55
   11. IANA Considerations . . . . . . . . . . . . . . . . . . . . .  56
   12. References. . . . . . . . . . . . . . . . . . . . . . . . . .  56
   13. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . .  57
   Appendix A. Design Rationale. . . . . . . . . . . . . . . . . . .  58
   Appendix B. Summary of Changes from MLDv1 . . . . . . . . . . . .  59
   Editors' Contact Information. . . . . . . . . . . . . . . . . . .  61
   Authors' Addresses. . . . . . . . . . . . . . . . . . . . . . . .  61
   Full Copyright Statement. . . . . . . . . . . . . . . . . . . . .  62
        
1. Introduction
1. 介绍

The Multicast Listener Discovery Protocol (MLD) is used by IPv6 routers to discover the presence of multicast listeners (i.e., nodes that wish to receive multicast packets) on their directly attached links, and to discover specifically which multicast addresses are of interest to those neighboring nodes. Note that a multicast router may itself be a listener of one or more multicast addresses; in this case it performs both the "multicast router part" and the "multicast address listener part" of the protocol, to collect the multicast listener information needed by its multicast routing protocol on the one hand, and to inform itself and other neighboring multicast routers of its listening state on the other hand.

IPv6路由器使用多播侦听器发现协议(MLD)来发现多播侦听器(即,希望接收多播数据包的节点)在其直接连接的链路上的存在,并专门发现那些相邻节点感兴趣的多播地址。注意,多播路由器本身可以是一个或多个多播地址的侦听器;在这种情况下,它执行协议的“多播路由器部分”和“多播地址侦听器部分”,一方面收集其多播路由协议所需的多播侦听器信息,另一方面通知自身和其他相邻多播路由器其侦听状态。

This document specifies Version 2 of MLD. The previous version of MLD is specified in [RFC2710]. In this document we will refer to it as MLDv1. MLDv2 is a translation of the IGMPv3 protocol [RFC3376] for IPv6 semantics.

本文件规定了MLD的第2版。[RFC2710]中规定了MLD的早期版本。在本文件中,我们将其称为MLDv1。MLDv2是用于IPv6语义的IGMPv3协议[RFC3376]的翻译。

The MLDv2 protocol, when compared to MLDv1, adds support for "source filtering", i.e., the ability for a node to report interest in listening to packets *only* from specific source addresses, as required to support Source-Specific Multicast [RFC3569], or from *all but* specific source addresses, sent to a particular multicast address. MLDv2 is designed to be interoperable with MLDv1.

与MLDv1相比,MLDv2协议增加了对“源过滤”的支持,即,节点能够根据支持源特定多播[RFC3569]的需要,报告对从特定源地址*仅*侦听数据包的兴趣,或从*除*特定源地址之外的所有数据包,发送到特定多播地址的兴趣。MLDv2旨在与MLDv1互操作。

The capitalized key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119]. Due to the lack of italics, emphasis is indicated herein by bracketing a word or phrase in "*" characters. Furthermore, square brackets are used to denote the value of the enclosed variable, as opposed to the variable itself, written without brackets.

本文件中大写的关键词“必须”、“不得”、“必需”、“应”、“不应”、“应”、“不应”、“建议”、“可”和“可选”应按照[RFC2119]中的说明进行解释。由于缺少斜体字,此处通过将单词或短语括在“*”字符中来表示重点。此外,方括号用于表示封闭变量的值,与变量本身相反,无括号书写。

2. Protocol Overview
2. 协议概述

This section gives a brief description of the protocol operation. The following sections present the protocol details.

本节简要介绍协议操作。以下各节介绍了协议的详细信息。

MLD is an asymmetric protocol; it specifies separate behaviors for multicast address listeners (i.e., hosts or routers that listen to multicast packets) and multicast routers. The purpose of MLD is to enable each multicast router to learn, for each of its directly attached links, which multicast addresses and which sources have interested listeners on that link. The information gathered by MLD is provided to whichever multicast routing protocol is used by the router, in order to ensure that multicast packets are delivered to all links where there are listeners interested in such packets.

MLD是一种非对称协议;它为多播地址侦听器(即侦听多播数据包的主机或路由器)和多播路由器指定单独的行为。MLD的目的是使每个多播路由器能够为其每个直接连接的链路了解哪些多播地址以及哪些源在该链路上有感兴趣的侦听器。MLD收集的信息被提供给路由器使用的任何一个多播路由协议,以确保多播数据包被传送到所有链路,其中有对这些数据包感兴趣的侦听器。

Multicast routers only need to know that *at least one* node on an attached link is listening to packets for a particular multicast address, from a particular source; a multicast router is not required to *individually* keep track of the interests of each neighboring node. (Nevertheless, see Appendix A2 item 1 for discussion.)

多播路由器只需要知道连接链路上的*至少一个*节点正在侦听来自特定源的特定多播地址的数据包;多播路由器不需要*单独*跟踪每个相邻节点的兴趣。(尽管如此,讨论请参见附录A2第1项。)

A multicast router performs the *router part* of the MLDv2 protocol (described in details in section 7) on each of its directly attached links. If a multicast router has more than one interface connected to the same link, it only needs to operate the protocol on one of those interfaces. The router behavior depends on whether there are several multicast routers on the same subnet, or not. If that is the case, a querier election mechanism (described in section 7.6.2) is used to elect a single multicast router to be in Querier state. This router is called the Querier. All multicast routers on the subnet listen to the messages sent by multicast address listeners, and maintain the same multicast listening information state, so that they can take over the querier role, should the present Querier fail. Nevertheless, only the Querier sends periodical or triggered query messages on the subnet, as described in section 7.1.

多播路由器在其每个直接连接的链路上执行MLDv2协议的*路由器部分*(在第7节中详细描述)。如果一个多播路由器有多个接口连接到同一链路,它只需要在其中一个接口上操作协议。路由器行为取决于同一子网上是否有多个多播路由器。如果是这种情况,则使用查询器选择机制(如第7.6.2节所述)选择处于查询器状态的单个多播路由器。这个路由器叫做查询器。子网上的所有多播路由器侦听多播地址侦听器发送的消息,并保持相同的多播侦听信息状态,以便在当前查询器失败时,它们可以接管查询器角色。然而,如第7.1节所述,只有查询者在子网上发送定期或触发的查询消息。

A multicast address listener performs the *listener part* of the MLDv2 protocol (described in details in section 6) on all interfaces on which multicast reception is supported, even if more than one of those interfaces are connected to the same link.

多播地址侦听器在支持多播接收的所有接口上执行MLDv2协议的*侦听器部分*(在第6节中详细描述),即使这些接口中有多个连接到同一链路。

2.1. Building Multicast Listening State on Multicast Address Listeners
2.1. 在多播地址侦听器上构建多播侦听状态

Upper-layer protocols and applications that run on a multicast address listener node use specific service interface calls (described in section 3) to ask the IP layer to enable or disable reception of packets sent to specific multicast addresses. The node keeps Multicast Address Listening state for each socket on which the service interface calls have been invoked (section 4.1). In addition to this per-socket multicast listening state, a node must also maintain or compute multicast listening state for each of its interfaces (section 4.2). Conceptually, that state consists of a set of records, with each record containing an IPv6 multicast address, a filter mode, and a source list. The filter mode may be either INCLUDE or EXCLUDE. In INCLUDE mode, reception of packets sent to the specified multicast address is enabled *only* from the source addresses listed in the source list. In EXCLUDE mode, reception of packets sent to the given multicast address is enabled from all source addresses *except* those listed in the source list.

在多播地址侦听器节点上运行的上层协议和应用程序使用特定的服务接口调用(如第3节所述)请求IP层启用或禁用接收发送到特定多播地址的数据包。该节点为已调用服务接口调用的每个套接字保持多播地址侦听状态(第4.1节)。除此之外,节点还必须为其每个接口维护或计算多播侦听状态(第4.2节)。从概念上讲,该状态由一组记录组成,每条记录包含IPv6多播地址、筛选器模式和源列表。过滤模式可以是包含或排除。在包括模式下,从源列表中列出的源地址*仅*启用接收发送到指定多播地址的数据包。在排除模式下,从源列表中列出的源地址*以外的所有源地址*接收发送到给定多播地址的数据包。

At most one record per multicast address exists for a given interface. This per-interface state is derived from the per-socket state, but may differ from it when different sockets have differing filter modes and/or source lists for the same multicast address and interface. After a multicast packet has been accepted from an interface by the IP layer, its subsequent delivery to the application connected to a particular socket depends on the multicast listening state of that socket (and possibly also on other conditions, such as what transport-layer port the socket is bound to). Note that MLDv2 messages are not subject to source filtering and must always be processed by hosts and routers.

对于给定接口,每个多播地址最多存在一条记录。此每个接口状态源自每个套接字状态,但当不同套接字对同一多播地址和接口具有不同的筛选模式和/或源列表时,可能会有所不同。IP层从接口接受多播数据包后,其随后传递到连接到特定套接字的应用程序取决于该套接字的多播侦听状态(也可能取决于其他条件,例如套接字绑定到哪个传输层端口)。请注意,MLDv2消息不受源筛选的约束,必须始终由主机和路由器处理。

2.2. Exchanging Messages between the Querier and the Listening Nodes
2.2. 在查询器和侦听节点之间交换消息

There are three types of MLDv2 query messages: General Queries, Multicast Address Specific Queries, and Multicast Address and Source Specific Queries. The Querier periodically sends General Queries, to learn multicast address listener information from an attached link. These queries are used to build and refresh the Multicast Address Listener state inside all multicast routers on the link.

MLDv2查询消息有三种类型:常规查询、特定于多播地址的查询以及特定于多播地址和源的查询。查询器定期发送常规查询,以从连接的链接中学习多播地址侦听器信息。这些查询用于在链路上的所有多播路由器内构建和刷新多播地址侦听器状态。

Nodes respond to these queries by reporting their per-interface Multicast Address Listening state, through Current State Report messages sent to a specific multicast address all MLDv2 routers on

节点通过向所有MLDv2路由器上的特定多播地址发送当前状态报告消息,通过报告其每个接口多播地址侦听状态来响应这些查询

the link listen to. On the other hand, if the listening state of a node changes, the node immediately reports these changes through a State Change Report message. The State Change Report contains either Filter Mode Change records, Source List Change records, or records of both types. A detailed description of the report messages is presented in section 5.2.12.

链接收听。另一方面,如果节点的侦听状态发生更改,则节点会立即通过状态更改报告消息报告这些更改。状态更改报告包含筛选模式更改记录、源列表更改记录或两种类型的记录。第5.2.12节给出了报告消息的详细说明。

Both router and listener state changes are mainly triggered by the expiration of a specific timer, or the reception of an MLD message (listener state change can be also triggered by the invocation of a service interface call). Therefore, to enhance protocol robustness, in spite of the possible unreliability of message exchanges, messages are retransmitted several times. Furthermore, timers are set so as to take into account the possible message losses, and to wait for retransmissions.

路由器和侦听器状态更改主要由特定计时器的过期或MLD消息的接收触发(侦听器状态更改也可以通过调用服务接口调用触发)。因此,为了增强协议的健壮性,尽管消息交换可能不可靠,但消息被重传几次。此外,定时器被设置为考虑可能的消息丢失,并等待重传。

Periodical General Queries and Current State Reports do not apply this rule, in order not to overload the link; it is assumed that in general these messages do not generate state changes, their main purpose being to refresh existing state. Thus, even if one such message is lost, the corresponding state will be refreshed during the next reporting period.

定期常规查询和当前状态报告不适用此规则,以避免链接过载;通常假定这些消息不会生成状态更改,其主要目的是刷新现有状态。因此,即使有一条这样的消息丢失,相应的状态也将在下一个报告期内刷新。

As opposed to Current State Reports, State Change Reports are retransmitted several times, in order to avoid them being missed by one or more multicast routers. The number of retransmissions depends on the so-called Robustness Variable. This variable allows tuning the protocol according to the expected packet loss on a link. If a link is expected to be lossy (e.g., a wireless connection), the value of the Robustness Variable may be increased. MLD is robust to [Robustness Variable]-1 packet losses. This document recommends a default value of 2 for the Robustness Variable (see section 9.1).

与当前状态报告相反,状态更改报告会被重新传输多次,以避免一个或多个多播路由器丢失它们。重传次数取决于所谓的稳健性变量。此变量允许根据链路上的预期数据包丢失调整协议。如果预期链路有损(例如,无线连接),则鲁棒性变量的值可以增加。MLD对[Robustness Variable]-1数据包丢失具有鲁棒性。本文件建议稳健性变量的默认值为2(见第9.1节)。

If more changes to the same per-interface state entry occur before all the retransmissions of the State Change Report for the first change have been completed, each additional change triggers the immediate transmission of a new State Change Report. Section 6.1 shows how the content of this new report is computed. Retransmissions of the new State Change Report will be scheduled as well, in order to ensure that each instance of state change is transmitted at least [Robustness Variable] times.

如果在完成第一次更改的状态更改报告的所有重新传输之前,对每个接口状态条目进行了更多更改,则每个额外的更改都会触发新状态更改报告的立即传输。第6.1节显示了如何计算此新报告的内容。还将安排重新传输新的状态更改报告,以确保每个状态更改实例至少传输[鲁棒性变量]次。

If a node on a link expresses, through a State Change Report, its desire to no longer listen to a particular multicast address (or source), the Querier must query for other listeners of the multicast address (or source) before deleting the multicast address (or source) from its Multicast Address Listener state and stopping the corresponding traffic. Thus, the Querier sends a Multicast Address

如果链路上的节点通过状态更改报告表示希望不再侦听特定的多播地址(或源),则查询者必须在删除多播地址(或源)之前查询该多播地址(或源)的其他侦听器从其多播地址侦听器状态并停止相应的通信量。因此,查询者发送一个多播地址

Specific Query to verify whether there are nodes still listening to a specified multicast address or not. Similarly, the Querier sends a Multicast Address and Source Specific Query to verify whether, for a specified multicast address, there are nodes still listening to a specific set of sources, or not. Section 5.1.13 describes each query in more detail.

用于验证是否有节点仍在侦听指定的多播地址的特定查询。类似地,查询器发送多播地址和特定于源的查询,以验证对于指定的多播地址,是否有节点仍在侦听特定的一组源。第5.1.13节更详细地描述了每个查询。

Both Multicast Address Specific Queries and Multicast Address and 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.

多播地址特定查询以及多播地址和源特定查询仅在响应状态更改报告时发送,而不会响应当前状态报告。为了避免路由器将所有多播侦听器报告视为状态的潜在变化,需要区分这两种类型的报告。通过这样做,如果状态更改报告丢失,并且路由器仅接收到以下当前状态报告,则MLDv2的快速离开机制(在第2.2节中有更详细的描述)可能无效。然而,它避免了在路由器上增加处理,并减少了链路上的MLD流量。有关区分这两种报告类型的必要性的更多详细信息,请参见附录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.

如前所述,为了确保协议健壮性,所有查询(周期性常规查询除外)在给定的时间间隔内重新传输数次。重传次数取决于稳健性变量。如果在调度新查询时,对于相同的多播地址,存在要重新传输的挂起查询,则必须合并新查询和挂起查询。此外,针对具有挂起查询的多播地址接收的主机报告可能会影响这些查询的内容。第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 might

通过使用S标志(抑制路由器端处理),协议健壮性也得到了增强。如上所述,当查询器发送特定于多播地址或特定于多播地址和源的查询时,调度查询的多次重传。在原始(第一个)查询中,S标志是清除的。当查询器发送此查询时,它将相关多播地址(或源)的计时器降低到给定值;类似地,任何接收查询的非查询多播路由器都以相同的方式降低其计时器。然而,在等待发送下一个预定查询时,查询者可能会收到更新计时器的报告。为了确保非查询器路由器保持其状态与当前查询器同步(非查询器路由器可能会

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.

错过了第一个查询)。然而,不应再次降低计时器,因为已收到有效答案。因此,在后续查询中,查询器设置S标志。

2.3. Building Multicast Address Listener State on Multicast Routers
2.3. 在多播路由器上构建多播地址侦听器状态

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.

实现MLDv2的多播路由器(无论是否处于查询状态)保持每个连接链路的每个多播地址的状态。此多播地址侦听器状态由筛选器模式、筛选器计时器和源列表组成,其中一个计时器与列表中的每个源关联。过滤器模式用于将多播地址的总侦听状态汇总到最小集,以便所有节点的侦听状态都得到尊重。过滤模式可响应于特定类型的报告消息的接收,或当某些计时器条件发生时改变。

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.

对于给定接口上的特定多播地址,如果链路上对该地址感兴趣的所有侦听器都处于包含模式,则路由器处于包含模式。路由器状态通过符号INCLUDE(A)表示,其中A是一个源列表,称为“INCLUDE list”。包含列表是链接上的一个或多个侦听器请求接收的源的集合。包含列表中的所有源都将由路由器转发。不在包含列表中的任何其他源都将被路由器阻止。

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.

如果处于包含模式的侦听器发送包含该源的当前状态或状态更改报告,则可以将该源添加到当前包含列表中。Include列表中的每个源都与一个源计时器相关联,每当处于Include模式的侦听器发送确认其对该特定源感兴趣的报告时,该计时器就会更新。如果包含列表中某个源的计时器过期,则该源将从包含列表中删除。

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.

除了这种“软离开”机制外,MLDv2中还有一个“快速离开”方案;它还基于源定时器的使用。当处于包含模式的节点表示希望停止侦听特定源时,链路上的所有多播路由器将该源的计时器降低到给定值。查询器然后发送一个多播地址和特定于源的查询,以验证链接上是否有该源的其他侦听器。如果在计时器到期之前收到包含此源的报告,则链路上的所有多播路由器都会更新源计时器。如果不是,则从包含列表中删除源。表7.4.1和7.4.2详细说明了根据收到的报告处理包含列表的情况。

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:

当路由器处于排除模式时,路由器状态由排除符号(X,Y)表示,其中X称为“请求列表”,Y称为“排除列表”。除排除列表中的源外,所有源都将由路由器转发。请求的列表对转发没有影响。然而,路由器必须维护请求的列表,原因有两个:

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.

o 跟踪处于包含模式的侦听器侦听的源。这是必要的,以确保路由器无缝过渡到包含模式,当排除模式中没有侦听器时。对于该多播地址,此转换不应在包含模式下中断到侦听器的通信流。因此,在转换时,请求的列表应该包含INCLUDE模式中的节点显式请求的源集。

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.

当路由器切换到包括模式时,请求列表中的源被移动到包括列表,排除列表被删除。在切换之前,请求的列表可能包含对包含模式侦听器中的源侦听器的不精确猜测-可能太大或太小。这些不准确是由于请求的列表也用于快速阻塞目的,如下所述。如果需要这种快速阻塞,可以从请求列表中删除一些源(如表7.4.1和7.4.2所示),以减少路由器状态。然而,在每种情况下,过滤器定时器也会更新。因此,在最终切换之前,处于INCLUDE模式的侦听器将有足够的时间重新确认他们对已消除的源的兴趣,并相应地重建请求的列表。该协议确保当切换到包含模式时,请求的列表将是准确的。有关路由器转换为包含模式的详细信息,请参见附录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 timers

o 允许快速阻塞以前未阻塞的源。如果路由器收到包含此类请求的报告,则相关源将添加到请求列表中。他们的计时器

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.

根据收到的报告,排除模式路由器状态的处理详见表7.4.1和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.

本文档中描述的MLDv2路由器和侦听器行为都是为了确保与MLDv1主机和路由器的向后互操作性而定义的。第8节详细介绍了互操作性问题。

3. The Service Interface for Requesting IP Multicast Reception
3. 用于请求IP多播接收的服务接口

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:

在IP系统内,存在(至少在概念上)由上层协议或应用程序使用的服务接口,以请求IP层启用或禁用发送到特定IP多播地址的分组的接收。为了充分利用MLDv2的功能,节点的IP服务接口必须支持以下操作:

IPv6MulticastListen ( socket, interface, IPv6 multicast address, filter mode, source list )

IPv6MulticastListen(套接字、接口、IPv6多播地址、筛选器模式、源列表)

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 “套接字”是一个特定于实现的参数,用于区分节点内的不同请求实体(例如,程序、进程);BSD Unix系统调用的套接字参数就是一个具体的例子。

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.

o “接口”是要启用或禁用接收指定多播地址的网络接口的本地标识符。接口可以是物理接口(例如,以太网接口)或虚拟接口(例如,帧中继虚拟电路的端点或IP-in-IP“隧道”)。实现可能允许将特殊的“未指定”值作为接口参数传递,在这种情况下,请求将应用于节点的“主”或“默认”接口(可能由系统配置建立)。如果需要在多个接口上接收相同的多播地址,则为每个所需接口分别调用IPv6MulticastListen。

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 “IPv6多播地址”是请求所属的多播地址。如果需要在给定接口上接收多个多播地址,则会为每个所需地址分别调用IPv6MulticastListen。

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 “过滤模式”可以是包含或排除。在INCLUDE模式下,仅从source list参数中列出的源地址请求*接收发送到指定多播地址的数据包。在排除模式下,从所有源地址*请求接收发送到给定多播地址的数据包,源列表参数中列出的*除外。

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.

o “源列表”是零个或多个单播地址的无序列表,根据过滤模式,需要或不需要从中接收多播。实现可能会对源列表的大小施加限制。当操作导致超过源列表大小限制时,服务接口应返回错误。

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.

对于套接字、接口和IPv6多播地址的给定组合,在任何时候都只能使用单个筛选器模式和源列表。但是,指定相同套接字、接口和IPv6多播地址的后续IPv6MulticastListen请求可能会更改筛选器模式或源列表,或同时更改两者。每个后续请求完全替换给定套接字、接口和多播地址的任何早期请求。

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:

MLDv1协议不支持源过滤器,具有更简单的服务接口;它包括启动侦听和停止侦听操作,以启用和禁用对给定接口上的给定多播地址(来自*所有*源)的侦听。新服务接口中的等效操作如下所示:

The Start Listening operation is equivalent to:

开始侦听操作相当于:

IPv6MulticastListen ( socket, interface, IPv6 multicast address, EXCLUDE, {} )

IPv6MulticastListen(套接字、接口、IPv6多播地址、排除、{})

and the Stop Listening operation is equivalent to:

停止监听操作相当于:

IPv6MulticastListen ( socket, interface, IPv6 multicast address, INCLUDE, {} )

IPv6MulticastListen(套接字、接口、IPv6多播地址,包括,{})

where {} is an empty source list.

其中{}是一个空的源列表。

An example of an API that provides the capabilities outlined in this service interface is given in [RFC3678].

[RFC3678]中给出了提供此服务接口中概述的功能的API示例。

4. Multicast Listening State Maintained by Nodes
4. 由节点维护的多播侦听状态
4.1. Per-Socket State
4.1. 每个套接字状态

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:

对于调用IPv6MulticastListen的每个套接字,节点记录该套接字所需的多播侦听状态。该状态在概念上由以下形式的一组记录组成:

(interface, IPv6 multicast address, filter mode, source list)

(接口、IPv6多播地址、筛选器模式、源列表)

The per-socket state evolves in response to each invocation of IPv6MulticastListen on the socket, as follows:

每个套接字的状态随套接字上IPv6MulticastListen的每次调用而变化,如下所示:

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 如果请求的过滤模式为INCLUDE*且*请求的源列表为空,则删除与请求的接口和多播地址对应的条目(如果存在)。如果不存在此类条目,则请求无效。

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 entry is present, a new entry is created, using the parameters specified in the request.

o 如果请求的筛选器模式为EXCLUDE*或*请求的源列表为非空,则对应于请求的接口和多播地址(如果存在)的条目将更改为包含请求的筛选器模式和源列表。如果不存在这样的条目,则使用请求中指定的参数创建一个新条目。

4.2. Per-Interface State
4.2. 每个接口状态

In addition to the per-socket multicast listening state, a node must also maintain or compute multicast listening state for each of its interfaces. That state conceptually consists of a set of records of the form:

除了每个套接字的多播侦听状态外,节点还必须为其每个接口维护或计算多播侦听状态。该状态在概念上由以下形式的一组记录组成:

(IPv6 multicast address, filter mode, source list)

(IPv6多播地址、筛选器模式、源列表)

At most one record per multicast address exists for a given interface. This per-interface state is derived from the per-socket state, but may differ from it when different sockets have differing filter modes and/or source lists for the same multicast address and interface. For example, suppose one application or process invokes the following operation on socket s1:

对于给定接口,每个多播地址最多存在一条记录。此每个接口状态源自每个套接字状态,但当不同套接字对同一多播地址和接口具有不同的筛选模式和/或源列表时,可能会有所不同。例如,假设一个应用程序或进程调用套接字s1上的以下操作:

IPv6MulticastListen ( s1, i, m, INCLUDE, {a, b, c} )

IPv6MulticastListen(s1,i,m,INCLUDE,{a,b,c})

requesting reception on interface i of packets sent to multicast address m, *only* if they come from the sources a, b, or c. Suppose another application or process invokes the following operation on socket s2:

请求在接口i上接收发送到多播地址m的数据包,*仅当数据包来自源a、b或c时*。假设另一个应用程序或进程调用套接字s2上的以下操作:

IPv6MulticastListen ( s2, i, m, INCLUDE, {b, c, d} )

IPv6MulticastListen(s2,i,m,INCLUDE,{b,c,d})

requesting reception on the same interface i of packets sent to the same multicast address m, *only* if they come from sources b, c, or d. In order to satisfy the reception requirements of both sockets, it is necessary for interface i to receive packets sent to m from any one of the sources a, b, c, or d. Thus, in this example, the listening state of interface i for multicast address m has filter mode INCLUDE and source list {a, b, c, d}.

请求在同一接口i上接收发送到同一多播地址m的数据包,*仅当它们来自源b、c或d时。为了满足两个插座的接收要求,接口i必须接收从源a、b、c或d中的任何一个发送到m的数据包。因此,在该示例中,多播地址m的接口i的侦听状态具有过滤模式INCLUDE和源列表{a,b,c,d}。

After a multicast packet has been accepted from an interface by the IP layer, its subsequent delivery to the application or process that listens on a particular socket depends on the multicast listening state of that socket (and possibly also on other conditions, such as what transport-layer port the socket is bound to). So, in the above example, if a packet arrives on interface i, destined to multicast address m, with source address a, it may be delivered on socket s1 but not on socket s2. Note that MLDv2 messages are not subject to source filtering and must always be processed by hosts and routers.

IP层从接口接受多播数据包后,其后续传递到侦听特定套接字的应用程序或进程取决于该套接字的多播侦听状态(也可能取决于其他条件,例如套接字绑定到哪个传输层端口)。因此,在上面的示例中,如果包到达接口i,目的地为多播地址m,源地址为a,则它可以在套接字s1上传递,但不能在套接字s2上传递。请注意,MLDv2消息不受源筛选的约束,必须始终由主机和路由器处理。

Requiring the filtering of packets based upon a socket's multicast reception state is a new feature of this service interface. The previous service interface described no filtering based upon multicast listening state; rather, a Start Listening operation on a socket simply caused the node to start to listen to a multicast address on the given interface; packets sent to that multicast address could be delivered to all sockets, whether they had started to listen or not.

需要根据套接字的多播接收状态过滤数据包是该服务接口的一个新特性。前一个服务接口描述没有基于多播监听状态的过滤;相反,套接字上的开始侦听操作只是导致节点开始侦听给定接口上的多播地址;发送到该多播地址的数据包可以发送到所有套接字,无论它们是否已开始侦听。

The general rules for deriving the per-interface state from the per-socket state are as follows: for each distinct (interface, IPv6 multicast address) pair that appears in any per-socket state, a per-interface record is created for that multicast address on that interface. Considering all socket records that contain the same (interface, IPv6 multicast address) pair,

从每个套接字状态派生每个接口状态的一般规则如下:对于出现在任何每个套接字状态中的每个不同(接口,IPv6多播地址)对,将为该接口上的多播地址创建每个接口记录。考虑到所有包含相同(接口、IPv6多播地址)对的套接字记录,

o 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. For example, if the socket records for multicast address m on interface i are:

o 如果*any*此类记录的过滤模式为EXCLUDE,则接口记录的过滤模式为EXCLUDE,接口记录的源列表是EXCLUDE模式下所有套接字记录的源列表的交点,减去INCLUDE模式下任何套接字记录中出现的源地址。例如,如果接口i上多播地址m的套接字记录为:

         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} )
        
         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:

则接口i上对应的接口记录为:

( m, EXCLUDE, {b, c} )

(m,排除,{b,c})

If a fourth socket is added, such as:

如果添加了第四个插座,例如:

         From socket s4:  ( i, m, EXCLUDE, {} )
        
         From socket s4:  ( i, m, EXCLUDE, {} )
        

then the interface record becomes:

然后,接口记录变为:

( m, EXCLUDE, {} )

(m,排除,{})

o 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:

o 如果*all*这样的记录具有INCLUDE的过滤模式,则接口记录的过滤模式为INCLUDE,并且接口记录的源列表是所有套接字记录的源列表的并集。例如,如果接口i上多播地址m的套接字记录为:

         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} )
        
         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:

则接口i上对应的接口记录为:

( m, INCLUDE, {a, b, c, d, e, f} )

(m,包括,{a,b,c,d,e,f})

An implementation MUST NOT use an EXCLUDE interface record for a multicast address if all sockets for this multicast address are in INCLUDE state. If system resource limits are reached when a per-interface state source list is calculated, an error MUST be returned to the application which requested the operation.

如果多播地址的所有套接字都处于包含状态,则实现不得使用多播地址的排除接口记录。如果在计算每个接口状态源列表时达到系统资源限制,则必须向请求操作的应用程序返回错误。

The above rules for deriving the per-interface state are (re)evaluated whenever an IPv6MulticastListen invocation modifies the per-socket state by adding, deleting, or modifying a per-socket state record. Note that a change of the per-socket state does not necessarily result in a change of the per-interface state.

每当IPv6MulticastListen调用通过添加、删除或修改每个套接字状态记录来修改每个套接字状态时,就会(重新)评估用于派生每个接口状态的上述规则。请注意,每个套接字状态的更改不一定会导致每个接口状态的更改。

5. Message Formats
5. 消息格式

MLDv2 is a sub-protocol of ICMPv6, that is, MLDv2 message types are a subset of ICMPv6 messages, and MLDv2 messages are identified in IPv6 packets by a preceding Next Header value of 58. All MLDv2 messages described in this document MUST be sent with a link-local IPv6 Source

MLDv2是ICMPv6的子协议,也就是说,MLDv2消息类型是ICMPv6消息的子集,并且MLDv2消息在IPv6数据包中由前一个下一个报头值58标识。本文档中描述的所有MLDv2消息必须使用本地IPv6源链路发送

Address, an IPv6 Hop Limit of 1, and an IPv6 Router Alert option [RFC2711] in a Hop-by-Hop Options header. (The Router Alert option is necessary to cause routers to examine MLDv2 messages sent to IPv6 multicast addresses in which the routers themselves have no interest.) MLDv2 Reports can be sent with the source address set to the unspecified address [RFC3513], if a valid link-local IPv6 source address has not been acquired yet for the sending interface. (See section 5.2.13. for details.)

地址、IPv6跃点限制1和逐跃点选项标头中的IPv6路由器警报选项[RFC2711]。(路由器警报选项是使路由器检查发送到路由器本身不感兴趣的IPv6多播地址的MLDv2消息所必需的。)发送MLDv2报告时,可以将源地址设置为未指定的地址[RFC3513],如果尚未为发送接口获取有效的链路本地IPv6源地址。(详见第5.2.13节。)

There are two MLD message types of concern to the MLDv2 protocol described in this document:

本文档中描述的MLDv2协议涉及两种MLD消息类型:

o Multicast Listener Query (Type = decimal 130)

o 多播侦听器查询(类型=十进制130)

o Version 2 Multicast Listener Report (Type = decimal 143). See section 11 for IANA considerations.

o 版本2多播侦听器报告(类型=十进制143)。IANA注意事项见第11节。

To assure the interoperability with nodes that implement MLDv1 (see section 8), an implementation of MLDv2 must also support the following two message types:

为确保与实现MLDv1的节点的互操作性(参见第8节),MLDv2的实现还必须支持以下两种消息类型:

o Version 1 Multicast Listener Report (Type = decimal 131) [RFC2710]

o 版本1多播侦听器报告(类型=十进制131)[RFC2710]

o Version 1 Multicast Listener Done (Type = decimal 132) [RFC2710]

o 版本1多播侦听器已完成(类型=十进制132)[RFC2710]

Unrecognized message types MUST be silently ignored. Other message types may be used by newer versions or extensions of MLD, by multicast routing protocols, or for other uses.

无法识别的消息类型必须以静默方式忽略。其他消息类型可由MLD的较新版本或扩展、多播路由协议或其他用途使用。

In this document, unless otherwise qualified, the capitalized words "Query" and "Report" refer to MLD Multicast Listener Queries and MLD Version 2 Multicast Listener Reports, respectively.

在本文档中,除非另有限定,大写的“查询”和“报告”分别指MLD多播侦听器查询和MLD版本2多播侦听器报告。

5.1. Multicast Listener Query Message
5.1. 多播侦听器查询消息

Multicast Listener Queries are sent by multicast routers in Querier State to query the multicast listening state of neighboring interfaces. Queries have the following 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 = 130   |      Code     |           Checksum            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    Maximum Response Code      |           Reserved            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    *                                                               *
    |                                                               |
    *                       Multicast Address                       *
    |                                                               |
    *                                                               *
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Resv  |S| QRV |     QQIC      |     Number of Sources (N)     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    *                                                               *
    |                                                               |
    *                       Source Address [1]                      *
    |                                                               |
    *                                                               *
    |                                                               |
    +-                                                             -+
    |                                                               |
    *                                                               *
    |                                                               |
    *                       Source Address [2]                      *
    |                                                               |
    *                                                               *
    |                                                               |
    +-                              .                              -+
    .                               .                               .
    .                               .                               .
    +-                                                             -+
    |                                                               |
    *                                                               *
    |                                                               |
    *                       Source Address [N]                      *
    |                                                               |
    *                                                               *
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
     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 = 130   |      Code     |           Checksum            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |    Maximum Response Code      |           Reserved            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    *                                                               *
    |                                                               |
    *                       Multicast Address                       *
    |                                                               |
    *                                                               *
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Resv  |S| QRV |     QQIC      |     Number of Sources (N)     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    *                                                               *
    |                                                               |
    *                       Source Address [1]                      *
    |                                                               |
    *                                                               *
    |                                                               |
    +-                                                             -+
    |                                                               |
    *                                                               *
    |                                                               |
    *                       Source Address [2]                      *
    |                                                               |
    *                                                               *
    |                                                               |
    +-                              .                              -+
    .                               .                               .
    .                               .                               .
    +-                                                             -+
    |                                                               |
    *                                                               *
    |                                                               |
    *                       Source Address [N]                      *
    |                                                               |
    *                                                               *
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
5.1.1. Code
5.1.1. 密码

Initialized to zero by the sender; ignored by receivers.

由发送方初始化为零;被接收者忽略。

5.1.2. Checksum
5.1.2. 校验和

The standard ICMPv6 checksum; it covers the entire MLDv2 message, plus a "pseudo-header" of IPv6 header fields [RFC2463]. For computing the checksum, the Checksum field is set to zero. When a packet is received, the checksum MUST be verified before processing it.

标准ICMPv6校验和;它覆盖了整个MLDv2消息,以及IPv6报头字段的“伪报头”[RFC2463]。为了计算校验和,校验和字段设置为零。当收到数据包时,必须在处理它之前验证校验和。

5.1.3. Maximum Response Code
5.1.3. 最大响应码

The Maximum Response Code field specifies the maximum time allowed before sending a responding Report. The actual time allowed, called the Maximum Response Delay, is represented in units of milliseconds, and is derived from the Maximum Response Code as follows:

“最大响应代码”字段指定发送响应报告之前允许的最长时间。允许的实际时间(称为最大响应延迟)以毫秒为单位表示,并从最大响应代码中导出,如下所示:

If Maximum Response Code < 32768, Maximum Response Delay = Maximum Response Code

如果最大响应代码<32768,则最大响应延迟=最大响应代码

If Maximum Response Code >=32768, Maximum Response Code represents a floating-point value as follows:

如果最大响应代码>=32768,则最大响应代码表示浮点值,如下所示:

       0 1 2 3 4 5 6 7 8 9 A B C D E F
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |1| exp |          mant         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
       0 1 2 3 4 5 6 7 8 9 A B C D E F
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |1| exp |          mant         |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
   Maximum Response Delay = (mant | 0x1000) << (exp+3)
        
   Maximum Response Delay = (mant | 0x1000) << (exp+3)
        

Small values of Maximum Response Delay allow MLDv2 routers to tune the "leave latency" (the time between the moment the last node on a link ceases to listen to a specific multicast address and the moment the routing protocol is notified that there are no more listeners for that address). Larger values, especially in the exponential range, allow the tuning of the burstiness of MLD traffic on a link.

最大响应延迟的较小值允许MLDv2路由器调整“离开延迟”(链路上的最后一个节点停止侦听特定多播地址到路由协议被通知该地址没有更多侦听器之间的时间)。更大的值,特别是在指数范围内,允许调整链路上MLD流量的突发性。

5.1.4. Reserved
5.1.4. 含蓄的

Initialized to zero by the sender; ignored by receivers.

由发送方初始化为零;被接收者忽略。

5.1.5. Multicast Address
5.1.5. 多播地址

For a General Query, the Multicast Address field is set to zero. For a Multicast Address Specific Query or Multicast Address and Source Specific Query, it is set to the multicast address being queried (see section 5.1.10, below).

对于常规查询,多播地址字段设置为零。对于特定于多播地址的查询或特定于多播地址和源的查询,将其设置为所查询的多播地址(见下文第5.1.10节)。

5.1.7. S Flag (Suppress Router-Side Processing)
5.1.7. S标志(抑制路由器端处理)

When set to one, the S Flag indicates to any receiving multicast routers that they have to suppress the normal timer updates they perform upon hearing a Query. Nevertheless, it does not suppress the querier election or the normal "host-side" processing of a Query that a router may be required to perform as a consequence of itself being a multicast listener.

当设置为1时,S标志向任何接收多播路由器指示,它们必须抑制在听到查询时执行的正常计时器更新。然而,它并不抑制查询器选择或路由器作为多播侦听器可能需要执行的查询的正常“主机端”处理。

5.1.8. QRV (Querier's Robustness Variable)
5.1.8. QRV(Querier的稳健性变量)

If non-zero, the QRV field contains the [Robustness Variable] value used by the Querier. If the Querier's [Robustness Variable] exceeds 7 (the maximum value of the QRV field), the QRV field is set to zero.

如果非零,则QRV字段包含查询器使用的[Robustness Variable]值。如果查询器的[稳健性变量]超过7(QRV字段的最大值),则QRV字段设置为零。

Routers adopt the QRV value from the most recently received Query as their own [Robustness Variable] value, unless that most recently received QRV was zero, in which case they use the default [Robustness Variable] value specified in section 9.1, or a statically configured value.

路由器采用来自最近接收的查询的QRV值作为其自己的[鲁棒性变量]值,除非最近接收的QRV为零,在这种情况下,路由器使用第9.1节中指定的默认[鲁棒性变量]值或静态配置值。

5.1.9. QQIC (Querier's Query Interval Code)
5.1.9. QQIC(查询器的查询间隔代码)

The Querier's Query Interval Code field specifies the [Query Interval] used by the Querier. The actual interval, called the Querier's Query Interval (QQI), is represented in units of seconds, and is derived from the Querier's Query Interval Code as follows:

查询器的查询间隔代码字段指定查询器使用的[Query Interval]。实际时间间隔称为查询器的查询时间间隔(QQI),以秒为单位表示,并由查询器的查询时间间隔代码派生,如下所示:

If QQIC < 128, QQI = QQIC

如果QQIC<128,则QQI=QQIC

If QQIC >= 128, QQIC represents a floating-point value as follows:

如果QQIC>=128,则QQIC表示浮点值,如下所示:

       0 1 2 3 4 5 6 7
      +-+-+-+-+-+-+-+-+
      |1| exp | mant  |
      +-+-+-+-+-+-+-+-+
        
       0 1 2 3 4 5 6 7
      +-+-+-+-+-+-+-+-+
      |1| exp | mant  |
      +-+-+-+-+-+-+-+-+
        
   QQI = (mant | 0x10) << (exp + 3)
        
   QQI = (mant | 0x10) << (exp + 3)
        

Multicast routers that are not the current Querier adopt the QQI value from the most recently received Query as their own [Query Interval] value, unless that most recently received QQI was zero, in which case the receiving routers use the default [Query Interval] value specified in section 9.2.

非当前查询者的多播路由器采用最近收到的查询中的QQI值作为其自己的[Query Interval]值,除非最近收到的QQI为零,在这种情况下,接收路由器使用第9.2节中指定的默认[Query Interval]值。

5.1.10. Number of Sources (N)
5.1.10. 来源数量(N)

The Number of Sources (N) field specifies how many source addresses are present in the Query. This number is zero in a General Query or a Multicast Address Specific Query, and non-zero in a Multicast Address and Source Specific Query. This number is limited by the MTU of the link over which the Query is transmitted. For example, on an Ethernet link with an MTU of 1500 octets, the IPv6 header (40 octets) together with the Hop-By-Hop Extension Header (8 octets) that includes the Router Alert option consume 48 octets; the MLD fields up to the Number of Sources (N) field consume 28 octets; thus, there are 1424 octets left for source addresses, which limits the number of source addresses to 89 (1424/16).

源数量(N)字段指定查询中存在多少个源地址。此数字在常规查询或特定于多播地址的查询中为零,在特定于多播地址和源的查询中为非零。该数量受传输查询的链路的MTU限制。例如,在MTU为1500个八位字节的以太网链路上,IPv6报头(40个八位字节)以及包含路由器警报选项的逐跳扩展报头(8个八位字节)消耗48个八位字节;源数(N)字段之前的MLD字段消耗28个八位字节;因此,源地址还有1424个八位字节,这将源地址的数量限制为89(1424/16)。

5.1.11. Source Address [i]
5.1.11. 来源地址[i]

The Source Address [i] fields are a vector of n unicast addresses, where n is the value in the Number of Sources (N) field.

源地址[i]字段是n个单播地址的向量,其中n是源数量(n)字段中的值。

5.1.12. Additional Data
5.1.12. 附加数据

If the Payload Length field in the IPv6 header of a received Query indicates that there are additional octets of data present, beyond the fields described here, MLDv2 implementations MUST include those octets in the computation to verify the received MLD Checksum, but MUST otherwise ignore those additional octets. When sending a Query, an MLDv2 implementation MUST NOT include additional octets beyond the fields described above.

如果接收到的查询的IPv6报头中的有效负载长度字段指示存在额外的八位字节数据,则除了此处描述的字段之外,MLDv2实现必须在计算中包括这些八位字节,以验证接收到的MLD校验和,但必须忽略这些额外的八位字节。发送查询时,MLDv2实现不得包含上述字段以外的其他八位字节。

5.1.13. Query Variants
5.1.13. 查询变量

There are three variants of the Query message:

查询消息有三种变体:

o A "General Query" is sent by the Querier to learn which multicast addresses have listeners on an attached link. In a General Query, both the Multicast Address field and the Number of Sources (N) field are zero.

o 查询者发送一个“常规查询”,以了解连接的链接上有哪些多播地址的侦听器。在一般查询中,多播地址字段和源数(N)字段均为零。

o A "Multicast Address Specific Query" is sent by the Querier to learn if a particular multicast address has any listeners on an attached link. In a Multicast Address Specific Query, the Multicast Address field contains the multicast address of interest, while the Number of Sources (N) field is set to zero.

o “多播地址特定查询”由查询者发送,以了解特定多播地址在连接的链路上是否有任何侦听器。在特定于多播地址的查询中,多播地址字段包含感兴趣的多播地址,而源数(N)字段设置为零。

o A "Multicast Address and Source Specific Query" is sent by the Querier to learn if any of the sources from the specified list for the particular multicast address has any listeners on an attached link or not. In a Multicast Address and Source Specific Query the Multicast Address field contains the multicast address of interest, while the Source Address [i] field(s) contain(s) the source address(es) of interest.

o 查询者发送“多播地址和源特定查询”,以了解特定多播地址的指定列表中的任何源是否在连接的链路上有任何侦听器。在多播地址和源特定查询中,多播地址字段包含感兴趣的多播地址,而源地址[i]字段包含感兴趣的源地址。

5.1.14. Source Addresses for Queries
5.1.14. 查询的源地址

All MLDv2 Queries MUST be sent with a valid IPv6 link-local source address. If a node (router or host) receives a Query message with the IPv6 Source Address set to the unspecified address (::), or any other address that is not a valid IPv6 link-local address, it MUST silently discard the message and SHOULD log a warning.

所有MLDv2查询必须使用有效的IPv6链路本地源地址发送。如果节点(路由器或主机)接收到IPv6源地址设置为未指定地址(::)的查询消息,或任何其他不是有效IPv6链路本地地址的地址,则必须以静默方式放弃该消息,并应记录警告。

5.1.15. Destination Addresses for Queries
5.1.15. 查询的目标地址

In MLDv2, General Queries are sent to the link-scope all-nodes multicast address (FF02::1). Multicast Address Specific and Multicast Address and Source Specific Queries are sent with an IP destination address equal to the multicast address of interest. *However*, a node MUST accept and process any Query whose IP Destination Address field contains *any* of the addresses (unicast or multicast) assigned to the interface on which the Query arrives. This might be useful, e.g., for debugging purposes.

在MLDv2中,一般查询被发送到链路作用域所有节点多播地址(FF02::1)。发送特定于多播地址、特定于多播地址和源的查询时,IP目的地地址等于感兴趣的多播地址*但是*,节点必须接受并处理其IP目标地址字段包含分配给查询到达接口的*任何*地址(单播或多播)的任何查询。这可能很有用,例如用于调试目的。

5.2. Version 2 Multicast Listener Report Message
5.2. 版本2多播侦听器报告消息

Version 2 Multicast Listener Reports are sent by IP nodes to report (to neighboring routers) the current multicast listening state, or changes in the multicast listening state, of their interfaces. Reports have the following format:

版本2多播侦听器报告由IP节点发送,以报告(相邻路由器)其接口的当前多播侦听状态或多播侦听状态的变化。报告的格式如下:

     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 = 143   |    Reserved   |           Checksum            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |           Reserved            |Nr of Mcast Address Records (M)|
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    .                                                               .
    .                  Multicast Address Record [1]                 .
    .                                                               .
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    .                                                               .
    .                  Multicast Address Record [2]                 .
    .                                                               .
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                               .                               |
    .                               .                               .
    |                               .                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    .                                                               .
    .                  Multicast Address Record [M]                 .
    .                                                               .
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
     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 = 143   |    Reserved   |           Checksum            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |           Reserved            |Nr of Mcast Address Records (M)|
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    .                                                               .
    .                  Multicast Address Record [1]                 .
    .                                                               .
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    .                                                               .
    .                  Multicast Address Record [2]                 .
    .                                                               .
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                               .                               |
    .                               .                               .
    |                               .                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    .                                                               .
    .                  Multicast Address Record [M]                 .
    .                                                               .
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

Each Multicast Address Record has the following internal format:

每个多播地址记录具有以下内部格式:

    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Record Type  |  Aux Data Len |     Number of Sources (N)     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    *                                                               *
    |                                                               |
    *                       Multicast Address                       *
    |                                                               |
    *                                                               *
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    *                                                               *
    |                                                               |
    *                       Source Address [1]                      *
    |                                                               |
    *                                                               *
    |                                                               |
    +-                                                             -+
    |                                                               |
    *                                                               *
    |                                                               |
    *                       Source Address [2]                      *
    |                                                               |
    *                                                               *
    |                                                               |
    +-                                                             -+
    .                               .                               .
    .                               .                               .
    .                               .                               .
    +-                                                             -+
    |                                                               |
    *                                                               *
    |                                                               |
    *                       Source Address [N]                      *
    |                                                               |
    *                                                               *
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    .                                                               .
    .                         Auxiliary Data                        .
    .                                                               .
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Record Type  |  Aux Data Len |     Number of Sources (N)     |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    *                                                               *
    |                                                               |
    *                       Multicast Address                       *
    |                                                               |
    *                                                               *
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    *                                                               *
    |                                                               |
    *                       Source Address [1]                      *
    |                                                               |
    *                                                               *
    |                                                               |
    +-                                                             -+
    |                                                               |
    *                                                               *
    |                                                               |
    *                       Source Address [2]                      *
    |                                                               |
    *                                                               *
    |                                                               |
    +-                                                             -+
    .                               .                               .
    .                               .                               .
    .                               .                               .
    +-                                                             -+
    |                                                               |
    *                                                               *
    |                                                               |
    *                       Source Address [N]                      *
    |                                                               |
    *                                                               *
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
    .                                                               .
    .                         Auxiliary Data                        .
    .                                                               .
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
5.2.1. Reserved
5.2.1. 含蓄的

The Reserved fields are set to zero on transmission, and ignored on reception.

保留字段在传输时设置为零,在接收时忽略。

5.2.2. Checksum
5.2.2. 校验和

The standard ICMPv6 checksum; it covers the entire MLDv2 message, plus a "pseudo-header" of IPv6 header fields [RFC2460, RFC2463]. In order to compute the checksum, the Checksum field is set to zero. When a packet is received, the checksum MUST be verified before processing it.

标准ICMPv6校验和;它覆盖了整个MLDv2消息,以及IPv6报头字段的“伪报头”[RFC2460,RFC2463]。为了计算校验和,校验和字段设置为零。当收到数据包时,必须在处理它之前验证校验和。

5.2.3. Nr of Mcast Address Records (M)
5.2.3. Mcast地址记录数量(M)

The Nr of Mcast Address Records (M) field specifies how many Multicast Address Records are present in this Report.

Mcast地址记录的Nr(M)字段指定此报表中存在多少多播地址记录。

5.2.4. Multicast Address Record
5.2.4. 多播地址记录

Each Multicast Address Record is a block of fields that contain information on the sender listening to a single multicast address on the interface from which the Report is sent.

每个多播地址记录是一个字段块,其中包含有关发送方的信息,该发送方在发送报告的接口上侦听单个多播地址。

5.2.5. Record Type
5.2.5. 记录类型

It specifies the type of the Multicast Address Record. See section 5.2.12 for a detailed description of the different possible Record Types.

它指定多播地址记录的类型。有关不同可能记录类型的详细说明,请参见第5.2.12节。

5.2.6. Aux Data Len
5.2.6. 辅助数据透镜

The Aux Data Len field contains the length of the Auxiliary Data Field in this Multicast Address Record, in units of 32-bit words. It may contain zero, to indicate the absence of any auxiliary data.

Aux Data Len字段包含此多播地址记录中辅助数据字段的长度,以32位字为单位。它可能包含零,表示没有任何辅助数据。

5.2.7. Number of Sources (N)
5.2.7. 来源数量(N)

The Number of Sources (N) field specifies how many source addresses are present in this Multicast Address Record.

源数量(N)字段指定此多播地址记录中存在多少个源地址。

5.2.8. Multicast Address
5.2.8. 多播地址

The Multicast Address field contains the multicast address to which this Multicast Address Record pertains.

“多播地址”字段包含此多播地址记录所属的多播地址。

5.2.9. Source Address [i]
5.2.9. 来源地址[i]

The Source Address [i] fields are a vector of n unicast addresses, where n is the value in this record's Number of Sources (N) field.

源地址[i]字段是n个单播地址的向量,其中n是该记录的源数量(n)字段中的值。

5.2.10. Auxiliary Data
5.2.10. 辅助数据

The Auxiliary Data field, if present, contains additional information that pertain to this Multicast Address Record. The protocol specified in this document, MLDv2, does not define any auxiliary data. Therefore, implementations of MLDv2 MUST NOT include any auxiliary data (i.e., MUST set the Aux Data Len field to zero) in any transmitted Multicast Address Record, and MUST ignore any such data present in any received Multicast Address Record. The semantics and the internal encoding of the Auxiliary Data field are to be defined by any future version or extension of MLD that uses this field.

辅助数据字段(如果存在)包含与此多播地址记录相关的附加信息。本文件中指定的协议MLDv2未定义任何辅助数据。因此,MLDv2的实现不得在任何传输的多播地址记录中包括任何辅助数据(即,必须将Aux data Len字段设置为零),并且必须忽略任何接收的多播地址记录中存在的任何此类数据。辅助数据字段的语义和内部编码将由使用该字段的MLD的任何未来版本或扩展定义。

5.2.11. Additional Data
5.2.11. 附加数据

If the Payload Length field in the IPv6 header of a received Report indicates that there are additional octets of data present, beyond the last Multicast Address Record, MLDv2 implementations MUST include those octets in the computation to verify the received MLD Checksum, but MUST otherwise ignore those additional octets. When sending a Report, an MLDv2 implementation MUST NOT include additional octets beyond the last Multicast Address Record.

如果接收到的报告的IPv6报头中的有效负载长度字段指示,除了最后一个多播地址记录之外,还存在其他八位字节的数据,则MLDv2实现必须在计算中包括这些八位字节,以验证接收到的MLD校验和,但必须忽略这些额外的八位字节。发送报告时,MLDv2实现不得在最后一个多播地址记录之外包含额外的八位字节。

5.2.12. Multicast Address Record Types
5.2.12. 多播地址记录类型

There are a number of different types of Multicast Address Records that may be included in a Report message:

报告消息中可能包含许多不同类型的多播地址记录:

o A "Current State Record" is sent by a node in response to a Query received on an interface. It reports the current listening state of that interface, with respect to a single multicast address. The Record Type of a Current State Record may be one of the following two values:

o 节点发送“当前状态记录”以响应接口上接收到的查询。它报告该接口相对于单个多播地址的当前侦听状态。当前状态记录的记录类型可以是以下两个值之一:

      Value  Name and Meaning
      -----  ----------------
        1    MODE_IS_INCLUDE - indicates that the interface has a filter
             mode of INCLUDE for the specified multicast address.  The
             Source Address [i] fields in this Multicast Address Record
             contain the interface's source list for the specified
             multicast address.  A MODE_IS_INCLUDE Record is never sent
             with an empty source list.
        
      Value  Name and Meaning
      -----  ----------------
        1    MODE_IS_INCLUDE - indicates that the interface has a filter
             mode of INCLUDE for the specified multicast address.  The
             Source Address [i] fields in this Multicast Address Record
             contain the interface's source list for the specified
             multicast address.  A MODE_IS_INCLUDE Record is never sent
             with an empty source list.
        

2 MODE_IS_EXCLUDE - indicates that the interface has a filter mode of EXCLUDE for the specified multicast address. The Source Address [i] fields in this Multicast Address Record contain the interface's source list for the specified multicast address, if it is non-empty.

2模式_IS_EXCLUDE-表示接口对指定的多播地址具有排除的筛选模式。此多播地址记录中的源地址[i]字段包含指定多播地址的接口源列表(如果该列表非空)。

o A "Filter Mode Change Record" is sent by a node whenever a local invocation of IPv6MulticastListen causes a change of the filter mode (i.e., a change from INCLUDE to EXCLUDE, or from EXCLUDE to INCLUDE) of the interface-level state entry for a particular multicast address, whether the source list changes at the same time or not. The Record is included in a Report sent from the interface on which the change occurred. The Record Type of a Filter Mode Change Record may be one of the following two values:

o 每当IPv6MulticastListen的本地调用导致特定多播地址的接口级状态项的过滤模式发生更改(即,从包含更改为排除,或从排除更改为包括)时,节点就会发送“过滤模式更改记录”,无论源列表是否同时更改。该记录包含在从发生更改的接口发送的报告中。过滤器模式更改记录的记录类型可以是以下两个值之一:

3 CHANGE_TO_INCLUDE_MODE - indicates that the interface has changed to INCLUDE filter mode for the specified multicast address. The Source Address [i] fields in this Multicast Address Record contain the interface's new source list for the specified multicast address, if it is non-empty.

3 CHANGE_TO_INCLUDE_MODE-表示接口已更改为包含指定多播地址的筛选器模式。此多播地址记录中的源地址[i]字段包含指定多播地址的接口新源列表(如果该列表非空)。

4 CHANGE_TO_EXCLUDE_MODE - indicates that the interface has changed to EXCLUDE filter mode for the specified multicast address. The Source Address [i] fields in this Multicast Address Record contain the interface's new source list for the specified multicast address, if it is non-empty.

4 CHANGE_TO_EXCLUDE_MODE-表示接口已更改为排除指定多播地址的筛选器模式。此多播地址记录中的源地址[i]字段包含指定多播地址的接口新源列表(如果该列表非空)。

o A "Source List Change Record" is sent by a node whenever a local invocation of IPv6MulticastListen causes a change of source list that is *not* coincident with a change of filter mode, of the interface-level state entry for a particular multicast address. The Record is included in a Report sent from the interface on which the change occurred. The Record Type of a Source List Change Record may be one of the following two values:

o 每当IPv6MulticastListen的本地调用导致源列表的更改与特定多播地址的接口级状态条目的过滤器模式的更改*不*一致时,节点就会发送“源列表更改记录”。该记录包含在从发生更改的接口发送的报告中。源列表更改记录的记录类型可以是以下两个值之一:

5 ALLOW_NEW_SOURCES - indicates that the Source Address [i] fields in this Multicast Address Record contain a list of the additional sources that the node wishes to listen to, for packets sent to the specified multicast address. If the change was to an INCLUDE source list, these are the addresses that were added to the list; if the change was to an EXCLUDE source list, these are the addresses that were deleted from the list.

5 ALLOW_NEW_SOURCES-表示此多播地址记录中的源地址[i]字段包含节点希望侦听发送到指定多播地址的数据包的其他源的列表。如果更改是包含源列表,则这些是添加到列表中的地址;如果更改为排除源列表,则这些是从列表中删除的地址。

6 BLOCK_OLD_SOURCES - indicates that the Source Address [i] fields in this Multicast Address Record contain a list of the sources that the node no longer wishes to listen to, for packets sent to the specified multicast address. If the

6 BLOCK_OLD_SOURCES-表示此多播地址记录中的源地址[i]字段包含节点不再希望侦听发送到指定多播地址的数据包的源列表。如果

change was to an INCLUDE source list, these are the addresses that were deleted from the list; if the change was to an EXCLUDE source list, these are the addresses that were added to the list.

更改为包含源列表,这些是从列表中删除的地址;如果更改为排除源列表,则这些是添加到列表中的地址。

If a change of source list results in both allowing new sources and blocking old sources, then two Multicast Address Records are sent for the same multicast address, one of type ALLOW_NEW_SOURCES and one of type BLOCK_OLD_SOURCES.

如果源列表的更改同时导致允许新源和阻塞旧源,那么将为同一个多播地址发送两个多播地址记录,一个为ALLOW_new_sources类型,另一个为BLOCK_old_sources类型。

We use the term "State Change Record" to refer to either a Filter Mode Change Record or a Source List Change Record.

我们使用术语“状态更改记录”来指过滤模式更改记录或源列表更改记录。

Multicast Address Records with an unrecognized Record Type value MUST be silently ignored, with the rest of the report being processed.

具有无法识别的记录类型值的多播地址记录必须以静默方式忽略,并处理报告的其余部分。

In the rest of this document, we use the following notation to describe the contents of a Multicast Address Record that pertains to a particular multicast address:

在本文档的其余部分中,我们使用以下符号来描述与特定多播地址相关的多播地址记录的内容:

IS_IN ( x ) - Type MODE_IS_INCLUDE, source addresses x IS_EX ( x ) - Type MODE_IS_EXCLUDE, source addresses x TO_IN ( x ) - Type CHANGE_TO_INCLUDE_MODE, source addresses x TO_EX ( x ) - Type CHANGE_TO_EXCLUDE_MODE, source addresses x ALLOW ( x ) - Type ALLOW_NEW_SOURCES, source addresses x BLOCK ( x ) - Type BLOCK_OLD_SOURCES, source addresses x

在(x)-类型模式中,源地址x是包含的,源地址x是包含的(x)-类型模式中,源地址x到包含的,源地址x到包含的,源地址x到排除的,源地址x到排除的,源地址x允许(x)-类型允许新源,源地址x块(x)-类型块旧源,源地址x

where x is either:

其中x为:

o a capital letter (e.g., "A") to represent the set of source addresses,

o 表示源地址集的大写字母(如“a”),

or

o a set expression (e.g., "A+B"), where "A+B" means the union of sets A and B, "A*B" means the intersection of sets A and B, and "A-B" means the removal of all elements of set B from set A.

o 集合表达式(例如,“a+B”),其中“a+B”表示集合a和B的并集,“a*B”表示集合a和B的交集,“a-B”表示从集合a中删除集合B的所有元素。

5.2.13. Source Addresses for Reports
5.2.13. 报告的源地址

An MLDv2 Report MUST be sent with a valid IPv6 link-local source address, or the unspecified address (::), if the sending interface has not acquired a valid link-local address yet. Sending reports with the unspecified address is allowed to support the use of IP multicast in the Neighbor Discovery Protocol [RFC2461]. For stateless autoconfiguration, as defined in [RFC2462], a node is required to join several IPv6 multicast groups, in order to perform Duplicate Address Detection (DAD). Prior to DAD, the only address

如果发送接口尚未获取有效的链路本地地址,则必须使用有效的IPv6链路本地源地址或未指定的地址(::)发送MLDv2报告。允许发送带有未指定地址的报告,以支持在邻居发现协议[RFC2461]中使用IP多播。对于[RFC2462]中定义的无状态自动配置,需要一个节点加入多个IPv6多播组,以便执行重复地址检测(DAD)。在爸爸之前,唯一的地址

the reporting node has for the sending interface is a tentative one, which cannot be used for communication. Thus, the unspecified address must be used.

发送接口的报告节点是暂定的,不能用于通信。因此,必须使用未指定的地址。

On the other hand, routers MUST silently discard a message that is not sent with a valid link-local address, without taking any action on the contents of the packet. Thus, a Report is discarded if the router cannot identify the source address of the packet as belonging to a link connected to the interface on which the packet was received. A Report sent with the unspecified address is also discarded by the router. This enhances security, as unidentified reporting nodes cannot influence the state of the MLDv2 router(s). Nevertheless, the reporting node has modified its listening state for multicast addresses that are contained in the Multicast Address Records of the Report message. From now on, it will treat packets sent to those multicast addresses according to this new listening state. Once a valid link-local address is available, a node SHOULD generate new MLDv2 Report messages for all multicast addresses joined on the interface.

另一方面,路由器必须悄悄地丢弃没有使用有效链路本地地址发送的消息,而不对数据包的内容采取任何操作。因此,如果路由器不能将分组的源地址识别为属于连接到接收分组的接口的链路,则丢弃报告。路由器也会丢弃使用未指定地址发送的报告。这增强了安全性,因为身份不明的报告节点无法影响MLDv2路由器的状态。然而,报告节点已修改其对包含在报告消息的多播地址记录中的多播地址的侦听状态。从现在起,它将根据这个新的侦听状态处理发送到这些多播地址的数据包。一旦有效链路本地地址可用,节点应为接口上加入的所有多播地址生成新的MLDv2报告消息。

5.2.14. Destination Addresses for Reports
5.2.14. 报表的目标地址

Version 2 Multicast Listener Reports are sent with an IP destination address of FF02:0:0:0:0:0:0:16, to which all MLDv2-capable multicast routers listen (see section 11 for IANA considerations related to this special destination address). A node that operates in version 1 compatibility mode (see details in section 8) sends version 1 Reports to the multicast address specified in the Multicast Address field of the Report. In addition, a node MUST accept and process any version 1 Report whose IP Destination Address field contains *any* of the IPv6 addresses (unicast or multicast) assigned to the interface on which the Report arrives. This might be useful, e.g., for debugging purposes.

版本2多播侦听器报告以FF02:0:0:0:0:0:0:16的IP目标地址发送,所有支持MLDv2的多播路由器都将侦听该地址(有关此特殊目标地址的IANA注意事项,请参阅第11节)。在版本1兼容模式下运行的节点(参见第8节中的详细信息)将版本1报告发送到报告的多播地址字段中指定的多播地址。此外,节点必须接受并处理任何版本1报告,其IP目标地址字段包含分配给报告到达接口的*任何*IPv6地址(单播或多播)。这可能很有用,例如用于调试目的。

5.2.15. Multicast Listener Report Size
5.2.15. 多播侦听器报告大小

If the set of Multicast Address Records required in a Report does not fit within the size limit of a single Report message (as determined by the MTU of the link on which it will be sent), the Multicast Address Records are sent in as many Report messages as needed to report the entire set.

如果报告中所需的多播地址记录集不符合单个报告消息的大小限制(由将发送该多播地址记录的链路的MTU确定),则多播地址记录将按报告整个集合所需的报告消息数发送。

If a single Multicast Address Record contains so many source addresses that it does not fit within the size limit of a single Report message, then:

如果单个多播地址记录包含的源地址太多,无法满足单个报告消息的大小限制,则:

o if its Type is not IS_EX or TO_EX, it is split into multiple Multicast Address Records; each such record contains a different subset of the source addresses, and is sent in a separate Report.

o 如果其类型不是is_EX或TO_EX,则将其拆分为多个组播地址记录;每个这样的记录都包含不同的源地址子集,并在单独的报告中发送。

o if its Type is IS_EX or TO_EX, a single Multicast Address Record is sent, with as many source addresses as can fit; the remaining source addresses are not reported. Although the choice of which sources to report is arbitrary, it is preferable to report the same set of sources in each subsequent report, rather than reporting different sources each time.

o 如果其类型为is_EX或TO_EX,则发送一个多播地址记录,其中包含尽可能多的源地址;未报告其余的源地址。尽管报告来源的选择是任意的,但最好在随后的每次报告中报告同一组来源,而不是每次报告不同的来源。

6. Protocol Description for Multicast Address Listeners
6. 多播地址侦听器的协议描述

MLD is an asymmetric protocol, as it specifies separate behaviors for multicast address listeners -- that is, hosts or routers that listen to multicast packets -- and multicast routers. This section describes the part of MLDv2 that applies to all multicast address listeners. (Note that a multicast router that is also a multicast address listener performs both parts of MLDv2; it receives and it responds to its own MLD messages, as well as to those of its neighbors.) The multicast router part of MLDv2 is described in section 7.

MLD是一种非对称协议,因为它为多播地址侦听器(即侦听多播数据包的主机或路由器)和多播路由器指定了单独的行为。本节介绍适用于所有多播地址侦听器的MLDv2部分。(请注意,同时也是多播地址侦听器的多播路由器执行MLDv2的两个部分;它接收并响应自己的MLD消息及其邻居的MLD消息。)第7节描述了MLDv2的多播路由器部分。

A node performs the protocol described in this section over all interfaces on which multicast reception is supported, even if more than one of those interfaces are connected to the same link.

节点在支持多播接收的所有接口上执行本节所述的协议,即使这些接口中有多个连接到同一链路。

For interoperability with multicast routers that run the MLDv1 protocol, nodes maintain a Host Compatibility Mode variable for each interface on which multicast reception is supported. This section describes the behavior of multicast address listener nodes on interfaces for which Host Compatibility Mode = MLDv2. The algorithm for determining Host Compatibility Mode, and the behavior if its value is set to MLDv1, are described in section 8.

为了与运行MLDv1协议的多播路由器进行互操作,节点为支持多播接收的每个接口维护一个主机兼容模式变量。本节描述主机兼容模式=MLDv2的接口上多播地址侦听器节点的行为。第8节描述了确定主机兼容性模式的算法,以及将其值设置为MLDv1时的行为。

The link-scope all-nodes multicast address, (FF02::1), is handled as a special case. On all nodes -- that is all hosts and routers, including multicast routers -- listening to packets destined to the all-nodes multicast address, from all sources, is permanently enabled on all interfaces on which multicast listening is supported. No MLD messages are ever sent regarding neither the link-scope all-nodes multicast address, nor any multicast address of scope 0 (reserved) or 1 (node-local).

链路作用域所有节点多播地址(FF02::1)作为特例处理。在所有节点(即所有主机和路由器,包括多播路由器)上,在支持多播侦听的所有接口上永久启用从所有源侦听发送到所有节点多播地址的数据包。从未发送过与链路作用域所有节点多播地址或作用域0(保留)或1(节点本地)的任何多播地址相关的MLD消息。

There are three types of events that trigger MLDv2 protocol actions on an interface:

有三种类型的事件触发接口上的MLDv2协议操作:

o a change of the per-interface listening state, caused by a local invocation of IPv6MulticastListen;

o 由IPv6MulticastListen的本地调用引起的每个接口侦听状态的更改;

o the firing of a specific timer;

o 特定定时器的触发;

o the reception of a Query.

o 接受询问。

(Received MLD messages of types other than Query are silently ignored, except as required for interoperation with nodes that implement MLDv1.)

(接收到的非查询类型的MLD消息将被静默忽略,除非需要与实现MLDv1的节点进行互操作。)

The following subsections describe the actions to be taken for each case. Timer and counter names appear in square brackets. Default values for those timers and counters are specified in section 9.

以下小节描述了针对每种情况应采取的措施。计时器和计数器名称显示在方括号中。第9节规定了这些计时器和计数器的默认值。

6.1. Action on Change of Per-Interface State
6.1. 更改每个接口状态时的操作

An invocation of IPv6MulticastListen may cause the multicast listening state of an interface to change, according to the rules in section 4.2. Each such change affects the per-interface entry for a single multicast address.

根据第4.2节中的规则,调用IPv6MulticastListen可能会导致接口的多播侦听状态发生更改。每个这样的更改都会影响单个多播地址的每个接口条目。

A change of per-interface state causes the node to immediately transmit a State Change Report from that interface. The type and contents of the Multicast Address Record(s) in that Report are determined by comparing the filter mode and source list for the affected multicast address before and after the change, according to the table below. If no per-interface state existed for that multicast address before the change (i.e., the change consisted of creating a new per-interface record), or if no state exists after the change (i.e., the change consisted of deleting a per-interface record), then the "non-existent" state is considered to have an INCLUDE filter mode and an empty source list.

每个接口状态的更改会导致节点立即从该接口发送状态更改报告。根据下表,通过比较更改前后受影响多播地址的筛选器模式和源列表,确定该报告中多播地址记录的类型和内容。如果更改前该多播地址不存在每个接口状态(即,更改包括创建新的每个接口记录),或者更改后不存在任何状态(即,更改包括删除每个接口记录),则“不存在”状态被认为具有包含筛选器模式和空源列表。

   Old State         New State         State Change Record Sent
   ---------         ---------         ------------------------
   INCLUDE (A)       INCLUDE (B)       ALLOW (B-A), BLOCK (A-B)
        
   Old State         New State         State Change Record Sent
   ---------         ---------         ------------------------
   INCLUDE (A)       INCLUDE (B)       ALLOW (B-A), BLOCK (A-B)
        

EXCLUDE (A) EXCLUDE (B) ALLOW (A-B), BLOCK (B-A)

排除(A)排除(B)允许(A-B),块(B-A)

INCLUDE (A) EXCLUDE (B) TO_EX (B)

包括(A)排除(B)至_EX(B)

EXCLUDE (A) INCLUDE (B) TO_IN (B)

排除(A)在(B)中包括(B)至

If the computed source list for either an ALLOW or a BLOCK State Change Record is empty, that record is omitted from the Report.

如果“允许”或“块状态更改”记录的计算源列表为空,则报告中将忽略该记录。

To cover the possibility of the State Change Report being missed by one or more multicast routers, [Robustness Variable] - 1 retransmissions are scheduled, through a Retransmission Timer, at intervals chosen at random from the range (0, [Unsolicited Report Interval]).

为了覆盖状态改变报告被一个或多个多播路由器遗漏的可能性,通过重传计时器,以从范围(0,[未经请求的报告间隔])中随机选择的间隔来调度[鲁棒性变量]-1重传。

If more changes to the same per-interface state entry occur before all the retransmissions of the State Change Report for the first change have been completed, each such additional change triggers the immediate transmission of a new State Change Report.

如果在完成第一次更改的状态更改报告的所有重新传输之前,对每个接口状态条目进行了更多的更改,则每次此类额外更改都会触发新状态更改报告的立即传输。

The contents of the new Report are calculated as follows:

新报告的内容计算如下:

o As for the first Report, the per-interface state for the affected multicast address before and after the latest change is compared.

o 对于第一个报告,将比较最新更改前后受影响多播地址的每个接口状态。

o The records that express the difference are built according to the table above. Nevertheless, these records are not transmitted in a separate message, but they are instead merged with the contents of the pending report, to create the new State Change Report. The rules for calculating this merged report are described below.

o 表示差异的记录是根据上表建立的。然而,这些记录不会在单独的消息中传输,而是与待处理报告的内容合并,以创建新的状态更改报告。计算此合并报告的规则如下所述。

The transmission of the merged State Change Report terminates retransmissions of the earlier State Change Reports for the same multicast address, and becomes the first of [Robustness Variable] transmissions of the new State Change Reports. These transmissions are necessary in order to ensure that each instance of state change is transmitted at least [Robustness Variable] times.

合并状态更改报告的传输终止了对相同多播地址的先前状态更改报告的重新传输,并成为新状态更改报告的第一次[鲁棒性变量]传输。这些传输是必要的,以确保每个状态变化实例至少传输[鲁棒性变量]次。

Each time a source is included in the difference report calculated above, retransmission state for that source needs to be maintained until [Robustness Variable] State Change Reports have been sent by the node. This is done in order to ensure that a series of successive state changes do not break the protocol robustness. Sources in retransmission state can be kept in a per multicast address Retransmission List, with a Source Retransmission Counter associated to each source in the list. When a source is included in the list, its counter is set to [Robustness Variable]. Each time a State Change Report is sent the counter is decreased by one unit. When the counter reaches zero, the source is deleted from the Retransmission List for that multicast address.

每次在上面计算的差异报告中包含一个源时,都需要保持该源的重传状态,直到节点发送[鲁棒性变量]状态更改报告为止。这样做是为了确保一系列连续的状态更改不会破坏协议的健壮性。处于重传状态的源可以保存在每个多播地址重传列表中,并且源重传计数器与列表中的每个源相关联。当源包含在列表中时,其计数器设置为[鲁棒性变量]。每次发送状态更改报告时,计数器将减少一个单位。当计数器达到零时,源将从该多播地址的重传列表中删除。

If the per-interface listening change that triggers the new report is a filter mode change, then the next [Robustness Variable] State Change Reports will include a Filter Mode Change Record. This

如果触发新报告的每个接口侦听更改是过滤器模式更改,则下一个[稳健性变量]状态更改报告将包括过滤器模式更改记录。这

applies even if any number of source list changes occur in that period. The node has to maintain retransmission state for the multicast address until the [Robustness Variable] State Change Reports have been sent. This can be done through a per multicast address Filter Mode Retransmission Counter. When the filter mode changes, the counter is set to [Robustness Variable]. Each time a State Change Report is sent the counter is decreased by one unit. When the counter reaches zero, i.e., [Robustness Variable] State Change Reports with Filter Mode Change Records have been transmitted after the last filter mode change, and if source list changes have resulted in additional reports being scheduled, then the next State Change Report will include Source List Change Records.

即使在该期间发生任何数量的源列表更改,也适用。节点必须保持多播地址的重传状态,直到发送[鲁棒性变量]状态更改报告。这可以通过每个多播地址筛选器模式重传计数器完成。当过滤器模式改变时,计数器设置为[稳健性变量]。每次发送状态更改报告时,计数器将减少一个单位。当计数器达到零时,即在最后一次过滤器模式更改后,传输了带有过滤器模式更改记录的[鲁棒性变量]状态更改报告,并且如果源列表更改导致安排了其他报告,则下一个状态更改报告将包括源列表更改记录。

Each time a per-interface listening state change triggers the Immediate transmission of a new State Change Report, its contents are determined as follows. If the report should contain a Filter Mode Change Record, i.e., the Filter Mode Retransmission Counter for that multicast address has a value higher than zero, then, if the current filter mode of the interface is INCLUDE, a TO_IN record is included in the report; otherwise a TO_EX record is included. If instead the report should contain Source List Change Records, i.e., the Filter Mode Retransmission Counter for that multicast address is zero, an ALLOW and a BLOCK record is included. The contents of these records are built according to the table below.

每次每个接口侦听状态更改触发新状态更改报告的即时传输时,其内容确定如下。如果报告应包含过滤模式更改记录,即,该多播地址的过滤模式重传计数器的值大于零,则如果接口的当前过滤模式为INCLUDE,则报告中包括TO_IN记录;否则,将包括TO_EX记录。相反,如果报告应包含源列表更改记录,即该多播地址的过滤模式重传计数器为零,则包括允许和块记录。这些记录的内容是根据下表建立的。

   Record   Sources included
   ------   ----------------
   TO_IN    All in the current per-interface state that must be
            forwarded
   TO_EX    All in the current per-interface state that must be
            blocked
   ALLOW    All with retransmission state (i.e., all sources from the
            Retransmission List) that must be forwarded
   BLOCK    All with retransmission state that must be blocked
        
   Record   Sources included
   ------   ----------------
   TO_IN    All in the current per-interface state that must be
            forwarded
   TO_EX    All in the current per-interface state that must be
            blocked
   ALLOW    All with retransmission state (i.e., all sources from the
            Retransmission List) that must be forwarded
   BLOCK    All with retransmission state that must be blocked
        

If the computed source list for either an ALLOW or a BLOCK record is empty, that record is omitted from the State Change Report.

如果ALLOW或BLOCK记录的计算源列表为空,则状态更改报告中将忽略该记录。

Note: When the first State Change Report is sent, the non-existent pending report to merge with can be treated as a Source Change Report with empty ALLOW and BLOCK records (no sources have retransmission state).

注意:发送第一个状态更改报告时,不存在的要合并的挂起报告可以被视为具有空的允许和阻止记录的源更改报告(没有源具有重传状态)。

The building of a scheduled State Change Report, triggered by the firing of a Retransmission Timer, instead of a per-interface listening state change, is described in section 6.3.

第6.3节描述了通过触发重传计时器而不是每个接口侦听状态更改来触发的计划状态更改报告的生成。

6.2. Action on Reception of a Query
6.2. 收到询问时采取的行动

Upon reception of an MLD message that contains a Query, the node checks if the source address of the message is a valid link-local address, if the Hop Limit is set to 1, and if the Router Alert option is present in the Hop-By-Hop Options header of the IPv6 packet. If any of these checks fails, the packet is dropped.

在接收到包含查询的MLD消息后,节点检查消息的源地址是否为有效的链路本地地址,跃点限制是否设置为1,以及IPv6数据包的逐跳选项报头中是否存在路由器警报选项。如果这些检查中的任何一个失败,数据包将被丢弃。

If the validity of the MLD message is verified, the node starts to process the Query. Instead of responding immediately, the node delays its response by a random amount of time, bounded by the Maximum Response Delay value derived from the Maximum Response Code in the received Query message. A node may receive a variety of Queries on different interfaces and of different kinds (e.g., General Queries, Multicast Address Specific Queries, and Multicast Address and Source Specific Queries), each of which may require its own delayed response.

如果验证了MLD消息的有效性,则节点开始处理查询。节点没有立即响应,而是将其响应延迟随机的时间量,以从接收到的查询消息中的最大响应代码派生的最大响应延迟值为界。节点可以在不同接口上接收不同类型的各种查询(例如,一般查询、多播地址特定查询以及多播地址和源特定查询),其中每个查询可能需要其自己的延迟响应。

Before scheduling a response to a Query, the node must first consider previously scheduled pending responses and, in many cases, schedule a combined response. Therefore, for each of its interfaces on which it operates the listener part of the MLDv2 protocol, the node must be able to maintain the following state:

在调度对查询的响应之前,节点必须首先考虑预先安排的未决响应,并且在许多情况下,调度组合响应。因此,对于操作MLDv2协议侦听器部分的每个接口,节点必须能够保持以下状态:

o an Interface Timer for scheduling responses to General Queries;

o 用于调度对一般查询的响应的接口计时器;

o a Multicast Address Timer for scheduling responses to Multicast Address (and Source) Specific Queries, for each multicast address the node has to report on;

o 多播地址计时器,用于为节点必须报告的每个多播地址调度对多播地址(和源)特定查询的响应;

o a per-multicast-address list of sources to be reported in response to a Multicast Address and Source Specific Query.

o 为响应多播地址和源特定查询而报告的源的每个多播地址列表。

When a new valid General Query arrives on an interface, the node checks whether it has any per-interface listening state record to report on, or not. Similarly, when a new valid Multicast Address (and Source) Specific Query arrives on an interface, the node checks whether it has a per-interface listening state record that corresponds to the queried multicast address (and source), or not. If it does, a delay for a response is randomly selected in the range (0, [Maximum Response Delay]), where Maximum Response Delay is derived from the Maximum Response Code inserted in the received Query message. The following rules are then used to determine if a Report needs to be scheduled or not, and the type of Report to schedule. (The rules are considered in order and only the first matching rule is applied.)

当新的有效常规查询到达接口时,节点将检查是否有任何每个接口侦听状态记录要报告。类似地,当新的有效多播地址(和源)特定查询到达接口时,节点检查是否具有与查询的多播地址(和源)相对应的每个接口侦听状态记录。如果是,则在范围(0,[最大响应延迟])内随机选择响应的延迟,其中最大响应延迟源自插入到接收到的查询消息中的最大响应代码。然后使用以下规则确定是否需要计划报表以及要计划的报表类型。(规则按顺序考虑,仅应用第一个匹配规则。)

1. If there is a pending response to a previous General Query scheduled sooner than the selected delay, no additional response needs to be scheduled.

1. 如果对上一个常规查询的挂起响应比所选延迟早,则无需计划其他响应。

2. If the received Query is a General Query, the Interface Timer is used to schedule a response to the General Query after the selected delay. Any previously pending response to a General Query is canceled.

2. 如果接收到的查询是一般查询,则使用接口计时器在所选延迟后安排对一般查询的响应。任何以前挂起的对常规查询的响应都将被取消。

3. If the received Query is a Multicast Address Specific Query or a Multicast Address and Source Specific Query and there is no pending response to a previous Query for this multicast address, then the Multicast Address Timer is used to schedule a report. If the received Query is a Multicast Address and Source Specific Query, the list of queried sources is recorded to be used when generating a response.

3. 如果收到的查询是特定于多播地址的查询或特定于多播地址和源的查询,并且对该多播地址的前一个查询没有挂起的响应,则多播地址计时器用于安排报告。如果收到的查询是多播地址和特定于源的查询,则记录查询的源列表,以便在生成响应时使用。

4. If there is already a pending response to a previous Query scheduled for this multicast address, and either the new Query is a Multicast Address Specific Query or the recorded source list associated with the multicast address is empty, then the multicast address source list is cleared and a single response is scheduled, using the Multicast Address Timer. The new response is scheduled to be sent at the earliest of the remaining time for the pending report and the selected delay.

4. 如果针对该多播地址调度的前一查询已经有挂起响应,并且新查询是多播地址特定的查询,或者与多播地址关联的记录源列表为空,则多播地址源列表将被清除,并调度单个响应,使用多播地址计时器。新的响应计划在挂起报告和所选延迟的剩余时间中最早的时间发送。

5. If the received Query is a Multicast Address and Source Specific Query and there is a pending response for this multicast address with a non-empty source list, then the multicast address source list is augmented to contain the list of sources in the new Query, and a single response is scheduled using the Multicast Address Timer. The new response is scheduled to be sent at the earliest of the remaining time for the pending report and the selected delay.

5. 如果收到的查询是多播地址和源特定的查询,并且该多播地址有一个具有非空源列表的挂起响应,则多播地址源列表将被扩充以包含新查询中的源列表,并且使用多播地址计时器调度单个响应。新的响应计划在挂起报告和所选延迟的剩余时间中最早的时间发送。

6.3. Action on Timer Expiration
6.3. 计时器过期时的操作

There are several timers that, upon expiration, trigger protocol actions on an MLDv2 Multicast Address Listener node. All these actions are related to pending reports scheduled by the node.

有几个计时器在到期时触发MLDv2多播地址侦听器节点上的协议操作。所有这些操作都与节点计划的挂起报告相关。

1. If the expired timer is the Interface Timer (i.e., there is a pending response to a General Query), then one Current State Record is sent for each multicast address for which the specified interface has listening state, as described in section 4.2. The Current State Record carries the multicast address and its

1. 如果过期的计时器是接口计时器(即,对一般查询有一个挂起的响应),则为指定接口具有侦听状态的每个多播地址发送一个当前状态记录,如第4.2节所述。当前状态记录携带多播地址及其地址

associated filter mode (MODE_IS_INCLUDE or MODE_IS_EXCLUDE) and Source list. Multiple Current State Records are packed into individual Report messages, to the extent possible.

关联的筛选模式(模式为包含或排除)和源列表。多个当前状态记录尽可能打包到单个报告消息中。

This naive algorithm may result in bursts of packets when a node listens to a large number of multicast addresses. Instead of using a single Interface Timer, implementations are recommended to spread transmission of such Report messages over the interval (0, [Maximum Response Delay]). Note that any such implementation MUST avoid the "ack-implosion" problem, i.e., MUST NOT send a Report immediately upon reception of a General Query.

当节点侦听大量多播地址时,这种幼稚的算法可能会导致数据包突发。建议在间隔(0,[最大响应延迟])内传播此类报告消息的传输,而不是使用单个接口计时器。请注意,任何此类实现都必须避免“ack内爆”问题,即,在收到一般查询后不得立即发送报告。

2. If the expired timer is a Multicast Address Timer and the list of recorded sources for that multicast address is empty (i.e., there is a pending response to a Multicast Address Specific Query), then if, and only if, the interface has listening state for that multicast address, a single Current State Record is sent for that address. The Current State Record carries the multicast address and its associated filter mode (MODE_IS_INCLUDE or MODE_IS_EXCLUDE) and source list, if any.

2. 如果过期计时器是多播地址计时器,且该多播地址的记录源列表为空(即,存在对多播地址特定查询的挂起响应),则如果且仅当接口具有该多播地址的侦听状态,则为该地址发送单个当前状态记录。当前状态记录包含多播地址及其关联的筛选模式(模式_为_包含或模式_为_排除)和源列表(如果有)。

3. If the expired timer is a Multicast Address Timer and the list of recorded sources for that multicast address is non-empty (i.e., there is a pending response to a Multicast Address and Source Specific Query), then if, and only if, the interface has listening state for that multicast address, the contents of the corresponding Current State Record are determined from the per-interface state and the pending response record, as specified in the following table:

3. 如果过期计时器是多播地址计时器,且该多播地址的记录源列表非空(即,存在对多播地址和源特定查询的挂起响应),则如果且仅当接口具有该多播地址的侦听状态,对应的当前状态记录的内容根据每个接口状态和挂起响应记录确定,如下表所示:

                             set of sources in the
      per-interface state  pending response record  Current State Record
      -------------------  -----------------------  --------------------
       INCLUDE (A)                   B                IS_IN (A*B)
        
                             set of sources in the
      per-interface state  pending response record  Current State Record
      -------------------  -----------------------  --------------------
       INCLUDE (A)                   B                IS_IN (A*B)
        

EXCLUDE (A) B IS_IN (B-A)

排除(A)B在(B-A)中

If the resulting Current State Record has an empty set of source addresses, then no response is sent. After the required Report messages have been generated, the source lists associated with any reported multicast addresses are cleared.

如果生成的当前状态记录的源地址集为空,则不会发送响应。生成所需的报告消息后,将清除与任何报告的多播地址关联的源列表。

4. If the expired timer is a Retransmission Timer for a multicast address (i.e., there is a pending State Change Report for that multicast address), the contents of the report are determined as follows. If the report should contain a Filter Mode Change Record, i.e., the Filter Mode Retransmission Counter for that multicast address has a value higher than zero, then, if the

4. 如果过期计时器是多播地址的重传计时器(即,存在该多播地址的挂起状态更改报告),则报告的内容确定如下。如果报告应包含过滤模式更改记录,即该多播地址的过滤模式重传计数器的值大于零,则

current filter mode of the interface is INCLUDE, a TO_IN record is included in the report; otherwise a TO_EX record is included. In both cases, the Filter Mode Retransmission Counter for that multicast address is decremented by one unit after the transmission of the report.

界面当前过滤方式为INCLUDE,报表中包含一条TO_记录;否则,将包括TO_EX记录。在这两种情况下,该多播地址的过滤模式重传计数器在发送报告后递减一个单位。

If instead the report should contain Source List Change Records, i.e., the Filter Mode Retransmission Counter for that multicast address is zero, an ALLOW and a BLOCK record is included. The contents of these records are built according to the table below:

相反,如果报告应包含源列表更改记录,即该多播地址的过滤模式重传计数器为零,则包括允许和块记录。这些记录的内容根据下表建立:

      Record   Sources included
      ------   ----------------
      TO_IN    All in the current per-interface state that must be
               forwarded
      TO_EX    All in the current per-interface state that must be
               blocked
      ALLOW    All with retransmission state (i.e., all sources from the
               Retransmission List) that must be forwarded.  For each
               included source, its Source Retransmission Counter is
               decreased with one unit after the transmission of the
               report.  If the counter reaches zero, the source is
               deleted from the Retransmission List for that multicast
               address.
      BLOCK    All with retransmission state (i.e., all sources from the
               Retransmission List) that must be blocked.  For each
               included source, its Source Retransmission Counter is
               decreased with one unit after the transmission of the
               report.  If the counter reaches zero, the source is
               deleted from the Retransmission List for that multicast
               address.
        
      Record   Sources included
      ------   ----------------
      TO_IN    All in the current per-interface state that must be
               forwarded
      TO_EX    All in the current per-interface state that must be
               blocked
      ALLOW    All with retransmission state (i.e., all sources from the
               Retransmission List) that must be forwarded.  For each
               included source, its Source Retransmission Counter is
               decreased with one unit after the transmission of the
               report.  If the counter reaches zero, the source is
               deleted from the Retransmission List for that multicast
               address.
      BLOCK    All with retransmission state (i.e., all sources from the
               Retransmission List) that must be blocked.  For each
               included source, its Source Retransmission Counter is
               decreased with one unit after the transmission of the
               report.  If the counter reaches zero, the source is
               deleted from the Retransmission List for that multicast
               address.
        

If the computed source list for either an ALLOW or a BLOCK record is empty, that record is omitted from the State Change Report.

如果ALLOW或BLOCK记录的计算源列表为空,则状态更改报告中将忽略该记录。

7. Description of the Protocol for Multicast Routers
7. 多播路由器协议描述

The purpose of MLD is to enable each multicast router to learn, for each of its directly attached links, which multicast addresses have listeners on that link. MLD version 2 adds the capability for a multicast router to also learn which *sources* have listeners among the neighboring nodes, for packets sent to any particular multicast address. The information gathered by MLD is provided to whichever multicast routing protocol is used by the router, in order to ensure that multicast packets are delivered to all links where there are interested listeners.

MLD的目的是使每个多播路由器能够了解其每个直接连接的链路上有哪些多播地址的侦听器。MLD版本2增加了多播路由器的功能,使其能够了解发送到任何特定多播地址的数据包的相邻节点中哪些*源*具有侦听器。MLD收集的信息被提供给路由器使用的任何一个多播路由协议,以确保多播数据包被传送到有感兴趣的侦听器的所有链路。

This section describes the part of MLDv2 that is performed by multicast routers. Multicast routers may themselves become multicast address listeners, and therefore also perform the multicast listener part of MLDv2, described in section 6.

本节描述由多播路由器执行的MLDv2部分。多播路由器本身可能成为多播地址侦听器,因此也执行MLDv2的多播侦听器部分,如第6节所述。

A multicast router performs the protocol described in this section over each of its directly attached links. If a multicast router has more than one interface to the same link, it only needs to operate this protocol over one of those interfaces.

多播路由器在其每个直接连接的链路上执行本节所述的协议。如果多播路由器与同一链路有多个接口,它只需要在其中一个接口上操作该协议。

For each interface over which the router operates the MLD protocol, the router must configure that interface to listen to all link-layer multicast addresses that can be generated by IPv6 multicasts. For example, an Ethernet-attached router must set its Ethernet address reception filter to accept all Ethernet multicast addresses that start with the hexadecimal value 3333 [RFC2464]; in the case of an Ethernet interface that does not support the filtering of such a multicast address range, it must be configured to accept ALL Ethernet multicast addresses, in order to meet the requirements of MLD.

对于路由器操作MLD协议的每个接口,路由器必须将该接口配置为侦听IPv6多播生成的所有链路层多播地址。例如,以太网连接路由器必须将其以太网地址接收过滤器设置为接受以十六进制值3333[RFC2464]开头的所有以太网多播地址;如果以太网接口不支持过滤此类多播地址范围,则必须将其配置为接受所有以太网多播地址,以满足MLD的要求。

On each interface over which this protocol is being run, the router MUST enable reception of the link-scope "all MLDv2-capable routers" multicast address from all sources, and MUST perform the multicast address listener part of MLDv2 for that address on that interface.

在运行此协议的每个接口上,路由器必须能够从所有源接收链路作用域“所有支持MLDv2的路由器”多播地址,并且必须在该接口上为该地址执行MLDv2的多播地址侦听器部分。

Multicast routers only need to know that *at least one* node on an attached link listens to packets for a particular multicast address from a particular source; a multicast router is not required to *individually* keep track of the interests of each neighboring node. (Nevertheless, see Appendix A2 item 1 for discussion.)

多播路由器只需要知道连接链路上的*至少一个*节点侦听来自特定源的特定多播地址的分组;多播路由器不需要*单独*跟踪每个相邻节点的兴趣。(尽管如此,讨论请参见附录A2第1项。)

MLDv2 is backward compatible with the MLDv1 protocol. For a detailed description of compatibility issues see section 8.

MLDv2与MLDv1协议向后兼容。有关兼容性问题的详细说明,请参见第8节。

7.1. Conditions for MLD Queries
7.1. MLD查询的条件

The behavior of a router that implements the MLDv2 protocol depends on whether there are several multicast routers on the same subnet, or not. If it is the case, a querier election mechanism (described in section 7.6.2) is used to elect a single multicast router to be in Querier state. All the multicast routers on the subnet listen to the messages sent by multicast address listeners, and maintain the same multicast listening information state, so that they can quickly and correctly take over the querier functionality, should the present Querier fail. Nevertheless, it is only the Querier that sends periodical or triggered query messages on the subnet.

实现MLDv2协议的路由器的行为取决于同一子网上是否有多个多播路由器。如果是这种情况,则使用查询器选择机制(如第7.6.2节所述)选择处于查询器状态的单个多播路由器。子网上的所有多播路由器侦听多播地址侦听器发送的消息,并保持相同的多播侦听信息状态,以便在当前查询器出现故障时,它们能够快速、正确地接管查询器功能。然而,只有查询者在子网上发送定期或触发的查询消息。

The Querier periodically sends General Queries to request Multicast Address Listener information from an attached link. These queries are used to build and refresh the Multicast Address Listener state of routers on attached links.

查询器定期发送常规查询,以从连接的链接请求多播地址侦听器信息。这些查询用于构建和刷新连接链路上路由器的多播地址侦听器状态。

Nodes respond to these queries by reporting their Multicast Address Listening state (and set of sources they listen to) with Current State Multicast Address Records in MLDv2 Multicast Listener Reports.

节点通过在MLDv2多播侦听器报告中使用当前状态多播地址记录报告其多播地址侦听状态(以及它们侦听的源集)来响应这些查询。

As a listener of a multicast address, a node may express interest in listening or not listening to traffic from particular sources. As the desired listening state of a node changes, it reports these changes using Filter Mode Change Records or Source List Change Records. These records indicate an explicit state change in a multicast address at a node in either the Multicast Address Record's source list or its filter mode. When Multicast Address Listening is terminated at a node or traffic from a particular source is no longer desired, the Querier must query for other listeners of the multicast address or of the source before deleting the multicast address (or source) from its Multicast Address Listener state and pruning its traffic.

作为多播地址的侦听器,节点可能表示对侦听或不侦听来自特定源的流量感兴趣。当节点的所需侦听状态更改时,它将使用过滤器模式更改记录或源列表更改记录报告这些更改。这些记录表示多播地址记录的源列表或其筛选模式中节点上的多播地址的显式状态更改。当多播地址侦听在节点处终止或不再需要来自特定源的流量时,查询者必须在从其多播地址侦听器状态删除多播地址(或源)并修剪其流量之前查询该多播地址或源的其他侦听器。

To enable all nodes on a link to respond to changes in multicast address listening, the Querier sends specific queries. A Multicast Address Specific Query is sent to verify that there are no nodes that listen to the specified multicast address or to "rebuild" the listening state for a particular multicast address. Multicast Address Specific Queries are sent when the Querier receives a State Change Record indicating that a node ceases to listen to a multicast address. They are also sent in order to enable a fast transition of a router from EXCLUDE to INCLUDE mode, in case a received State Change Record motivates this action.

为了使链路上的所有节点能够响应多播地址侦听中的更改,查询器发送特定的查询。发送特定于多播地址的查询,以验证没有节点侦听指定的多播地址,或“重建”特定多播地址的侦听状态。当查询器接收到指示节点停止侦听多播地址的状态更改记录时,发送特定于多播地址的查询。发送它们也是为了使路由器能够从排除模式快速过渡到包括模式,以防收到的状态更改记录激发此操作。

A Multicast Address and Source Specific Query is used to verify that there are no nodes on a link which listen to traffic from a specific set of sources. Multicast Address and Source Specific Queries list sources for a particular multicast address which have been requested to no longer be forwarded. This query is sent by the Querier in order to learn if any node listens to packets sent to the specified multicast address, from the specified source addresses. Multicast Address and Source Specific Queries are only sent in response to State Change Records and never in response to Current State Records. Section 5.1.13 describes each query in more detail.

多播地址和特定于源的查询用于验证链路上没有侦听来自特定源集的流量的节点。多播地址和源特定查询列出已请求不再转发的特定多播地址的源。此查询由查询器发送,以了解是否有任何节点侦听从指定源地址发送到指定多播地址的数据包。多播地址和特定于源的查询仅在响应状态更改记录时发送,而从不响应当前状态记录。第5.1.13节更详细地描述了每个查询。

7.2. MLD State Maintained by Multicast Routers
7.2. 由多播路由器维护的MLD状态

Multicast routers that implement the MLDv2 protocol keep state per multicast address per attached link. This multicast address state consists of a filter mode, a list of sources, and various timers. For each attached link on which MLD runs, a multicast router records the listening state for that link. That state conceptually consists of a set of records of the form:

实现MLDv2协议的多播路由器保持每个连接链路的每个多播地址的状态。此多播地址状态由筛选器模式、源列表和各种计时器组成。对于MLD运行的每个连接链路,多播路由器记录该链路的侦听状态。该状态在概念上由以下形式的一组记录组成:

(IPv6 multicast address, Filter Timer, Router Filter Mode, (source records) )

(IPv6多播地址、筛选器计时器、路由器筛选器模式(源记录))

Each source record is of the form:

每个源记录的格式如下:

(IPv6 source address, source timer)

(IPv6源地址、源计时器)

If all sources for a multicast address are listened to, an empty source record list is kept with the Router Filter Mode set to EXCLUDE. This means that nodes on this link want all sources for this multicast address to be forwarded. This is the MLDv2 equivalent of an MLDv1 listening state.

如果多播地址的所有源都被监听,则会保留一个空的源记录列表,并将路由器过滤器模式设置为“排除”。这意味着此链路上的节点希望转发此多播地址的所有源。这是与MLDv1侦听状态等效的MLDv2。

7.2.1. Definition of Router Filter Mode
7.2.1. 路由器过滤模式的定义

To reduce internal state, MLDv2 routers keep a filter mode per multicast address per attached link. This 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 Multicast Address Records or when certain timer conditions occur. In the following sections, we use the term "Router Filter Mode" to refer to the filter mode of a particular multicast address within a router. Section 7.4 describes the changes of the Router Filter Mode per Multicast Address Record received.

为了减少内部状态,MLDv2路由器对每个连接的链路的每个多播地址保持过滤模式。此筛选器模式用于将多播地址的总侦听状态汇总到最小集,以便所有节点的侦听状态都得到尊重。过滤模式可响应于特定类型的多播地址记录的接收或当某些定时器条件发生时改变。在以下部分中,我们使用术语“路由器过滤模式”来指代路由器内特定多播地址的过滤模式。第7.4节描述了收到的每个多播地址记录的路由器过滤模式的变化。

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 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.

对于给定接口上的特定多播地址,如果链路上对该地址感兴趣的所有侦听器都处于包含模式,则路由器处于包含模式。路由器状态通过符号INCLUDE(A)表示,其中A称为“INCLUDE List”。包含列表是链接上的一个或多个侦听器请求接收的源的集合。包含列表中的所有源都将由路由器转发。不在包含列表中的任何其他源都将被路由器阻止。

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 interested in that address on the link. Conceptually, when a Multicast Address Record is received, the Router Filter Mode for that

对于给定接口上的特定多播地址,如果链路上至少有一个侦听器对该地址感兴趣,则路由器处于排除模式。从概念上讲,当接收到多播地址记录时,路由器会选择该记录的过滤模式

multicast address is updated to cover all the requested sources using the least amount of state. As a rule, once a Multicast Address Record with a filter mode of EXCLUDE is received, the Router Filter Mode for that multicast address will be set to EXCLUDE. Nevertheless, if all nodes with a multicast address record having filter mode set to EXCLUDE cease reporting, it is desirable for the Router Filter Mode for that multicast address to transition back to INCLUDE mode. This transition occurs when the Filter Timer expires, and is explained in detail in section 7.5.

更新多播地址以使用最少的状态覆盖所有请求的源。通常,一旦收到过滤模式为EXCLUDE的多播地址记录,该多播地址的路由器过滤模式将设置为EXCLUDE。然而,如果具有多播地址记录且过滤模式设置为排除的所有节点停止报告,则该多播地址的路由器过滤模式最好转换回包括模式。当过滤器计时器过期时,会发生此转换,第7.5节对此进行了详细说明。

When the router is in EXCLUDE mode, the router state is represented through 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, it has to be maintained for several reasons, as explained in section 7.2.3.

当路由器处于排除模式时,路由器状态通过符号EXCLUDE(X,Y)表示,其中X称为“请求列表”,Y称为“排除列表”。除排除列表中的源外,所有源都将由路由器转发。请求的列表对转发没有影响。然而,如第7.2.3节所述,出于多种原因,必须对其进行维护。

The exact handling of both the INCLUDE and EXCLUDE mode router state, according to the received reports, is presented in details in Tables 7.4.1 and 7.4.2.

表7.4.1和表7.4.2详细介绍了根据收到的报告对包括和排除模式路由器状态的准确处理。

7.2.2. Definition of Filter Timers
7.2.2. 滤波器定时器的定义

The Filter Timer is only used when the router is in EXCLUDE mode for a specific multicast address, and it represents the time for the Router Filter Mode of the multicast address to expire and switch to INCLUDE mode. A Filter Timer is a decrementing timer with a lower bound of zero. One Filter Timer exists per multicast address record. Filter Timers are updated according to the types of Multicast Address Records received.

筛选器计时器仅在路由器处于特定多播地址的排除模式时使用,它表示多播地址的路由器筛选器模式过期并切换到包括模式的时间。过滤器计时器是下限为零的递减计时器。每个多播地址记录存在一个筛选器计时器。过滤器计时器根据接收到的多播地址记录的类型进行更新。

If a Filter Timer expires, with the Router Filter Mode for that multicast address being EXCLUDE, it means that there are no more listeners in EXCLUDE mode on the attached link. At this point, the router transitions to INCLUDE filter mode. Section 7.5 describes the actions taken when a Filter Timer expires while in EXCLUDE mode.

如果筛选器计时器过期,且该多播地址的路由器筛选器模式为EXCLUDE,则表示连接的链路上没有处于EXCLUDE模式的侦听器。此时,路由器转换为包括过滤模式。第7.5节描述了过滤器计时器在排除模式下过期时采取的措施。

The following table summarizes the role of the Filter Timer. Section 7.4 describes the details of setting the Filter Timer per type of Multicast Address Record received.

下表总结了筛选器计时器的作用。第7.4节描述了为接收到的每种类型的多播地址记录设置筛选器计时器的详细信息。

     Router               Filter
   Filter Mode          Timer Value          Actions/Comments
   -----------       -----------------       ----------------
        
     Router               Filter
   Filter Mode          Timer Value          Actions/Comments
   -----------       -----------------       ----------------
        

INCLUDE Not Used All listeners in INCLUDE mode.

包含模式中未使用所有侦听器。

EXCLUDE Timer > 0 At least one listener in EXCLUDE mode.

排除计时器>0至少有一个侦听器处于排除模式。

EXCLUDE Timer == 0 No more listeners in EXCLUDE mode for the multicast address. If the Requested List is empty, delete Multicast Address Record. If not, switch to INCLUDE filter mode; the sources in the Requested List are moved to the Include List, and the Exclude List is deleted.

EXCLUDE Timer==0多播地址在排除模式下不再有侦听器。如果请求的列表为空,请删除多播地址记录。如果没有,则切换到包括过滤模式;请求列表中的源将移动到包含列表,排除列表将被删除。

7.2.3. Definition of Source Timers
7.2.3. 源定时器的定义

A Source Timer is a decrementing timer with a lower bound of zero. One Source Timer is kept per source record. Source timers are updated according to the type and filter mode of the Multicast Address Record received. Section 7.4 describes the setting of source timers per type of Multicast Address Records received.

源计时器是下限为零的递减计时器。每个源记录保留一个源计时器。源计时器根据接收到的多播地址记录的类型和过滤模式进行更新。第7.4节描述了接收到的每种类型的多播地址记录的源定时器设置。

In the following, abbreviations are used for several variables (all of which are described in detail in section 9). The variable MALI stands for the Multicast Address Listening Interval, which is the time in which multicast address listening state will time out. The variable LLQT is the Last Listener Query Time, which is the total time the router should wait for a report, after the Querier has sent the first query. During this time, the Querier should send [Last Member Query Count]-1 retransmissions of the query. LLQT represents the "leave latency", or the difference between the transmission of a listener state change and the modification of the information passed to the routing protocol.

在下文中,几个变量使用缩写(第9节详细介绍了所有这些变量)。变量MALI表示多播地址侦听间隔,即多播地址侦听状态将超时的时间。变量LLQT是最后一次侦听器查询时间,这是查询器发送第一次查询后路由器应等待报告的总时间。在此期间,查询者应发送查询的[Last Member Query Count]-1重传。LLQT表示“离开延迟”,即侦听器状态更改的传输与传递给路由协议的信息修改之间的差异。

If the router is in INCLUDE filter mode, 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 which 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. If there are no more source records left, the multicast address record is deleted from the router.

每当处于包含模式的侦听器发送确认其对该特定源感兴趣的报告时,都会更新。如果包含列表中某个源的计时器过期,则该源将从包含列表中删除。如果没有更多的源记录,多播地址记录将从路由器中删除。

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 timer for that source to a small interval of LLQT milliseconds. The Querier then sends then a Multicast Address and Source Specific Query, to verify whether there are other listeners for that source on the link, or not. If a corresponding report is received before the timer expires, all the multicast routers on the link update their 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.

除了这种“软离开”机制外,MLDv2中还有一个“快速离开”方案;它还基于源定时器的使用。当处于INCLUDE模式的节点表示希望停止侦听特定源时,链路上的所有多播路由器将该源的计时器降低到LLQT毫秒的小间隔。然后,查询器发送一个多播地址和特定于源的查询,以验证链接上是否有该源的其他侦听器。如果在计时器过期之前收到相应的报告,则链路上的所有多播路由器都会更新其源计时器。如果不是,则从包含列表中删除源。表7.4.1和7.4.2详细说明了根据收到的报告处理包含列表的情况。

Source timers are treated differently when the Router Filter Mode for a multicast address is EXCLUDE. For sources from the Requested List the source timers have running values; these sources are forwarded by the router. For sources from the Exclude List the source timers are set to zero; these sources are blocked by the router. If the timer of a source from the Requested List expires, the source is moved to the Exclude List. The router informs then the routing protocol that there is no longer a listener on the link interested in traffic from this source.

当多播地址的路由器筛选器模式被排除时,源计时器的处理方式不同。对于请求列表中的源,源计时器具有运行值;这些源由路由器转发。对于排除列表中的源,源计时器设置为零;这些源被路由器阻止。如果请求列表中某个源的计时器过期,则该源将移至排除列表。路由器随后通知路由协议,链路上不再有对来自该源的流量感兴趣的侦听器。

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 in order to assure a seamless transition of the router to INCLUDE mode, when there will be no listener in EXCLUDE mode left. This transition should not interrupt the flow of traffic to the listeners in INCLUDE mode still interested in that multicast address. Therefore, at the moment of the transition, the Requested List should represent the set of sources that nodes in INCLUDE mode have explicitly requested.

o 跟踪处于包含模式的侦听器侦听的源。这是必要的,以确保路由器无缝过渡到包括模式,此时将没有侦听器处于排除模式。此转换不应中断到仍然对该多播地址感兴趣的INCLUDE模式中的侦听器的通信流。因此,在转换时,请求的列表应该表示INCLUDE模式中的节点已显式请求的源集。

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 the switch, the Requested List can contain an inexact guess at the sources that 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

当路由器切换到包括模式时,请求列表中的源被移动到包括列表,排除列表被删除。在切换之前,请求的列表可能包含对INCLUDE模式下侦听器侦听的源的不精确猜测-可能太大或太小。这些不准确是由于请求的列表也用于快速阻塞目的,如下所述。如果需要这种快速阻塞,可以从请求的列表中删除某些源(如图所示)

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.

如表7.4.1和7.4.2)所示,以减少路由器状态。然而,在每种情况下,过滤器定时器也会更新。因此,在最终切换之前,处于INCLUDE模式的侦听器将有足够的时间重新确认他们对已消除的源的兴趣,并相应地重建请求的列表。该协议确保当切换到包含模式时,请求的列表将是准确的。有关路由器转换为包含模式的详细信息,请参见附录A3。

o To allow a 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 timers are set to a small interval of LLQT milliseconds, 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 confirms its interest in receiving a specific source, the timer of that source expires. Then, the source is moved from the Requested List to the Exclude List. From then on, the source will be blocked by the router.

o 允许快速阻塞以前未阻塞的源。如果路由器收到包含此类请求的报告,则相关源将添加到请求列表中。它们的计时器设置为LLQT毫秒的小间隔,查询器发送多播地址和特定于源的查询,以检查链路上是否有对这些源感兴趣的节点。如果没有节点确认其对接收特定源感兴趣,则该源的计时器将过期。然后,将源从请求的列表移动到排除列表。从那时起,源将被路由器阻塞。

The handling of the EXCLUDE mode router state, according to the received reports, is detailed in Tables 7.4.1 and 7.4.2.

根据收到的报告,排除模式路由器状态的处理详见表7.4.1和7.4.2。

When the Router Filter Mode for a multicast address is EXCLUDE, source records are only deleted when the Filter Timer expires, or when newly received Multicast Address Records modify the source record list of the router.

当多播地址的路由器筛选器模式为“排除”时,仅当筛选器计时器过期时,或当新收到的多播地址记录修改路由器的源记录列表时,才会删除源记录。

7.3. MLDv2 Source Specific Forwarding Rules
7.3. MLDv2源特定转发规则

When a multicast router receives a datagram from a source destined to a particular multicast address, a decision has to be made whether to forward the datagram on an attached link or not. The multicast routing protocol in use is in charge of this decision, and should use the MLDv2 information to ensure that all sources/multicast addresses that have listeners on a link are forwarded to that link. MLDv2 information does not override multicast routing information; for example, if the MLDv2 filter mode for a multicast address is EXCLUDE, a router may still forward packets for excluded sources to a transit link.

当多播路由器从目的地为特定多播地址的源接收到数据报时,必须决定是否在连接的链路上转发该数据报。正在使用的多播路由协议负责此决定,并且应该使用MLDv2信息来确保在链路上具有侦听器的所有源/多播地址都被转发到该链路。MLDv2信息不覆盖多播路由信息;例如,如果多播地址的MLDv2过滤模式为EXCLUDE,则路由器仍然可以将被排除源的分组转发到传输链路。

To summarize, the following table describes the forwarding suggestions made by MLDv2 to the routing protocol for traffic originating from a source destined to a multicast address. It also summarizes the actions taken upon the expiration of a source timer based on the Router Filter Mode of the multicast address.

总而言之,下表描述了MLDv2向路由协议提出的转发建议,该建议适用于来自目的地为多播地址的源的流量。它还根据多播地址的路由器筛选器模式总结了源计时器过期时采取的操作。

     Router
   Filter Mode      Source Timer Value           Action
   -----------      ------------------           ------
        
     Router
   Filter Mode      Source Timer Value           Action
   -----------      ------------------           ------
        

INCLUDE TIMER > 0 Suggest to forward traffic from source

包含计时器>0建议转发来自源的流量

INCLUDE TIMER == 0 Suggest to stop forwarding traffic from source and remove source record. If there are no more source records, delete multicast address record

INCLUDE TIMER==0建议停止从源转发流量并删除源记录。如果没有更多的源记录,请删除多播地址记录

EXCLUDE TIMER > 0 Suggest to forward traffic from source

排除计时器>0建议转发来自源的流量

EXCLUDE TIMER == 0 Suggest to not forward traffic from source. Move the source from the Requested List to the Exclude List (DO NOT remove source record)

排除计时器==0建议不要转发来自源的流量。将源从请求的列表移动到排除列表(不要删除源记录)

EXCLUDE No Source Element Suggest to forward traffic from all sources

排除无源元素建议转发来自所有源的流量

7.4. Action on Reception of Reports
7.4. 关于接收报告的行动

Upon reception of an MLD message that contains a Report, the router checks if the source address of the message is a valid link-local address, if the Hop Limit is set to 1, and if the Router Alert option is present in the Hop-By-Hop Options header of the IPv6 packet. If any of these checks fails, the packet is dropped. If the validity of the MLD message is verified, the router starts to process the Report.

在接收到包含报告的MLD消息后,路由器将检查消息的源地址是否为有效的链路本地地址,跳限制是否设置为1,以及IPv6数据包的逐跳选项标头中是否存在路由器警报选项。如果这些检查中的任何一个失败,数据包将被丢弃。如果MLD消息的有效性得到验证,路由器将开始处理该报告。

7.4.1. Reception of Current State Records
7.4.1. 接收当前状态记录

When receiving Current State Records, a router updates both its Filter Timer and its source timers. In some circumstances, the reception of a type of multicast address record will cause the Router Filter Mode for that multicast address to change. The table below describes the actions, with respect to state and timers, that occur to a router's state upon reception of Current State Records.

当接收到当前状态记录时,路由器会同时更新其筛选器计时器和源计时器。在某些情况下,接收一种类型的多播地址记录将导致该多播地址的路由器过滤模式改变。下表描述了在收到当前状态记录时路由器状态发生的与状态和计时器有关的操作。

If the router is in INCLUDE filter mode for a multicast address, we will use the notation INCLUDE (A), where A denotes the associated Include List. If the router is in EXCLUDE filter mode for a multicast address, we will use the notation EXCLUDE (X,Y), where X and Y denote the associated Requested List and Exclude List respectively.

如果路由器对于多播地址处于包含过滤模式,我们将使用表示法INCLUDE(a),其中a表示关联的包含列表。如果路由器处于多播地址的排除过滤模式,我们将使用排除(X,Y)符号,其中X和Y分别表示相关的请求列表和排除列表。

Within the "Actions" section of the router state tables, we use the notation '(A)=J', which means that the set A of source records should have their source timers set to value J. 'Delete (A)' means that the set A of source records should be deleted. 'Filter Timer = J' means that the Filter Timer for the multicast address should be set to value J.

在路由器状态表的“操作”部分中,我们使用符号“(A)=J”,这意味着源记录集A的源计时器应设置为值J。“删除(A)”意味着应删除源记录集A。”Filter Timer=J'表示多播地址的筛选器计时器应设置为值J。

   Router State   Report Received  New Router State   Actions
   ------------   ---------------  ----------------   -------
        
   Router State   Report Received  New Router State   Actions
   ------------   ---------------  ----------------   -------
        

INCLUDE (A) IS_IN (B) INCLUDE (A+B) (B)=MALI

(B)包括(A+B)(B)=马里

INCLUDE (A) IS_EX (B) EXCLUDE (A*B, B-A) (B-A)=0 Delete (A-B) Filter Timer=MALI

INCLUDE(A)是_EX(B)EXCLUDE(A*B,B-A)(B-A)=0删除(A-B)过滤器计时器=0

EXCLUDE (X,Y) IS_IN (A) EXCLUDE (X+A, Y-A) (A)=MALI

排除(X,Y)是(A)中的_排除(X+A,Y-A)(A)=

EXCLUDE (X,Y) IS_EX (A) EXCLUDE (A-Y, Y*A) (A-X-Y)=MALI Delete (X-A) Delete (Y-A) Filter Timer=MALI

排除(X,Y)是_EX(A)排除(A-Y,Y*A)(A-X-Y)=马里删除(X-A)删除(Y-A)过滤器计时器=马里

7.4.2. Reception of Filter Mode Change and Source List Change Records
7.4.2. 接收过滤器模式更改和源列表更改记录

When a change in the global state of a multicast address occurs in a node, the node sends either a Source List Change Record or a Filter Mode Change Record for that multicast address. As with Current State Records, routers must act upon these records and possibly change their own state to reflect the new listening state of the link.

当节点中的多播地址的全局状态发生更改时,该节点发送该多播地址的源列表更改记录或筛选器模式更改记录。与当前状态记录一样,路由器必须根据这些记录进行操作,并可能更改其自身的状态以反映链路的新侦听状态。

The Querier must query sources or multicast addresses that are requested to be no longer forwarded. When a router queries or receives a query for a specific set of sources, it lowers its source timers for those sources to a small interval of Last Listener Query Time milliseconds. If multicast address records are received in response to the queries which express interest in listening the queried sources, the corresponding timers are updated.

查询者必须查询请求不再转发的源或多播地址。当路由器查询或接收到一组特定源的查询时,它会将这些源的源计时器降低到上一个侦听器查询时间毫秒的小间隔。如果接收到多播地址记录以响应表示有兴趣侦听查询源的查询,则更新相应的计时器。

Multicast Address Specific queries can also be used in order to enable a fast transition of a router from EXCLUDE to INCLUDE mode, in case a received Multicast Address Record motivates this action. The Filter Timer for that multicast address is lowered to a small interval of Last Listener Query Time milliseconds. If any multicast address records that express EXCLUDE mode interest in the multicast address are received within this interval, the Filter Timer is updated and the suggestion to the routing protocol to forward the multicast address stands without any interruption. If not, the router will switch to INCLUDE filter mode for that multicast address.

还可以使用特定于多播地址的查询,以便在接收到的多播地址记录激发此操作的情况下,使路由器能够从排除模式快速过渡到包括模式。该多播地址的筛选器计时器将降低到最后一个侦听器查询时间毫秒的小间隔。如果在此间隔内接收到对多播地址表示排除模式兴趣的任何多播地址记录,则过滤器计时器将更新,并且对路由协议转发多播地址的建议不会中断。如果没有,路由器将切换到包含该多播地址的过滤模式。

During the query period (i.e., Last Listener Query Time milliseconds) the MLD component in the router continues to suggest to the routing protocol to forward traffic from the multicast addresses or sources that are queried. It is not until after Last Listener Query Time milliseconds without receiving a record that expresses interest in the queried multicast address or sources that the router may prune the multicast address or sources from the link.

在查询期间(即,最后一个侦听器查询时间毫秒),路由器中的MLD组件继续向路由协议建议转发来自所查询的多播地址或源的流量。直到最后一次侦听器查询时间(毫秒)之后,如果没有接收到表示对查询的多播地址或源感兴趣的记录,路由器才可以从链路中删除多播地址或源。

The following table describes the changes in multicast address state and the action(s) taken when receiving either Filter Mode Change or Source List Change Records. This table also describes the queries which are sent by the Querier when a particular report is received.

下表描述了多播地址状态的更改以及在接收筛选器模式更改或源列表更改记录时采取的操作。此表还描述了查询者在收到特定报告时发送的查询。

We use the following notation for describing the queries that are sent. We use the notation 'Q(MA)' to describe a Multicast Address Specific Query to the MA multicast address. We use the notation 'Q(MA,A)' to describe a Multicast Address and Source Specific Query to the MA multicast address with source list A. If source list A is null as a result of the action (e.g. A*B), then no query is sent as a result of the operation.

我们使用以下符号来描述发送的查询。我们使用符号“Q(MA)”来描述对MA多播地址的多播地址特定查询。我们使用符号‘Q(MA,A)’来描述多播地址和源列表A对MA多播地址的源特定查询。如果源列表A由于操作(例如A*B)而为空,则操作不会发送任何查询。

In order to maintain protocol robustness, queries defined in the Actions column of the table below need to be transmitted [Last Listener Query Count] times, once every [Last Listener Query Interval] period.

为了保持协议的健壮性,下表的Actions列中定义的查询需要传输[Last Listener Query Count]次,每[Last Listener Query Interval]周期传输一次。

If while scheduling new queries, there are already pending queries to be retransmitted for the same multicast address, the new and pending queries have to be merged. In addition, received host reports for a multicast address with pending queries may affect the contents of those queries. Section 7.6.3. describes the process of building and maintaining the state of pending queries.

如果在调度新查询时,对于同一个多播地址,已经存在要重新传输的挂起查询,则必须合并新查询和挂起查询。此外,接收到的具有挂起查询的多播地址的主机报告可能会影响这些查询的内容。第7.6.3节。描述生成和维护挂起查询状态的过程。

   Router State  Report Received  New Router State     Actions
   ------------  ---------------  ----------------     -------
   INCLUDE (A)     ALLOW (B)      INCLUDE (A+B)        (B)=MALI
        
   Router State  Report Received  New Router State     Actions
   ------------  ---------------  ----------------     -------
   INCLUDE (A)     ALLOW (B)      INCLUDE (A+B)        (B)=MALI
        

INCLUDE (A) BLOCK (B) INCLUDE (A) Send Q(MA,A*B)

包括(A)块(B)包括(A)发送Q(MA,A*B)

INCLUDE (A) TO_EX (B) EXCLUDE (A*B,B-A) (B-A)=0 Delete (A-B) Send Q(MA,A*B) Filter Timer=MALI

INCLUDE(A)TO_EX(B)EXCLUDE(A*B,B-A)(B-A)=0 Delete(A-B)Send Q(MA,A*B)Filter Timer=0

INCLUDE (A) TO_IN (B) INCLUDE (A+B) (B)=MALI Send Q(MA,A-B)

包括(A)到(B)中的_包括(A+B)(B)=马里发送Q(MA,A-B)

EXCLUDE (X,Y) ALLOW (A) EXCLUDE (X+A,Y-A) (A)=MALI

排除(X,Y)允许(A)排除(X+A,Y-A)(A)=

EXCLUDE (X,Y) BLOCK (A) EXCLUDE (X+(A-Y),Y) (A-X-Y) = Filter Timer Send Q(MA,A-Y)

排除(X,Y)块(A)排除(X+(A-Y),Y)(A-X-Y)=过滤器定时器发送Q(MA,A-Y)

EXCLUDE (X,Y) TO_EX (A) EXCLUDE (A-Y,Y*A) (A-X-Y) = Filter Timer Delete (X-A) Delete (Y-A) Send Q(MA,A-Y) Filter Timer=MALI

排除(X,Y)至排除(A)排除(A-Y,Y*A)(A-X-Y)=过滤计时器删除(X-A)删除(Y-A)发送Q(MA,A-Y)过滤计时器=马里

EXCLUDE (X,Y) TO_IN (A) EXCLUDE (X+A,Y-A) (A)=MALI Send Q(MA,X-A) Send Q(MA)

排除(X,Y)到(A)中的_排除(X+A,Y-A)(A)=马里发送Q(MA,X-A)发送Q(MA)

7.5. Switching Router Filter Modes
7.5. 交换路由器滤波器模式

The Filter Timer is used as a mechanism for transitioning the Router Filter Mode from EXCLUDE to INCLUDE.

过滤器计时器用作将路由器过滤器模式从排除转换为包括的机制。

When a Filter Timer expires with a Router Filter Mode of EXCLUDE, a router assumes that there are no nodes with a *filter mode* of EXCLUDE present on the attached link. Thus, the router transitions to INCLUDE filter mode for the multicast address.

当筛选器计时器在路由器筛选器模式为EXCLUDE的情况下过期时,路由器会假定连接的链路上不存在*Filter Mode*为EXCLUDE的节点。因此,路由器转换为包括多播地址的过滤模式。

A router uses the sources from the Requested List as its state for the switch to a filter mode of INCLUDE. Sources from the Requested List are moved in the Include List, while sources from the Exclude List are deleted. For example, if a router's state for a multicast address is EXCLUDE(X,Y) and the Filter Timer expires for that

路由器使用请求列表中的源作为其状态,以切换到包含的过滤模式。请求列表中的源将在包含列表中移动,而排除列表中的源将被删除。例如,如果路由器的多播地址状态为EXCLUDE(X,Y),并且该地址的筛选器计时器过期

multicast address, the router switches to filter mode of INCLUDE with state INCLUDE(X). If at the moment of the switch the Requested List (X) is empty, the multicast address record is deleted from the router.

多播地址,路由器切换到包含过滤模式,状态为包含(X)。如果在切换时请求的列表(X)为空,则多播地址记录将从路由器中删除。

7.6. Action on Reception of Queries
7.6. 接受查询的行动

Upon reception of an MLD message that contains a Query, the router checks if the source address of the message is a valid link-local address, if the Hop Limit is set to 1, and if the Router Alert option is present in the Hop-By-Hop Options header of the IPv6 packet. If any of these checks fails, the packet is dropped.

在接收到包含查询的MLD消息后,路由器检查消息的源地址是否为有效的链路本地地址,跳限制是否设置为1,以及IPv6数据包的逐跳选项报头中是否存在路由器警报选项。如果这些检查中的任何一个失败,数据包将被丢弃。

If the validity of the MLD message is verified, the router starts to process the Query.

如果MLD消息的有效性得到验证,路由器将开始处理查询。

7.6.1. Timer Updates
7.6.1. 计时器更新

MLDv2 uses the Suppress Router-Side Processing flag to ensure robustness, as explained in section 2.1. When a router sends or receives a query with a clear Suppress Router-Side Processing flag, it must update its timers to reflect the correct timeout values for the multicast address or sources being queried. The following table describes the timer actions when sending or receiving a Multicast Address Specific or Multicast Address and Source Specific Query with the Suppress Router-Side Processing flag not set.

MLDv2使用抑制路由器端处理标志来确保健壮性,如第2.1节所述。当路由器发送或接收带有清除禁止路由器端处理标志的查询时,它必须更新其计时器,以反映所查询的多播地址或源的正确超时值。下表描述了在未设置抑制路由器端处理标志的情况下发送或接收多播地址特定查询或多播地址和源特定查询时的计时器操作。

   Query       Action
   -----       ------
   Q(MA,A)     Source Timers for sources in A are lowered to LLQT
   Q(MA)       Filter Timer is lowered to LLQT
        
   Query       Action
   -----       ------
   Q(MA,A)     Source Timers for sources in A are lowered to LLQT
   Q(MA)       Filter Timer is lowered to LLQT
        

When a router sends or receives a query with the Suppress Router-Side Processing flag set, it will not update its timers.

当路由器发送或接收设置了抑制路由器端处理标志的查询时,它不会更新其计时器。

7.6.2. Querier Election
7.6.2. 质询者选举

MLDv2 elects a single router per subnet to be in Querier state; all the other routers on the subnet should be in Non-Querier state. MLDv2 uses the same querier election mechanism as MLDv1, namely the IPv6 address. When a router starts operating on a subnet, by default it considers itself as being the Querier. Thus, it sends several General Queries separated by a small time interval (see sections 9.6 and 9.7 for details).

MLDv2为每个子网选择一个处于查询状态的路由器;子网上的所有其他路由器应处于非查询状态。MLDv2使用与MLDv1相同的查询器选择机制,即IPv6地址。当路由器开始在子网上运行时,默认情况下它认为自己是查询者。因此,它发送几个以小时间间隔分隔的通用查询(有关详细信息,请参见第9.6节和第9.7节)。

When a router receives a query with a lower IPv6 address than its own, it sets the Other Querier Present timer to Other Querier Present Timeout; if it was previously in Querier state, it switches to Non-

当路由器接收到IPv6地址低于其自身地址的查询时,它会将另一个查询器当前计时器设置为另一个查询器当前超时;如果它以前处于查询状态,则会切换到非查询状态-

Querier state and ceases to send queries on the link. After the Other Querier Present timer expires, it should re-enter the Querier state and begin sending General Queries.

查询器状态,并停止在链接上发送查询。在另一个查询器当前计时器过期后,它应该重新进入查询器状态并开始发送常规查询。

All MLDv2 queries MUST be sent with the FE80::/64 link-local source address prefix. Therefore, for the purpose of MLDv2 querier election, an IPv6 address A is considered to be lower than an IPv6 address B if the interface ID represented by the last 64 bits of address A, in big-endian bit order, is lower than the interface ID represented by the last 64 bits of address B.

所有MLDv2查询必须使用FE80::/64链路本地源地址前缀发送。因此,出于MLDv2查询器选择的目的,如果地址A的最后64位以大端位顺序表示的接口ID低于地址B的最后64位表示的接口ID,则认为IPv6地址A低于IPv6地址B。

7.6.3. Building and Sending Specific Queries
7.6.3. 生成和发送特定查询
7.6.3.1. Building and Sending Multicast Address Specific Queries
7.6.3.1. 构建和发送多播地址特定查询

When a table action "Send Q(MA)" is encountered, the Filter Timer must be lowered to LLQT. The Querier must then immediately send a Multicast Address Specific query as well as schedule [Last Listener Query Count - 1] query retransmissions to be sent every [Last Listener Query Interval], over [Last Listener Query Time].

当遇到表格操作“发送Q(MA)”时,必须将过滤器计时器降低到LLQT。然后,查询者必须立即发送多播地址特定查询,并在[上次侦听器查询时间]内安排[上次侦听器查询计数-1]查询重传,以便每[上次侦听器查询间隔]发送一次。

When transmitting a Multicast Address Specific Query, if the Filter Timer is larger than LLQT, the "Suppress Router-Side Processing" bit is set in the query message.

传输多播地址特定查询时,如果筛选器计时器大于LLQT,则在查询消息中设置“抑制路由器端处理”位。

7.6.3.2. Building and Sending Multicast Address and Source Specific Queries

7.6.3.2. 构建和发送多播地址和源特定查询

When a table action "Send Q(MA,X)" is encountered by the Querier in the table in section 7.4.2, the following actions must be performed for each of the sources in X that send to multicast address MA, with source timer larger than LLQT:

当第7.4.2节表中的查询者遇到表操作“发送Q(MA,X)”时,必须对X中发送到多播地址MA的每个源执行以下操作,源计时器大于LLQT:

o Lower source timer to LLQT;

o 将源定时器降低到LLQT;

o Add the sources to the Retransmission List;

o 将源添加到重传列表中;

o Set the Source Retransmission Counter for each source to [Last Listener Query Count].

o 将每个源的源重传计数器设置为[上次侦听器查询计数]。

The Querier must then immediately send a Multicast Address and Source Specific Query as well as schedule [Last Listener Query Count -1] query retransmissions to be sent every [Last Listener Query Interval], over [Last Listener Query Time]. The contents of these queries are calculated as follows.

然后,查询者必须立即发送多播地址和特定于源的查询,并计划在[上次侦听器查询时间]内每隔[上次侦听器查询间隔]发送一次[上次侦听器查询计数-1]查询重传。这些查询的内容计算如下。

When building a Multicast Address and Source Specific Query for a multicast address MA, two separate query messages are sent for the multicast address. The first one has the "Suppress Router-Side Processing" bit set and contains all the sources with retransmission state (i.e., sources from the Retransmission List of that multicast address), and timers greater than LLQT. The second has the "Suppress Router-Side Processing" bit clear and contains all the sources with retransmission state and timers lower or equal to LLQT. If either of the two calculated messages does not contain any sources, then its transmission is suppressed.

在为多播地址MA构建多播地址和源特定查询时,会为多播地址发送两条单独的查询消息。第一个具有“抑制路由器端处理”位集,并包含具有重传状态的所有源(即,来自该多播地址的重传列表的源)和大于LLQT的定时器。第二个具有“抑制路由器端处理”位清除,并包含重传状态和定时器低于或等于LLQT的所有源。如果两条计算出的消息中的任何一条不包含任何源,则其传输将被抑制。

Note: If a Multicast Address Specific query is scheduled to be transmitted at the same time as a Multicast Address and Source specific query for the same multicast address, then transmission of the Multicast Address and Source Specific message with the "Suppress Router-Side Processing" bit set may be suppressed.

注意:如果多播地址特定查询被调度为与同一多播地址的多播地址和源特定查询同时发送,则可以抑制具有“抑制路由器侧处理”位集的多播地址和源特定消息的发送。

8. Interoperation with MLDv1
8. 与MLDv1的互操作

MLD version 2 hosts and routers interoperate with hosts and routers that have not yet been upgraded to MLDv2. This compatibility is maintained by hosts and routers taking appropriate actions depending on the versions of MLD operating on hosts and routers within a network.

MLD版本2主机和路由器与尚未升级到MLDv2的主机和路由器互操作。这种兼容性是由主机和路由器根据网络中主机和路由器上运行的MLD版本采取适当措施来维护的。

8.1. Query Version Distinctions
8.1. 查询版本差异

The MLD version of a Multicast Listener Query message is determined as follows:

多播侦听器查询消息的MLD版本确定如下:

MLDv1 Query: length = 24 octets

MLDv1查询:长度=24个八位字节

   MLDv2 Query: length >= 28 octets
        
   MLDv2 Query: length >= 28 octets
        

Query messages that do not match any of the above conditions (e.g., a Query of length 26 octets) MUST be silently ignored.

不符合上述任何条件的查询消息(例如,长度为26个八位字节的查询)必须以静默方式忽略。

8.2. Multicast Address Listener Behavior
8.2. 多播地址侦听器行为
8.2.1. In the Presence of MLDv1 Routers
8.2.1. 在MLDv1路由器存在的情况下

In order to be compatible with MLDv1 routers, MLDv2 hosts MUST operate in version 1 compatibility mode. MLDv2 hosts MUST keep state per local interface regarding the compatibility mode of each attached link. A host's compatibility mode is determined from the Host Compatibility Mode variable which can be in one of the two states: MLDv1 or MLDv2.

为了与MLDv1路由器兼容,MLDv2主机必须在版本1兼容模式下运行。MLDv2主机必须保持每个本地接口关于每个连接链路的兼容性模式的状态。主机的兼容模式由主机兼容模式变量确定,该变量可以处于两种状态之一:MLDv1或MLDv2。

The Host Compatibility Mode of an interface is set to MLDv1 whenever an MLDv1 Multicast Address Listener Query is received on that interface. At the same time, the Older Version Querier Present timer for the interface is set to Older Version Querier Present Timeout seconds. The timer is re-set whenever a new MLDv1 Query is received on that interface. If the Older Version Querier Present timer expires, the host switches back to Host Compatibility Mode of MLDv2.

每当在接口上接收到MLDv1多播地址侦听器查询时,接口的主机兼容性模式将设置为MLDv1。同时,接口的旧版本查询器显示计时器设置为旧版本查询器显示超时秒。每当在该接口上接收到新的MLDv1查询时,就会重新设置计时器。如果旧版本的Querier Present计时器过期,主机将切换回MLDv2的主机兼容模式。

When Host Compatibility Mode is MLDv2, a host acts using the MLDv2 protocol on that interface. When Host Compatibility Mode is MLDv1, a host acts in MLDv1 compatibility mode, using only the MLDv1 protocol, on that interface.

当主机兼容性模式为MLDv2时,主机在该接口上使用MLDv2协议进行操作。当主机兼容模式为MLDv1时,主机在该接口上以MLDv1兼容模式运行,仅使用MLDv1协议。

An MLDv1 Querier will send General Queries with the Maximum Response Code set to the desired Maximum Response Delay, i.e., the full range of this field is linear and the exponential algorithm described in section 5.1.3. is not used.

MLDv1查询器将发送一般查询,最大响应代码设置为期望的最大响应延迟,即该字段的整个范围是线性的,并且采用第5.1.3节中描述的指数算法。没有使用。

Whenever a host changes its compatibility mode, it cancels all its pending responses and retransmission timers.

每当主机更改其兼容模式时,它都会取消所有挂起的响应和重传计时器。

8.2.2. In the Presence of MLDv1 Multicast Address Listeners
8.2.2. 在存在MLDv1多播地址侦听器的情况下

An MLDv2 host may be placed on a link where there are MLDv1 hosts. A host MAY allow its MLDv2 Multicast Listener Report to be suppressed by a Version 1 Multicast Listener Report.

MLDv2主机可以放置在存在MLDv1主机的链路上。主机可以允许版本1多播侦听器报告抑制其MLDv2多播侦听器报告。

8.3. Multicast Router Behavior
8.3. 多播路由器行为
8.3.1. In the Presence of MLDv1 Routers
8.3.1. 在MLDv1路由器存在的情况下

MLDv2 routers may be placed on a network where there is at least one MLDv1 router. The following requirements apply:

MLDv2路由器可以放置在至少有一个MLDv1路由器的网络上。以下要求适用:

o If an MLDv1 router is present on the link, the Querier MUST use the lowest version of MLD present on the network. This must be administratively assured. Routers that desire to be compatible with MLDv1 MUST have a configuration option to act in MLDv1 mode; if an MLDv1 router is present on the link, the system administrator must explicitly configure all MLDv2 routers to act in MLDv1 mode. When in MLDv1 mode, the Querier MUST send periodic General Queries truncated at the Multicast Address field (i.e., 24 bytes long), and SHOULD also warn about receiving an MLDv2 Query (such warnings must be rate-limited). The Querier MUST also fill in the Maximum Response Delay in the Maximum Response Code field, i.e., the exponential algorithm described in section 5.1.3. is not used.

o 如果链路上存在MLDv1路由器,则查询者必须使用网络上存在的最低版本的MLD。这必须在行政上得到保证。希望与MLDv1兼容的路由器必须具有在MLDv1模式下运行的配置选项;如果链路上存在MLDv1路由器,系统管理员必须明确配置所有MLDv2路由器以在MLDv1模式下运行。在MLDv1模式下,查询器必须定期发送在多播地址字段处截断的常规查询(即24字节长),并且还应就接收MLDv2查询发出警告(此类警告必须是速率限制的)。查询者还必须在最大响应代码字段中填写最大响应延迟,即第5.1.3节中描述的指数算法。没有使用。

o If a router is not explicitly configured to use MLDv1 and receives an MLDv1 General Query, it SHOULD log a warning. These warnings MUST be rate-limited.

o 如果路由器未明确配置为使用MLDv1并收到MLDv1常规查询,则应记录警告。这些警告必须是有限制的。

8.3.2. In the Presence of MLDv1 Multicast Address Listeners
8.3.2. 在存在MLDv1多播地址侦听器的情况下

MLDv2 routers may be placed on a network where there are hosts that have not yet been upgraded to MLDv2. In order to be compatible with MLDv1 hosts, MLDv2 routers MUST operate in version 1 compatibility mode. MLDv2 routers keep a compatibility mode per multicast address record. The compatibility mode of a multicast address is determined from the Multicast Address Compatibility Mode variable, which can be in one of the two following states: MLDv1 or MLDv2.

MLDv2路由器可以放置在有尚未升级到MLDv2的主机的网络上。为了与MLDv1主机兼容,MLDv2路由器必须在版本1兼容模式下运行。MLDv2路由器保持每个多播地址记录的兼容模式。多播地址的兼容模式由多播地址兼容模式变量确定,该变量可以处于以下两种状态之一:MLDv1或MLDv2。

The Multicast Address Compatibility Mode of a multicast address record is set to MLDv1 whenever an MLDv1 Multicast Listener Report is received for that multicast address. At the same time, the Older Version Host Present timer for the multicast address is set to Older Version Host Present Timeout seconds. The timer is re-set whenever a new MLDv1 Report is received for that multicast address. If the Older Version Host Present timer expires, the router switches back to Multicast Address Compatibility Mode of MLDv2 for that multicast address.

每当收到多播地址的MLDv1多播侦听器报告时,多播地址记录的多播地址兼容模式设置为MLDv1。同时,多播地址的旧版本主机存在计时器设置为旧版本主机存在超时秒。每当接收到该多播地址的新MLDv1报告时,都会重新设置计时器。如果旧版本主机存在计时器过期,路由器将切换回该多播地址的MLDv2多播地址兼容模式。

Note that when a router switches back to MLDv2 Multicast Address Compatibility Mode for a multicast address, it takes some time to regain source-specific state information. Source-specific information will be learned during the next General Query, but sources that should be blocked will not be blocked until [Multicast Address Listening Interval] after that.

请注意,当路由器为多播地址切换回MLDv2多播地址兼容模式时,需要一些时间才能恢复源特定的状态信息。源特定信息将在下一次常规查询中学习,但是应该被阻止的源将不会被阻止,直到之后的[多播地址侦听间隔]。

When Multicast Address Compatibility Mode is MLDv2, a router acts using the MLDv2 protocol for that multicast address. When Multicast Address Compatibility Mode is MLDv1, a router internally translates the following MLDv1 messages for that multicast address to their MLDv2 equivalents:

当多播地址兼容模式为MLDv2时,路由器使用该多播地址的MLDv2协议进行操作。当多播地址兼容模式为MLDv1时,路由器会在内部将该多播地址的以下MLDv1消息转换为其对应的MLDv2:

   MLDv1 Message                 MLDv2 Equivalent
   -------------                 ----------------
        
   MLDv1 Message                 MLDv2 Equivalent
   -------------                 ----------------
        
      Report                        IS_EX( {} )
        
      Report                        IS_EX( {} )
        
      Done                          TO_IN( {} )
        
      Done                          TO_IN( {} )
        

MLDv2 BLOCK messages are ignored, as are source-lists in TO_EX() messages (i.e., any TO_EX() message is treated as TO_EX( {} )). On the other hand, the Querier continues to send MLDv2 queries, regardless of its Multicast Address Compatibility Mode.

MLDv2块消息被忽略,TO_EX()消息中的源列表也被忽略(即,任何TO_EX()消息都被视为TO_EX({}))。另一方面,查询器继续发送MLDv2查询,而不管其多播地址兼容模式如何。

9. List of Timers, Counters, and their Default Values
9. 计时器、计数器及其默认值的列表

Most of these timers are configurable. If non-default settings are used, they MUST be consistent among all nodes on a single link. Note that parentheses are used to group expressions to make the algebra clear.

大多数定时器都是可配置的。如果使用非默认设置,则它们必须在单个链接上的所有节点之间保持一致。请注意,括号用于对表达式进行分组,以使代数更加清晰。

9.1. Robustness Variable
9.1. 稳健性变量

The Robustness Variable allows tuning for the expected packet loss on a link. If a link is expected to be lossy, the value of the Robustness Variable may be increased. MLD is robust to [Robustness Variable] - 1 packet losses. The value of the Robustness Variable MUST NOT be zero, and SHOULD NOT be one. Default value: 2.

鲁棒性变量允许调整链路上的预期数据包丢失。如果预期链路有损,则鲁棒性变量的值可以增加。MLD对[Robustness Variable]-1数据包丢失具有鲁棒性。稳健性变量的值不能为零,也不应为一。默认值:2。

9.2. Query Interval
9.2. 查询间隔

The Query Interval variable denotes the interval between General Queries sent by the Querier. Default value: 125 seconds.

queryinterval变量表示查询器发送的常规查询之间的间隔。默认值:125秒。

By varying the [Query Interval], an administrator may tune the number of MLD messages on the link; larger values cause MLD Queries to be sent less often.

通过改变[查询间隔],管理员可以调整链路上MLD消息的数量;值越大,发送MLD查询的频率越低。

9.3. Query Response Interval
9.3. 查询响应间隔

The Maximum Response Delay used to calculate the Maximum Response Code inserted into the periodic General Queries. Default value: 10000 (10 seconds)

用于计算插入定期常规查询的最大响应代码的最大响应延迟。默认值:10000(10秒)

By varying the [Query Response Interval], an administrator may tune the burstiness of MLD messages on the link; larger values make the traffic less bursty, as host responses are spread out over a larger interval. The number of seconds represented by the [Query Response Interval] must be less than the [Query Interval].

通过改变[查询响应间隔],管理员可以调整链路上MLD消息的突发性;值越大,流量的突发性就越小,因为主机响应分布的时间间隔越大。[Query Response Interval]表示的秒数必须小于[Query Interval]。

9.4. Multicast Address Listening Interval
9.4. 多播地址侦听间隔

The Multicast Address Listening Interval (MALI) is the amount of time that must pass before a multicast router decides there are no more listeners of a multicast address or a particular source on a link. This value MUST be ([Robustness Variable] times [Query Interval]) plus [Query Response Interval].

多播地址侦听间隔(MALI)是多播路由器确定链路上没有多播地址或特定源的侦听器之前必须经过的时间量。此值必须是([Robustness Variable]乘以[Query Interval])加上[Query Response Interval]。

9.5. Other Querier Present Timeout
9.5. 其他查询器当前超时

The Other Querier Present Timeout is the length of time that must pass before a multicast router decides that there is no longer another multicast router which should be the Querier. This value MUST be ([Robustness Variable] times ([Query Interval]) plus (one half of [Query Response Interval]).

另一个查询器当前超时是一个多播路由器决定不再存在另一个应作为查询器的多播路由器之前必须经过的时间长度。此值必须是([Robustness Variable]乘以([Query Interval])加上(一半的[Query Response Interval])。

9.6. Startup Query Interval
9.6. 启动查询间隔

The Startup Query Interval is the interval between General Queries sent by a Querier on startup. Default value: 1/4 the [Query Interval].

启动查询间隔是查询器在启动时发送的常规查询之间的间隔。默认值:1/4【查询间隔】。

9.7. Startup Query Count
9.7. 启动查询计数

The Startup Query Count is the number of Queries sent out on startup, separated by the Startup Query Interval. Default value: [Robustness Variable].

Startup Query Count是启动时发送的查询数,以启动查询间隔分隔。默认值:[稳健性变量]。

9.8. Last Listener Query Interval
9.8. 上次侦听器查询间隔

The Last Listener Query Interval is the Maximum Response Delay used to calculate the Maximum Response Code inserted into Multicast Address Specific Queries sent in response to Version 1 Multicast Listener Done messages. It is also the Maximum Response Delay used to calculate the Maximum Response Code inserted into Multicast Address and Source Specific Query messages. Default value: 1000 (1 second).

Last Listener Query Interval是最大响应延迟,用于计算为响应版本1 Multicast Listener Done消息而发送的多播地址特定查询中插入的最大响应代码。它也是最大响应延迟,用于计算插入到多播地址和源特定查询消息中的最大响应代码。默认值:1000(1秒)。

Note that for values of LLQI greater than 32.768 seconds, a limited set of values can be represented, corresponding to sequential values of Maximum Response Code. When converting a configured time to a Maximum Response Code value, it is recommended to use the exact value if possible, or the next lower value if the requested value is not exactly representable.

请注意,对于大于32.768秒的LLQI值,可以表示一组有限的值,对应于最大响应代码的顺序值。将配置的时间转换为最大响应代码值时,如果可能,建议使用准确的值,如果请求的值不能准确表示,建议使用下一个较低的值。

This value may be tuned to modify the "leave latency" of the link. A reduced value results in reduced time to detect the departure of the last listener for a multicast address or source.

可以调整此值以修改链接的“离开延迟”。减少的值会减少检测多播地址或源的最后一个侦听器离开的时间。

9.9. Last Listener Query Count
9.9. 上次侦听器查询计数

The Last Listener Query Count is the number of Multicast Address Specific Queries sent before the router assumes there are no local listeners. The Last Listener Query Count is also the number of

Last Listener Query Count是路由器假定没有本地侦听器之前发送的多播地址特定查询数。最后一个侦听器查询计数也是

Multicast Address and Source Specific Queries sent before the router assumes there are no listeners for a particular source. Default value: [Robustness Variable].

在路由器假定特定源没有侦听器之前发送的多播地址和源特定查询。默认值:[稳健性变量]。

9.10. Last Listener Query Time
9.10. 上次侦听器查询时间

The Last Listener Query Time is the time value represented by the Last Listener Query Interval, multiplied by [Last Listener Query Count]. It is not a tunable value, but may be tuned by changing its components.

Last Listener Query Time是由Last Listener查询间隔乘以[Last Listener Query Count]表示的时间值。它不是一个可调值,但可以通过更改其组件进行调整。

9.11. Unsolicited Report Interval
9.11. 主动报告间隔

The Unsolicited Report Interval is the time between repetitions of a node's initial report of interest in a multicast address. Default value: 1 second.

非请求报告间隔是在多播地址中重复节点感兴趣的初始报告之间的时间。默认值:1秒。

9.12. Older Version Querier Present Timeout
9.12. 旧版本查询器当前超时

The Older Version Querier Present Timeout is the time-out for transitioning a host back to MLDv2 Host Compatibility Mode. When an MLDv1 query is received, MLDv2 hosts set their Older Version Querier Present Timer to [Older Version Querier Present Timeout].

旧版本的Querier Present Timeout是将主机转换回MLDv2主机兼容模式的超时。当收到MLDv1查询时,MLDv2主机将其旧版本查询器当前计时器设置为[旧版本查询器当前超时]。

This value MUST be ([Robustness Variable] times (the [Query Interval] in the last Query received)) plus ([Query Response Interval]).

此值必须是([Robustness Variable]倍(上次接收的查询中的[Query Interval])加上([Query Response Interval])。

9.13. Older Version Host Present Timeout
9.13. 旧版本主机存在超时

The Older Version Host Present Timeout is the time-out for transitioning a router back to MLDv2 Multicast Address Compatibility Mode for a specific multicast address. When an MLDv1 report is received for that multicast address, routers set their Older Version Host Present Timer to [Older Version Host Present Timeout].

旧版本主机当前超时是将路由器转换回特定多播地址的MLDv2多播地址兼容模式的超时。当收到该多播地址的MLDv1报告时,路由器将其旧版本主机呈现计时器设置为[旧版本主机呈现超时]。

This value MUST be ([Robustness Variable] times [Query Interval]) plus ([Query Response Interval]).

此值必须是([Robustness Variable]乘以[Query Interval])加上([Query Response Interval])。

9.14. Configuring timers
9.14. 配置计时器

This section is meant to provide advice to network administrators on how to tune these settings to their network. Ambitious router implementations might tune these settings dynamically based upon changing characteristics of the network.

本节旨在向网络管理员提供有关如何将这些设置调整到其网络的建议。雄心勃勃的路由器实现可能会根据不断变化的网络特征动态调整这些设置。

9.14.1. Robustness Variable
9.14.1. 稳健性变量

The Robustness Variable tunes MLD to expected losses on a link. MLDv2 is robust to [Robustness Variable] - 1 packet losses, e.g., if the Robustness Variable is set to the default value of 2, MLDv2 is robust to a single packet loss but may operate imperfectly if more losses occur. On lossy links, the value of the Robustness Variable should be increased to allow for the expected level of packet loss. However, increasing the value of the Robustness Variable increases the leave latency of the link (the time between when the last listener stops listening to a source or multicast address and when the traffic stops flowing).

鲁棒性变量将MLD调整为链路上的预期损耗。MLDv2对[Robustness Variable]-1数据包丢失具有鲁棒性,例如,如果鲁棒性变量设置为默认值2,则MLDv2对单个数据包丢失具有鲁棒性,但如果发生更多的丢失,则MLDv2的操作可能不完美。在有损链路上,应增加鲁棒性变量的值,以考虑预期的数据包丢失水平。但是,增加Robustness变量的值会增加链路的离开延迟(最后一个侦听器停止侦听源地址或多播地址与流量停止流动之间的时间)。

9.14.2. Query Interval
9.14.2. 查询间隔

The overall level of periodic MLD traffic is inversely proportional to the Query Interval. A longer Query Interval results in a lower overall level of MLD traffic. The value of the Query Interval MUST be equal to or greater than the Maximum Response Delay used to calculate the Maximum Response Code inserted in General Query messages.

周期性MLD流量的总体水平与查询间隔成反比。查询间隔越长,MLD流量的总体水平越低。查询间隔的值必须等于或大于用于计算插入常规查询消息中的最大响应代码的最大响应延迟。

9.14.3. Maximum Response Delay
9.14.3. 最大响应延迟

The burstiness of MLD traffic is inversely proportional to the Maximum Response Delay. A longer Maximum Response Delay will spread Report messages over a longer interval. However, a longer Maximum Response Delay in Multicast Address Specific and Multicast Address And Source Specific Queries extends the leave latency (the time between when the last listener stops listening to a source or multicast address and when the traffic stops flowing.) The expected rate of Report messages can be calculated by dividing the expected number of Reporters by the Maximum Response Delay. The Maximum Response Delay may be dynamically calculated per Query by using the expected number of Reporters for that Query as follows:

MLD流量的突发性与最大响应延迟成反比。更长的最大响应延迟将在更长的时间间隔内传播报告消息。但是,多播地址特定查询和多播地址及源特定查询中较长的最大响应延迟会延长离开延迟(最后一个侦听器停止侦听源地址或多播地址与流量停止流动之间的时间)报告消息的预期速率可以通过将预期报告者数量除以最大响应延迟来计算。通过使用该查询的预期报告者数量,可以动态计算每个查询的最大响应延迟,如下所示:

   Query Type                         Expected number of Reporters
   ----------                         ----------------------------
        
   Query Type                         Expected number of Reporters
   ----------                         ----------------------------
        

General Query All nodes on link

常规查询链接上的所有节点

Multicast Address Specific Query All nodes on the link that had expressed interest in the multicast address

多播地址特定查询链接上对多播地址感兴趣的所有节点

Multicast Address and Source All nodes on the link that had Specific Query expressed interest in the source and multicast address

多播地址和源链接上具有特定查询的所有节点都表示对源地址和多播地址感兴趣

A router is not required to calculate these populations or tune the Maximum Response Delay dynamically; these are simply guidelines.

路由器不需要计算这些总体或动态调整最大响应延迟;这些只是指导方针。

10. Security Considerations
10. 安全考虑

We consider the ramifications of a forged message of each type. Note that before processing an MLD message, nodes verify if the source address of the message is a valid link-local address (or the unspecified address), if the Hop Limit is set to 1, and if the Router Alert option is present in the Hop-By-Hop Options header of the IPv6 packet. If any of these checks fails, the packet is dropped. This defends the MLDv2 nodes from acting on forged MLD messages originated off-link. Therefore, in the following we discuss only the effects of on-link forgery.

我们考虑每种类型的伪造消息的后果。请注意,在处理MLD消息之前,节点会验证消息的源地址是否为有效的链路本地地址(或未指定的地址)、跃点限制是否设置为1以及IPv6数据包的逐跃点选项标头中是否存在路由器警报选项。如果这些检查中的任何一个失败,数据包将被丢弃。这可防止MLDv2节点对源自非链路的伪造MLD消息进行操作。因此,在下文中,我们仅讨论链接伪造的影响。

10.1. Query Message
10.1. 查询消息

A forged Query message from a machine with a lower IPv6 address than the current Querier will cause Querier duties to be assigned to the forger. If the forger then sends no more Query messages, other routers' Other Querier Present timer will time out and one will resume the role of Querier. During this time, if the forger ignores Multicast Listener Done Messages, traffic might flow to multicast addresses with no listeners for up to [Multicast Address Listener Interval].

来自IPv6地址低于当前查询者的计算机的伪造查询消息将导致将查询者职责分配给伪造者。如果伪造者不再发送查询消息,其他路由器的其他查询器当前计时器将超时,其中一个将恢复查询器的角色。在此期间,如果伪造者忽略多播侦听器完成的消息,则通信量可能会流向在[Multicast Address Listener Interval]内没有侦听器的多播地址。

A forged Version 1 Query message will put MLDv2 listeners on that link in MLDv1 Host Compatibility Mode. This scenario can be avoided by providing MLDv2 hosts with a configuration option to ignore Version 1 messages completely.

伪造的版本1查询消息将在MLDv1主机兼容模式下将MLDv2侦听器置于该链接上。通过为MLDv2主机提供完全忽略版本1消息的配置选项,可以避免这种情况。

A DoS attack on a node could be staged through forged Multicast Address and Source Specific Queries. The attacker can find out about the listening state of a specific node with a general query. After that it could send a large number of Multicast Address and Source Specific Queries, each with a large source list and/or long Maximum Response Delay. The node will have to store and maintain the sources specified in all of those queries for as long as it takes to send the delayed response. This would consume both memory and CPU cycles in order to augment the recorded sources with the source lists included in the successive queries.

节点上的DoS攻击可以通过伪造的多播地址和特定于源的查询进行。攻击者可以通过常规查询了解特定节点的侦听状态。之后,它可以发送大量多播地址和特定于源的查询,每个查询都具有较大的源列表和/或较长的最大响应延迟。只要发送延迟响应,节点就必须存储和维护所有这些查询中指定的源。这将消耗内存和CPU周期,以便使用后续查询中包含的源列表来增加记录的源。

To protect against such a DoS attack, a node stack implementation could restrict the number of Multicast Address and Source Specific Queries per multicast address within this interval, and/or record only a limited number of sources.

为了防止此类DoS攻击,节点堆栈实现可以在此间隔内限制每个多播地址的多播地址和源特定查询的数量,和/或仅记录有限数量的源。

10.2. Current State Report messages
10.2. 当前状态报告消息

A forged Report message may cause multicast routers to think there are listeners of a multicast address on a link when there are not. Nevertheless, since listening to a multicast address on a host is generally an unprivileged operation, a local user may trivially gain the same result without forging any messages.

伪造的报告消息可能会导致多播路由器认为链路上有多播地址的侦听器,而实际上没有。然而,由于在主机上侦听多播地址通常是一种非特权操作,因此本地用户可能在不伪造任何消息的情况下获得相同的结果。

A forged Version 1 Report Message may put a router into MLDv1 Multicast Address Compatibility Mode for a particular multicast address, meaning that the router will ignore MLDv2 source specific state messages. This can cause traffic to flow from unwanted sources for up to [Multicast Address Listener Interval]. This can be solved by providing routers with a configuration switch to ignore Version 1 messages completely. This breaks automatic compatibility with Version 1 hosts, so it should only be used in situations where source filtering is critical.

伪造版本1报告消息可能会将路由器置于特定多播地址的MLDv1多播地址兼容模式,这意味着路由器将忽略MLDv2源特定状态消息。这可能会导致流量从不需要的源流出,最多持续[多播地址侦听器间隔]。这可以通过为路由器提供配置开关来完全忽略版本1消息来解决。这破坏了与版本1主机的自动兼容性,因此仅应在源代码筛选至关重要的情况下使用。

10.3. State Change Report messages
10.3. 状态更改报告消息

A forged State Change Report message will cause the Querier to send out Multicast Address Specific or Multicast Address and Source Specific Queries for the multicast address in question. This causes extra processing on each router and on each listener of the multicast address, but cannot cause loss of desired traffic.

伪造的状态更改报告消息将导致查询者针对所讨论的多播地址发送多播地址特定的或多播地址和源特定的查询。这会在多播地址的每个路由器和每个侦听器上造成额外的处理,但不会导致所需流量的丢失。

11. IANA Considerations
11. IANA考虑

IANA has assigned the IPv6 link-local multicast address FF02:0:0:0:0:0:0:16, called "all MLDv2-capable routers", as described in section 5.2.14. Version 2 Multicast Listener Reports will be sent to this special address.

IANA已分配IPv6链路本地多播地址FF02:0:0:0:0:0:16,称为“所有支持MLDv2的路由器”,如第5.2.14节所述。版本2多播侦听器报告将发送到此特殊地址。

In addition, IANA has assigned the ICMPv6 message type value of 143 for Version 2 Multicast Listener Report messages, as specified in section 4.

此外,IANA为版本2多播侦听器报告消息分配了ICMPv6消息类型值143,如第4节所述。

12. References
12. 工具书类
12.1. Normative References
12.1. 规范性引用文件

[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997.

[RFC2119]Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP 14,RFC 2119,1997年3月。

[RFC2460] Deering, S. and R. Hinden, "Internet Protocol, Version 6 (IPv6) Specification", RFC 2460, December 1998.

[RFC2460]Deering,S.和R.Hinden,“互联网协议,第6版(IPv6)规范”,RFC 2460,1998年12月。

[RFC2463] Conta, A. and S. Deering, "Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification", RFC 2463, December 1998.

[RFC2463]Conta,A.和S.Deering,“互联网协议版本6(IPv6)规范的互联网控制消息协议(ICMPv6)”,RFC2463,1998年12月。

[RFC2464] Crawford, M., "Transmission of IPv6 Packets over Ethernet Networks", RFC 2464, December 1998.

[RFC2464]克劳福德,M.,“通过以太网传输IPv6数据包”,RFC2464,1998年12月。

[RFC2710] Deering, S., Fenner, W. and B. Haberman, "Multicast Listener Discovery (MLD) for IPv6", RFC 2710, October 1999.

[RFC2710]Deering,S.,Fenner,W.和B.Haberman,“IPv6的多播侦听器发现(MLD)”,RFC 2710,1999年10月。

[RFC2711] Partridge, C. and A. Jackson, "IPv6 Router Alert Option," RFC 2711, October 1999.

[RFC2711]帕特里奇,C.和A.杰克逊,“IPv6路由器警报选项”,RFC27111999年10月。

[RFC3513] Hinden, R. and S. Deering, "Internet Protocol Version 6 (IPv6) Addressing Architecture, RFC 3513, April 2003.

[RFC3513]Hinden,R.和S.Deering,“互联网协议版本6(IPv6)寻址体系结构”,RFC 3513,2003年4月。

12.2. Informative References
12.2. 资料性引用

[RFC2461] Narten, T., Nordmark, E. and W. Simpson, "Neighbor Discovery for IP Version 6 (IPv6)", RFC 2461, December 1998.

[RFC2461]Narten,T.,Nordmark,E.和W.Simpson,“IP版本6(IPv6)的邻居发现”,RFC2461,1998年12月。

[RFC2462] Thomson, S. and T. Narten, "IPv6 Stateless Address Autoconfiguration", RFC 2462, December 1998.

[RFC2462]Thomson,S.和T.Narten,“IPv6无状态地址自动配置”,RFC2462,1998年12月。

[RFC3376] Cain, B., Deering, S., Kouvelas, I., Fenner, B. and A. Thyagarajan, "Internet Group Management Protocol, Version 3", RFC 3376, October 2002.

[RFC3376]Cain,B.,Deering,S.,Kouvelas,I.,Fenner,B.和A.Thyagarajan,“互联网组管理协议,第3版”,RFC 3376,2002年10月。

[RFC3569] Bhattacharyya, S., Ed., "An Overview of Source- Specific Multicast (SSM)", RFC 3569, July 2003.

[RFC3569]Bhattacharyya,S.,Ed.“源特定多播(SSM)概述”,RFC3569,2003年7月。

[RFC3678] Thaler, D., Fenner, B. and B. Quinn, "Socket Interface Extensions for Multicast Source Filters", RFC 3678, January 2004.

[RFC3678]Thaler,D.,Fenner,B.和B.Quinn,“多播源过滤器的套接字接口扩展”,RFC 3678,2004年1月。

13. Acknowledgments
13. 致谢

We would like to thank Hitoshi Asaeda, Randy Bush, Francis Dupont, Ted Hardie, Russ Housley, Konstantin Kabassanov, Erik Nordmark, Shinsuke Suzuki, Margaret Wasserman, Bert Wijnen, and Remi Zara for their valuable comments and suggestions on this document.

我们要感谢浅田仁、兰迪·布什、弗朗西斯·杜邦、特德·哈迪、罗斯·霍斯利、康斯坦丁·卡巴萨诺夫、埃里克·诺德马克、铃木新介、玛格丽特·瓦瑟曼、伯特·维宁和雷米·扎拉对本文件提出的宝贵意见和建议。

APPENDIX A. Design Rationale

附录A.设计原理

A.1. The Need for State Change Messages
A.1. 对状态更改消息的需要

MLDv2 specifies two types of Multicast Listener Reports: Current State and State Change. This section describes the rationale for the need for both these types of Reports.

MLDv2指定两种类型的多播侦听器报告:当前状态和状态更改。本节描述了需要这两种类型报告的理由。

Routers need to distinguish Multicast Listener Reports that were sent in response to Queries from those that were sent as a result of a change in the per-interface state. Multicast Listener Reports that are sent in response to Multicast Address Listener Queries are used mainly to refresh the existing state at the router; they typically do not cause transitions in state at the router. Multicast Listener Reports that are sent in response to changes in the per-interface state require the router to take some action in response to the received report (see Section 7.4.).

路由器需要区分响应查询而发送的多播侦听器报告和由于每个接口状态的更改而发送的多播侦听器报告。响应多播地址侦听器查询而发送的多播侦听器报告主要用于刷新路由器上的现有状态;它们通常不会导致路由器的状态转换。为响应每个接口状态的更改而发送的多播侦听器报告要求路由器采取一些措施来响应收到的报告(参见第7.4节)。

The inability to distinguish between the two types of reports would force a router to treat all Multicast Listener Reports as potential changes in state and could result in increased processing at the router as well as an increase in MLD traffic on the link.

无法区分这两种类型的报告将迫使路由器将所有多播侦听器报告视为状态的潜在变化,并可能导致路由器的处理增加以及链路上的MLD流量增加。

A.2. Host Suppression
A.2. 宿主抑制

In MLDv1, a host would not send a pending multicast listener report if a similar report was sent by another listener on the link. In MLDv2, the suppression of multicast listener reports has been removed. The following points explain this decision.

在MLDv1中,如果链接上的另一个侦听器发送了类似的报告,则主机不会发送挂起的多播侦听器报告。在MLDv2中,已删除对多播侦听器报告的抑制。以下几点解释了这一决定。

1. Routers may want to track per-host multicast listener status on an interface. This would allow routers to implement fast leaves (e.g., for layered multicast congestion control schemes), as well as track listener status for possible security or accounting purposes. The present specification does not require routers to implement per-host tracking. Nevertheless, the lack of host suppression in MLDv2 makes possible to implement either proprietary or future standard behavior of multicast routers that would support per-host tracking, while being fully interoperable with MLDv2 listeners and routers that implement the exact behavior described in this specification.

1. 路由器可能希望跟踪接口上每台主机的多播侦听器状态。这将允许路由器实现快速离开(例如,对于分层多播拥塞控制方案),以及出于可能的安全或计费目的跟踪侦听器状态。本规范不要求路由器实现每主机跟踪。尽管如此,MLDv2中缺少主机抑制使得可以实现支持每台主机跟踪的多播路由器的专有或未来标准行为,同时可以与实现本规范中描述的确切行为的MLDv2侦听器和路由器完全互操作。

2. Multicast Listener Report suppression does not work well on bridged LANs. Many bridges and Layer2/Layer3 switches that implement MLD snooping do not forward MLD messages across LAN segments in order to prevent multicast listener report suppression.

2. 多播侦听器报告抑制在桥接LAN上无法正常工作。许多实现MLD窥探的网桥和Layer2/Layer3交换机不跨LAN段转发MLD消息,以防止多播侦听器报告抑制。

3. By eliminating multicast listener report suppression, hosts have fewer messages to process; this leads to a simpler state machine implementation.

3. 通过消除多播侦听器报告抑制,主机可以处理更少的消息;这将导致更简单的状态机实现。

4. In MLDv2, a single multicast listener report now bundles multiple multicast address records to decrease the number of packets sent. In comparison, the previous version of MLD required that each multicast address be reported in a separate message.

4. 在MLDv2中,单个多播侦听器报告现在捆绑多个多播地址记录以减少发送的数据包数量。相比之下,以前版本的MLD要求在单独的消息中报告每个多播地址。

A.3. Switching router filter modes from EXCLUDE to INCLUDE
A.3. 将路由器过滤器模式从排除切换到包括

If on a link there are nodes in both EXCLUDE and INCLUDE modes for a single multicast address, the router must be in EXCLUDE mode as well (see section 7.2.1). In EXCLUDE mode, a router forwards traffic from all sources except those in the Exclude List. If all nodes in EXCLUDE mode cease to exist or to listen, it would be desirable for the router to switch back to INCLUDE mode seamlessly, without interrupting the flow of traffic to existing listeners.

如果在一条链路上,对于一个多播地址,有处于排除模式和包括模式的节点,则路由器也必须处于排除模式(见第7.2.1节)。在排除模式下,路由器转发来自除排除列表中的源之外的所有源的流量。如果排除模式中的所有节点都不存在或不再侦听,则路由器最好无缝地切换回包括模式,而不会中断到现有侦听器的通信流。

One of the ways to accomplish this is for routers to keep track of all sources that nodes that are in INCLUDE mode listen to, even though the router itself is in EXCLUDE mode. If the Filter Timer for a multicast address expires, it implies that there are no nodes in EXCLUDE mode on the link (otherwise a multicast listener report from that node would have refreshed the Filter Timer). The router can then switch to INCLUDE mode seamlessly; sources from the Requested List are moved to the Include List, while sources from the Exclude List are deleted.

实现这一点的方法之一是路由器跟踪处于包含模式的节点侦听的所有源,即使路由器本身处于排除模式。如果多播地址的筛选器计时器过期,则表示链路上没有处于排除模式的节点(否则,来自该节点的多播侦听器报告将刷新筛选器计时器)。然后路由器可以无缝切换到包含模式;请求列表中的源将移动到包含列表,而排除列表中的源将被删除。

APPENDIX B. Summary of Changes from MLDv1

附录B.MLDv1变更汇总

The following is a summary of changes from MLDv1, specified in RFC 2710.

以下是RFC 2710中规定的MLDv1的变更摘要。

o MLDv2 introduces source filtering.

o MLDv2引入了源过滤。

o The IP service interface of MLDv2 nodes is modified accordingly. It enables the specification of a filter mode and a source list.

o MLDv2节点的IP服务接口也相应修改。它支持指定过滤器模式和源列表。

o An MLDv2 node keeps per-socket and per-interface multicast listening states that include a filter mode and a source list for each multicast address. This enables packet filtering based on a socket's multicast reception state.

o MLDv2节点保持每个套接字和每个接口的多播侦听状态,包括每个多播地址的筛选模式和源列表。这将根据套接字的多播接收状态启用数据包过滤。

o MLDv2 state kept on routers includes a filter mode and a list of sources and source timers for each multicast address that has listeners on the link. MLDv1 routers kept only the list of multicast addresses.

o 路由器上保持的MLDv2状态包括一个过滤模式和一个源列表,以及链路上有侦听器的每个多播地址的源计时器。MLDv1路由器只保留多播地址列表。

o Queries include additional fields (section 5.1).

o 查询包括其他字段(第5.1节)。

o The S flag (Suppress Router-Side Processing) is included in queries in order to fix robustness issues.

o S标志(抑制路由器端处理)包含在查询中,以解决健壮性问题。

o The Querier's Robustness Variable and Query Interval Code are included in Queries in order to synchronize all MLDv2 routers connected to the same link.

o 查询中包含查询器的稳健性变量和查询间隔代码,以便同步连接到同一链路的所有MLDv2路由器。

o A new Query type (Multicast Address and Source Specific Query) is introduced.

o 引入了一种新的查询类型(多播地址和源特定查询)。

o The Maximum Response Delay is not directly included in the Query anymore. Instead, an exponential algorithm is used to calculate its value, based on the Maximum Response Code included in the Query. The maximum value is increased from 65535 milliseconds to about 140 minutes.

o 最大响应延迟不再直接包含在查询中。相反,根据查询中包含的最大响应代码,使用指数算法计算其值。最大值从65535毫秒增加到约140分钟。

o Reports include Multicast Address Records. Information on the listening state for several different multicast addresses can be included in the same Report message.

o 报告包括多播地址记录。同一报告消息中可以包含多个不同多播地址的侦听状态信息。

o Reports are sent to the "all MLDv2-capable multicast routers" address, instead of the multicast address the host listens to, as in MLDv1. This facilitates the operation of layer-2 snooping switches.

o 报告被发送到“所有支持MLDv2的多播路由器”地址,而不是主机侦听的多播地址,如MLDv1。这有助于第二层监听交换机的操作。

o There is no "host suppression", as in MLDv1. All nodes send Report messages.

o 不存在MLDv1中的“主机抑制”。所有节点都发送报告消息。

o Unsolicited Reports, announcing changes in receiver listening state, are sent [Robustness Variable] times. RFC 2710 is less explicit.

o 宣布接收器监听状态变化的未经请求的报告将发送[鲁棒性变量]次。RFC2710不太明确。

o There are no Done messages.

o 没有“完成”消息。

o Interoperability with MLDv1 systems is achieved by MLDv2 state operations.

o 通过MLDv2状态操作实现与MLDv1系统的互操作性。

o In order to ensure interoperability, hosts maintain a Host Compatibility Mode variable and an Older Version Querier Present timer per interface. Routers maintain a Multicast Address Compatibility Mode variable and an Older Version Host Present timer per multicast address.

o 为了确保互操作性,主机为每个接口维护一个主机兼容性模式变量和一个较旧版本的查询器Present timer。路由器维护一个多播地址兼容模式变量和一个旧版本的主机当前计时器(每个多播地址)。

Editors' Contact Information

编辑联系方式

Rolland Vida LIP6, Universite Pierre et Marie Curie 8, rue du Capitaine Scott 75015 Paris, France

罗兰·维达·利普6号,皮埃尔和玛丽·居里大学8号,斯科特国会街75015号,法国巴黎

   Phone: +33-1.44.27.30.58
   EMail: Rolland.Vida@lip6.fr
        
   Phone: +33-1.44.27.30.58
   EMail: Rolland.Vida@lip6.fr
        

Luis Henrique Maciel Kosmalski Costa LIP6, Universite Pierre et Marie Curie 8, rue du Capitaine Scott 75015 Paris, France

路易斯·亨里克·马西尔·科斯马尔斯基·科斯塔·利普6号,皮埃尔和玛丽·居里大学8号,斯科特国会街75015号,法国巴黎

   Phone: +33-1.44.27.30.58
   EMail: Luis.Costa@lip6.fr
        
   Phone: +33-1.44.27.30.58
   EMail: Luis.Costa@lip6.fr
        

Authors' Addresses

作者地址

This document was written by:

本文件由以下人员编写:

Rolland Vida, LIP6 EMail: Rolland.Vida@lip6.fr

罗兰·维达,LIP6电子邮件:罗兰。Vida@lip6.fr

Luis Henrique Maciel Kosmalski Costa, LIP6 EMail: Luis.Costa@lip6.fr

路易斯·亨里克·马西尔·科斯马尔斯基·科斯塔,LIP6电子邮件:路易斯。Costa@lip6.fr

Serge Fdida, LIP6 EMail: Serge.Fdida@lip6.fr

Serge Fdida,LIP6电子邮件:Serge。Fdida@lip6.fr

Steve Deering, Cisco Systems, Inc. EMail: deering@cisco.com

Steve Deering,Cisco Systems,Inc.电子邮件:deering@cisco.com

Bill Fenner, AT&T Labs - Research EMail: fenner@research.att.com

比尔·芬纳,AT&T实验室-研究电子邮件:fenner@research.att.com

Isidor Kouvelas, Cisco Systems, Inc. EMail: kouvelas@cisco.com

思科系统公司Isidor Kouvelas电子邮件:kouvelas@cisco.com

Brian Haberman, Caspian Networks EMail: brian@innovationslab.net

Brian Haberman,里海网络电子邮件:brian@innovationslab.net

This document is the translation of [RFC3376] for IPv6 semantics. It was elaborated based on the translation of (RFC 2236) into [RFC2710].

本文档是[RFC3376]对IPv6语义的翻译。它是在(RFC 2236)翻译成[RFC2710]的基础上详细阐述的。

Full Copyright Statement

完整版权声明

Copyright (C) The Internet Society (2004). This document is subject to the rights, licenses and restrictions contained in BCP 78, and except as set forth therein, the authors retain all their rights.

版权所有(C)互联网协会(2004年)。本文件受BCP 78中包含的权利、许可和限制的约束,除其中规定外,作者保留其所有权利。

This document and the information contained herein are provided on an "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

本文件及其包含的信息是按“原样”提供的,贡献者、他/她所代表或赞助的组织(如有)、互联网协会和互联网工程任务组不承担任何明示或暗示的担保,包括但不限于任何保证,即使用本文中的信息不会侵犯任何权利,或对适销性或特定用途适用性的任何默示保证。

Intellectual Property

知识产权

The IETF takes no position regarding the validity or scope of any Intellectual Property Rights or other rights that might be claimed to pertain to the implementation or use of the technology described in this document or the extent to which any license under such rights might or might not be available; nor does it represent that it has made any independent effort to identify any such rights. Information on the procedures with respect to rights in RFC documents can be found in BCP 78 and BCP 79.

IETF对可能声称与本文件所述技术的实施或使用有关的任何知识产权或其他权利的有效性或范围,或此类权利下的任何许可可能或可能不可用的程度,不采取任何立场;它也不表示它已作出任何独立努力来确定任何此类权利。有关RFC文件中权利的程序信息,请参见BCP 78和BCP 79。

Copies of IPR disclosures made to the IETF Secretariat and any assurances of licenses to be made available, or the result of an attempt made to obtain a general license or permission for the use of such proprietary rights by implementers or users of this specification can be obtained from the IETF on-line IPR repository at http://www.ietf.org/ipr.

向IETF秘书处披露的知识产权副本和任何许可证保证,或本规范实施者或用户试图获得使用此类专有权利的一般许可证或许可的结果,可从IETF在线知识产权存储库获取,网址为http://www.ietf.org/ipr.

The IETF invites any interested party to bring to its attention any copyrights, patents or patent applications, or other proprietary rights that may cover technology that may be required to implement this standard. Please address the information to the IETF at ietf-ipr@ietf.org.

IETF邀请任何相关方提请其注意任何版权、专利或专利申请,或其他可能涵盖实施本标准所需技术的专有权利。请将信息发送至IETF的IETF-ipr@ietf.org.

Acknowledgement

确认

Funding for the RFC Editor function is currently provided by the Internet Society.

RFC编辑功能的资金目前由互联网协会提供。