Network Working Group                                        S. Deering
Request for Comments: 2710                                Cisco Systems
Category: Standards Track                                     W. Fenner
                                                          AT&T Research
                                                            B. Haberman
                                                                    IBM
                                                           October 1999
        
Network Working Group                                        S. Deering
Request for Comments: 2710                                Cisco Systems
Category: Standards Track                                     W. Fenner
                                                          AT&T Research
                                                            B. Haberman
                                                                    IBM
                                                           October 1999
        

Multicast Listener Discovery (MLD) for IPv6

IPv6的多播侦听器发现(MLD)

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 (1999). All Rights Reserved.

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

Abstract

摘要

This document specifies the protocol used by an IPv6 router to discover the presence of multicast listeners (that is, nodes wishing to receive multicast packets) on its directly attached links, and to discover specifically which multicast addresses are of interest to those neighboring nodes. This protocol is referred to as Multicast Listener Discovery or MLD. MLD is derived from version 2 of IPv4's Internet Group Management Protocol, IGMPv2. One important difference to note is that MLD uses ICMPv6 (IP Protocol 58) message types, rather than IGMP (IP Protocol 2) message types.

本文档指定了IPv6路由器使用的协议,该协议用于发现其直接连接的链路上是否存在多播侦听器(即,希望接收多播数据包的节点),以及具体发现那些相邻节点感兴趣的多播地址。此协议称为多播侦听器发现或MLD。MLD源自IPv4的Internet组管理协议IGMPv2的版本2。需要注意的一个重要区别是MLD使用ICMPv6(IP协议58)消息类型,而不是IGMP(IP协议2)消息类型。

1. Definitions
1. 定义

The 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 RFC 2119 [KEYWORDS].

本文件中的关键词“必须”、“不得”、“必需”、“应”、“不应”、“应”、“不应”、“建议”、“可”和“可选”应按照RFC 2119[关键词]中所述进行解释。

2. Introduction
2. 介绍

The purpose of Multicast Listener Discovery (MLD) is to enable each IPv6 router to discover the presence of multicast listeners (that is, nodes wishing to receive multicast packets) on its directly attached links, and to discover specifically which multicast addresses are of interest to those neighboring nodes. This information is then

多播侦听器发现(MLD)的目的是使每个IPv6路由器能够在其直接连接的链路上发现多播侦听器(即,希望接收多播数据包的节点)的存在,并特别发现那些相邻节点感兴趣的多播地址。这个信息就是

provided to whichever multicast routing protocol is being used by the router, in order to ensure that multicast packets are delivered to all links where there are interested receivers.

提供给路由器正在使用的任何一个多播路由协议,以确保多播数据包被传送到有感兴趣的接收器的所有链路。

MLD is an asymmetric protocol, specifying different behaviors for multicast listeners and for routers. For those multicast addresses to which a router itself is listening, the router performs both parts of the protocol, including responding to its own messages.

MLD是一种非对称协议,为多播侦听器和路由器指定不同的行为。对于路由器本身正在侦听的那些多播地址,路由器执行协议的两个部分,包括响应自己的消息。

If a router has more than one interface to the same link, it need perform the router part of MLD over only one of those interfaces. Listeners, on the other hand, must perform the listener part of MLD on all interfaces from which an application or upper-layer protocol has requested reception of multicast packets.

如果一个路由器与同一链路有多个接口,它只需要在其中一个接口上执行MLD的路由器部分。另一方面,侦听器必须在应用程序或上层协议请求接收多播数据包的所有接口上执行MLD的侦听器部分。

3. Message Format
3. 消息格式

MLD is a sub-protocol of ICMPv6, that is, MLD message types are a subset of the set of ICMPv6 messages, and MLD messages are identified in IPv6 packets by a preceding Next Header value of 58. All MLD messages described in this document are sent with a link-local IPv6 Source Address, an IPv6 Hop Limit of 1, and an IPv6 Router Alert option [RTR-ALERT] in a Hop-by-Hop Options header. (The Router Alert option is necessary to cause routers to examine MLD messages sent to multicast addresses in which the routers themselves have no interest.)

MLD是ICMPv6的子协议,也就是说,MLD消息类型是ICMPv6消息集的子集,并且MLD消息在IPv6数据包中由前一个下一个报头值58标识。本文档中描述的所有MLD消息均使用链路本地IPv6源地址、IPv6跃点限制1和逐跃点选项标头中的IPv6路由器警报选项[RTR-Alert]发送。(路由器警报选项是使路由器检查发送到路由器本身不感兴趣的多播地址的MLD消息所必需的。)

MLD messages have the following format:

MLD消息具有以下格式:

    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      |     Code      |          Checksum             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Maximum Response Delay    |          Reserved             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +                                                               +
   |                                                               |
   +                       Multicast Address                       +
   |                                                               |
   +                                                               +
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    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      |     Code      |          Checksum             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Maximum Response Delay    |          Reserved             |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                                                               |
   +                                                               +
   |                                                               |
   +                       Multicast Address                       +
   |                                                               |
   +                                                               +
   |                                                               |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
3.1. Type
3.1. 类型

There are three types of MLD messages:

有三种类型的MLD消息:

Multicast Listener Query (Type = decimal 130)

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

There are two subtypes of Multicast Listener Query messages:

多播侦听器查询消息有两个子类型:

- General Query, used to learn which multicast addresses have listeners on an attached link. - Multicast-Address-Specific Query, used to learn if a particular multicast address has any listeners on an attached link.

- 常规查询,用于了解在附加链接上有侦听器的多播地址。-多播地址特定查询,用于了解特定多播地址在连接的链接上是否有任何侦听器。

These two subtypes are differentiated by the contents of the Multicast Address field, as described in section 3.6.

如第3.6节所述,通过多播地址字段的内容区分这两种子类型。

Multicast Listener Report (Type = decimal 131)

多播侦听器报告(类型=十进制131)

Multicast Listener Done (Type = decimal 132)

多播侦听器已完成(类型=十进制132)

In the rest of this document, the above messages types are referred to simply as "Query", "Report", and "Done".

在本文档的其余部分中,上述消息类型简称为“查询”、“报告”和“完成”。

3.2. Code
3.2. 密码

Initialized to zero by the sender; ignored by receivers.

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

3.3. Checksum
3.3. 校验和

The standard ICMPv6 checksum, covering the entire MLD message plus a "pseudo-header" of IPv6 header fields [ICMPv6,IPv6].

标准ICMPv6校验和,覆盖整个MLD消息以及IPv6标头字段的“伪标头”[ICMPv6,IPv6]。

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

The Maximum Response Delay field is meaningful only in Query messages, and specifies the maximum allowed delay before sending a responding Report, in units of milliseconds. In all other messages, it is set to zero by the sender and ignored by receivers.

“最大响应延迟”字段仅在查询消息中有意义,并以毫秒为单位指定发送响应报告之前允许的最大延迟。在所有其他消息中,发送方将其设置为零,接收方将其忽略。

Varying this value allows the routers to tune the "leave latency" (the time between the moment the last node on a link ceases listening to a particular multicast address and moment the routing protocol is notified that there are no longer any listeners for that address), as discussed in section 7.8. It also allows tuning of the burstiness of MLD traffic on a link, as discussed in section 7.3.

改变此值允许路由器调整“离开延迟”(链路上最后一个节点停止侦听特定多播地址到路由协议被通知该地址不再有任何侦听器之间的时间),如第7.8节所述。它还允许调整链路上MLD流量的突发性,如第7.3节所述。

3.5. Reserved
3.5. 含蓄的

Initialized to zero by the sender; ignored by receivers.

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

3.6. Multicast Address
3.6. 多播地址

In a Query message, the Multicast Address field is set to zero when sending a General Query, and set to a specific IPv6 multicast address when sending a Multicast-Address-Specific Query.

在查询消息中,发送一般查询时,多播地址字段设置为零,发送多播地址特定查询时,多播地址字段设置为特定IPv6多播地址。

In a Report or Done message, the Multicast Address field holds a specific IPv6 multicast address to which the message sender is listening or is ceasing to listen, respectively.

在报告或完成消息中,多播地址字段分别保存消息发送方正在侦听或正在停止侦听的特定IPv6多播地址。

3.7. Other fields
3.7. 其他领域

The length of a received MLD message is computed by taking the IPv6 Payload Length value and subtracting the length of any IPv6 extension headers present between the IPv6 header and the MLD message. If that length is greater than 24 octets, that indicates that there are other fields present beyond the fields described above, perhaps belonging to a future backwards-compatible version of MLD. An implementation of the version of MLD specified in this document MUST NOT send an MLD message longer than 24 octets and MUST ignore anything past the first 24 octets of a received MLD message. In all cases, the MLD checksum MUST be computed over the entire MLD message, not just the first 24 octets.

接收到的MLD消息的长度是通过获取IPv6有效负载长度值并减去IPv6报头和MLD消息之间存在的任何IPv6扩展报头的长度来计算的。如果该长度大于24个八位字节,则表示在上述字段之外还存在其他字段,可能属于MLD的未来向后兼容版本。本文件中规定的MLD版本的实现不得发送长度超过24个八位字节的MLD消息,并且必须忽略超过接收到的MLD消息的前24个八位字节的任何内容。在所有情况下,MLD校验和必须计算整个MLD消息,而不仅仅是前24个八位字节。

4. Protocol Description
4. 协议描述

Note that defaults for timer values are described later in this document. Timer and counter names appear in square brackets.

请注意,本文档后面将介绍计时器值的默认值。计时器和计数器名称显示在方括号中。

Routers use MLD to learn which multicast addresses have listeners on each of their attached links. Each router keeps a list, for each attached link, of which multicast addresses have listeners on that link, and a timer associated with each of those addresses. Note that the router needs to learn only that listeners for a given multicast address are present on a link; it does NOT need to learn the identity (e.g., unicast address) of those listeners or even how many listeners are present.

路由器使用MLD来了解哪些多播地址在每个连接的链路上都有侦听器。每个路由器为每个连接的链路保留一个列表,其中多播地址在该链路上有侦听器,以及一个与这些地址中的每个地址相关联的计时器。注意,路由器只需要知道给定多播地址的侦听器存在于链路上;它不需要了解这些侦听器的身份(例如,单播地址),甚至不需要知道存在多少侦听器。

For each attached link, a router selects one of its link-local unicast addresses on that link to be used as the IPv6 Source Address in all MLD packets it transmits on that link.

对于每个连接的链路,路由器在该链路上选择一个链路本地单播地址,作为其在该链路上传输的所有MLD数据包中的IPv6源地址。

For each interface over which the router is operating the MLD protocol, the router must configure that interface to listen to all link-layer multicast address 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 [IPv6-ETHER]; in the case of an Ethernet interface that does not support the filtering of such a range of multicast address, it must be configured to accept ALL Ethernet multicast addresses, in order to meet the requirements of MLD.

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

With respect to each of its attached links, a router may assume one of two roles: Querier or Non-Querier. There is normally only one Querier per link. All routers start up as a Querier on each of their attached links. If a router hears a Query message whose IPv6 Source Address is numerically less than its own selected address for that link, it MUST become a Non-Querier on that link. If [Other Querier Present Interval] passes without receiving, from a particular attached link, any Queries from a router with an address less than its own, a router resumes the role of Querier on that link.

对于每个连接的链路,路由器可以承担两个角色之一:查询者或非查询者。通常每个链接只有一个查询器。所有路由器在其每个连接的链接上都作为查询器启动。如果路由器听到一条查询消息,其IPv6源地址的数字小于该链路的自己所选地址,则它必须成为该链路上的非查询者。如果[Other Querier Present Interval]没有从特定连接的链路接收到来自地址小于其自身地址的路由器的任何查询,则路由器恢复该链路上Querier的角色。

A Querier for a link periodically [Query Interval] sends a General Query on that link, to solicit reports of all multicast addresses of interest on that link. On startup, a router SHOULD send [Startup Query Count] General Queries spaced closely together [Startup Query Interval] on all attached links in order to quickly and reliably discover the presence of multicast listeners on those links.

链路的查询器定期[查询间隔]发送该链路上的常规查询,以请求该链路上所有感兴趣的多播地址的报告。在启动时,路由器应在所有连接的链路上发送[startup Query Count]常规查询,并将[startup Query Interval]紧密隔开,以便快速可靠地发现这些链路上是否存在多播侦听器。

General Queries are sent to the link-scope all-nodes multicast address (FF02::1), with a Multicast Address field of 0, and a Maximum Response Delay of [Query Response Interval].

一般查询发送到链路作用域所有节点多播地址(FF02::1),多播地址字段为0,最大响应延迟为[Query Response Interval]。

When a node receives a General Query, it sets a delay timer for each multicast address to which it is listening on the interface from which it received the Query, EXCLUDING the link-scope all-nodes address and any multicast addresses of scope 0 (reserved) or 1 (node-local). Each timer is set to a different random value, using the highest clock granularity available on the node, selected from the range [0, Maximum Response Delay] with Maximum Response Delay as specified in the Query packet. If a timer for any address is already running, it is reset to the new random value only if the requested Maximum Response Delay is less than the remaining value of the running timer. If the Query packet specifies a Maximum Response Delay of zero, each timer is effectively set to zero, and the action specified below for timer expiration is performed immediately.

当节点接收到一般查询时,它会在接收查询的接口上为其正在侦听的每个多播地址设置一个延迟计时器,不包括链路作用域所有节点地址和作用域0(保留)或1(节点本地)的任何多播地址。使用节点上可用的最高时钟粒度,将每个计时器设置为不同的随机值,从查询数据包中指定的具有最大响应延迟的范围[0,最大响应延迟]中选择。如果任何地址的计时器已在运行,则仅当请求的最大响应延迟小于运行计时器的剩余值时,才会将其重置为新的随机值。如果查询数据包指定的最大响应延迟为零,则每个计时器将有效地设置为零,并立即执行下面为计时器过期指定的操作。

When a node receives a Multicast-Address-Specific Query, if it is listening to the queried Multicast Address on the interface from which the Query was received, it sets a delay timer for that address to a random value selected from the range [0, Maximum Response Delay], as above. If a timer for the address is already running, it is reset to the new random value only if the requested Maximum Response Delay is less than the remaining value of the running timer. If the Query packet specifies a Maximum Response Delay of zero, the timer is effectively set to zero, and the action specified below for timer expiration is performed immediately.

当节点接收到特定于多播地址的查询时,如果它正在接收查询的接口上侦听查询的多播地址,它会将该地址的延迟计时器设置为从[0,最大响应延迟]范围中选择的随机值,如上所述。如果地址的计时器已在运行,则仅当请求的最大响应延迟小于运行计时器的剩余值时,才会将其重置为新的随机值。如果查询数据包指定最大响应延迟为零,则计时器将有效地设置为零,并立即执行下面为计时器过期指定的操作。

If a node's timer for a particular multicast address on a particular interface expires, the node transmits a Report to that address via that interface; the address being reported is carried in both the IPv6 Destination Address field and the MLD Multicast Address field of the Report packet. The IPv6 Hop Limit of 1 (as well as the presence of a link-local IPv6 Source Address) prevent the packet from traveling beyond the link to which the reporting interface is attached.

如果特定接口上特定多播地址的节点计时器过期,则该节点通过该接口向该地址发送报告;正在报告的地址同时包含在报告数据包的IPv6目标地址字段和MLD多播地址字段中。IPv6跃点限制为1(以及存在链路本地IPv6源地址)可防止数据包超出报告接口所连接的链路。

If a node receives another node's Report from an interface for a multicast address while it has a timer running for that same address on that interface, it stops its timer and does not send a Report for that address, thus suppressing duplicate reports on the link.

如果一个节点从一个接口接收到另一个节点关于多播地址的报告,而该接口上为该地址运行了一个计时器,则该节点停止其计时器,并且不发送该地址的报告,从而抑制链路上的重复报告。

When a router receives a Report from a link, if the reported address is not already present in the router's list of multicast address having listeners on that link, the reported address is added to the list, its timer is set to [Multicast Listener Interval], and its appearance is made known to the router's multicast routing component. If a Report is received for a multicast address that is already present in the router's list, the timer for that address is reset to [Multicast Listener Interval]. If an address's timer expires, it is assumed that there are no longer any listeners for that address present on the link, so it is deleted from the list and its disappearance is made known to the multicast routing component.

当路由器从链路接收到报告时,如果报告的地址尚未出现在该链路上具有侦听器的路由器的多播地址列表中,则将报告的地址添加到列表中,其计时器设置为[多播侦听器间隔],并且路由器的多播路由组件知道其外观。如果收到路由器列表中已存在的多播地址的报告,则该地址的计时器将重置为[多播侦听器间隔]。如果地址的计时器过期,则假定链路上不再存在该地址的任何侦听器,因此将从列表中删除该地址,并向多播路由组件告知其消失。

When a node starts listening to a multicast address on an interface, it should immediately transmit an unsolicited Report for that address on that interface, in case it is the first listener on the link. To cover the possibility of the initial Report being lost or damaged, it is recommended that it be repeated once or twice after short delays [Unsolicited Report Interval]. (A simple way to accomplish this is to send the initial Report and then act as if a Multicast-Address-Specific Query was received for that address, and set a timer appropriately).

当节点开始侦听接口上的多播地址时,如果它是链路上的第一个侦听器,则应立即为该接口上的该地址发送未经请求的报告。为了弥补初始报告丢失或损坏的可能性,建议在短时间延迟后重复一次或两次[未经请求的报告间隔]。(实现这一点的一种简单方法是发送初始报告,然后就好像收到了针对该地址的多播地址特定查询一样,并适当地设置计时器)。

When a node ceases to listen to a multicast address on an interface, it SHOULD send a single Done message to the link-scope all-routers multicast address (FF02::2), carrying in its Multicast Address field the address to which it is ceasing to listen. If the node's most recent Report message was suppressed by hearing another Report message, it MAY send nothing, as it is highly likely that there is another listener for that address still present on the same link. If this optimization is implemented, it MUST be able to be turned off but SHOULD default to on.

当节点停止侦听接口上的多播地址时,它应向链路作用域所有路由器多播地址(FF02::2)发送一条Done消息,并在其多播地址字段中携带其停止侦听的地址。如果节点的最新报告消息被另一个报告消息所抑制,那么它可能什么也不发送,因为该地址的另一个侦听器很可能仍然存在于同一链接上。如果实现了此优化,则必须能够将其关闭,但应默认为打开。

When a router in Querier state receives a Done message from a link, if the Multicast Address identified in the message is present in the Querier's list of addresses having listeners on that link, the Querier sends [Last Listener Query Count] Multicast-Address-Specific Queries, one every [Last Listener Query Interval] to that multicast address. These Multicast-Address-Specific Queries have their Maximum Response Delay set to [Last Listener Query Interval]. If no Reports for the address are received from the link after the response delay of the last query has passed, the routers on the link assume that the address no longer has any listeners there; the address is therefore deleted from the list and its disappearance is made known to the multicast routing component. This process is continued to its resolution (i.e. until a Report is received or the last Multicast-Address-Specific Query is sent with no response) despite any transition from Querier to Non-Querier on this link.

当处于查询器状态的路由器从链路接收到已完成的消息时,如果消息中标识的多播地址出现在查询器的地址列表中,且该链路上有侦听器,则查询器会向该多播地址发送[Last Listener Query Count]多播地址特定查询,每[Last Listener Query Interval]一次。这些特定于多播地址的查询的最大响应延迟设置为[Last Listener Query Interval]。如果在经过最后一次查询的响应延迟后没有收到来自链路的地址报告,则链路上的路由器假定该地址不再有任何侦听器;因此,该地址将从列表中删除,并使多播路由组件知道其消失。尽管在该链路上从查询者转换为非查询者,该过程仍将继续到其解决方案(即,直到收到报告或发送最后一个多播地址特定查询而没有响应为止)。

Routers in Non-Querier state MUST ignore Done messages.

处于非查询状态的路由器必须忽略已完成消息。

When a router in Non-Querier state receives a Multicast-Address-Specific Query, if its timer value for the identified multicast address is greater than [Last Listener Query Count] times the Maximum Response Delay specified in the message, it sets the address's timer to that latter value.

当处于非查询状态的路由器接收到特定于多播地址的查询时,如果其标识的多播地址的计时器值大于[上次侦听器查询计数]乘以消息中指定的最大响应延迟,则它会将地址的计时器设置为后一个值。

5. Node State Transition Diagram
5. 节点状态转移图

Node behavior is more formally specified by the state transition diagram below. A node may be in one of three possible states with respect to any single IPv6 multicast address on any single interface:

下面的状态转换图更正式地指定了节点行为。对于任何单个接口上的任何单个IPv6多播地址,节点可能处于三种可能状态之一:

- "Non-Listener" state, when the node is not listening to the address on the interface (i.e., no upper-layer protocol or application has requested reception of packets to that multicast address). This is the initial state for all multicast addresses on all interfaces; it requires no storage in the node.

- “非侦听器”状态,当节点未侦听接口上的地址时(即,没有上层协议或应用程序请求接收到该多播地址的数据包)。这是所有接口上所有多播地址的初始状态;它不需要节点中的存储。

- "Delaying Listener" state, when the node is listening to the address on the interface and has a report delay timer running for that address.

- “Delaying Listener”(延迟侦听器)状态,当节点侦听接口上的地址并且有一个针对该地址运行的报告延迟计时器时。

- "Idle Listener" state, when the node is listening to the address on the interface and does not have a report delay timer running for that address.

- “空闲侦听器”状态,当节点正在侦听接口上的地址并且没有为该地址运行报告延迟计时器时。

There are five significant events that can cause MLD state transitions:

有五个可能导致MLD状态转换的重要事件:

- "start listening" occurs when the node starts listening to the address on the interface. It may occur only in the Non-Listener state.

- “开始侦听”发生在节点开始侦听接口上的地址时。它可能仅在非侦听器状态下发生。

- "stop listening" occurs when the node stops listening to the address on the interface. It may occur only in the Delaying Listener and Idle Listener states.

- “停止侦听”发生在节点停止侦听接口上的地址时。它可能只发生在延迟侦听器和空闲侦听器状态中。

- "query received" occurs when the node receives either a valid General Query message, or a valid Multicast-Address-Specific Query message. To be valid, the Query message MUST come from a link-local IPv6 Source Address, be at least 24 octets long, and have a correct MLD checksum. The Multicast Address field in the MLD message must contain either zero (a General Query) or a valid multicast address (a Multicast- Address-Specific Query). A General Query applies to all multicast addresses on the interface from which the Query is received. A Multicast-Address-Specific Query applies to a single multicast address on the interface from which the Query is received. Queries are ignored for addresses in the Non-Listener state.

- 当节点接收到有效的常规查询消息或有效的多播地址特定查询消息时,会发生“查询已接收”。为了有效,查询消息必须来自链路本地IPv6源地址,长度至少为24个八位字节,并且具有正确的MLD校验和。MLD消息中的多播地址字段必须包含零(一般查询)或有效的多播地址(多播地址特定查询)。一般查询适用于接收查询的接口上的所有多播地址。多播地址特定查询应用于接收查询的接口上的单个多播地址。对于处于非侦听器状态的地址,将忽略查询。

- "report received" occurs when the node receives a valid MLD Report message. To be valid, the Report message MUST come from a link-local IPv6 Source Address, be at least 24 octets long, and have a correct MLD checksum. A Report applies only to the address identified in the Multicast Address field of the Report, on the interface from which the Report is received. It is ignored in the Non-Listener or Idle Listener state.

- 当节点接收到有效的MLD报告消息时,会出现“已接收报告”。为了有效,报告消息必须来自链路本地IPv6源地址,长度至少为24个八位字节,并且具有正确的MLD校验和。报告仅适用于接收报告的接口上报告的多播地址字段中标识的地址。它在非侦听器或空闲侦听器状态下被忽略。

- "timer expired" occurs when the report delay timer for the address on the interface expires. It may occur only in the Delaying Listener state.

- 当接口上地址的报告延迟计时器过期时,会发生“计时器过期”。它可能仅在延迟侦听器状态下发生。

All other events, such as receiving invalid MLD messages or MLD message types other than Query or Report, are ignored in all states.

在所有状态下,将忽略所有其他事件,例如接收无效的MLD消息或除查询或报告之外的MLD消息类型。

There are seven possible actions that may be taken in response to the above events:

针对上述事件,可采取七种可能的行动:

- "send report" for the address on the interface. The Report message is sent to the address being reported.

- 界面上地址的“发送报告”。报告消息将发送到正在报告的地址。

- "send done" for the address on the interface. If the flag saying we were the last node to report is cleared, this action MAY be skipped. The Done message is sent to the link-scope all-routers address (FF02::2).

- 界面上地址的“发送完成”。如果清除了表示我们是最后一个要报告的节点的标志,则可能会跳过此操作。完成消息被发送到链路作用域所有路由器地址(FF02::2)。

- "set flag" that we were the last node to send a report for this address.

- “设置标志”,表示我们是最后一个为此地址发送报告的节点。

- "clear flag" since we were not the last node to send a report for this address.

- “清除标志”,因为我们不是最后一个发送此地址报告的节点。

- "start timer" for the address on the interface, using a delay value chosen uniformly from the interval [0, Maximum Response Delay], where Maximum Response Delay is specified in the Query. If this is an unsolicited Report, the timer is set to a delay value chosen uniformly from the interval [0, [Unsolicited Report Interval] ].

- “启动计时器”用于接口上的地址,使用从间隔[0,最大响应延迟]中统一选择的延迟值,其中最大响应延迟在查询中指定。如果这是未经请求的报告,则计时器将设置为从间隔[0,[未经请求的报告间隔]]中统一选择的延迟值。

- "reset timer" for the address on the interface to a new value, using a delay value chosen uniformly from the interval [0, Maximum Response Delay], as described in "start timer".

- 使用从间隔[0,最大响应延迟]中统一选择的延迟值,将接口上的地址“重置计时器”设置为新值,如“启动计时器”中所述。

- "stop timer" for the address on the interface.

- 接口上地址的“停止计时器”。

In all of the following state transition diagrams, each state transition arc is labeled with the event that causes the transition, and, in parentheses, any actions taken during the transition. Note that the transition is always triggered by the event; even if the action is conditional, the transition still occurs.

在以下所有状态转换图中,每个状态转换弧都标记有导致转换的事件,括号中还有转换期间采取的任何操作。注意,转换总是由事件触发;即使动作是有条件的,转换仍然会发生。

                             ________________
                            |                |
                            |                |
                            |                |
                            |                |
                  --------->|  Non-Listener  |<---------
                 |          |                |          |
                 |          |                |          |
                 |          |                |          |
                 |          |________________|          |
                 |                   |                  |
                 | stop listening    | start listening  | stop listening
                 | (stop timer,      |(send report,     | (send done if
                 |  send done if     | set flag,        |  flag set)
                 |  flag set)        | start timer)     |
         ________|________           |          ________|________
        |                 |<---------          |                 |
        |                 |                    |                 |
        |                 |<-------------------|                 |
        |                 |   query received   |                 |
        |     Delaying    |    (start timer)   |      Idle       |
   ---->|     Listener    |------------------->|     Listener    |
  |     |                 |   report received  |                 |
  |     |                 |    (stop timer,    |                 |
  |     |                 |     clear flag)    |                 |
  |     |_________________|------------------->|_________________|
  | query received    |        timer expired
  | (reset timer if   |        (send report,
  |  Max Resp Delay   |         set flag)
  |  < current timer) |
   -------------------
        
                             ________________
                            |                |
                            |                |
                            |                |
                            |                |
                  --------->|  Non-Listener  |<---------
                 |          |                |          |
                 |          |                |          |
                 |          |                |          |
                 |          |________________|          |
                 |                   |                  |
                 | stop listening    | start listening  | stop listening
                 | (stop timer,      |(send report,     | (send done if
                 |  send done if     | set flag,        |  flag set)
                 |  flag set)        | start timer)     |
         ________|________           |          ________|________
        |                 |<---------          |                 |
        |                 |                    |                 |
        |                 |<-------------------|                 |
        |                 |   query received   |                 |
        |     Delaying    |    (start timer)   |      Idle       |
   ---->|     Listener    |------------------->|     Listener    |
  |     |                 |   report received  |                 |
  |     |                 |    (stop timer,    |                 |
  |     |                 |     clear flag)    |                 |
  |     |_________________|------------------->|_________________|
  | query received    |        timer expired
  | (reset timer if   |        (send report,
  |  Max Resp Delay   |         set flag)
  |  < current timer) |
   -------------------
        

The link-scope all-nodes address (FF02::1) is handled as a special case. The node starts in Idle Listener state for that address on every interface, never transitions to another state, and never sends a Report or Done for that address.

链接作用域所有节点地址(FF02::1)作为特例处理。对于每个接口上的该地址,节点都以空闲侦听器状态启动,从不转换到另一个状态,也从不为该地址发送报告或完成。

MLD messages are never sent for multicast addresses whose scope is 0 (reserved) or 1 (node-local).

对于作用域为0(保留)或1(节点本地)的多播地址,永远不会发送MLD消息。

MLD messages ARE sent for multicast addresses whose scope is 2 (link-local), including Solicited-Node multicast addresses [ADDR-ARCH], except for the link-scope, all-nodes address (FF02::1).

MLD消息针对作用域为2(链路本地)的多播地址发送,包括请求的节点多播地址[ADDR-ARCH],链路作用域除外,所有节点地址(FF02::1)。

6. Router State Transition Diagram
6. 路由器状态转移图

Router behavior is more formally specified by the state transition diagrams below.

下面的状态转换图更正式地指定了路由器行为。

A router may be in one of two possible states with respect to any single attached link:

对于任何单个连接的链路,路由器可能处于两种可能状态之一:

- "Querier", when this router is designated to transmit MLD Queries on this link.

- “查询器”,当此路由器被指定在此链路上传输MLD查询时。

- "Non-Querier", when there is another router designated to transmit MLD Queries on this link.

- “非查询器”,当有另一个路由器指定在此链路上传输MLD查询时。

The following three events can cause the router to change states:

以下三个事件可能导致路由器更改状态:

- "query timer expired" occurs when the timer set for query transmission expires. This event is significant only when in the Querier state.

- “查询计时器已过期”发生在为查询传输设置的计时器过期时。此事件仅在处于查询状态时有效。

- "query received from a router with a lower IP address" occurs when a valid MLD Query is received from a router on the same link with a lower IPv6 Source Address. To be valid, the Query message MUST come from a link-local IPv6 Source Address, be at least 24 octets long, and have a correct MLD checksum.

- “从具有较低IP地址的路由器接收的查询”发生在从具有较低IPv6源地址的同一链路上的路由器接收有效MLD查询时。为了有效,查询消息必须来自链路本地IPv6源地址,长度至少为24个八位字节,并且具有正确的MLD校验和。

- "other querier present timer expired" occurs when the timer set to note the presence of another querier with a lower IP address on the link expires. This event is significant only when in the Non-Querier state.

- “other querier present timer expired”(其他查询器当前计时器已过期)发生在设置为注意到链路上存在另一个IP地址较低的查询器的计时器过期时。仅当处于非查询状态时,此事件才有效。

There are three actions that may be taken in response to the above events:

针对上述事件,可采取三种行动:

- "start general query timer" for the attached link to [Query Interval].

- 连接到[查询间隔]的链接的“启动常规查询计时器”。

- "start other querier present timer" for the attached link to [Other Querier Present Interval].

- “启动其他查询器显示计时器”,用于连接到[其他查询器显示间隔]的链接。

- "send general query" on the attached link. The General Query is sent to the link-scope all-nodes address (FF02::1), and has a Maximum Response Delay of [Query Response Interval].

- “发送一般查询”的附加链接。一般查询被发送到链路作用域所有节点地址(FF02::1),最大响应延迟为[Query Response Interval]。

                                     --------------------------------
                             _______|________  gen. query timer      |
 ---------                  |                |        expired        |
| Initial |---------------->|                | (send general query,  |
 ---------  (send gen. q.,  |                |  start gen. q. timer) |
     start initial gen. q.  |                |<----------------------
             timer)         |    Querier     |
                            |                |
                       -----|                |<---
                      |     |                |    |
                      |     |________________|    |
query received from a |                           | other querier
router with a lower   |                           | present timer
IP address            |                           | expired
(start other querier  |      ________________     | (send gen. query,
 present timer)       |     |                |    | start gen. q. timer)
                      |     |                |    |
                      |     |                |    |
                       ---->|      Non       |----
                            |    Querier     |
                            |                |
                            |                |
                       ---->|                |----
                      |     |________________|    |
                      | query received from a     |
                      | router with a lower IP    |
                      | address                   |
                      | (start other querier      |
                      |  present timer)           |
                       ---------------------------
        
                                     --------------------------------
                             _______|________  gen. query timer      |
 ---------                  |                |        expired        |
| Initial |---------------->|                | (send general query,  |
 ---------  (send gen. q.,  |                |  start gen. q. timer) |
     start initial gen. q.  |                |<----------------------
             timer)         |    Querier     |
                            |                |
                       -----|                |<---
                      |     |                |    |
                      |     |________________|    |
query received from a |                           | other querier
router with a lower   |                           | present timer
IP address            |                           | expired
(start other querier  |      ________________     | (send gen. query,
 present timer)       |     |                |    | start gen. q. timer)
                      |     |                |    |
                      |     |                |    |
                       ---->|      Non       |----
                            |    Querier     |
                            |                |
                            |                |
                       ---->|                |----
                      |     |________________|    |
                      | query received from a     |
                      | router with a lower IP    |
                      | address                   |
                      | (start other querier      |
                      |  present timer)           |
                       ---------------------------
        

A router starts in the Initial state on all attached links, and immediately transitions to Querier state.

路由器在所有连接的链路上以初始状态启动,并立即转换为查询状态。

In addition, to keep track of which multicast addresses have listeners, a router may be in one of three possible states with respect to any single IPv6 multicast address on any single attached link:

此外,为了跟踪哪些多播地址具有侦听器,路由器可能处于三种可能状态之一,即关于任何单个连接链路上的任何单个IPv6多播地址:

- "No Listeners Present" state, when there are no nodes on the link that have sent a Report for this multicast address. This is the initial state for all multicast addresses on the router; it requires no storage in the router.

- “无侦听器存在”状态,当链接上没有节点已为此多播地址发送报告时。这是路由器上所有多播地址的初始状态;它不需要在路由器中存储。

- "Listeners Present" state, when there is a node on the link that has sent a Report for this multicast address.

- “侦听器存在”状态,当链接上存在已为此多播地址发送报告的节点时。

- "Checking Listeners" state, when the router has received a Done message but has not yet heard a Report for the identified address.

- “正在检查侦听器”状态,路由器已收到已完成的消息,但尚未听到已识别地址的报告。

There are five significant events that can cause router state transitions:

有五个重要事件可导致路由器状态转换:

- "report received" occurs when the router receives a Report for the address from the link. To be valid, the Report message MUST come from a link-local IPv6 Source Address, be at least 24 octets long, and have a correct MLD checksum.

- 当路由器从链路接收到地址的报告时,“已接收报告”发生。为了有效,报告消息必须来自链路本地IPv6源地址,长度至少为24个八位字节,并且具有正确的MLD校验和。

- "done received" occurs when the router receives a Done message for the address from the link. To be valid, the Done message MUST come from a link-local IPv6 Source Address, be at least 24 octets long, and have a correct MLD checksum. This event is significant only in the "Listerners Present" state and when the router is a Querier.

- 当路由器从链路接收到地址的done消息时,“done received”发生。要有效,完成消息必须来自链路本地IPv6源地址,长度至少为24个八位字节,并且具有正确的MLD校验和。此事件仅在“Listerners Present”(侦听器存在)状态下以及路由器为查询器时才有意义。

- "multicast-address-specific query received" occurs when a router receives a Multicast-Address-Specific Query for the address from the link. To be valid, the Query message MUST come from a link-local IPv6 Source Address, be at least 24 octets long, and have a correct MLD checksum. This event is significant only in the "Listeners Present" state and when the router is a Non-Querier.

- 当路由器从链路接收到地址的多播地址特定查询时,“收到的多播地址特定查询”发生。为了有效,查询消息必须来自链路本地IPv6源地址,长度至少为24个八位字节,并且具有正确的MLD校验和。此事件仅在“侦听器存在”状态下以及路由器为非查询器时有效。

- "timer expired" occurs when the timer set for a multicast address expires. This event is significant only in the "Listeners Present" or "Checking Listeners" state.

- 当为多播地址设置的计时器过期时,会发生“计时器过期”。此事件仅在“侦听器存在”或“正在检查侦听器”状态下有效。

- "retransmit timer expired" occurs when the timer set to retransmit a Multicast-Address-Specific Query expires. This event is significant only in the "Checking Listeners" state.

- “retransmit timer expired”(重传计时器已过期)发生在设置为重传多播地址特定查询的计时器过期时。此事件仅在“检查侦听器”状态下有效。

There are seven possible actions that may be taken in response to the above events:

针对上述事件,可采取七种可能的行动:

- "start timer" for the address on the link - also resets the timer to its initial value [Multicast Listener Interval] if the timer is currently running.

- 链接地址的“启动计时器”-如果计时器当前正在运行,也会将计时器重置为其初始值[多播侦听器间隔]。

- "start timer*" for the address on the link - this alternate action sets the timer to the minimum of its current value and either [Last Listener Query Interval] * [Last Listener Query Count] if this router is a Querier, or the Maximum Response Delay in the Query message * [Last Listener Query Count] if this router is a non-Querier.

- “启动计时器*”用于链接上的地址-此备用操作将计时器设置为其当前值的最小值,如果此路由器是查询器,则设置为[Last Listener Query Interval]*[Last Listener Query Count],如果此路由器是非查询器,则设置为查询消息中的最大响应延迟*[Last Listener Query Count]。

- "start retransmit timer" for the address on the link [Last Listener Query Interval].

- 链接[上次侦听器查询间隔]上地址的“启动重新传输计时器”。

- "clear retransmit timer" for the address on the link.

- 链接地址的“清除重传计时器”。

- "send multicast-address-specific query" for the address on the link. The Multicast-Address-Specific Query is sent to the address being queried, and has a Maximum Response Delay of [Last Listener Query Interval].

- 链接上地址的“发送多播地址特定查询”。特定于多播地址的查询发送到被查询的地址,最大响应延迟为[Last Listener Query Interval]。

- "notify routing +" internally notify the multicast routing protocol that there are listeners to this address on this link.

- “notify routing+”在内部通知多播路由协议此链接上有此地址的侦听器。

- "notify routing -" internally notify the multicast routing protocol that there are no longer any listeners to this address on this link.

- “notify routing”-在内部通知多播路由协议此链接上不再有此地址的侦听器。

The following state diagrams apply per group per link. There are two diagrams; one for routers in Querier state and one for routers in Non-Querier state. The transition between Querier and Non-Querier state on a link is handled specially. All groups on that link in "No Listeners Present" or "Listeners Present" states switch state transition diagrams when the Querier/Non-Querier state transition occurs. However, any groups in "Checking Listeners" state continue with the same state transition diagram until the "Checking Listeners" state is exited. E.g. a router that starts as a Querier, receives a Done message for a group and then receives a Query from a router with a lower address (causing a transition to the Non-Querier state) continues to send multicast-address-specific queries for the group in question until it either receives a Report or its timer expires, at which time it starts performing the actions of a Non-Querier for this group.

以下状态图适用于每个链接的每个组。有两个图表;一个用于处于查询状态的路由器,另一个用于处于非查询状态的路由器。链接上查询器和非查询器状态之间的转换是专门处理的。当查询器/非查询器状态转换发生时,“无侦听器存在”或“侦听器存在”状态中该链接上的所有组都会切换状态转换图。但是,处于“Checking Listeners”状态的任何组都将继续使用相同的状态转换图,直到“Checking Listeners”状态退出。例如,一个路由器以查询者的身份启动,接收一个组的“完成”消息,然后从一个地址较低的路由器接收一个查询(导致转换到非查询者状态),继续发送有关组的多播地址特定查询,直到它接收到报告或其计时器过期,此时,它开始为此组执行非查询者的操作。

The state transition diagram for a router in Querier state follows:

处于查询状态的路由器的状态转换图如下所示:

                          ________________
                         |                |
                         |                |timer expired
            timer expired|                |(notify routing -,
       (notify routing -)|  No Listeners  |clear rxmt tmr)
                 ------->|    Present     |<---------
                |        |                |          |
                |        |                |          |
                |        |________________|          |  ---------------
                |                    |               | | rexmt timer   |
                |     report received|               | |  expired      |
                |  (notify routing +,|               | | (send m-a-s   |
                |        start timer)|               | |  query,       |
      __________|______              |       ________|_|______ st rxmt |
     |                 |<------------       |                 | tmr)   |
     |                 |                    |                 |<-------
     |                 | report received    |                 |
     |                 | (start timer,      |                 |
     |                 |  clear rxmt tmr)   |                 |
     |    Listeners    |<-------------------|    Checking     |
     |     Present     | done received      |    Listeners    |
     |                 | (start timer*,     |                 |
     |                 |  start rxmt timer, |                 |
     |                 |  send m-a-s query) |                 |
 --->|                 |------------------->|                 |
|    |_________________|                    |_________________|
| report received |
| (start timer)   |
 -----------------
        
                          ________________
                         |                |
                         |                |timer expired
            timer expired|                |(notify routing -,
       (notify routing -)|  No Listeners  |clear rxmt tmr)
                 ------->|    Present     |<---------
                |        |                |          |
                |        |                |          |
                |        |________________|          |  ---------------
                |                    |               | | rexmt timer   |
                |     report received|               | |  expired      |
                |  (notify routing +,|               | | (send m-a-s   |
                |        start timer)|               | |  query,       |
      __________|______              |       ________|_|______ st rxmt |
     |                 |<------------       |                 | tmr)   |
     |                 |                    |                 |<-------
     |                 | report received    |                 |
     |                 | (start timer,      |                 |
     |                 |  clear rxmt tmr)   |                 |
     |    Listeners    |<-------------------|    Checking     |
     |     Present     | done received      |    Listeners    |
     |                 | (start timer*,     |                 |
     |                 |  start rxmt timer, |                 |
     |                 |  send m-a-s query) |                 |
 --->|                 |------------------->|                 |
|    |_________________|                    |_________________|
| report received |
| (start timer)   |
 -----------------
        

The state transition diagram for a router in Non-Querier state is similar, but non-Queriers do not send any messages and are only driven by message reception.

处于非查询器状态的路由器的状态转换图类似,但非查询器不发送任何消息,仅由消息接收驱动。

                              ________________
                             |                |
                             |                |
                timer expired|                |timer expired
           (notify routing -)|  No Listeners  |(notify routing -)
                   --------->|    Present     |<---------
                  |          |                |          |
                  |          |                |          |
                  |          |                |          |
                  |          |________________|          |
                  |                   |                  |
                  |                   |report received   |
                  |                   |(notify routing +,|
                  |                   | start timer)     |
          ________|________           |          ________|________
         |                 |<---------          |                 |
         |                 |  report received   |                 |
         |                 |  (start timer)     |                 |
         |    Listeners    |<-------------------|     Checking    |
         |     Present     | m-a-s query rec'd  |    Listeners    |
         |                 | (start timer*)     |                 |
    ---->|                 |------------------->|                 |
   |     |_________________|                    |_________________|
   | report received |
   | (start timer)   |
    -----------------
        
                              ________________
                             |                |
                             |                |
                timer expired|                |timer expired
           (notify routing -)|  No Listeners  |(notify routing -)
                   --------->|    Present     |<---------
                  |          |                |          |
                  |          |                |          |
                  |          |                |          |
                  |          |________________|          |
                  |                   |                  |
                  |                   |report received   |
                  |                   |(notify routing +,|
                  |                   | start timer)     |
          ________|________           |          ________|________
         |                 |<---------          |                 |
         |                 |  report received   |                 |
         |                 |  (start timer)     |                 |
         |    Listeners    |<-------------------|     Checking    |
         |     Present     | m-a-s query rec'd  |    Listeners    |
         |                 | (start timer*)     |                 |
    ---->|                 |------------------->|                 |
   |     |_________________|                    |_________________|
   | report received |
   | (start timer)   |
    -----------------
        
7. List of timers and default values
7. 计时器和默认值列表

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

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

7.1. Robustness Variable
7.1. 稳健性变量

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

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

7.2. Query Interval
7.2. 查询间隔

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

查询间隔是查询者发送的常规查询之间的间隔。默认值: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查询的频率越低。

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

The Maximum Response Delay inserted into the periodic General Queries. Default: 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 node 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]。

7.4. Multicast Listener Interval
7.4. 多播侦听器间隔

The Multicast Listener Interval is the amount of time that must pass before a router decides there are no more listeners for an address on a link. This value MUST be ((the Robustness Variable) times (the Query Interval)) plus (one Query Response Interval).

多播侦听器间隔是路由器确定链路上没有地址的侦听器之前必须经过的时间量。该值必须是((稳健性变量)乘以(查询间隔))加上(一个查询响应间隔)。

7.5. Other Querier Present Interval
7.5. 其他查询当前间隔

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

另一个查询器当前间隔是路由器决定不再有另一个路由器作为链路上的查询器之前必须经过的时间长度。该值必须是((稳健性变量)乘以(查询间隔))加上(一个查询响应间隔的一半)。

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

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

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

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

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

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

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

The Last Listener Query Interval is the Maximum Response Delay inserted into Multicast-Address-Specific Queries sent in response to Done messages, and is also the amount of time between Multicast-Address-Specific Query messages. Default: 1000 (1 second)

最后一个侦听器查询间隔是插入到为响应已完成消息而发送的多播地址特定查询中的最大响应延迟,也是多播地址特定查询消息之间的时间量。默认值:1000(1秒)

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

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

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

The Last Listener Query Count is the number of Multicast-Address-Specific Queries sent before the router assumes there are no remaining listeners for an address on a link. Default: the Robustness Variable.

Last Listener Query Count是路由器假定链路上某个地址没有剩余侦听器之前发送的特定于多播地址的查询数。默认值:稳健性变量。

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

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

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

8. Message Destinations
8. 消息目的地

This information is provided elsewhere in the document, but is summarized here for convenience.

本文件其他地方提供了这些信息,但为了方便起见,这里对这些信息进行了总结。

Message Type                       IPv6 Destination Address
------------                       ------------------------
General Query                      link-scope all-nodes (FF02::1)
Multicast-Address-Specific Query   the multicast address being queried
Report                             the multicast address being reported
Done                               link-scope all-routers (FF02::2)
        
Message Type                       IPv6 Destination Address
------------                       ------------------------
General Query                      link-scope all-nodes (FF02::1)
Multicast-Address-Specific Query   the multicast address being queried
Report                             the multicast address being reported
Done                               link-scope all-routers (FF02::2)
        
9. Security Considerations
9. 安全考虑

We consider the ramifications of a forged message of each type. Note that the requirement that nodes verify that the IPv6 Source Address of all received MLD messages is a link-local address defends them from acting on forged MLD messages originated off-link, so we discuss only the effects of on-link forgery.

我们考虑每种类型的伪造消息的后果。请注意,要求节点验证所有接收到的MLD消息的IPv6源地址是否为链路本地地址的要求可防止节点对源自非链路的伪造MLD消息采取行动,因此我们仅讨论链路伪造的影响。

Query message:

查询消息:

A forged Query message from a machine with a lower IP 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 Done messages, traffic might flow to addresses with no listeners for up to [Multicast Listener Interval].

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

A forged Query message sent to an address with listeners will cause one or more nodes that are listeners to that address to send a Report. This causes a small amount of extra traffic on the link, but causes no protocol problems.

发送到具有侦听器的地址的伪造查询消息将导致作为该地址侦听器的一个或多个节点发送报告。这会在链路上产生少量额外流量,但不会导致协议问题。

Report message:

报告信息:

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

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

Done message:

完成消息:

A forged Done message will cause the Querier to send out Multicast-Address-Specific Queries for the address in question. This causes extra processing on each router and on each of the address's listeners, and extra packets on the link, but cannot cause loss of desired traffic.

伪造的“完成”消息将导致查询者发送有关地址的多播地址特定查询。这会在每个路由器和每个地址的侦听器上产生额外的处理,并在链路上产生额外的数据包,但不会导致所需流量的丢失。

10. Acknowledgments
10. 致谢

MLD was derived from IGMPv2 [IGMPv2], which was designed by Rosen Sharma and Steve Deering and documented by Bill Fenner.

MLD源自IGMPv2[IGMPv2],由Rosen Sharma和Steve Deering设计,并由Bill Fenner记录。

11. References
11. 工具书类

[ADDR-ARCH] Hinden, R. and S. Deering, "IP Version 6 Addressing Architecture", RFC 2373, July 1998.

[ADDR-ARCH]Hinden,R.和S.Deering,“IP版本6寻址体系结构”,RFC 23731998年7月。

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

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

[IGMPv2] Fenner, W., "Internet Group Management Protocol, Version 2", RFC 2236, November 1997.

[IGMPv2]Fenner,W.,“互联网组管理协议,第2版”,RFC 2236,1997年11月。

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

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

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

[IPv6以太]Crawford,M.,“通过以太网传输IPv6数据包”,RFC 2464,1998年12月。

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

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

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

[RTR-ALERT]Partridge,C.和A.Jackson,“IPv6路由器警报选项”,RFC 27111999年10月。

[STD-PROC] Bradner, S., "The Internet Standards Process -- Revision 3", BCP 9, RFC 2026, October 1996.

[STD-PROC]Bradner,S.,“互联网标准过程——第3版”,BCP 9,RFC 2026,1996年10月。

12. Authors' Addresses
12. 作者地址

Stephen E. Deering Cisco Systems, Inc. 170 West Tasman Drive San Jose, CA 95134-1706 USA

Stephen E.Deering Cisco Systems,Inc.美国加利福尼亚州圣何塞西塔斯曼大道170号,邮编95134-1706

   Phone: +1 408 527 8213
   EMail: deering@cisco.com
        
   Phone: +1 408 527 8213
   EMail: deering@cisco.com
        

William C. Fenner AT&T Research 75 Willow Road Menlo Park, CA 94025 USA

William C.Fenner AT&T Research美国加利福尼亚州门罗公园柳树路75号,邮编94025

   Phone: +1 650 867 6073
   EMail: fenner@research.att.com
        
   Phone: +1 650 867 6073
   EMail: fenner@research.att.com
        

Brian Haberman IBM Corporation 800 Park Office Drive Research Triangle Park, NC 27709 USA

Brian Haberman IBM Corporation 800美国北卡罗来纳州三角公园办公室大道研究区27709

   Phone: +1 919 254 2673
   EMail: haberman@raleigh.ibm.com
        
   Phone: +1 919 254 2673
   EMail: haberman@raleigh.ibm.com
        
13. Full Copyright Statement
13. 完整版权声明

Copyright (C) The Internet Society (1999). All Rights Reserved.

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

This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.

本文件及其译本可复制并提供给他人,对其进行评论或解释或协助其实施的衍生作品可全部或部分编制、复制、出版和分发,不受任何限制,前提是上述版权声明和本段包含在所有此类副本和衍生作品中。但是,不得以任何方式修改本文件本身,例如删除版权通知或对互联网协会或其他互联网组织的引用,除非出于制定互联网标准的需要,在这种情况下,必须遵循互联网标准过程中定义的版权程序,或根据需要将其翻译成英语以外的其他语言。

The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.

上述授予的有限许可是永久性的,互联网协会或其继承人或受让人不会撤销。

This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS 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.

本文件和其中包含的信息是按“原样”提供的,互联网协会和互联网工程任务组否认所有明示或暗示的保证,包括但不限于任何保证,即使用本文中的信息不会侵犯任何权利,或对适销性或特定用途适用性的任何默示保证。

Acknowledgement

确认

Funding for the RFC Editor function is currently provided by the Internet Society.

RFC编辑功能的资金目前由互联网协会提供。