Network Working Group                                       D.  Estrin
Request for Comments: 2362                                         USC
Obsoletes: 2117                                           D. Farinacci
Category: Experimental                                           CISCO
                                                              A. Helmy
                                                                   USC
                                                             D. Thaler
                                                                 UMICH
                                                            S. Deering
                                                                 XEROX
                                                            M. Handley
                                                                   UCL
                                                           V. Jacobson
                                                                   LBL
                                                                C. Liu
                                                                   USC
                                                             P. Sharma
                                                                   USC
                                                                L. Wei
                                                                 CISCO
                                                             June 1998
        
Network Working Group                                       D.  Estrin
Request for Comments: 2362                                         USC
Obsoletes: 2117                                           D. Farinacci
Category: Experimental                                           CISCO
                                                              A. Helmy
                                                                   USC
                                                             D. Thaler
                                                                 UMICH
                                                            S. Deering
                                                                 XEROX
                                                            M. Handley
                                                                   UCL
                                                           V. Jacobson
                                                                   LBL
                                                                C. Liu
                                                                   USC
                                                             P. Sharma
                                                                   USC
                                                                L. Wei
                                                                 CISCO
                                                             June 1998
        

Protocol Independent Multicast-Sparse Mode (PIM-SM): Protocol Specification

协议无关多播稀疏模式(PIM-SM):协议规范

Status of this Memo

本备忘录的状况

This memo defines an Experimental Protocol for the Internet community. It does not specify an Internet standard of any kind. Discussion and suggestions for improvement are requested. Distribution of this memo is unlimited.

这份备忘录为互联网社区定义了一个实验性协议。它没有规定任何类型的互联网标准。要求进行讨论并提出改进建议。本备忘录的分发不受限制。

Copyright Notice

版权公告

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

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

1 Introduction

1导言

This document describes a protocol for efficiently routing to multicast groups that may span wide-area (and inter-domain) internets. We refer to the approach as Protocol Independent Multicast--Sparse Mode (PIM-SM) because it is not dependent on any particular unicast routing protocol, and because it is designed to support sparse groups as defined in [1][2]. This document describes the protocol details. For the motivation behind the design and a description of the architecture, see [1][2]. Section 2 summarizes PIM-SM operation. It describes the protocol from a network perspective, in particular, how the participating routers interact to create and maintain the multicast distribution tree. Section 3 describes PIM-SM operations from the perspective of a single router implementing the protocol; this section constitutes the main body of the protocol specification. It is organized according to PIM-SM message type; for each message type we describe its contents, its generation, and its processing.

本文档描述了一种有效路由到可能跨越广域(和域间)互联网的多播组的协议。我们将该方法称为协议独立多播-稀疏模式(PIM-SM),因为它不依赖于任何特定的单播路由协议,并且因为它被设计为支持[1][2]中定义的稀疏组。本文档描述了协议的详细信息。有关设计背后的动机和体系结构的描述,请参见[1][2]。第2节总结了PIM-SM操作。它从网络的角度描述协议,特别是参与路由器如何交互以创建和维护多播分发树。第3节从实现协议的单个路由器的角度描述PIM-SM操作;本节构成协议规范的主体。按PIM-SM报文类型组织;对于每种消息类型,我们描述其内容、生成和处理。

Sections 3.8 and 3.9 summarize the timers and flags referred to throughout this document. Section 4 provides packet format details.

第3.8节和第3.9节总结了本文件中提及的计时器和标志。第4节提供了数据包格式的详细信息。

The most significant functional changes since the January '95 version involve the Rendezvous Point-related mechanisms, several resulting simplifications to the protocol, and removal of the PIM-DM protocol details to a separate document [3] (for clarity).

自1995年1月版本以来,最重要的功能变化包括会合点相关机制、对协议的若干简化,以及将PIM-DM协议细节删除到单独的文件中[3](为清晰起见)。

2 PIM-SM Protocol Overview

2 PIM-SM协议概述

In this section we provide an overview of the architectural components of PIM-SM.

在本节中,我们将概述PIM-SM的体系结构组件。

A router receives explicit Join/Prune messages from those neighboring routers that have downstream group members. The router then forwards data packets addressed to a multicast group, G, only onto those interfaces on which explicit joins have been received. Note that all routers mentioned in this document are assumed to be PIM-SM capable, unless otherwise specified.

路由器从具有下游组成员的相邻路由器接收显式加入/删减消息。然后,路由器仅将寻址到多播组G的数据包转发到接收到显式连接的那些接口上。请注意,除非另有规定,否则本文件中提到的所有路由器均假定具有PIM-SM功能。

A Designated Router (DR) sends periodic Join/Prune messages toward a group-specific Rendezvous Point (RP) for each group for which it has active members. Each router along the path toward the RP builds a wildcard (any-source) state for the group and sends Join/Prune messages on toward the RP. We use the term route entry to refer to the state maintained in a router to represent the distribution tree. A route entry may include such fields as the source address, the group address, the incoming interface from which packets are accepted, the list of outgoing interfaces to which packets are sent,

指定路由器(DR)为其具有活动成员的每个组向特定于组的集合点(RP)发送定期加入/删减消息。通往RP的路径上的每个路由器都为组构建一个通配符(任何源)状态,并向RP发送加入/删减消息。我们使用术语route entry来表示路由器中维护的状态,以表示分发树。路由条目可以包括诸如源地址、组地址、接收分组的传入接口、分组发送到的传出接口列表等字段,

timers, flag bits, etc. The wildcard route entry's incoming interface points toward the RP; the outgoing interfaces point to the neighboring downstream routers that have sent Join/Prune messages toward the RP. This state creates a shared, RP-centered, distribution tree that reaches all group members. When a data source first sends to a group, its DR unicasts Register messages to the RP with the source's data packets encapsulated within. If the data rate is high, the RP can send source-specific Join/Prune messages back towards the source and the source's data packets will follow the resulting forwarding state and travel unencapsulated to the RP. Whether they arrive encapsulated or natively, the RP forwards the source's decapsulated data packets down the RP-centered distribution tree toward group members. If the data rate warrants it, routers with local receivers can join a source-specific, shortest path, distribution tree, and prune this source's packets off of the shared RP-centered tree. For low data rate sources, neither the RP, nor last-hop routers need join a source-specific shortest path tree and data packets can be delivered via the shared, RP-tree.

计时器、标志位等。通配符路由条目的传入接口指向RP;传出接口指向已向RP发送加入/删除消息的相邻下游路由器。此状态将创建一个共享的、以RP为中心的分发树,该分发树将到达所有组成员。当数据源首次发送到组时,其DR Unicast将消息注册到RP,源的数据包封装在RP中。如果数据速率较高,RP可以将源特定的加入/删减消息发送回源,源的数据包将遵循产生的转发状态,并以未封装的方式传输到RP。无论它们是封装到达还是本机到达,RP沿着以RP为中心的分发树向组成员转发源的未封装数据包。如果数据速率保证,具有本地接收器的路由器可以加入源特定的最短路径分发树,并将此源的数据包从共享的以RP为中心的树中剪除。对于低数据速率源,RP和最后一跳路由器都不需要加入特定于源的最短路径树,数据包可以通过共享的RP树传递。

The following subsections describe SM operation in more detail, in particular, the control messages, and the actions they trigger.

以下小节将更详细地描述SM操作,特别是控制消息及其触发的操作。

2.1 Local hosts joining a group
2.1 加入组的本地主机

In order to join a multicast group, G, a host conveys its membership information through the Internet Group Management Protocol (IGMP), as specified in [4][5], (see figure 1). From this point on we refer to such a host as a receiver, R, (or member) of the group G.

如[4][5]所述,为了加入多播组G,主机通过互联网组管理协议(IGMP)传递其成员信息(见图1)。从这一点开始,我们将这样的主机称为G组的接收者R(或成员)。

Note that all figures used in this section are for illustration and are not intended to be complete. For complete and detailed protocol action see Section 3.

请注意,本节中使用的所有图均用于说明,并不打算完整。有关完整和详细的协议行动,请参见第3节。

[Figures are present only in the postscript version] Fig. 1 Example: how a receiver joins, and sets up shared tree

[图仅在postscript版本中显示]图1示例:接收方如何加入并建立共享树

When a DR (e.g., router A in figure 1) gets a membership indication from IGMP for a new group, G, the DR looks up the associated RP. The DR creates a wildcard multicast route entry for the group, referred to here as a (*,G) entry; if there is no more specific match for a particular source, the packet will be forwarded according to this entry.

当DR(如图1中的路由器a)从IGMP获得新组g的成员资格指示时,DR查找相关RP。DR为该组创建通配符多播路由条目,此处称为(*,g)条目;如果特定源没有更具体的匹配,则将根据此条目转发数据包。

The RP address is included in a special field in the route entry and is included in periodic upstream Join/Prune messages. The outgoing interface is set to that included in the IGMP membership indication for the new member. The incoming interface is set to the interface used to send unicast packets to the RP.

RP地址包含在路由条目的特殊字段中,并包含在定期的上游加入/删除消息中。传出接口设置为新成员的IGMP成员资格指示中包含的接口。传入接口设置为用于向RP发送单播数据包的接口。

When there are no longer directly connected members for the group, IGMP notifies the DR. If the DR has neither local members nor downstream receivers, the (*,G) state is deleted.

当组不再有直接连接的成员时,IGMP通知DR。如果DR既没有本地成员也没有下游接收器,则删除(*,G)状态。

2.2 Establishing the RP-rooted shared tree
2.2 建立RP根共享树

Triggered by the (*,G) state, the DR creates a Join/Prune message with the RP address in its join list and the the wildcard bit (WC-bit) and RP-tree bit (RPT-bit) set to 1. The WC-bit indicates that any source may match and be forwarded according to this entry if there is no longer match; the RPT-bit indicates that this join is being sent up the shared, RP-tree. The prune list is left empty. When the RPT-bit is set to 1 it indicates that the join is associated with the shared RP-tree and therefore the Join/Prune message is propagated along the RP-tree. When the WC-bit is set to 1 it indicates that the address is an RP and the downstream receivers expect to receive packets from all sources via this (shared tree) path. The term RPT-bit is used to refer to both the RPT-bit flags associated with route entries, and the RPT-bit included in each encoded address in a Join/Prune message.

由(*,G)状态触发,DR创建一条连接/删除消息,其中RP地址位于其连接列表中,通配符位(WC位)和RP树位(RPT位)设置为1。WC位表示任何源都可以匹配,如果不再匹配,则根据该条目转发;RPT位表示此联接正在向上发送到共享RP树。修剪列表保留为空。当RPT位设置为1时,表示联接与共享RP树相关联,因此联接/修剪消息沿RP树传播。当WC位设置为1时,表示地址为RP,下游接收器期望通过该(共享树)路径接收来自所有源的数据包。术语RPT位用于指与路由条目相关联的RPT位标志,以及加入/删除消息中每个编码地址中包含的RPT位。

Each upstream router creates or updates its multicast route entry for (*,G) when it receives a Join/Prune with the RPT-bit and WC-bit set. The interface on which the Join/Prune message arrived is added to the list of outgoing interfaces (oifs) for (*,G). Based on this entry each upstream router between the receiver and the RP sends a Join/Prune message in which the join list includes the RP. The packet payload contains Multicast-Address=G, Join=RP,WC-bit,RPT-bit, Prune=NULL.

每个上游路由器在接收到RPT位和WC位设置的连接/删除时,为(*,G)创建或更新其多播路由条目。连接/删除消息到达的接口将添加到(*,G)的传出接口(OIF)列表中。基于此条目,接收器和RP之间的每个上游路由器发送加入/删减消息,其中加入列表包括RP。数据包有效载荷包含多播地址=G、加入=RP、WC位、RPT位、删减=NULL。

2.3 Hosts sending to a group
2.3 发送到组的主机

When a host starts sending multicast data packets to a group, initially its DR must deliver each packet to the RP for distribution down the RP-tree (see figure 2). The sender's DR initially encapsulates each data packet in a Register message and unicasts it to the RP for that group. The RP decapsulates each Register message and forwards the enclosed data packet natively to downstream members on the shared RP-tree.

当主机开始向一个组发送多播数据包时,最初它的DR必须将每个数据包发送给RP,以便在RP树下分发(见图2)。发送方的DR最初将每个数据包封装在寄存器消息中,并将其单播到该组的RP。RP解除对每个寄存器消息的封装,并将封装的数据包本机转发给共享RP树上的下游成员。

[Figures are present only in the postscript version] Fig. 2 Example: a host sending to a group

[图仅在postscript版本中显示]图2示例:主机发送到组

If the data rate of the source warrants the use of a source-specific shortest path tree (SPT), the RP may construct a new multicast route entry that is specific to the source, hereafter referred to as (S,G) state, and send periodic Join/Prune messages toward the source. Note that over time, the rules for when to switch can be modified without

如果源的数据速率保证使用特定于源的最短路径树(SPT),则RP可以构造特定于源的新多播路由条目(以下称为(S,G)状态),并向源发送周期性加入/删减消息。请注意,随着时间的推移,可以修改何时切换的规则,而无需修改

global coordination. When and if the RP does switch to the SPT, the routers between the source and the RP build and maintain (S,G) state in response to these messages and send (S,G) messages upstream toward the source.

全球协调。当RP切换到SPT时,源和RP之间的路由器建立并保持(S,G)状态以响应这些消息,并向源上游发送(S,G)消息。

The source's DR must stop encapsulating data packets in Registers when (and so long as) it receives Register-Stop messages from the RP. The RP triggers Register-Stop messages in response to Registers, if the RP has no downstream receivers for the group (or for that particular source), or if the RP has already joined the (S,G) tree and is receiving the data packets natively. Each source's DR maintains, per (S,G), a Register-Suppression-timer. The Register-Suppression-timer is started by the Register-Stop message; upon expiration, the source's DR resumes sending data packets to the RP, encapsulated in Register messages.

当(并且只要)源的DR从RP接收到寄存器停止消息时,就必须停止在寄存器中封装数据包。如果RP没有组(或特定源)的下游接收器,或者RP已经加入(s,G),RP触发寄存器停止消息以响应寄存器树,并以本机方式接收数据包。每个源的DR根据(s,G)维护一个寄存器抑制定时器。寄存器抑制定时器由寄存器停止消息启动;到期后,源的DR恢复向RP发送数据包,数据包封装在寄存器消息中。

2.4 Switching from shared tree (RP-tree) to shortest path tree (SP-tree)}

2.4 从共享树(RP树)切换到最短路径树(SP树)}

A router with directly-connected members first joins the shared RP-tree. The router can switch to a source's shortest path tree (SP-tree) after receiving packets from that source over the shared RP-tree. The recommended policy is to initiate the switch to the SP-tree after receiving a significant number of data packets during a specified time interval from a particular source. To realize this policy the router can monitor data packets from sources for which it has no source-specific multicast route entry and initiate such an entry when the data rate exceeds the configured threshold. As shown in figure 3, router `A' initiates a (S,G) state.

具有直接连接成员的路由器首先加入共享RP树。路由器可以在通过共享RP树从源接收数据包后切换到源的最短路径树(SP树)。建议的策略是在指定的时间间隔内从特定源接收到大量数据包后,启动到SP树的切换。为了实现此策略,路由器可以监视来自其没有特定于源的多播路由条目的源的数据包,并在数据速率超过配置的阈值时启动这样的条目。如图3所示,路由器“A”启动(S,G)状态。

[Figures are present only in the postscript version] Fig. 3 Example: Switching from shared tree to shortest path tree

[图仅在postscript版本中显示]图3示例:从共享树切换到最短路径树

When a (S,G) entry is activated (and periodically so long as the state exists), a Join/Prune message is sent upstream towards the source, S, with S in the join list. The payload contains Multicast-Address=G, Join=S, Prune=NULL. When the (S,G) entry is created, the outgoing interface list is copied from (*,G), i.e., all local shared tree branches are replicated in the new shortest path tree. In this way when a data packet from S arrives and matches on this entry, all receivers will continue to receive the source's packets along this path. (In more complicated scenarios, other entries in the router have to be considered, as described in Section 3). Note that (S,G) state must be maintained in each last-hop router that is responsible for initiating and maintaining an SP-tree. Even when (*,G) and (S,G) overlap, both states are needed to trigger the source-specific Join/Prune messages. (S,G) state is kept alive by data packets arriving from that source. A timer, Entry-timer, is set for the (S,G)

当一个(S,G)条目被激活时(并且只要状态存在,就会周期性地),一条连接/删减消息被向上游发送到源S,其中S在连接列表中。有效负载包含多播地址=G,连接=S,删除=NULL。创建(S,G)项时,将从(*,G)复制传出接口列表,即在新的最短路径树中复制所有本地共享树分支。通过这种方式,当来自S的数据包到达并匹配此条目时,所有接收器将继续沿此路径接收源的数据包。(在更复杂的情况下,必须考虑路由器中的其他条目,如第3节所述)。请注意,负责启动和维护SP树的每个最后一跳路由器中必须保持(S,G)状态。即使(*,G)和(S,G)重叠,也需要这两种状态来触发源特定的连接/删除消息。(S,G)状态由来自该源的数据包保持活动状态。为(S,G)设置一个定时器,即进入定时器

entry and this timer is restarted whenever data packets for (S,G) are forwarded out at least one oif, or Registers are sent. When the Entry-timer expires, the state is deleted. The last-hop router is the router that delivers the packets to their ultimate end-system destination. This is the router that monitors if there is group membership and joins or prunes the appropriate distribution trees in response. In general the last-hop router is the Designated Router (DR) for the LAN. However, under various conditions described later, a parallel router connected to the same LAN may take over as the last-hop router in place of the DR.

每当(S,G)的数据包被转发出至少一个oif或发送寄存器时,该计时器就会重新启动。当进入计时器过期时,状态被删除。最后一跳路由器是将数据包传送到其最终终端系统目的地的路由器。这是一个路由器,它监视是否存在组成员身份,并作为响应加入或修剪适当的分发树。通常,最后一跳路由器是LAN的指定路由器(DR)。然而,在后面描述的各种情况下,连接到同一LAN的并行路由器可以代替DR接管最后一跳路由器。

Only the RP and routers with local members can initiate switching to the SP-tree; intermediate routers do not. Consequently, last-hop routers create (S,G) state in response to data packets from the source, S; whereas intermediate routers only create (S,G) state in response to Join/Prune messages from downstream that have S in the Join list.

只有RP和具有本地成员的路由器才能启动到SP树的切换;中间路由器不会。因此,最后一跳路由器响应于来自源S的数据分组而创建(S,G)状态;而中间路由器只创建(S,G)状态来响应来自下游的连接/删减消息,这些消息在连接列表中有S。

The (S,G) entry is initialized with the SPT-bit cleared, indicating that the shortest path tree branch from S has not yet been setup completely, and the router can still accept packets from S that arrive on the (*,G) entry's indicated incoming interface (iif). Each PIM multicast entry has an associated incoming interface on which packets are expected to arrive.

用清除的SPT位初始化(S,G)条目,表明来自S的最短路径树分支尚未完全设置,并且路由器仍然可以接受来自S的到达(*,G)条目指示的传入接口(iif)的数据包。每个PIM多播条目都有一个相关的传入接口,数据包将在该接口上到达。

When a router with a (S,G) entry and a cleared SPT-bit starts to receive packets from the new source S on the iif for the (S,G) entry, and that iif differs from the (*,G) entry's iif, the router sets the SPT-bit, and sends a Join/Prune message towards the RP, indicating that the router no longer wants to receive packets from S via the shared RP-tree. The Join/Prune message sent towards the RP includes S in the prune list, with the RPT-bit set indicating that S's packets must not be forwarded down this branch of the shared tree. If the router receiving the Join/Prune message has (S,G) state (with or without the route entry's RPT-bit flag set), it deletes the arriving interface from the (S,G) oif list. If the router has only (*,G) state, it creates an entry with the RPT-bit flag set to 1. For brevity we refer to an (S,G) entry that has the RPT-bit flag set to 1 as an (S,G)RPT-bit entry. This notational distinction is useful to point out the different actions taken for (S,G) entries depending on the setting of the RPT-bit flag. Note that a router can have no more than one active (S,G) entry for any particular S and G, at any particular time; whether the RPT-bit flag is set or not. In other words, a router never has both an (S,G) and an (S,G)RPT-bit entry for the same S and G at the same time. The Join/Prune message payload contains Multicast-Address=G, Join=NULL, Prune=S,RPT-bit.

当具有(S,G)项和清除的SPT位的路由器开始从iif上的新源S接收(S,G)项的数据包,并且iif不同于(*,G)项的iif时,路由器设置SPT位,并向RP发送加入/删减消息,表示路由器不再希望通过共享RP树从S接收数据包。向RP发送的加入/删减消息包括删减列表中的S,RPT位集指示S的数据包不得沿共享树的此分支转发。如果接收Join/Prune消息的路由器具有(S,G)状态(设置或不设置路由条目的RPT位标志),它将从(S,G)oif列表中删除到达的接口。如果路由器只有(*,G)状态,它将创建一个RPT位标志设置为1的条目。为简洁起见,我们将RPT位标志设置为1的(S,G)条目称为(S,G)RPT位条目。根据RPT位标志的设置,这种符号区分有助于指出对(S,G)项采取的不同操作。请注意,在任何特定时间,路由器对于任何特定S和G不能有多个活动(S,G)条目;是否设置RPT位标志。换句话说,路由器永远不会同时为同一个S和G提供(S,G)和(S,G)RPT位条目。Join/Prune消息负载包含多播地址=G、Join=NULL、Prune=S、RPT位。

A new receiver may join an existing RP-tree on which source-specific prune state has been established (e.g., because downstream receivers have switched to SP-trees). In this case the prune state must be eradicated upstream of the new receiver to bring all sources' data packets down to the new receiver. Therefore, when a (*,G) Join arrives at a router that has any (Si,G)RPT-bit entries (i.e., entries that cause the router to send source-specific prunes toward the RP), these entries must be updated upstream of the router so as to bring all sources' packets down to the new member. To accomplish this, each router that receives a (*,G) Join/Prune message updates all existing (S,G)RPT-bit entries. The router may also trigger a (*,G) Join/Prune message upstream to cause the same updating of RPT-bit settings upstream and pull down all active sources' packets. If the arriving (*,G) join has some sources included in its prune list, then the corresponding (S,G)RPT-bit entries are left unchanged (i.e., the RPT-bit remains set and no oif is added).

新的接收器可以加入已建立源特定修剪状态的现有RP树(例如,因为下游接收器已切换到SP树)。在这种情况下,必须在新接收器的上游消除剪枝状态,以将所有源的数据包带到新接收器。因此,当(*,G)连接到达具有任何(Si,G)RPT比特条目(即,导致路由器向RP发送源特定剪枝的条目)的路由器时,这些条目必须在路由器的上游更新,以便将所有源的分组向下带到新成员。为了实现这一点,每个接收(*,G)连接/删除消息的路由器都会更新所有现有(S,G)RPT位条目。路由器还可以触发上游的(*,G)加入/删减消息,以引起上游的RPT比特设置的相同更新,并拉下所有活动源的分组。如果到达(*,G)联接的删减列表中包含一些源,则相应的(S,G)RPT位条目保持不变(即,RPT位保持设置,并且不添加oif)。

2.5 Steady state maintenance of distribution tree (i.e., router state)}
2.5 分布树的稳态维护(即路由器状态)}

In the steady state each router sends periodic Join/Prune messages for each active PIM route entry; the Join/Prune messages are sent to the neighbor indicated in the corresponding entry. These messages are sent periodically to capture state, topology, and membership changes. A Join/Prune message is also sent on an event-triggered basis each time a new route entry is established for some new source (note that some damping function may be applied, e.g., a short delay to allow for merging of new Join information). Join/Prune messages do not elicit any form of explicit acknowledgment; routers recover from lost packets using the periodic refresh mechanism.

在稳定状态下,每个路由器为每个活动PIM路由条目发送周期性加入/删减消息;加入/删除消息将发送到相应条目中指示的邻居。这些消息会定期发送,以捕获状态、拓扑和成员更改。每次为某个新源建立新路由条目时,也会在事件触发的基础上发送加入/删减消息(注意,可能会应用一些阻尼功能,例如,允许合并新加入信息的短延迟)。加入/删除消息不会引发任何形式的明确确认;路由器使用定期刷新机制从丢失的数据包中恢复。

2.6 Obtaining RP information
2.6 获取RP信息

To obtain the RP information, all routers within a PIM domain collect Bootstrap messages. Bootstrap messages are sent hop-by-hop within the domain; the domain's bootstrap router (BSR) is responsible for originating the Bootstrap messages. Bootstrap messages are used to carry out a dynamic BSR election when needed and to distribute RP information in steady state.

为了获得RP信息,PIM域内的所有路由器都会收集引导消息。引导消息在域内逐跳发送;域的引导路由器(BSR)负责发起引导消息。引导消息用于在需要时执行动态BSR选择,并在稳态下分发RP信息。

A domain in this context is a contiguous set of routers that all implement PIM and are configured to operate within a common boundary defined by PIM Multicast Border Routers (PMBRs). PMBRs connect each PIM domain to the rest of the internet.

在此上下文中,域是一组连续的路由器,它们都实现PIM,并配置为在PIM多播边界路由器(PMBR)定义的公共边界内运行。PMBR将每个PIM域连接到internet的其余部分。

Routers use a set of available RPs (called the RP-Set) distributed in Bootstrap messages to get the proper Group to RP mapping. The following paragraphs summarize the mechanism; details of the mechanism may be found in Sections 3.6 and Appendix 6.2. A (small)

路由器使用分布在引导消息中的一组可用RPs(称为RP集)来获得正确的组到RP映射。以下各段概述了该机制;有关该机制的详细信息,请参见第3.6节和附录6.2。A(小)

set of routers, within a domain, are configured as candidate BSRs and, through a simple election mechanism, a single BSR is selected for that domain. A set of routers within a domain are also configured as candidate RPs (C-RPs); typically these will be the same routers that are configured as C-BSRs. Candidate RPs periodically unicast Candidate-RP-Advertisement messages (C-RP-Advs) to the BSR of that domain. C-RP-Advs include the address of the advertising C-RP, as well as an optional group address and a mask length field, indicating the group prefix(es) for which the candidacy is advertised. The BSR then includes a set of these Candidate-RPs (the RP-Set), along with the corresponding group prefixes, in Bootstrap messages it periodically originates. Bootstrap messages are distributed hop-by-hop throughout the domain.

域内的一组路由器被配置为候选BSR,并且通过简单的选择机制,为该域选择单个BSR。域内的一组路由器也被配置为候选RPs(C-RPs);通常,这些路由器与配置为C-BSR的路由器相同。候选RP定期将候选RP广告消息(C-RP-ADV)单播到该域的BSR。C-RP-adv包括广告C-RP的地址,以及可选的组地址和掩码长度字段,指示为其广告候选资格的组前缀。然后,BSR在其定期发起的引导消息中包括一组这些候选RP(RP集)以及相应的组前缀。引导消息在整个域中逐跳分发。

Routers receive and store Bootstrap messages originated by the BSR. When a DR gets a membership indication from IGMP for (or a data packet from) a directly connected host, for a group for which it has no entry, the DR uses a hash function to map the group address to one of the C-RPs whose Group-prefix includes the group (see Section 3.7). The DR then sends a Join/Prune message towards (or unicasts Registers to) that RP.

路由器接收并存储由BSR发起的引导消息。当DR从IGMP获得直接连接主机(或来自该主机的数据包)的成员资格指示时,对于其没有条目的组,DR使用哈希函数将组地址映射到其组前缀包括该组的一个C-RP(见第3.7节)。然后,DR向该RP发送加入/删减消息(或向该RP发送单播注册)。

The Bootstrap message indicates liveness of the RPs included therein. If an RP is included in the message, then it is tagged as `up' at the routers; while RPs not included in the message are removed from the list of RPs over which the hash algorithm acts. Each router continues to use the contents of the most recently received Bootstrap message until it receives a new Bootstrap message.

引导消息指示其中包含的RPs的活动性。如果消息中包含RP,则在路由器上将其标记为“up”;而消息中未包含的RP将从哈希算法作用的RP列表中删除。每个路由器继续使用最近收到的引导消息的内容,直到它收到新的引导消息。

If a PIM domain partitions, each area separated from the old BSR will elect its own BSR, which will distribute an RP-Set containing RPs that are reachable within that partition. When the partition heals, another election will occur automatically and only one of the BSRs will continue to send out Bootstrap messages. As is expected at the time of a partition or healing, some disruption in packet delivery may occur. This time will be on the order of the region's round-trip time and the bootstrap router timeout value.

如果PIM域是分区的,则与旧BSR分离的每个区域将选择自己的BSR,该BSR将分发一个RP集,其中包含可在该分区内访问的RP。当分区恢复时,将自动进行另一次选择,并且只有一个BSR将继续发送引导消息。正如在分区或修复时所预期的那样,数据包传递可能会发生一些中断。此时间将按照区域的往返时间和引导路由器超时值的顺序。

2.7 Interoperation with dense mode protocols such as DVMRP
2.7 与密集模式协议(如DVMRP)的互操作

In order to interoperate with networks that run dense-mode, broadcast and prune, protocols, such as DVMRP, all packets generated within a PIM-SM region must be pulled out to that region's PIM Multicast Border Routers (PMBRs) and injected (i.e., broadcast) into the DVMRP network. A PMBR is a router that sits at the boundary of a PIM-SM domain and interoperates with other types of multicast routers such as those that run DVMRP. Generally a PMBR would speak both protocols and implement interoperability functions not required by regular PIM

为了与运行密集模式、广播和删减协议(如DVMRP)的网络进行互操作,必须将PIM-SM区域内生成的所有数据包拉出到该区域的PIM多播边界路由器(PMBR)并注入(即广播)DVMRP网络。PMBR是一种路由器,位于PIM-SM域的边界,与其他类型的多播路由器(如运行DVMRP的路由器)进行互操作。通常,PMBR会同时使用两种协议并实现常规PIM不需要的互操作性功能

routers. To support interoperability, a special entry type, referred to as (*,*,RP), must be supported by all PIM routers. For this reason we include details about (*,*,RP) entry handling in this general PIM specification.

路由器。为了支持互操作性,所有PIM路由器必须支持一种特殊的条目类型,称为(*,*,RP)。因此,我们在本通用PIM规范中包含有关(*,*,RP)条目处理的详细信息。

A data packet will match on a (*,*,RP) entry if there is no more specific entry (such as (S,G) or (*,G)) and the destination group address in the packet maps to the RP listed in the (*,*,RP) entry. In this sense, a (*,*,RP) entry represents an aggregation of all the groups that hash to that RP. PMBRs initialize (*,*,RP) state for each RP in the domain's RPset. The (*,*,RP) state causes the PMBRs to send (*,*,RP) Join/Prune messages toward each of the active RPs in the domain. As a result distribution trees are built that carry all data packets originated within the PIM domain (and sent to the RPs) down to the PMBRs.

如果没有更具体的条目(例如(S,G)或(*,G)),数据包将匹配(*,*,RP)条目,并且数据包中的目的地组地址映射到(*,*,RP)条目中列出的RP。从这个意义上讲,(,*,RP)项表示散列到该RP的所有组的集合。PMBRs为域的RPset中的每个RP初始化(*,*,RP)状态。(*,*,RP)状态导致PMBR向域中的每个活动RP发送(*,*,RP)加入/删除消息。因此,构建了分发树,将PIM域中产生的所有数据包(并发送到RPs)传送到PMBR。

PMBRs are also responsible for delivering externally-generated packets to routers within the PIM domain. To do so, PMBRs initially encapsulate externally-originated packets (i.e., received on DVMRP interfaces) in Register messages and unicast them to the corresponding RP within the PIM domain. The Register message has a bit indicating that it was originated by a border router and the RP caches the originating PMBR's address in the route entry so that duplicate Registers from other PMBRs can be declined with a Register-Stop message.

PMBR还负责将外部生成的数据包传送到PIM域内的路由器。为此,PMBR最初将源自外部的数据包(即在DVMRP接口上接收的数据包)封装在寄存器消息中,并将其单播到PIM域内的相应RP。寄存器消息有一个位指示它是由边界路由器发起的,RP将发起PMBR的地址缓存在路由条目中,以便使用寄存器停止消息拒绝来自其他PMBR的重复寄存器。

All PIM routers must be capable of supporting (*,*,RP) state and interpreting associated Join/Prune messages. We describe the handling of (*,*,RP) entries and messages throughout this document; however, detailed PIM Multicast Border Router (PMBR) functions will be specified in a separate interoperability document (see directory, http://catarina.usc.edu/pim/interop/).

所有PIM路由器必须能够支持(*,*,RP)状态并解释相关的加入/删减消息。我们在本文件中描述了(*、*、RP)条目和消息的处理;但是,详细的PIM多播边界路由器(PMBR)功能将在单独的互操作性文档中指定(参见目录,http://catarina.usc.edu/pim/interop/).

2.8 Multicast data packet processing
2.8 多播数据包处理

Data packets are processed in a manner similar to other multicast schemes. A router first performs a longest match on the source and group address in the data packet. A (S,G) entry is matched first if one exists; a (*,G) entry is matched otherwise. If neither state exists, then a (*,*,RP) entry match is attempted as follows: the router hashes on G to identify the RP for group G, and looks for a (*,*,RP) entry that has this RP address associated with it. If none of the above exists, then the packet is dropped. If a state is matched, the router compares the interface on which the packet arrived to the incoming interface field in the matched route entry. If the iif check fails the packet is dropped, otherwise the packet is forwarded to all interfaces listed in the outgoing interface list.

数据包的处理方式与其他多播方案类似。路由器首先对数据包中的源地址和组地址执行最长匹配。如果存在(S,G)条目,则首先匹配该条目;一个(*,G)条目以其他方式匹配。如果两种状态都不存在,那么将按如下方式尝试(*,*,RP)条目匹配:路由器对G进行哈希运算,以标识G组的RP,并查找具有此RP地址的(*,*,RP)条目。如果上述任何一项都不存在,则丢弃该数据包。如果状态匹配,路由器将数据包到达的接口与匹配路由条目中的传入接口字段进行比较。如果iif检查失败,数据包将被丢弃,否则数据包将转发到传出接口列表中列出的所有接口。

Some special actions are needed to deliver packets continuously while switching from the shared to shortest-path tree. In particular, when a (S,G) entry is matched, incoming packets are forwarded as follows:

在从共享路径树切换到最短路径树的过程中,需要一些特殊的操作来连续传递数据包。特别地,当(S,G)条目匹配时,传入的分组如下转发:

1 If the SPT-bit is set, then:

1如果设置了SPT位,则:

1 if the incoming interface is the same as a matching (S,G) iif, the packet is forwarded to the oif-list of (S,G).

1如果传入接口与匹配的(S,G)iif相同,则数据包被转发到(S,G)的oif列表。

2 if the incoming interface is different than a matching (S,G) iif , the packet is discarded.

2如果传入接口不同于匹配的(S,G)iif,则丢弃该数据包。

2 If the SPT-bit is cleared, then:

2如果SPT位被清除,则:

1 if the incoming interface is the same as a matching (S,G) iif, the packet is forwarded to the oif-list of (S,G). In addition, the SPT bit is set for that entry if the incoming interface differs from the incoming interface of the (*,G) or (*,*,RP) entry.

1如果传入接口与匹配的(S,G)iif相同,则数据包被转发到(S,G)的oif列表。此外,如果传入接口不同于(*,G)或(*,*,RP)条目的传入接口,则为该条目设置SPT位。

2 if the incoming interface is different than a matching (S,G) iif, the incoming interface is tested against a matching (*,G) or (*,*,RP) entry. If the iif is the same as one of those, the packet is forwarded to the oif-list of the matching entry.

2如果传入接口不同于匹配(S,G)iif,则根据匹配(*,G)或(*,*,RP)条目测试传入接口。如果iif与其中一个相同,则数据包被转发到匹配条目的oif列表。

3 Otherwise the iif does not match any entry for G and the packet is discarded.

3否则iif与G的任何条目不匹配,数据包被丢弃。

Data packets never trigger prunes. However, data packets may trigger actions that in turn trigger prunes. For example, when router B in figure 3 decides to switch to SP-tree at step 3, it creates a (S,G) entry with SPT-bit set to 0. When data packets from S arrive at interface 2 of B, B sets the SPT-bit to 1 since the iif for (*,G) is different than that for (S,G). This triggers the sending of prunes towards the RP.

数据包从不触发修剪。然而,数据包可能会触发操作,而这些操作又会触发剪枝。例如,当图3中的路由器B决定在步骤3切换到SP树时,它会创建一个SPT位设置为0的(S,G)条目。当来自S的数据包到达B的接口2时,B将SPT位设置为1,因为(*,G)的iif与(S,G)的iif不同。这将触发向RP发送修剪。

2.9 Operation over Multi-access Networks
2.9 多址网络上的操作

This section describes a few additional protocol mechanisms needed to operate PIM over multi-access networks: Designated Router election, Assert messages to resolve parallel paths, and the Join/Prune-Suppression-Timer to suppress redundant Joins on multi-access networks.

本节描述了在多址网络上操作PIM所需的一些附加协议机制:指定路由器选择、解析并行路径的断言消息,以及抑制多址网络上冗余连接的连接/修剪抑制计时器。

Designated router election:

指定路由器选举:

When there are multiple routers connected to a multi-access network, one of them must be chosen to operate as the designated router (DR) at any point in time. The DR is responsible for sending triggered Join/Prune and Register messages toward the RP.

当有多个路由器连接到多址网络时,必须选择其中一个在任何时间点作为指定路由器(DR)运行。DR负责向RP发送触发的加入/删除和注册消息。

A simple designated router (DR) election mechanism is used for both SM and traditional IP multicast routing. Neighboring routers send Hello messages to each other. The sender with the largest network layer address assumes the role of DR. Each router connected to the multi-access LAN sends the Hellos periodically in order to adapt to changes in router status.

SM和传统IP多播路由都使用了一种简单的指定路由器(DR)选择机制。相邻的路由器互相发送Hello消息。具有最大网络层地址的发送方承担DR的角色。每个连接到多址LAN的路由器定期发送Hello,以适应路由器状态的变化。

Parallel paths to a source or the RP--Assert process:

指向源或RP--Assert进程的并行路径:

If a router receives a multicast datagram on a multi-access LAN from a source whose corresponding (S,G) outgoing interface list includes the interface to that LAN, the packet must be a duplicate. In this case a single forwarder must be elected. Using Assert messages addressed to `224.0.0.13' (ALL-PIM-ROUTERS group) on the LAN, upstream routers can resolve which one will act as the forwarder. Downstream routers listen to the Asserts so they know which one was elected, and therefore where to send subsequent Joins. Typically this is the same as the downstream router's RPF (Reverse Path Forwarding) neighbor; but there are circumstances where this might not be the case, e.g., when using multiple unicast routing protocols on that LAN. The RPF neighbor for a particular source (or RP) is the next-hop router to which packets are forwarded en route to that source (or RP); and therefore is considered a good path via which to accept packets from that source.

如果路由器在多址LAN上从其对应(S,G)出站接口列表包括该LAN接口的源接收多播数据报,则该数据包必须是重复的。在这种情况下,必须选择一个货运代理。使用局域网上发往“224.0.0.13”(ALL-PIM-ROUTERS组)的断言消息,上游路由器可以确定哪个路由器将充当转发器。下游路由器监听断言,以便知道哪一个被选上,从而知道在哪里发送后续加入。通常这与下游路由器的RPF(反向路径转发)邻居相同;但在某些情况下,情况可能并非如此,例如,在该LAN上使用多个单播路由协议时。特定源(或RP)的RPF邻居是数据包在路由到该源(或RP)时转发到的下一跳路由器;因此,它被认为是接收来自该源的数据包的良好路径。

The upstream router elected is the one that has the shortest distance to the source. Therefore, when a packet is received on an outgoing interface a router sends an Assert message on the multi-access LAN indicating what metric it uses to reach the source of the data packet. The router with the smallest numerical metric (with ties broken by highest address) will become the forwarder. All other

选择的上游路由器是到源的距离最短的路由器。因此,当在输出接口上接收到数据包时,路由器在多址LAN上发送一条断言消息,指示它使用什么度量来到达数据包的源。具有最小数字度量(通过最高地址断开连接)的路由器将成为转发器。所有其他

upstream routers will delete the interface from their outgoing interface list. The downstream routers also do the comparison in case the forwarder is different than the RPF neighbor.

上游路由器将从其传出接口列表中删除该接口。如果转发器与RPF邻居不同,下游路由器也会进行比较。

Associated with the metric is a metric preference value. This is provided to deal with the case where the upstream routers may run different unicast routing protocols. The numerically smaller metric preference is always preferred. The metric preference is treated as the high-order part of an assert metric comparison. Therefore, a metric value can be compared with another metric value provided both metric preferences are the same. A metric preference can be assigned per unicast routing protocol and needs to be consistent for all routers on the multi-access network.

与度量关联的是度量首选项值。这用于处理上游路由器可能运行不同单播路由协议的情况。数值较小的度量首选项始终是首选项。度量首选项被视为断言度量比较的高阶部分。因此,如果两个度量首选项相同,则可以将度量值与另一个度量值进行比较。可以为每个单播路由协议分配度量首选项,并且需要对多址网络上的所有路由器保持一致。

Asserts are also needed for (*,G) entries since an RP-Tree and an SP-Tree for the same group may both cross the same multi-access network. When an assert is sent for a (*,G) entry, the first bit in the metric preference (RPT-bit) is always set to 1 to indicate that this path corresponds to the RP tree, and that the match must be done on (*,G) if it exists. Furthermore, the RPT-bit is always cleared for metric preferences that refer to SP-tree entries; this causes an SP-tree path to always look better than an RP-tree path. When the SP-tree and RPtree cross the same LAN, this mechanism eliminates the duplicates that would otherwise be carried over the LAN.

(*,G)条目也需要断言,因为同一组的RP树和SP树都可能跨越相同的多址网络。为(*,G)条目发送断言时,度量首选项中的第一位(RPT位)始终设置为1,以指示此路径对应于RP树,并且匹配必须在(*,G)上完成(如果存在)。此外,RPT位始终为引用SP树条目的度量首选项清除;这会使SP树路径的外观始终优于RP树路径。当SP树和RPtree穿过同一个LAN时,此机制消除了LAN上可能携带的重复项。

In case the packet, or the Assert message, matches on oif for (*,*,RP) entry, a (*,G) entry is created, and asserts take place as if the matching state were (*,G).

如果数据包或断言消息在oif上匹配(*,*,RP)条目,则创建(*,G)条目,并进行断言,就像匹配状态为(*,G)一样。

The DR may lose the (*,G) Assert process to another router on the LAN if there are multiple paths to the RP through the LAN. From then on, the DR is no longer the last-hop router for local receivers and removes the LAN from its (*,G) oif list. The winning router becomes the last-hop router and is responsible for sending (*,G) join messages to the RP.

如果有多条路径通过LAN到达RP,DR可能会丢失到LAN上另一个路由器的(*,G)Assert进程。从那时起,DR不再是本地接收器的最后一跳路由器,并将LAN从其(*,G)oif列表中删除。获胜路由器成为最后一跳路由器,负责向RP发送(*,G)加入消息。

Join/Prune suppression:

加入/删除抑制:

   Join/Prune suppression may be used on multi-access LANs to reduce
   duplicate control message overhead; it is not required for correct
   performance of the protocol. If a Join/Prune message arrives and
   matches on the incoming interface for an existing (S,G), (*,G), or
   (*,*,RP) route entry, and the Holdtime included in the Join/Prune
   message is greater than the recipient's own [Join/Prune-Holdtime]
   (with ties resolved in favor of the higher network layer address), a
   timer (the Join/Prune-Suppression-timer) in the recipient's route
   entry may be started to suppress further Join/Prune messages. After
   this timer expires, the recipient triggers a Join/Prune message, and
        
   Join/Prune suppression may be used on multi-access LANs to reduce
   duplicate control message overhead; it is not required for correct
   performance of the protocol. If a Join/Prune message arrives and
   matches on the incoming interface for an existing (S,G), (*,G), or
   (*,*,RP) route entry, and the Holdtime included in the Join/Prune
   message is greater than the recipient's own [Join/Prune-Holdtime]
   (with ties resolved in favor of the higher network layer address), a
   timer (the Join/Prune-Suppression-timer) in the recipient's route
   entry may be started to suppress further Join/Prune messages. After
   this timer expires, the recipient triggers a Join/Prune message, and
        

resumes sending periodic Join/Prunes, for this entry. The Join/Prune-Suppression-timer should be restarted each time a Join/Prune message is received with a higher Holdtime.

继续为此条目发送定期加入/删除。每次接收到具有较高保持时间的加入/删除消息时,应重新启动加入/删除抑制计时器。

2.10 Unicast Routing Changes
2.10 单播路由更改

When unicast routing changes, an RPF check is done on all active (S,G), (*,G) and (*,*,RP) entries, and all affected expected incoming interfaces are updated. In particular, if the new incoming interface appears in the outgoing interface list, it is deleted from the outgoing interface list. The previous incoming interface may be added to the outgoing interface list by a subsequent Join/Prune from downstream. Join/Prune messages received on the current incoming interface are ignored. Join/Prune messages received on new interfaces or existing outgoing interfaces are not ignored. Other outgoing interfaces are left as is until they are explicitly pruned by downstream routers or are timed out due to lack of appropriate Join/Prune messages. If the router has a (S,G) entry with the SPT-bit set, and the updated iif(S,G) does not differ from iif(*,G) or iif(*,*,RP), then the router resets the SPT-bit.

当单播路由更改时,将对所有活动(S,G),(*,G)和(*,*,RP)条目执行RPF检查,并更新所有受影响的预期传入接口。特别是,如果新的传入接口出现在传出接口列表中,它将从传出接口列表中删除。先前的传入接口可以通过后续的从下游连接/删除添加到传出接口列表中。忽略在当前传入接口上接收的加入/删除消息。不会忽略在新接口或现有传出接口上接收的加入/删除消息。其他传出接口保持原样,直到它们被下游路由器显式删减或由于缺少适当的加入/删减消息而超时。如果路由器有一个设置了SPT位的(S,G)条目,并且更新的iif(S,G)与iif(*,G)或iif(*,*,RP)没有区别,则路由器重置SPT位。

The router must send a Join/Prune message with S in the Join list out any new incoming interfaces to inform upstream routers that it expects multicast datagrams over the interface. It may also send a Join/Prune message with S in the Prune list out the old incoming interface, if the link is operational, to inform upstream routers that this part of the distribution tree is going away.

路由器必须发送一条加入/删减消息,其中加入列表中的S表示任何新的传入接口,以通知上游路由器它期望通过接口发送多播数据报。如果链路可操作,它还可以发送一个加入/删减消息,其中删减列表中的S将旧的传入接口删除,以通知上游路由器分发树的这一部分正在消失。

2.11 PIM-SM for Inter-Domain Multicast
2.11 域间多播的PIM-SM

Future documents will address the use of PIM-SM as a backbone inter-domain multicast routing protocol. Design choices center primarily around the distribution and usage of RP information for wide area, inter-domain groups.

未来的文档将讨论PIM-SM作为主干域间多播路由协议的使用。设计选择主要围绕广域、跨域组的RP信息的分布和使用。

2.12 Security
2.12 安全

All PIM control messages may use IPsec [6] to address security concerns. Security mechanisms are likely to be enhanced in the near future.

所有PIM控制消息都可以使用IPsec[6]来解决安全问题。安全机制可能在不久的将来得到加强。

3 Detailed Protocol Description

3详细的协议描述

This section describes the protocol operations from the perspective of an individual router implementation. In particular, for each message type we describe how it is generated and processed.

本节从单个路由器实现的角度描述协议操作。特别是,对于每种消息类型,我们描述了它是如何生成和处理的。

3.1 Hello
3.1 你好

Hello messages are sent so neighboring routers can discover each other.

发送Hello消息,以便相邻路由器可以相互发现。

3.1.1 Sending Hellos
3.1.1 打招呼

Hello messages are sent periodically between PIM neighbors, every [Hello-Period] seconds. This informs routers what interfaces have PIM neighbors. Hello messages are multicast using address 224.0.0.13 (ALL-PIM-ROUTERS group). The packet includes a Holdtime, set to [Hello-Holdtime], for neighbors to keep the information valid. Hellos are sent on all types of communication links.

每隔[Hello Period]秒,PIM邻居之间会定期发送Hello消息。这将通知路由器哪些接口具有PIM邻居。Hello消息使用地址224.0.0.13(ALL-PIM-ROUTERS组)进行多播。数据包包括一个Holdtime,设置为[Hello Holdtime],以便邻居保持信息有效。Hello通过所有类型的通信链路发送。

3.1.2 Receiving Hellos
3.1.2 接受问候

When a router receives a Hello message, it stores the network layer address for that neighbor, sets its Neighbor-timer for the Hello sender to the Holdtime included in the Hello, and determines the Designated Router (DR) for that interface. The highest addressed system is elected DR. Each Hello received causes the DR's address to be updated.

当路由器接收到Hello消息时,它存储该邻居的网络层地址,将Hello发送方的邻居计时器设置为Hello中包含的保持时间,并确定该接口的指定路由器(DR)。最高地址的系统被选为DR。收到的每个Hello都会导致DR的地址被更新。

When a router that is the active DR receives a Hello from a new neighbor (i.e., from an address that is not yet in the DRs neighbor table), the DR unicasts its most recent RP-set information to the new neighbor.

当作为活动DR的路由器从新邻居(即,从尚未在DRs邻居表中的地址)接收到Hello时,DR将其最新RP集信息单播到新邻居。

3.1.3 Timing out neighbor entries
3.1.3 超时邻居条目

A periodic process is run to time out PIM neighbors that have not sent Hellos. If the DR has gone down, a new DR is chosen by scanning all neighbors on the interface and selecting the new DR to be the one with the highest network layer address. If an interface has gone down, the router may optionally time out all PIM neighbors associated with the interface.

运行一个周期性进程来超时尚未发送HELOS的PIM邻居。如果DR已关闭,则通过扫描接口上的所有邻居并选择具有最高网络层地址的新DR来选择新DR。如果一个接口发生故障,路由器可以选择暂停与该接口相关联的所有PIM邻居。

3.2 Join/Prune
3.2 加入/删减

Join/Prune messages are sent to join or prune a branch off of the multicast distribution tree. A single message contains both a join and prune list, either one of which may be null. Each list contains a set of source addresses, indicating the source-specific trees or shared tree that the router wants to join or prune.

发送加入/修剪消息以加入或修剪多播分发树的分支。单个消息同时包含联接列表和修剪列表,其中任何一个都可能为空。每个列表包含一组源地址,指示路由器要加入或修剪的源特定树或共享树。

3.2.1 Sending Join/Prune Messages
3.2.1 发送加入/删除消息

Join/Prune messages are merged such that a message sent to a particular upstream neighbor, N, includes all of the current joined and pruned sources that are reached via N; according to unicast routing Join/Prune messages are multicast to all routers on multi-access networks with the target address set to the next hop router towards S or RP. Join/Prune messages are sent every [Join/Prune-Period] seconds. In the future we will introduce mechanisms to rate-limit this control traffic on a hop by hop basis, in order to avoid excessive overhead on small links. In addition, certain events cause triggered Join/Prune messages to be sent.

合并加入/删减消息,使得发送到特定上游邻居N的消息包括通过N到达的所有当前加入和删减的源;根据单播路由,加入/修剪消息被多播到多址网络上的所有路由器,目标地址设置为下一跳路由器朝向S或RP。加入/修剪消息每[Join/Prune Period]秒发送一次。在未来,我们将引入机制,在逐跳的基础上对该控制流量进行速率限制,以避免小链路上的过度开销。此外,某些事件会导致发送触发的加入/删除消息。

Periodic Join/Prune Messages:

定期加入/删除消息:

A router sends a periodic Join/Prune message to each distinct RPF neighbor associated with each (S,G), (*,G) and (*,*,RP) entry. Join/Prune messages are only sent if the RPF neighbor is a PIM neighbor. A periodic Join/Prune message sent to a particular RPF neighbor is constructed as follows:

路由器向与每个(S,G),(*,G)和(*,*,RP)条目相关联的每个不同RPF邻居发送周期性加入/删减消息。只有当RPF邻居是PIM邻居时,才会发送加入/删除消息。发送到特定RPF邻居的定期加入/删减消息构造如下:

1 Each router determines the RP for a (*,G) entry by using the hash function described. The RP address (with RPT and WC bits set) is included in the join list of a periodic Join/Prune message under the following conditions:

1每个路由器通过使用所述散列函数确定(*,G)项的RP。在以下条件下,RP地址(设置了RPT和WC位)包含在定期加入/删减消息的加入列表中:

1 The Join/Prune message is being sent to the RPF neighbor toward the RP for an active (*,G) or (*,*,RP) entry, and

1对于活动(*,G)或(*,*,RP)条目,正在向RP发送加入/删除消息,并且

2 The outgoing interface list in the (*,G) or (*,*,RP) entry is non-NULL, or the router is the DR on the same interface as the RPF neighbor.

2(*,G)或(*,*,RP)项中的传出接口列表为非空,或者路由器是与RPF邻居位于同一接口上的DR。

2 A particular source address, S, is included in the join list with the RPT and WC bits cleared under the following conditions:

2特定源地址S包含在联接列表中,RPT和WC位在以下条件下被清除:

1 The Join/Prune message is being sent to the RPF neighbor toward S, and

1正在向RPF邻居发送加入/删除消息,并且

2 There exists an active (S,G) entry with the RPT-bit flag cleared, and

2存在RPT位标志清除的活动(S,G)条目,以及

3 The oif list in the (S,G) entry is not null.

(S,G)条目中的oif列表不为空。

3 A particular source address, S, is included in the prune list with the RPT and WC bits cleared under the following conditions:

3特定源地址S包含在修剪列表中,RPT和WC位在以下条件下被清除:

1 The Join/Prune message is being sent to the RPF neighbor toward S, and

1正在向RPF邻居发送加入/删除消息,并且

2 There exists an active (S,G) entry with the RPT-bit flag cleared, and

2存在RPT位标志清除的活动(S,G)条目,以及

3 The oif list in the (S,G) entry is null.

(S,G)条目中的oif列表为空。

4 A particular source address, S, is included in the prune list with the RPT-bit set and the WC bit cleared under the following conditions:

4特定源地址S包括在修剪列表中,RPT位设置,WC位在以下条件下清除:

1 The Join/Prune message is being sent to the RPF neighbor toward the RP and there exists a (S,G) entry with the RPT-bit flag set and null oif list, or

1正在向RP发送加入/删除消息到RPF邻居,并且存在设置了RPT位标志和空oif列表的(S,G)条目,或者

2 The Join/Prune message is being sent to the RPF neighbor toward the RP, there exists a (S,G) entry with the RPT-bit flag cleared and SPT-bit set, and the incoming interface toward S is different than the incoming interface toward the RP, or

2加入/删减消息正在向RP发送到RPF邻居,存在RPT位标志已清除且SPT位已设置的(S,G)条目,且向S的传入接口与向RP的传入接口不同,或

3 The Join/Prune message is being sent to the RPF neighbor toward the RP, and there exists a (*,G) entry and (S,G) entry for a directly connected source.

3加入/删减消息正在向RP发送到RPF邻居,对于直接连接的源,存在(*,G)条目和(S,G)条目。

5 The RP address (with RPT and WC bits set) is included in the prune list if:

5如果出现以下情况,RP地址(设置了RPT和WC位)包括在删除列表中:

1 The Join/Prune message is being sent to the RPF neighbor toward the RP and there exists a (*,G) entry with a null oif list (see Section 3.5.2).

1加入/删除消息被发送到RP的RPF邻居,并且存在一个(*,G)条目,该条目的oif列表为空(见第3.5.2节)。

Triggered Join/Prune Messages:

触发的加入/删除消息:

In addition to periodic messages, the following events will trigger Join/Prune messages if as a result, a) a new entry is created, or b) the oif list changes from null to non-null or non-null to null. The contents of triggered messages are the same as the periodic, described above.

除定期消息外,如果结果是a)创建了新条目,或b)oif列表从null更改为非null或从非null更改为null,则以下事件将触发加入/删除消息。触发消息的内容与上述定期消息的内容相同。

1 Receipt of an indication from IGMP that the state of directly-connected-membership has changed (i.e., new members have just joined `membership indication' or all members have

1收到IGMP的指示,表明直接关联成员的状态已发生变化(即,新成员刚刚加入“成员指示”或所有成员已加入)

left), for a group G, may cause the last-hop router to build or modify corresponding (*,G) state. When IGMP indicates that there are no longer directly connected members, the oif is removed from the oif list if the oif-timer is not running. A Join/Prune message is triggered if and only if a) a new entry is created, or b) the oif list changes from null to non-null or non-null to null, as follows:

左),对于组G,可能导致最后一跳路由器建立或修改相应的(*,G)状态。当IGMP指示不再有直接连接的成员时,如果oif计时器未运行,则从oif列表中删除oif。当且仅当A)创建了新条目,或b)oif列表从null更改为非null或从非null更改为null时,才会触发加入/删除消息,如下所示:

1 If the receiving router does not have a route entry for G the router creates a (*,G) entry, copies the oif list from the corresponding (*,*,RP) entry (if it exists), and includes the interface included in the IGMP membership indication in the oif list; as always, the router never includes the entry's iif in the oif list. The router sends a Join/Prune message towards the RP with the RP address and RPT-bit and WC-bits set in the join list. Or,

1如果接收路由器没有G的路由条目,则路由器创建(*,G)条目,从相应的(*,*,RP)条目(如果存在)复制oif列表,并在oif列表中包括IGMP成员指示中包含的接口;一如既往,路由器从不在oif列表中包含条目的iif。路由器向RP发送加入/删减消息,其中RP地址、RPT位和WC位设置在加入列表中。或

2 If a (S,G)RPT-bit or (*,G) entry already exists, the interface included in the IGMP membership indication is added to the oif list (if it was not included already).

2如果(S,G)RPT位或(*,G)条目已存在,则IGMP成员资格指示中包含的接口将添加到oif列表中(如果尚未包含)。

2 Receipt of a Join/Prune message for (S,G), (*,G) or (*,*,RP) will cause building or modifying corresponding state, and subsequent triggering of upstream Join/Prune messages, in the following cases:

2在以下情况下,接收(S,G),(*,G)或(*,*,RP)的加入/删减消息将导致建立或修改相应的状态,并随后触发上游加入/删减消息:

1 When there is no current route entry, the RP address included in the Join/Prune message is checked against the local RP-Set information. If it matches, an entry will be created and the new entry will in turn trigger an upstream Join/Prune message. If the router has no RP-Set information it may discard the message, or optionally use the RP address included in the message.

1当没有当前路由条目时,将根据本地RP集信息检查加入/删除消息中包含的RP地址。如果匹配,将创建一个条目,新条目将依次触发上游加入/删除消息。如果路由器没有RP集信息,它可以丢弃消息,或者选择使用消息中包含的RP地址。

2 When the outgoing interface list of an (S,G)RPT-bit entry becomes null, the triggered Join/Prune message will contain S in the prune list.

2当(S,G)RPT位条目的传出接口列表变为空时,触发的加入/删除消息将在删除列表中包含。

3 When there exists a (S,G)RPT-bit with null oif list, and an (*,G) Join/Prune message is received, the arriving interface is added to the oif list and a (*,G) Join/Prune message is triggered upstream.

3当存在一个oif列表为空的(S,G)RPT位,并且接收到(*,G)加入/删减消息时,到达的接口被添加到oif列表中,并在上游触发(*,G)加入/删减消息。

4 When there exists a (*,G) with null oif list, and a (*,*,RP) Join/Prune message is received, the receiving interface is added to the oif list and a (*,*,RP) Join/Prune message is triggered upstream.

4当存在一个带空oif列表的(*,G)且接收到(*,*,RP)加入/删减消息时,接收接口被添加到oif列表,并在上游触发(*,*,RP)加入/删减消息。

3 Receipt of a packet that matches on a (S,G) entry whose SPT-bit is cleared triggers the following if the packet arrived on the correct incoming interface and there is a (*,G) or (*,*,RP) entry with a different incoming interface: a) the router sets the SPT-bit on the (S,G) entry, and b) the router sends a Join/Prune message towards the RP with S in the prune list and the RPT-bit set.

3如果数据包到达正确的输入接口,并且存在(*,G)或(*,*,RP)条目具有不同的输入接口,则接收到与SPT位被清除的(S,G)条目匹配的数据包将触发以下操作:a)路由器在(S,G)条目上设置SPT位,和b)路由器向RP发送加入/删减消息,其中删减列表中有S,RPT位设置为S。

4 Receipt of a packet at the DR from a directly connected source S, on the subnet containing the address S, triggers a Join/Prune message towards the RP with S in the prune list and the RPT-bit set under the following conditions: a) there is no matching (S,G) state, and b) there exists a (*,G) or (*,*,RP) for which the DR is not the RP.

4在DR处从包含地址S的子网上的直接连接源S接收到数据包,在以下条件下触发指向RP的加入/删减消息,其中S在删减列表中,RPT位设置为:a)没有匹配的(S,G)状态,b)存在DR不是RP的(*,G)或(*,*,RP)。

5 When a Join/Prune message is received for a group G, the prune list is checked. If the prune list contains a source or RP for which the receiving router has a corresponding active (S,G), (*,G) or (*,*,RP) entry, and whose iif is that on which the Join/Prune was received, then a join for (S,G), (*,G) or (*,*,RP) is triggered to override the prune, respectively. (This is necessary in the case of parallel downstream routers connected to a multi-access network.)

5当收到G组的加入/删除消息时,将检查删除列表。如果修剪列表包含一个源或RP,接收路由器对其具有相应的活动(S,G),(*,G)或(*,*,RP)条目,并且其iif是接收连接/修剪的iif,则会触发(S,G),(*,G)或(*,*,RP)的连接以分别覆盖修剪。(对于连接到多址网络的并行下游路由器,这是必要的。)

6 When the RP fails, the RP will not be included in the Bootstrap messages sent to all routers in that domain. This triggers the DRs to send (*,G) Join/Prune messages towards the new RP for the group, as determined by the RP-Set and the hash function. As described earlier, PMBRs trigger (*,*,RP) joins towards each RP in the RP-Set.

6当RP失败时,RP将不包括在发送到该域中所有路由器的引导消息中。这将触发DRs向组的新RP发送(*,G)加入/删减消息,由RP集和哈希函数确定。如前所述,PMBRs触发器(*,*,RP)向RP集中的每个RP连接。

7 When an entry's Join/Prune-Suppression timer expires, a Join/Prune message is triggered upstream corresponding to that entry, even if the outgoing interface has not transitioned between null and non-null states.

7当条目的加入/删减抑制计时器过期时,将在对应于该条目的上游触发加入/删减消息,即使传出接口未在null和非null状态之间转换。

8 When the RPF neighbor changes (whether due to an Assert or changes in unicast routing), the router sets a random delay timer (the Random-Delay-Join-Timer) whose expiration triggers sending of a Join/Prune message for the asserted route entry to the Assert winner (if the Join/Prune Suppression timer has expired.)

8当RPF邻居发生变化时(无论是由于断言还是单播路由的变化),路由器设置一个随机延迟计时器(随机延迟加入计时器),其过期将触发向断言赢家发送断言路由条目的加入/删减消息(如果加入/删减抑制计时器已过期)

We do not trigger prunes onto interfaces based on data packets. Data packets that arrive on the wrong incoming interface are silently dropped. However, on point-to-point interfaces triggered prunes may be sent as an optimization.

我们不会触发基于数据包的接口修剪。到达错误传入接口的数据包将被静默丢弃。然而,在点到点接口上触发的剪枝可以作为优化发送。

aragraphFragmentation It is possible that a Join/Prune message constructed according to the preceding rules could exceed the MTU of a network. In this case, the message can undergo semantic fragmentation whereby information corresponding to different groups can be sent in different messages. However, if a Join/Prune message must be fragmented the complete prune list corresponding to a group G must be included in the same Join/Prune message as the associated RP-tree Join for G. If such semantic fragmentation is not possible, IP fragmentation should be used between the two neighboring hops.

aragraphFragmentation根据上述规则构造的连接/删除消息可能超过网络的MTU。在这种情况下,消息可以经历语义碎片化,从而在不同的消息中发送对应于不同组的信息。但是,如果必须对连接/修剪消息进行分段,则与组G对应的完整修剪列表必须包含在与G的关联RP树连接相同的连接/修剪消息中。如果不可能进行此类语义分段,则应在两个相邻跃点之间使用IP分段。

3.2.2 Receiving Join/Prune Messages When a router receives Join/Prune message, it processes it as follows.

3.2.2 接收加入/删减消息当路由器接收到加入/删减消息时,它按如下方式处理它。

The receiver of the Join/Prune notes the interface on which the PIM message arrived, call it I. The receiver then checks to see if the Join/Prune message was addressed to the receiving router itself (i.e., the router's address appears in the Unicast Upstream Neighbor Router field of the Join/Prune message). (If the router is connected to a multiaccess LAN, the message could be intended for a different router.) If the Join/Prune is for this router the following actions are taken.

Join/Prune的接收者注意到PIM消息到达的接口,称之为I。然后,接收者检查Join/Prune消息是否发往接收路由器本身(即,路由器的地址出现在Join/Prune消息的单播上游邻居路由器字段中)。(如果路由器连接到多址LAN,则消息可能针对不同的路由器。)如果加入/删除针对此路由器,则采取以下操作。

For each group address G, in the Join/Prune message, the associated join list is processed as follows. We refer to each address in the join list as Sj; Sj refers to the RP if the RPT-bit and WC-bit are both set. For each Sj in the join list of the Join/Prune message:

对于每个组地址G,在Join/Prune消息中,关联的Join列表处理如下。我们将加入列表中的每个地址称为Sj;如果RPT位和WC位都已设置,则Sj指RP。对于join/Prune消息的join列表中的每个Sj:

1 If an address, Sj, in the join list of the Join/Prune message has the RPT-bit and WC-bit set, then Sj is the RP address used by the downstream router(s) and the following actions are taken:

1如果join/Prune消息的join列表中的地址Sj设置了RPT位和WC位,则Sj是下游路由器使用的RP地址,并采取以下措施:

1 If Sj is not the same as the receiving router's RP mapping for G, the receiving router may ignore the Join/Prune message with respect to that group entry. If the router does not have any RP-Set information, it may use the address Sj included in the Join/Prune message as the RP for the group.

1如果Sj与接收路由器的G的RP映射不同,则接收路由器可以忽略关于该组条目的Join/Prune消息。如果路由器没有任何RP集信息,它可以使用Join/Prune消息中包含的地址Sj作为组的RP。

2 If Sj is the same as the receiving router's RP mapping for G, the receiving router adds I to the outgoing interface list of the (*,G) route entry (if there is no (*,G) entry, the router creates one first) and sets the Oif-timer for that interface to the Holdtime specified in the Join/Prune message. In addition, the Oif-Deletion-Delay for that interface is set to 1/3rd the Holdtime specified

2如果Sj与接收路由器的G的RP映射相同,则接收路由器将I添加到(*,G)路由条目的传出接口列表中(如果没有(*,G)条目,则路由器首先创建一个),并将该接口的Oif计时器设置为Join/Prune消息中指定的保持时间。此外,该接口的Oif删除延迟设置为指定保持时间的1/3

in the Join/Prune message. If a (*,*,RP) entry exists, for the RP associated with G, then the oif list of the newly created (*,G) entry is copied from that (*,*,RP) entry.

在Join/Prune消息中。如果存在与G关联的RP的(*,*,RP)条目,则新创建的(*,G)条目的oif列表将从该(*,*,RP)条目复制。

3 For each (Si,G) entry associated with group G: i) if Si is not included in the prune list, ii) if I is not on the same subnet as the address Si, and iii) if I is not the iif, then interface I is added to the oif list and the Oif-timer for that interface in each affected entry is increased (never decreased) to the Holdtime included in the Join/Prune message. In addition, if the Oif-timer for that interface is increased, the Oif-Deletion-Delay for that interface is set to 1/3rd the Holdtime specified in the Join/Prune message.

3对于与组G关联的每个(Si,G)条目:i)如果Si未包含在修剪列表中,ii)如果i与地址Si不在同一子网中,以及iii)如果i不是iif,则接口i添加到oif列表中,并且每个受影响条目中该接口的oif计时器增加(从不减少)加入/删除消息中包含的保持时间。此外,如果该接口的Oif计时器增加,则该接口的Oif删除延迟将设置为Join/Prune消息中指定的保持时间的1/3。

If the group address in the Join/Prune message is `*' then every (*,G) and (S,G) entry, whose group address hashes to the RP indicated in the (*,*,RP) Join/Prune message, is updated accordingly. A `*' in the group field of the Join/Prune is represented by a group address 224.0.0.0 and a group mask length of 4, indicating a (*,*,RP) Join.

如果Join/Prune消息中的组地址为“*”,则组地址散列到(*,*,RP)Join/Prune消息中指示的RP的每个(*,G)和(S,G)条目都会相应更新。连接/删除的组字段中的“*”由组地址224.0.0.0和组掩码长度4表示,表示(*,*,RP)连接。

4 If the (Si,G) entry has its RPT-bit flag set to 1, and its oif list is the same as the (*,G) oif list, then the (Si,G)RPT-bit entry is deleted,

4如果(Si,G)条目的RPT位标志设置为1,且其oif列表与(*,G)oif列表相同,则删除(Si,G)RPT位条目,

5 The incoming interface is set to the interface used to send unicast packets to the RP in the (*,G) route entry, i.e., RPF interface toward the RP.

5传入接口设置为用于向(*,G)路由条目中的RP发送单播数据包的接口,即朝向RP的RPF接口。

2 For each address, Sj, in the join list whose RPT-bit and WC-bit are not set, and for which there is no existing (Sj,G) route entry, the router initiates one. The router creates a (S,G) entry and copies all outgoing interfaces from the (S,G)RPT-bit entry, if it exists. If there is no (S,G) entry, the oif list is copied from the (*,G) entry; and if there is no (*,G) entry, the oif list is copied from the (*,*,RP) entry, if it exists. In all cases, the iif of the (S,G) entry is always excluded from the oif list.

2对于联接列表中未设置RPT位和WC位且不存在(Sj,G)路由条目的每个地址Sj,路由器启动一个。路由器创建一个(S,G)条目,并从(S,G)RPT位条目复制所有传出接口(如果存在)。如果没有(S,G)条目,则从(*,G)条目复制oif列表;如果没有(*,G)条目,oif列表将从(*,*,RP)条目复制(如果存在)。在所有情况下,(S,G)分录的iif总是从oif列表中排除。

1 The outgoing interface for (Sj,G) is set to I. The incoming interface for (Sj,G) is set to the interface used to send unicast packets to Sj (i.e., the RPF neighbor).

1(Sj,G)的传出接口设置为I。(Sj,G)的传入接口设置为用于向Sj(即RPF邻居)发送单播数据包的接口。

2 If the interface used to reach Sj, is the same as I, this represents an error (or a unicast routing change) and the Join/Prune must not be processed.

2如果用于到达Sj的接口与I相同,则表示错误(或单播路由更改),并且不能处理连接/删除。

3 For each address, Sj, in the join list of the Join/Prune message, for which there is an existing (Sj,G) route entry,

3对于join/Prune消息的join列表中的每个地址Sj,存在一个现有(Sj,G)路由条目,

1 If the RPT-bit is not set for Sj listed in the Join/Prune message, but the RPT-bit flag is set on the existing (Sj,G) entry, the router clears the RPT-bit flag on the (Sj,G) entry, sets the incoming interface to point towards Sj for that (Sj,G) entry, and sends a Join/Prune message corresponding to that entry through the new incoming interface; and

1如果RPT位没有为Join/Prune消息中列出的Sj设置,但在现有(Sj,G)条目上设置了RPT位标志,则路由器清除(Sj,G)条目上的RPT位标志,将传入接口设置为指向该(Sj,G)条目的Sj,并通过新的传入接口发送与该条目对应的Join/Prune消息;和

2 If I is not the same as the existing incoming interface, the router adds I to the list of outgoing interfaces.

2如果I与现有的传入接口不同,路由器会将I添加到传出接口列表中。

3 The Oif-timer for I is increased (never decreased) to the Holdtime included in the Join/Prune message. In addition, if the Oif-timer for that interface is increased, the Oif-Deletion-Delay for that interface is set to 1/3rd the Holdtime specified in the Join/Prune message.

3 I的Oif计时器增加(从不减少)到加入/删除消息中包含的保持时间。此外,如果该接口的Oif计时器增加,则该接口的Oif删除延迟将设置为Join/Prune消息中指定的保持时间的1/3。

4 The (Sj,G) entry's SPT bit is cleared until data comes down the shortest path tree.

4(Sj,G)项的SPT位被清除,直到数据从最短路径树下来。

For each group address G, in the Join/Prune message, the associated prune list is processed as follows. We refer to each address in the prune list as Sp; Sp refers to the RP if the RPT-bit and WC-bit are both set. For each Sp in the prune list of the Join/Prune message:

对于每个组地址G,在Join/Prune消息中,关联的Prune列表处理如下。我们将删减列表中的每个地址称为Sp;如果RPT位和WC位都已设置,则Sp指RP。对于加入/删除消息的删除列表中的每个Sp:

1 For each address, Sp, in the prune list whose RPT-bit and WC-bit are cleared:

1对于清除RPT位和WC位的修剪列表中的每个地址Sp:

1 If there is an existing (Sp,G) route entry, the router lowers the entry's Oif-timer for I to its Oif-Deletion-Delay, allowing for other downstream routers on a multi-access LAN to override the prune. However, on point-to-point links, the oif-timer is expired immediately.

1如果存在一个现有的(Sp,G)路由条目,路由器将该条目的Oif定时器I降低到其Oif删除延迟,允许多址LAN上的其他下游路由器覆盖修剪。但是,在点对点链路上,oif计时器立即过期。

2 If the router has a current (*,G), or (*,*,RP), route entry, and if the existing (Sp,G) entry has its RPT-bit flag set to 1, then this (Sp,G)RPT-bit entry is maintained (not deleted) even if its outgoing interface list is null.

2如果路由器具有当前(*,G)或(*,*,RP)路由条目,并且如果现有(Sp,G)条目的RPT位标志设置为1,则即使其输出接口列表为空,该(Sp,G)RPT位条目仍将保持(未删除)。

2 For each address, Sp, in the prune list whose RPT-bit is set and whose WC-bit cleared:

2对于修剪列表中RPT位已设置且WC位已清除的每个地址Sp:

1 If there is an existing (Sp,G) route entry, the router lowers the entry's Oif-timer for I to its Oif-Deletion-Delay, allowing for other downstream routers on a multi-access LAN to override the prune. However, on point-to-point links, the oif-timer is expired immediately.

1如果存在一个现有的(Sp,G)路由条目,路由器将该条目的Oif定时器I降低到其Oif删除延迟,允许多址LAN上的其他下游路由器覆盖修剪。但是,在点对点链路上,oif计时器立即过期。

2 If the router has a current (*,G), or (*,*,RP), route entry, and if the existing (Sp,G) entry has its RPT-bit flag set to 1, then this (Sp,G)RPT-bit entry is not deleted, and the Entry-timer is restarted, even if its outgoing interface list is null.

2如果路由器具有当前(*,G)或(*,*,RP)路由条目,并且如果现有(Sp,G)条目的RPT位标志设置为1,则不会删除此(Sp,G)RPT位条目,并且条目计时器重新启动,即使其输出接口列表为空。

3 If (*,G), or corresponding (*,*,RP), state exists, but there is no (Sp,G) entry, an (Sp,G)RPT-bit entry is created . The outgoing interface list is copied from the (*,G), or (*,*,RP), entry, with the interface, I, on which the prune was received, is deleted. Packets from the pruned source, Sp, match on this state and are not forwarded toward the pruned receivers.

3如果(*,G)或相应的(*,*,RP)状态存在,但没有(Sp,G)条目,则创建(Sp,G)RPT位条目。传出接口列表是从(*,G)或(*,*,RP)条目复制而来的,其上接收到修剪的接口I将被删除。来自修剪源Sp的数据包在此状态下匹配,并且不会转发到修剪后的接收器。

4 If there exists a (Sp,G) entry, with or without the RPT-bit set, the oif-timer for I is expired, and the Entry-timer is restarted.

4如果存在(Sp,G)条目,无论是否设置了RPT位,I的oif计时器将过期,并且条目计时器将重新启动。

3 For each address, Sp, in the prune list whose RPT-bit and WC-bit are both set:

3对于修剪列表中RPT位和WC位均已设置的每个地址Sp:

1 If there is an existing (*,G) entry, with Sp as the RP for G, the router lowers the entry's Oif-timer for I to its Oif-Deletion-Delay, allowing for other downstream routers on a multi-access LAN to override the prune. However, on point-to-point links, the oif-timer is expired immediately.

1如果存在一个(*,G)条目,Sp作为G的RP,路由器将该条目的I的Oif定时器降低到其Oif删除延迟,允许多址LAN上的其他下游路由器覆盖修剪。但是,在点对点链路上,oif计时器立即过期。

2 If the corresponding (*,*,RP) state exists, but there is no (*,G) entry, a (*,G) entry is created. The outgoing interface list is copied from (*,*,RP) entry, with the interface, I, on which the prune was received, deleted.

2如果对应的(*,*,RP)状态存在,但没有(*,G)条目,则创建(*,G)条目。传出接口列表是从(*,*,RP)条目复制的,并且删除了接收到剪枝的接口I。

For any new (S,G), (*,G) or (*,*,RP) entry created by an incoming Join/Prune message, the SPT-bit is cleared (and if a Join/Prune-Suppression timer is used, it is left off.)

对于由传入的联接/修剪消息创建的任何新(S,G),(*,G)或(*,*,RP)条目,SPT位被清除(如果使用联接/修剪抑制计时器,则将其关闭)

If the entry has a Join/Prune-Suppression timer associated with it, and if the received Join/Prune does not indicate the router as its target, then the receiving router examines the join and prune lists to see if any addresses in the list `completely-match' existing (S,G), (*,G), or (*,*,RP) state for which the receiving router currently schedules Join/Prune messages. An element on the join or

如果条目有一个与之相关联的加入/删减抑制计时器,并且如果接收到的加入/删减未将路由器指示为其目标,则接收路由器检查加入和删减列表,以查看列表中的任何地址是否“完全匹配”现有(S,G),(*,G)或(*,*,RP)接收路由器当前计划加入/删除消息的状态。连接上的元素,或

prune list `completely-matches' a route entry only if both the addresses and RPT-bit flag are the same. If the incoming Join/Prune message completely matches an existing (S,G), (*,G), or (*,*,RP) entry and the Join/Prune arrived on the iif for that entry, then the router compares the Holdtime included in the Join/Prune message, to its own [Join/Prune-Holdtime]. If its own [Join/Prune-Holdtime] is lower, the Join/Prune-Suppression-timer is started at the [Join/Prune-Suppression-Timeout]. If the [Join/Prune-Holdtime] is equal, the tie is resolved in favor of the Join/Prune Message originator that has the higher network layer address. When the Join/Prune timer expires, the router triggers a Join/Prune message for the corresponding entry(ies).

仅当地址和RPT位标志相同时,删减列表“完全匹配”路由条目。如果传入的Join/Prune消息完全匹配现有(S,G),(*,G)或(*,*,RP)条目,并且该条目的Join/Prune到达iif,则路由器将Join/Prune消息中包含的保持时间与自己的[Join/Prune保持时间]进行比较。如果其自身的[Join/Prune保持时间]较低,则在[Join/Prune抑制超时]时启动加入/修剪抑制计时器。如果[Join/Prune Holdtime]相等,则会通过有利于具有较高网络层地址的Join/Prune消息发起人的方式解决此问题。当加入/删减计时器过期时,路由器触发相应条目的加入/删减消息。

3.3 Register and Register-Stop
3.3 寄存器和寄存器停止

When a source first starts sending to a group its packets are encapsulated in Register messages and sent to the RP. If the data rate warrants source-specific paths, the RP sets up source specific state and starts sending (S,G) Join/Prune messages toward the source, with S in the join list.

当源首次开始向组发送数据包时,其数据包被封装在寄存器消息中并发送给RP。如果数据速率保证源特定路径,RP将设置源特定状态并开始向源发送(S,G)连接/删除消息,其中S在连接列表中。

3.3.1 Sending Registers and Receiving Register-Stops
3.3.1 发送寄存器和接收寄存器停止

Register messages are sent as follows:

注册信息的发送方式如下:

1 When a DR receives a packet from a directly connected source, S, on the subnet containing the address S,

1当DR从包含地址S的子网上的直接连接源S接收数据包时,

1 If there is no corresponding (S,G) entry, and the router has RP-Set information, and the DR is not the RP for G, the DR creates an (S,G) entry with the Register-Suppression-timer turned off and the RP address set according to the hash function mapping for the corresponding group. The oif list is copied from existing (*,G) or (*,*,RP) entries, if they exist. The iif of the (S,G) entry is always excluded from the oif list. If there exists a (*,G) or (*,*,RP) entry, the DR sends a Join/Prune message towards the RP with S in the prune list and the RPT-bit set.

1如果没有相应的(S,G)条目,并且路由器具有RP集信息,并且DR不是G的RP,则DR创建一个(S,G)条目,同时关闭寄存器抑制计时器,并根据相应组的哈希函数映射设置RP地址。oif列表是从现有(*,G)或(*,*,RP)条目(如果存在)复制的。(S,G)分录的iif始终不在oif列表中。如果存在(*,G)或(*,*,RP)条目,DR将向RP发送一条连接/删除消息,其中删除列表中有S,并且RPT位已设置。

2 If there is a (S,G) entry in existence, the DR simply restarts the corresponding Entry-timer.

2如果存在(S,G)条目,DR只需重新启动相应的条目计时器。

When a PMBR (e.g., a router that connects the PIM-SM region to a dense mode region running DVMRP or PIM-DM) receives a packet from a source in the dense mode region, the router

当PMBR(例如,将PIM-SM区域连接到运行DVMRP或PIM-DM的密集模式区域的路由器)从密集模式区域中的源接收到数据包时,路由器

treats the packet as if it were from a directly connected source. A separate document will describe the details of interoperability.

将数据包视为来自直接连接的源。另一份文件将详细说明互操作性。

2 If the new or previously-existing (S,G) entry's Register-Suppression-timer is not running, the data packet is encapsulated in a Register message and unicast to the RP for that group. The data packet is also forwarded according to (S,G) state in the DR if the oif list is not null; since a receiver may join the SP-tree while the DR is still registering to the RP.

2如果新的或以前存在的(S,G)项的寄存器抑制计时器未运行,则数据包将封装在寄存器消息中,并单播到该组的RP。如果oif列表不为空,则还根据DR中的(S,G)状态转发数据分组;因为当DR仍在向RP注册时,接收器可以加入SP树。

3 If the (S,G) entry's Register-Suppression-timer is running, the data packet is not sent in a Register message, it is just forwarded according to the (S,G) oif list.

3如果(S,G)项的寄存器抑制计时器正在运行,则数据包不会在寄存器消息中发送,它只是根据(S,G)oif列表转发。

When the DR receives a Register-Stop message, it restarts the Register-Suppression-timer in the corresponding (S,G) entry(ies) at [Register-Suppression-Timeout] seconds. If there is data to be registered, the DR may send a null Register (a Register message with a zero-length data portion in the inner packet) to the RP, [Probe-Time] seconds before the Register-Suppression-timer expires, to avoid sending occasional bursts of traffic to an RP unnecessarily.

当DR收到寄存器停止消息时,它会在[Register Suppression Timeout]秒时在相应的(S,G)条目中重新启动寄存器抑制计时器。如果存在要注册的数据,则DR可以在寄存器抑制定时器到期之前的[探测时间]秒向RP发送空寄存器(内部分组中具有零长度数据部分的寄存器消息),以避免不必要地向RP发送偶尔的流量突发。

3.3.2 Receiving Register Messages and Sending Register-Stops
3.3.2 接收寄存器消息并发送寄存器停止

When a router (i.e., the RP) receives a Register message, the router does the following:

当路由器(即RP)接收到寄存器消息时,路由器执行以下操作:

1 Decapsulates the data packet, and checks for a corresponding (S,G) entry.

1解除数据包的封装,并检查相应的(S,G)条目。

1 If a (S,G) entry with cleared (0) SPT bit exists, and the received Register does not have the Null-Register-Bit set to 1, the packet is forwarded; and the SPT bit is left cleared (0). If the SPT bit is 1, the packet is dropped, and Register-Stop messages are triggered. Register-Stops should be rate-limited (in an implementation-specific manner) so that no more than a few are sent per round trip time. This prevents a high datarate stream of packets from triggering a large number of Register-Stop messages between the time that the first packet is received and the time when the source receives the first Register-Stop.

1如果存在具有清除(0)SPT位的(S,G)条目,并且接收到的寄存器没有将空寄存器位设置为1,则转发数据包;SPT位保持清除状态(0)。如果SPT位为1,则丢弃数据包,并触发寄存器停止消息。寄存器停止应该是速率限制的(以特定于实现的方式),以便每个往返时间发送的次数不超过几个。这可防止高数据速率的数据包流在接收到第一个数据包和源接收到第一个寄存器停止之间触发大量寄存器停止消息。

2 If there is no (S,G) entry, but there is a (*,G) entry, and the received Register does not have the Null-Register-Bit set to 1, the packet is forwarded according to the (*,G) entry.

2如果没有(S,G)项,但有(*,G)项,并且接收到的寄存器没有将空寄存器位设置为1,则根据(*,G)项转发数据包。

3 If there is a (*,*,RP) entry but no (*,G) entry, and the Register received does not have the Null-Register-Bit set to 1, a (*,G) or (S,G) entry is created and the oif list is copied from the (*,*,RP) entry to the new entry. The packet is forwarded according to the created entry.

3如果存在(*,*,RP)条目但没有(*,G)条目,并且接收的寄存器未将空寄存器位设置为1,则创建(*,G)或(S,G)条目,并将oif列表从(*,*,RP)条目复制到新条目。根据创建的条目转发数据包。

4 If there is no G or (*,*,RP) entry corresponding to G, the packet is dropped, and a Register-Stop is triggered.

4如果没有与G对应的G或(*,*,RP)条目,则丢弃数据包,并触发寄存器停止。

5 A "Border bit" bit is added to the Register message, to facilitate interoperability mechanisms. PMBRs set this bit when registering for external sources (see Section 2.7). If the "Border bit" is set in the Register, the RP does the following:

5将“边界位”位添加到寄存器消息中,以促进互操作性机制。PMBR在注册外部源时设置此位(参见第2.7节)。如果在寄存器中设置了“边界位”,RP将执行以下操作:

1 If there is no matching (S,G) state, but there exists (*,G) or (*,*,RP) entry, the RP creates a (S,G) entry, with a `PMBR' field. This field holds the source of the Register (i.e. the outer network layer address of the register packet). The RP triggers a (S,G) join towards the source of the data packet, and clears the SPT bit for the (S,G) entry. If the received Register is not a `null Register' the packet is forwarded according to the created state. Else,

1如果没有匹配的(S,G)状态,但存在(*,G)或(*,*,RP)条目,RP将创建一个带有“PMBR”字段的(S,G)条目。该字段保存寄存器的源(即寄存器数据包的外部网络层地址)。RP触发朝向数据包源的(S,G)连接,并清除(S,G)条目的SPT位。如果收到的寄存器不是“空寄存器”,则根据创建的状态转发数据包。其他的

2 If the `PMBR' field for the corresponding (S,G) entry matches the source of the Register packet, and the received Register is not a `null Register', the decapsulated packet is forwarded to the oif list of that entry. Else,

2如果对应(S,G)项的“PMBR”字段与寄存器数据包的源匹配,并且接收到的寄存器不是“空寄存器”,则已解除封装的数据包将转发到该项的oif列表。其他的

3 If the `PMBR' field for the corresponding (S,G) entry matches the source of the Register packet, the decapsulated packet is forwarded to the oif list of that entry, else

3如果对应(S,G)条目的“PMBR”字段与寄存器数据包的源匹配,则解除封装的数据包将转发到该条目的oif列表,否则

4 The packet is dropped, and a Register-stop is triggered towards the source of the Register.

4丢包,并向寄存器源触发寄存器停止。

The (S,G) Entry-timer is restarted by Registers arriving from that source to that group.

(S,G)项计时器由从该源到达该组的寄存器重新启动。

2 If the matching (S,G) or (*,G) state contains a null oif list, the RP unicasts a Register-Stop message to the source of the Register message; in the latter case, the source-address field, within the Register-Stop message, is set to the wildcard

2如果匹配(S,G)或(*,G)状态包含空oif列表,RP单播寄存器停止消息到寄存器消息源;在后一种情况下,寄存器停止消息中的源地址字段设置为通配符

value (all 0's). This message is not processed by intermediate routers, hence no (S,G) state is constructed between the RP and the source.

值(全部为0)。此消息不由中间路由器处理,因此在RP和源之间不构造(S,G)状态。

3 If the Register message arrival rate warrants it and there is no existing (S,G) entry, the RP sets up a (S,G) route entry with the outgoing interface list, excluding iif(S,G), copied from the (*,G) outgoing interface list, its SPT-bit is initialized to 0. If a (*,G) entry does not exist, but there exists a (*,*,RP) entry with the RP corresponding to G , the oif list for (S,G) is copied - excluding the iif - from that (*,*,RP) entry.

3如果注册信息到达率保证,且不存在(S,G)条目,RP将使用从(*,G)输出接口列表复制的输出接口列表(不包括iif(S,G))设置(S,G)路由条目,其SPT位初始化为0。如果(*,G)条目不存在,但存在一个(*,*,RP)条目,其中RP对应于G,则从该(*,*,RP)条目复制(S,G)的oif列表(不包括iif)。

A timer (Entry-timer) is set for the (S,G) entry and this timer is restarted by receipt of data packets for (S,G). The (S,G) entry causes the RP to send a Join/Prune message for the indicated group towards the source of the register message.

为(S,G)条目设置计时器(条目计时器),通过接收(S,G)的数据包重新启动该计时器。(S,G)项使RP向寄存器消息源发送指示组的加入/删减消息。

If the (S,G) oif list becomes null, Join/Prune messages will not be sent towards the source, S.

如果(S,G)oif列表变为null,则不会向源S发送加入/删除消息。

3.4 Multicast Data Packet Forwarding
3.4 多播数据包转发

Processing a multicast data packet involves the following steps:

处理多播数据包涉及以下步骤:

1 Lookup route state based on a longest match of the source address, and an exact match of the destination address in the data packet. If neither S, nor G, find a longest match entry, and the RP for the packet's destination group address has a corresponding (*,*,RP) entry, then the longest match does not require an exact match on the destination group address. In summary, the longest match is performed in the following order: (1) (S,G), (2) (*,G). If neither is matched, then a lookup is performed on (*,*,RP) entries.

1基于源地址的最长匹配和数据包中目标地址的精确匹配的查找路由状态。如果S和G均未找到最长匹配项,且数据包目的地组地址的RP具有相应的(*,*,RP)项,则最长匹配不需要目的地组地址上的精确匹配。总之,最长匹配按以下顺序执行:(1)(S,G),(2)(*,G)。如果两者都不匹配,则对(*、*、RP)项执行查找。

2 If the packet arrived on the interface found in the matching-entry's iif field, and the oif list is not null:

2如果数据包到达匹配条目的iif字段中找到的接口,且oif列表不为空:

1 Forward the packet to the oif list for that entry, excluding the subnet containing S, and restart the Entry-timer if the matching entry is (S,G). Optionally, the (S,G) Entry-timer may be restarted by periodic checking of the matching packet count.

1将数据包转发到该条目的oif列表,不包括包含S的子网,如果匹配条目为(S,G),则重新启动条目计时器。可选地,(S,G)入口计时器可以通过定期检查匹配的分组计数来重新启动。

2 If the entry is a (S,G) entry with a cleared SPT-bit, and a (*,G) or associated (*,*,RP) also exists whose incoming interface is different than that for (S,G), set the SPT-bit for the (S,G) entry and trigger an (S,G) RPT-bit prune towards the RP.

2如果条目是具有清除SPT位的(S,G)条目,并且(*,G)或相关(*,*,RP)也存在,其传入接口不同于(S,G)条目的传入接口,则为(S,G)条目设置SPT位,并触发(S,G)RPT位向RP修剪。

3 If the source of the packet is a directly-connected host and the router is the DR on the receiving interface, check the Register-Suppression-timer associated with the (S,G) entry. If it is not running, then the router encapsulates the data packet in a register message and sends it to the RP.

3如果数据包的来源是直接连接的主机,而路由器是接收接口上的DR,则检查与(S,G)项相关的寄存器抑制定时器。如果未运行,则路由器将数据包封装在寄存器消息中,并将其发送给RP。

This covers the common case of a packet arriving on the RPF interface to the source or RP and being forwarded to all joined branches. It also detects when packets arrive on the SP-tree, and triggers their pruning from the RP-tree. If it is the DR for the source, it sends data packets encapsulated in Registers to the RPs.

这涵盖了数据包到达源或RP的RPF接口并转发到所有连接分支的常见情况。它还检测数据包何时到达SP树,并从RP树触发数据包修剪。如果它是源的DR,则将封装在寄存器中的数据包发送到RPs。

3 If the packet matches to an entry but did not arrive on the interface found in the entry's iif field, check the SPT-bit of the entry. If the SPT-bit is set, drop the packet. If the SPT-bit is cleared, then lookup the (*,G), or (*,*,RP), entry for G. If the packet arrived on the iif found in (*,G), or the corresponding (*,*,RP), forward the packet to the oif list of the matching entry. This covers the case when a data packet matches on a (S,G) entry for which the SP-tree has not yet been completely established upstream.

3如果数据包与条目匹配,但未到达条目的iif字段中的接口,请检查条目的SPT位。如果设置了SPT位,则丢弃数据包。如果SPT位被清除,则查找(*,G)或(*,*,RP)条目中的G。如果数据包到达在(*,G)或相应(*,*,RP)中找到的iif,则将数据包转发到匹配条目的oif列表。这涵盖了数据包在(S,G)条目上匹配的情况,该条目的SP树尚未在上游完全建立。

4 If the packet does not match any entry, but the source of the data packet is a local, directly-connected host, and the router is the DR on a multi-access LAN and has RP-Set information, the DR uses the hash function to determine the RP associated with the destination group, G. The DR creates a (S,G) entry, with the Register-Suppression-timer not running, encapsulates the data packet in a Register message and unicasts it to the RP.

4如果数据包不匹配任何条目,但数据包的源是本地直接连接的主机,并且路由器是多址LAN上的DR,并且具有RP集信息,DR使用哈希函数确定与目的地组G关联的RP。DR创建(S,G)条目,在寄存器抑制定时器未运行的情况下,将数据包封装在寄存器消息中,并将其单播到RP。

5 If the packet does not match to any entry, and it is not a local host or the router is not the DR, drop the packet.

5如果数据包与任何条目不匹配,并且它不是本地主机或路由器不是DR,则丢弃数据包。

3.4.1 Data triggered switch to shortest path tree (SP-tree)
3.4.1 数据触发切换到最短路径树(SP树)

Different criteria can be applied to trigger switching over from the RP-based shared tree to source-specific, shortest path trees.

可以应用不同的标准来触发从基于RP的共享树到特定于源的最短路径树的切换。

One proposed example is to do so based on data rate. For example, when a (*,G), or corresponding (*,*,RP), entry is created, a data rate counter may be initiated at the last-hop routers. The counter is incremented with every data packet received for directly connected members of an SM group, if the longest match is (*,G) or (*,*,RP). If and when the data rate for the group exceeds a certain configured threshold (t1), the router initiates `source-specific' data rate counters for the following data packets. Then, each counter for a source, is incremented when packets matching on (*,G), or (*,*,RP), are received from that source. If the data rate from the particular source exceeds a configured threshold (t2), a (S,G) entry is created and a Join/Prune message is sent towards the source. If the RPF interface for (S,G) is not the same as that for (*,G) -or (*,*,RP), then the SPT-bit is cleared in the (S,G) entry.

一个建议的示例是基于数据速率来执行此操作。例如,当创建(*,G)或相应的(*,*,RP)条目时,可在最后一跳路由器处启动数据速率计数器。如果最长匹配为(*,G)或(*,*,RP),则计数器将随着为SM组的直接连接成员接收的每个数据包而递增。如果组的数据速率超过某个配置的阈值(t1),路由器将为以下数据包启动“源特定”数据速率计数器。然后,当从源接收到匹配(*,G)或(*,*,RP)的数据包时,源的每个计数器都会递增。如果来自特定源的数据速率超过配置的阈值(t2),将创建一个(S,G)条目,并向源发送一条加入/删除消息。如果(S,G)的RPF接口与(*,G)-或(*,*,RP)的RPF接口不同,则在(S,G)条目中清除SPT位。

Other configured rules may be enforced to cause or prevent establishment of (S,G) state.

可以强制执行其他配置的规则以导致或阻止(S,G)状态的建立。

3.5 Assert
3.5 明确肯定

Asserts are used to resolve which of the parallel routers connected to a multi-access LAN is responsible for forwarding packets onto the LAN.

断言用于确定连接到多址LAN的并行路由器中的哪一个负责将数据包转发到LAN。

3.5.1 Sending Asserts
3.5.1 发送断言

The following Assert rules are provided when a multicast packet is received on an outgoing multi-access interface "I" of an existing active (S,G), (*,G) or (*,*,RP) entry:

当在现有活动(S,G),(*,G)或(*,*,RP)条目的传出多址接口“I”上接收到多播数据包时,将提供以下断言规则:

1 Do unicast routing table lookup on source address from data packet, and send assert on interface "I" for source address in data packet; include metric preference of routing protocol and metric from routing table lookup.

1对数据包中的源地址进行单播路由表查找,并在接口“I”上对数据包中的源地址发送断言;包括路由协议的度量首选项和路由表查找中的度量。

2 If route is not found, use metric preference of 0x7fffffff and metric 0xffffffff.

2如果找不到路由,请使用0x7fffffff的度量首选项和0xffffffff的度量首选项。

When an assert is sent for a (*,G) entry, the first bit in the metric preference (the RPT-bit) is set to 1, indicating the data packet is routed down the RP-tree.

为(*,G)条目发送断言时,度量首选项中的第一位(RPT位)设置为1,表示数据包沿RP树向下路由。

Asserts should be rate-limited in an implementation-specific manner.

资产应以特定于实现的方式进行费率限制。

3.5.2 Receiving Asserts
3.5.2 接收资产

When an Assert is received the router performs a longest match on the source and group address in the Assert message, only active entries -- that have packet forwarding state -- are matched. The router checks the first bit of the metric preference (RPT-bit).

当收到Assert时,路由器对Assert消息中的源地址和组地址执行最长匹配,只匹配具有数据包转发状态的活动条目。路由器检查度量首选项的第一位(RPT位)。

1 If the RPT-bit is set, the router first does a match on (*,G), or (*,*,RP), entries; if no matching entry is found, it ignores the Assert.

1如果设置了RPT位,路由器首先对(*,G)或(*,*,RP)条目进行匹配;如果找不到匹配项,则忽略断言。

2 If the RPT-bit is not set in the Assert, the router first does a match on (S,G) entries; if no matching entry is found, the router matches (*,G) or (*,*,RP) entries.

2如果断言中未设置RPT位,路由器首先对(S,G)项进行匹配;如果未找到匹配项,路由器将匹配(*,G)或(*,*,RP)项。

Receiving Asserts on an entry's outgoing interface:

在条目的传出接口上接收断言:

If the interface that received the Assert message is in the oif list of the matched entry, then this Assert is processed by this router as follows:

如果接收断言消息的接口位于匹配项的oif列表中,则此路由器将按如下方式处理此断言:

1 If the Assert's RPT-bit is set and the matching entry is (*,*,RP), the router creates a (*,G) entry. If the Assert's RPT-bit is cleared and the matching entry is (*,G), or (*,*,RP), the router creates a (S,G)RPT-bit entry. Otherwise, no new entry is created in response to the Assert.

1如果设置了断言的RPT位,并且匹配条目为(*,*,RP),路由器将创建一个(*,G)条目。如果清除了断言的RPT位,并且匹配条目为(*,G)或(*,*,RP),路由器将创建一个(s,G)RPT位条目。否则,不会创建新条目来响应断言。

2 The router then compares the metric values received in the Assert with the metric values associated with the matched entry. The RPT-bit and metric preference (in that order) are treated as the high-order part of an Assert metric comparison. If the value in the Assert is less than the router's value (with ties broken by the IP address, where higher network layer address wins), delete the interface from the entry. When the deletion occurs for a (*,G) or (*,*,RP) entry , the interface is also deleted from any associated (S,G)RPT-bit or (*,G) entries, respectively. The Entry-timer for the affected entries is restarted.

2然后路由器将断言中接收到的度量值与匹配条目关联的度量值进行比较。RPT位和度量首选项(按该顺序)被视为断言度量比较的高阶部分。如果断言中的值小于路由器的值(IP地址断开连接,较高的网络层地址获胜),则从条目中删除接口。当删除(*,G)或(*,*,RP)条目时,接口也将分别从任何相关(S,G)RPT位或(*,G)条目中删除。重新启动受影响条目的条目计时器。

3 If the router has won the election the router keeps the interface in its outgoing interface list. It acts as the forwarder for the LAN.

3如果路由器赢得了选举,路由器会将该接口保留在其传出接口列表中。它充当局域网的转发器。

The winning router sends an Assert message containing its own metric to that outgoing interface. This will cause other routers on the LAN to prune that interface from their route entries. The winning router sets the RPT-bit in the Assert message if a (*,G) or (S,G)RPT-bit entry was matched.

获胜的路由器将包含其自身度量的断言消息发送到该传出接口。这将导致LAN上的其他路由器从其路由条目中删除该接口。如果(*,G)或(S,G)RPT位条目匹配,获胜路由器将在断言消息中设置RPT位。

Receiving Asserts on an entry's incoming interface

在条目的传入接口上接收断言

If the Assert arrived on the incoming interface of an existing (S,G), (*,G), or (*,*,RP) entry, the Assert is processed as follows. If the Assert message does not match the entry, exactly, it is ignored; i.e, longest-match is not used in this case. If the Assert message does match exactly, then:

如果断言到达现有(S,G),(*,G)或(*,*,RP)项的传入接口,则断言的处理如下。如果断言消息与条目不匹配,则完全忽略它;i、 e,在这种情况下不使用最长匹配。如果断言消息确实匹配,则:

1 Downstream routers will select the upstream router with the smallest metric preference and metric as their RPF neighbor. If two metrics are the same, the highest network layer address is chosen to break the tie. This is important so that downstream routers send subsequent Joins/Prunes (in SM) to the correct neighbor. An Assert-timer is initiated when changing the RPF neighbor to the Assert winner. When the timer expires, the router resets its RPF neighbor according to its unicast routing tables to capture network dynamics and router failures.

1下游路由器将选择具有最小度量偏好和度量的上游路由器作为其RPF邻居。如果两个指标相同,则选择最高的网络层地址来打破这种关系。这一点很重要,以便下游路由器(在SM中)向正确的邻居发送后续加入/删减。将RPF邻居更改为断言赢家时,将启动断言计时器。当计时器过期时,路由器根据其单播路由表重置其RPF邻居,以捕获网络动态和路由器故障。

2 If the downstream routers have downstream members, and if the Assert caused the RPF neighbor to change, the downstream routers must trigger a Join/Prune message to inform the upstream router that packets are to be forwarded on the multi-access network.

2如果下游路由器具有下游成员,并且如果断言导致RPF邻居改变,则下游路由器必须触发加入/删减消息以通知上游路由器将在多址网络上转发数据包。

3.6 Candidate-RP-Advertisements and Bootstrap messages
3.6 候选RP广告和引导消息

Candidate-RP-Advertisements (C-RP-Advs) are periodic PIM messages unicast to the BSR by those routers that are configured as Candidate-RPs (C-RPs).

候选RP广告(C-RP-ADV)是由配置为候选RP(C-RPs)的路由器单播到BSR的周期性PIM消息。

Bootstrap messages are periodic PIM messages originated by the Bootstrap router (BSR) within a domain, and forwarded hop-by-hop to distribute the current RP-set to all routers in that domain.

引导消息是由域内的引导路由器(BSR)发起的周期性PIM消息,并逐跳转发以将当前RP集分发给该域中的所有路由器。

The Bootstrap messages also support a simple mechanism by which the Candidate BSR (C-BSR) with the highest BSR-priority and address (referred to as the preferred BSR) is elected as the BSR for the domain. We recommend that each router configured as a C-RP also be configured as a C-BSR. Sections 3.6.2 and 3.6.3 describe the combined function of Bootstrap messages as the vehicle for BSR election and RP-Set distribution.

引导消息还支持一种简单的机制,通过该机制,具有最高BSR优先级和地址(称为首选BSR)的候选BSR(C-BSR)被选为域的BSR。我们建议每个配置为C-RP的路由器也配置为C-BSR。第3.6.2节和第3.6.3节描述了引导消息作为BSR选择和RP集分发工具的组合功能。

A Finite State Machine description of the BSR election and RP-Set distribution mechanisms is included in Appendix II.

BSR选择和RP集分配机制的有限状态机描述见附录II。

3.6.1 Sending Candidate-RP-Advertisements
3.6.1 发送候选RP广告

C-RPs periodically unicast C-RP-Advs to the BSR for that domain. The interval for sending these messages is subject to local configuration at the C-RP.

C-RPs周期性地单播C-RP-adv到该域的BSR。发送这些消息的间隔取决于C-RP的本地配置。

Candidate-RP-Advertisements carry group address and group mask fields. This enables the advertising router to limit the advertisement to certain prefixes or scopes of groups. The advertising router may enforce this scope acceptance when receiving Registers or Join/Prune messages. C-RPs should send C-RP-Adv messages with the `Priority' field set to `0'.

候选RP广告包含组地址和组掩码字段。这使播发路由器能够将播发限制在组的某些前缀或范围内。广告路由器可在接收寄存器或加入/删减消息时强制执行此作用域接受。C-RPs应发送“优先级”字段设置为“0”的C-RP-Adv消息。

3.6.2 Receiving C-RP-Advs and Originating Bootstrap
3.6.2 接收C-RP-ADV和原始引导

Upon receiving a C-RP-Adv, a router does the following:

收到C-RP-Adv后,路由器执行以下操作:

1 If the router is not the elected BSR, it ignores the message, else

1如果路由器不是所选的BSR,则忽略该消息,否则

2 The BSR adds the RP address to its local pool of candidate RPs, according to the associated group prefix(es) in the C-RP-Adv message. The Holdtime in the C-RP-Adv message is also stored with the corresponding RP, to be included later in the Bootstrap message. The BSR may apply a local policy to limit the number of Candidate RPs included in the Bootstrap message. The BSR may override the prefix indicated in a C-RP-Adv unless the `Priority' field is not zero.

2 BSR根据C-RP-Adv消息中的相关组前缀,将RP地址添加到其本地候选RP池中。C-RP-Adv消息中的保持时间也与相应的RP一起存储,稍后将包括在引导消息中。BSR可以应用本地策略来限制包括在引导消息中的候选RP的数量。BSR可以覆盖C-RP-Adv中指示的前缀,除非“优先级”字段不为零。

The BSR keeps an RP-timer per RP in its local RP-set. The RP-timer is initialized to the Holdtime in the RP's C-RP-Adv. When the timer expires, the corresponding RP is removed from the RP-set. The RP-timer is restarted by the C-RP-Advs from the corresponding RP.

BSR在其本地RP集中为每个RP保留一个RP计时器。RP计时器初始化为RP的C-RP-Adv中的保持时间。当计时器过期时,相应的RP将从RP集中移除。RP定时器由C-RP-Advs从相应RP重新启动。

The BSR also uses its Bootstrap-timer to periodically send Bootstrap messages. In particular, when the Bootstrap-timer expires, the BSR originates a Bootstrap message on each of its PIM interfaces. To reduce the bootstrap message overhead during partition healing, the BSR should set a random time (as a function of the priority and address) after which the Bootstrap message is originated only if no other preferred Bootstrap message is received. For details see appendix 6.2. The message is sent with a TTL of 1 to the `ALL-PIM-ROUTERS' group. In steady state, the BSR originates Bootstrap messages periodically. At startup, the Bootstrap-timer is initialized to [Bootstrap-Timeout], causing the first Bootstrap message to be originated only when and if the timer expires. For

BSR还使用其引导计时器定期发送引导消息。特别是,当引导计时器过期时,BSR会在其每个PIM接口上发出引导消息。为了减少分区修复期间的引导消息开销,BSR应该设置一个随机时间(作为优先级和地址的函数),只有在没有收到其他首选引导消息的情况下,才会在该时间之后启动引导消息。详情见附录6.2。消息以1的TTL发送到“ALL-PIM-ROUTERS”组。在稳定状态下,BSR周期性地发起引导消息。启动时,引导计时器初始化为[Bootstrap Timeout],导致仅当计时器过期时才会发出第一条引导消息。对于

timer details, see Section 3.6.3. A DR unicasts a Bootstrap message to each new PIM neighbor, i.e., after the DR receives the neighbor's Hello message (it does so even if the new neighbor becomes the DR).

定时器详情,见第3.6.3节。DR向每个新的PIM邻居单播引导消息,即在DR接收到邻居的Hello消息后(即使新邻居成为DR,它也会这样做)。

The Bootstrap message is subdivided into sets of group-prefix,RP-Count,RP-addresses. For each RP-address, the corresponding Holdtime is included in the "RP-Holdtime" field. The format of the Bootstrap message allows `semantic fragmentation', if the length of the original Bootstrap message exceeds the packet maximum boundaries (see Section 4). However, we recommend against configuring a large number of routers as C-RPs, to reduce the semantic fragmentation required.

引导消息细分为组前缀、RP计数、RP地址集。对于每个RP地址,相应的保持时间包含在“RP保持时间”字段中。如果原始引导消息的长度超过数据包最大边界,则引导消息的格式允许“语义分段”(见第4节)。但是,我们建议不要将大量路由器配置为C-RPs,以减少所需的语义碎片。

3.6.3 Receiving and Forwarding Bootstrap
3.6.3 接收和转发引导

Each router keeps a Bootstrap-timer, initialized to [Bootstrap-Timeout] at startup.

每个路由器都有一个引导计时器,在启动时初始化为[引导超时]。

When a router receives Bootstrap message sent to `ALL-PIM-ROUTERS' group, it performs the following:

当路由器收到发送到“ALL-PIM-ROUTES”组的引导消息时,它将执行以下操作:

1 If the message was not sent by the RPF neighbor towards the BSR address included, the message is dropped. Else

1如果消息不是由RPF邻居发送到包含的BSR地址,则消息将被丢弃。其他的

2 If the included BSR is not preferred over, and not equal to, the currently active BSR:

2如果包含的BSR不是当前活动BSR的首选项,也不等于当前活动BSR:

1 If the Bootstrap-timer has not yet expired, or if the receiving router is a C-BSR, then the Bootstrap message is dropped. Else

1如果引导计时器尚未过期,或者如果接收路由器是C-BSR,则引导消息将被丢弃。其他的

2 If the Bootstrap-timer has expired and the receiving router is not a C-BSR, the receiving router stores the RP-Set and BSR address and priority found in the message, and restarts the timer by setting it to [Bootstrap-Timeout]. The Bootstrap message is then forwarded out all PIM interfaces, excluding the one over which the message arrived, to `ALL-PIM-ROUTERS' group, with a TTL of 1.

2如果引导计时器已过期,且接收路由器不是C-BSR,则接收路由器存储在消息中找到的RP集、BSR地址和优先级,并通过将其设置为[引导超时]来重新启动计时器。然后,引导消息从所有PIM接口(不包括消息到达的接口)转发到“all-PIM-ROUTERS”组,TTL为1。

3 If the Bootstrap message includes a BSR address that is preferred over, or equal to, the currently active BSR, the router restarts its Bootstrap-timer at [Bootstrap-Timeout] seconds. and stores the BSR address and RP-Set information.

3如果引导消息包含一个优先于或等于当前活动BSR的BSR地址,路由器将在[Bootstrap Timeout]秒时重新启动其引导计时器。并存储BSR地址和RP集信息。

The Bootstrap message is then forwarded out all PIM interfaces, excluding the one over which the message arrived, to `ALL-PIM-ROUTERS' group, with a TTL of 1.

然后,引导消息从所有PIM接口(不包括消息到达的接口)转发到“all-PIM-ROUTERS”组,TTL为1。

4 If the receiving router has no current RP set information and the Bootstrap was unicast to it from a directly connected neighbor, the router stores the information as its new RP-set. This covers the startup condition when a newly booted router obtains the RP-Set and BSR address from its DR.

4如果接收路由器没有当前RP集信息,并且引导是从直接连接的邻居单播给它的,则路由器将该信息存储为其新RP集。这包括新启动的路由器从其DR获得RP集和BSR地址时的启动条件。

When a router receives a new RP-Set, it checks if each of the RPs referred to by existing state (i.e., by (*,G), (*,*,RP), or (S,G)RPT-bit entries) is in the new RP-Set. If an RP is not in the new RP-set, that RP is considered unreachable and the hash algorithm (see below) is re-performed for each group with locally active state that previously hashed to that RP. This will cause those groups to be distributed among the remaining RPs. When the new RP-Set contains a new RP, the value of the new RP is calculated for each group covered by that C-RP's Group-prefix. Any group for which the new RP's value is greater than the previously active RP's value is switched over to the new RP.

当路由器接收到新的RP集时,它会检查现有状态(即(*,G),(*,*,RP)或(S,G)RPT位条目所引用的每个RPs是否在新的RP集中。如果一个RP不在新RP集中,则该RP被视为不可访问,并且对具有先前哈希到该RP的本地活动状态的每个组重新执行哈希算法(见下文)。这将导致这些组分布在其余RP中。当新RP集包含新RP时,将为该C-RP的组前缀所覆盖的每个组计算新RP的值。新RP值大于先前激活RP值的任何组将切换到新RP。

3.7 Hash Function
3.7 散列函数

The hash function is used by all routers within a domain, to map a group to one of the C-RPs from the RP-Set. For a particular group, G, the hash function uses only those C-RPs whose Group-prefix covers G. The algorithm takes as input the group address, and the addresses of the Candidate RPs, and gives as output one RP address to be used.

一个域内的所有路由器都使用哈希函数将一个组映射到RP集中的一个C-RP。对于特定组G,哈希函数仅使用组前缀覆盖G的C-RP。该算法将组地址和候选RP的地址作为输入,并给出一个要使用的RP地址作为输出。

The protocol requires that all routers hash to the same RP within a domain (except for transients). The following hash function must be used in each router:

该协议要求所有路由器散列到域内的相同RP(瞬态除外)。每个路由器中必须使用以下哈希函数:

1 For RP addresses in the RP-Set, whose Group-prefix covers G, select the RPs with the highest priority (i.e. lowest `Priority' value), and compute a value:

1对于RP集中的RP地址,其组前缀覆盖G,选择具有最高优先级(即最低“优先级”值)的RP,并计算一个值:

   Value(G,M,C(i))=
   (1103515245 * ((1103515245 * (G&M)+12345) XOR C(i)) + 12345) mod 2^31
        
   Value(G,M,C(i))=
   (1103515245 * ((1103515245 * (G&M)+12345) XOR C(i)) + 12345) mod 2^31
        

where C_i is the RP address and M is a hash-mask included in Bootstrap messages. The hash-mask allows a small number of consecutive groups (e.g., 4) to always hash to the same RP. For instance, hierarchically-encoded data can be sent on consecutive group addresses to get the same delay and fate-sharing characteristics.

其中C_i是RP地址,M是包含在引导消息中的哈希掩码。哈希掩码允许少量连续组(例如,4)始终哈希到同一RP。例如,可以在连续组地址上发送分层编码的数据,以获得相同的延迟和命运共享特性。

For address families other than IPv4, a 32-bit digest to be used as C_i must first be derived from the actual RP address. Such a digest method must be used consistently throughout the PIM

对于IPv4以外的地址族,用作C_i的32位摘要必须首先从实际RP地址派生。在整个PIM过程中,必须始终如一地使用这种摘要方法

domain. For IPv6 addresses, we recommend using the equivalent IPv4 address for an IPv4-compatible address, and the CRC-32 checksum [7] of all other IPv6 addresses.

领域对于IPv6地址,我们建议将等效IPv4地址用于IPv4兼容地址,并使用所有其他IPv6地址的CRC-32校验和[7]。

2 From the RPs with the highest priority (i.e. lowest `Priority' value), the candidate with the highest resulting value is then chosen as the RP for that group, and its identity and hash value are stored with the entry created.

2从具有最高优先级(即最低“优先级”值)的RP中,然后选择具有最高结果值的候选者作为该组的RP,其标识和散列值与创建的条目一起存储。

Ties between RPs having the same hash value and priority, are broken in advantage of the highest address.

具有相同散列值和优先级的RP之间的联系因使用最高地址而中断。

The hash function algorithm is invoked by a DR, upon reception of a packet, or IGMP membership indication, for a group, for which the DR has no entry. It is invoked by any router that has (*,*,RP) state when a packet is received for which there is no corresponding (S,G) or (*,G) entry. Furthermore, the hash function is invoked by all routers upon receiving a (*,G) or (*,*,RP) Join/Prune message.

对于DR没有条目的组,DR在接收到数据包或IGMP成员资格指示时调用哈希函数算法。当接收到没有相应(S,G)或(*,G)条目的数据包时,任何具有(*,*,RP)状态的路由器都会调用它。此外,所有路由器在接收(*,G)或(*,*,RP)连接/修剪消息时都会调用哈希函数。

3.8 Processing Timer Events
3.8 处理计时器事件

In this subsection, we enumerate all timers that have been discussed or implied. Since some critical timer events are not associated with the receipt or sending of messages, they are not fully covered by earlier subsections.

在本小节中,我们列举了所有已讨论或暗示的计时器。由于某些关键计时器事件与消息的接收或发送无关,因此前面的小节并未完全介绍这些事件。

Timers are implemented in an implementation-specific manner. For example, a timer may count up or down, or may simply expire at a specific time. Setting a timer to a value T means that it will expire after T seconds.

计时器以特定于实现的方式实现。例如,计时器可以向上或向下计数,也可以在特定时间过期。将计时器设置为值T意味着它将在T秒后过期。

3.8.1 Timers related to tree maintenance
3.8.1 与树维护相关的计时器

Each (S,G), (*,G), and (*,*,RP) route entry has multiple timers associated with it: one for each interface in the outgoing interface list, one for the multicast routing entry itself, and one optional Join/Prune-Suppression-Timer. Each (S,G) and (*,G) entry also has an Assert-timer and a Random-Delay-Join-Timer for use with Asserts. In addition, DR's have a Register-Suppression-timer for each (S,G) entry and every router has a single Join/Prune-timer. (A router may optionally keep separate Join/Prune-timers for different interfaces or route entries if different Join/Prune periods are desired.)

每个(S,G),(*,G)和(*,*,RP)路由条目都有多个与之关联的计时器:一个用于传出接口列表中的每个接口,一个用于多播路由条目本身,以及一个可选的加入/删除抑制计时器。每个(S,G)和(*,G)条目还具有一个断言计时器和一个随机延迟连接计时器,用于断言。此外,DR的每个(s,G)条目都有一个寄存器抑制计时器,每个路由器都有一个连接/删除计时器。(如果需要不同的加入/删减周期,路由器可以选择为不同的接口或路由条目保留单独的加入/删减计时器。)

* [Join/Prune-Timer] This timer is used for periodically sending aggregate Join/Prune messages. To avoid synchronization among routers booting simultaneously, it is initially set to a random value between 1 and [Join/Prune-Period]. When it expires, the timer is immediately restarted

* [加入/删除计时器]此计时器用于定期发送聚合加入/删除消息。为了避免路由器之间同步同时启动,它最初被设置为介于1和[Join/Prune Period]之间的随机值。当它过期时,计时器立即重新启动

to [Join/Prune-Period]. A Join/Prune message is then sent out each interface. This timer should not be restarted by other events.

到[加入/删除期间]。然后,将向每个接口发送一条Join/Prune消息。此计时器不应由其他事件重新启动。

* [Join/Prune-Suppression-Timer (kept per route entry)] A route entry's (optional) Join/Prune-Suppression-Timer may be used to suppress duplicate joins from multiple downstream routers on the same LAN. When a Join message is received from a neighbor on the entry's incoming interface in which the included Holdtime is higher than the router's own [Join/Prune-Holdtime] (with ties broken by higher network layer address), the timer is set to [Join/Prune-Suppression-Timeout], with some random jitter introduced to avoid synchronization of triggered Join/Prune messages on expiration. (The random timeout value must be < 1.5 * [Join/Prune-Period] to prevent losing data after 2 dropped Join/Prunes.) The timer is restarted every time a subsequent Join/Prune message (with higher Holdtime/IP address) for the entry is received on its incoming interface. While the timer is running, Join/Prune messages for the entry are not sent. This timer is idle (not running) for point-to-point links.

* [加入/修剪抑制计时器(每个路由条目保留)]路由条目的(可选)加入/修剪抑制计时器可用于抑制来自同一LAN上多个下游路由器的重复加入。当从条目的传入接口上的邻居接收到加入消息时,其中包含的保持时间高于路由器自己的[Join/Prune Holdtime](通过更高的网络层地址断开连接),计时器设置为[Join/Prune Suppression Timeout],引入一些随机抖动,以避免过期时触发的加入/删除消息的同步。(随机超时值必须小于1.5*[Join/Prune Period],以防止在两次删除的Join/Prune后丢失数据。)每当在其传入接口上收到条目的后续Join/Prune消息(具有更高的Holdtime/IP地址)时,计时器将重新启动。计时器运行时,不会发送条目的加入/删除消息。对于点到点链接,此计时器处于空闲状态(未运行)。

* [Oif-Timer (kept per oif for each route entry)] A timer for each oif of a route entry is used to time out that oif. Because some of the outgoing interfaces in an (S,G) entry are copied from the (*,G) outgoing interface list, they may not have explicit (S,G) join messages from some of the downstream routers (i.e., where members are joining to the (*,G) tree only). Thus, when an Oif-timer is restarted in a (*,G) entry, the Oif-timer is restarted for that interface in each existing (S,G) entry whose oif list contains that interface. The same rule applies to (*,G) and (S,G) entries when restarting an Oif-timer on a (*,*,RP) entry.

* [Oif定时器(为每个路线入口保留每个Oif)]路线入口的每个Oif的定时器用于超时该Oif。由于(S,G)条目中的某些传出接口是从(*,G)传出接口列表复制的,因此它们可能没有来自某些下游路由器的明确(S,G)加入消息(即,成员仅加入(*,G)树)。因此,当在(*,G)条目中重新启动Oif计时器时,Oif计时器将在Oif列表包含该接口的每个现有(S,G)条目中为该接口重新启动。在(*,*,RP)条目上重新启动Oif计时器时,相同的规则适用于(*,G)和(S,G)条目。

The following table shows its usage when first adding the oif to the entry's oiflist, when it should be restarted (unless it is already higher), and when it should be decreased (unless it is already lower).

下表显示了在首次将oif添加到条目的oiflist时、应该重新启动它时(除非它已经较高)以及应该减少它时(除非它已经较低)的用法。

Set to                   | When                         | Applies  to
included Holdtime        | adding oif off Join/Prune    | (S,G) (*,G)
                         |                              | (*,*,RP)
        
Set to                   | When                         | Applies  to
included Holdtime        | adding oif off Join/Prune    | (S,G) (*,G)
                         |                              | (*,*,RP)
        
Increased (only) to      | When                         | Applies to
included  Holdtime       | received Join/Prune          | (S,G) (*,G)
                         |                              | (*,*,RP)
(*,*,RP) oif-timer value | (*,*,RP) oif-timer restarted | (S,G) (*,G)
(*,G)  oif-timer  value  | (*,G) oif-timer restarted    | (S,G)
        
Increased (only) to      | When                         | Applies to
included  Holdtime       | received Join/Prune          | (S,G) (*,G)
                         |                              | (*,*,RP)
(*,*,RP) oif-timer value | (*,*,RP) oif-timer restarted | (S,G) (*,G)
(*,G)  oif-timer  value  | (*,G) oif-timer restarted    | (S,G)
        

When the timer expires, the oif is removed from the oiflist if there are no directly-connected members. When deleted, the oif is also removed in any associated (S,G) or (*,G) entries.

当计时器过期时,如果没有直接连接的成员,oif将从oiflist中删除。删除时,oif也会在任何相关(S,G)或(*,G)条目中删除。

* [Entry-Timer (kept per route entry)] A timer for each route entry is used to time out that entry. The following table summarizes its usage when first adding the oif to the entry's oiflist, and when it should be restarted (unless it is already higher).

* [入口计时器(每个路线入口均保留)]每个路线入口的计时器用于超时该入口。下表总结了首次将oif添加到条目的oiflist时的用法,以及应在何时重新启动它(除非它已经更高)。

Set to | When | Applies to [Data-Timeout] | created off data packet | (S,G) included Holdtime | created off Join/Prune | (S,G) (*,G) (*,*,RP)

设置为|当|应用于[数据超时]|创建的数据包|(S,G)包含的保持时间|创建的脱离连接/修剪|(S,G)(*,G)(*,*,RP)

Increased (only) to   | When                     | Applies to
[Data-Timeout]        | receiving  data  packets | (S,G)no RPT-bit
oif-timer value       | any oif-timer restarted  | (S,G)RPT-bit (*,G)
                      |                          | (*,*,RP)
[Assert-Timeout]      | assert received          | (S,G)RPT-bit (*,G)
                      |                          | w/null oif
        
Increased (only) to   | When                     | Applies to
[Data-Timeout]        | receiving  data  packets | (S,G)no RPT-bit
oif-timer value       | any oif-timer restarted  | (S,G)RPT-bit (*,G)
                      |                          | (*,*,RP)
[Assert-Timeout]      | assert received          | (S,G)RPT-bit (*,G)
                      |                          | w/null oif
        

When the timer expires, the route entry is deleted; if the entry is a (*,G) or (*,*,RP) entry, all associated (S,G)RPT-bit entries are also deleted.

当计时器过期时,删除路由条目;如果条目是(*,G)或(*,*,RP)条目,则所有相关的(S,G)RPT位条目也将被删除。

* [Register-Suppression-Timer (kept per (S,G) route entry)] An (S,G) route entry's Register-Suppression-Timer is used to suppress registers when the RP is receiving data packets natively. When a Register-Stop message for the entry is received from the RP, the timer is set to a random value in the range 0.5 * [Register-Suppression-Timeout] to 1.5 * [Register-Suppression-Timeout]. While the timer is running, Registers for that entry will be suppressed. If null registers are used, a null register is sent [Probe-Time] seconds before the timer expires.

* [寄存器抑制定时器(根据(S,G)路由条目保留)](S,G)路由条目的寄存器抑制定时器用于在RP本机接收数据包时抑制寄存器。当从RP接收到条目的寄存器停止消息时,定时器设置为0.5*[寄存器抑制超时]到1.5*[寄存器抑制超时]范围内的随机值。计时器运行时,该项的寄存器将被抑制。如果使用空寄存器,则在计时器到期前的[Probe Time]秒发送空寄存器。

* [Assert-Timer (per (S,G) or (*,G) route entry)] The Assert-Timer for an (S,G) or (*,G) route entry is used for timing out Asserts received. When an Assert is received and the RPF neighbor is changed to the Assert winner, the Assert-Timer is set to [Assert-Timeout], and is restarted to this value every time a subsequent Assert for the entry is received on its incoming interface. When the timer expires, the router resets its RPF neighbor according to its unicast routing table.

* [断言计时器(根据(S,G)或(*,G)路由条目)](S,G)或(*,G)路由条目的断言计时器用于超时接收到的断言。当接收到断言并且RPF邻居更改为断言赢家时,断言计时器设置为[Assert Timeout],并且每次在其传入接口上接收到条目的后续断言时,都会重新启动到此值。当计时器过期时,路由器根据其单播路由表重置其RPF邻居。

* [Random-Delay-Join-Timer (per (S,G) or (*,G) route entry)] The Random-Delay-Join-Timer for an (S,G) or (*,G) route entry is used to prevent synchronization among downstream routers on a LAN when their RPF neighbor changes. When the RPF neighbor changes, this timer is set to a random value between 0 and [Random-Delay-Join-Timeout] seconds. When the timer expires, a triggered Join/Prune message is sent for the entry unless its Join/Prune-Suppression-Timer is running.

* [随机延迟连接计时器(per(S,G)或(*,G)路由条目)](S,G)或(*,G)路由条目的随机延迟连接计时器用于在其RPF邻居发生变化时防止LAN上下游路由器之间的同步。当RPF邻居更改时,此计时器设置为0到[random Delay Join Timeout]秒之间的随机值。计时器过期时,将为条目发送一条触发的加入/删除消息,除非其加入/删除抑制计时器正在运行。

3.8.2 Timers relating to neighbor discovery
3.8.2 与邻居发现相关的计时器

* [Hello-Timer] This timer is used to periodically send Hello messages. To avoid synchronization among routers booting simultaneously, it is initially set to a random value between 1 and [Hello-Period]. When it expires, the timer is immediately restarted to [Hello-Period]. A Hello message is then sent out each interface. This timer should not be restarted by other events.

* [你好计时器]此计时器用于定期发送你好消息。为了避免路由器之间同步同时启动,最初将其设置为介于1和[Hello Period]之间的随机值。当计时器过期时,计时器将立即重新启动到[Hello Period]。然后向每个接口发送一条Hello消息。此计时器不应由其他事件重新启动。

* [Neighbor-Timer (kept per neighbor)] A Neighbor-Timer for each neighbor is used to time out the neighbor state. When a Hello message is received from a new neighbor, the timer is initially set to the Holdtime included in the Hello message (which is equal to the neighbor's value of [Hello-Holdtime]). Every time a subsequent Hello is received from that neighbor, the timer is restarted to the Holdtime in the Hello. When the timer expires, the neighbor state is removed.

* [邻居计时器(每个邻居保留)]每个邻居的邻居计时器用于超时邻居状态。当从新邻居接收到Hello消息时,计时器最初设置为Hello消息中包含的Holdtime(等于邻居的值[Hello Holdtime])。每次从该邻居接收到后续Hello时,计时器都会重新启动到Hello中的Holdtime。计时器过期时,将删除邻居状态。

3.8.3 Timers relating to RP information
3.8.3 与RP信息相关的计时器

* [C-RP-Adv-Timer (C-RP's only)] Routers configured as candidate RP's use this timer to periodically send C-RP-Adv messages. To avoid synchronization among routers booting simultaneously, the timer is initially set to a random value between 1 and [C-RP-Adv-Period]. When it expires, the timer is immediately restarted to [C-RP-Adv-Period]. A C-RP-Adv message is then sent to the elected BSR. This timer should not be restarted by other events.

* [C-RP-Adv-Timer(仅C-RP)]配置为候选RP的路由器使用此计时器定期发送C-RP-Adv消息。为了避免路由器之间同步同时启动,计时器最初设置为介于1和[C-RP-Adv-Period]之间的随机值。计时器到期后,立即重新启动至[C-RP-Adv-Period]。然后将C-RP-Adv消息发送至所选BSR。此计时器不应由其他事件重新启动。

* [RP-Timer (BSR only, kept per RP in RP-Set)] The BSR uses a timer per RP in the RP-Set to monitor liveness. When a C-RP is added to the RP-Set, its timer is set to the Holdtime included in the C-RP-Adv message from that C-RP (which is equal to the C-RP's value of [RP-Holdtime]). Every time a subsequent C-RP-Adv is received from that RP, its timer is restarted to the Holdtime in the C-RP-Adv. When the timer expires, the RP is removed from the RP-Set included in Bootstrap messages.

* [RP定时器(仅限BSR,在RP集中按RP保存)]BSR在RP集中按RP使用定时器来监控活跃度。将C-RP添加到RP集合时,其计时器设置为来自该C-RP的C-RP-Adv消息中包含的保持时间(等于C-RP的值[RP保持时间])。每次从该RP接收到后续C-RP-Adv时,其计时器将重新启动至C-RP-Adv中的保持时间。当计时器过期时,RP将从引导消息中包含的RP集中删除。

* [Bootstrap-Timer] This timer is used by the BSR to periodically originate Bootstrap messages, and by other routers to time out the BSR (see 3.6.3). This timer is initially set to [Bootstrap-Timeout]. A C-BSR restarts this timer to [Bootstrap-Timeout] upon receiving a Bootstrap message from a preferred router, and originates a Bootstrap message and restarts the timer to [Bootstrap-Period] when it expires. Routers not configured as C-BSR's restart this timer to [Bootstrap-Timeout] upon receiving a Bootstrap message from the elected or a more preferred BSR, and ignore Bootstrap messages from non-preferred C-BSRs while it is running.

* [引导计时器]BSR使用该计时器定期发起引导消息,其他路由器使用该计时器对BSR进行超时(见3.6.3)。此计时器最初设置为[引导超时]。C-BSR在接收到来自首选路由器的引导消息后,将该计时器重新启动到[引导超时],并启动引导消息,并在计时器过期时将计时器重新启动到[引导期间]。未配置为C-BSR的路由器在收到来自所选或更首选BSR的引导消息时,将此计时器重新启动到[引导超时],并在其运行时忽略来自非首选C-BSR的引导消息。

3.8.4 Default timer values
3.8.4 默认计时器值

Most of the default timeout values for state information are 3.5 times the refresh period. For example, Hellos refresh Neighbor state and the default Hello-timer period is 30 seconds, so a default Neighbor-timer duration of 105 seconds is included in the Holdtime field of the Hellos. In order to improve convergence, however, the default timeout value for information related to RP liveness and Bootstrap messages is 2.5 times the refresh period.

状态信息的大多数默认超时值是刷新周期的3.5倍。例如,Hellos刷新邻居状态,默认Hello计时器周期为30秒,因此Hellos的Holdtime字段中包含默认的邻居计时器持续时间105秒。但是,为了提高收敛性,与RP活动性和引导消息相关的信息的默认超时值是刷新周期的2.5倍。

In this version of the spec, we suggest particular numerical timer settings. A future version of the specification will specify a mechanism for timer values to be scaled based upon observed network parameters.

在此版本的规范中,我们建议使用特定的数字计时器设置。该规范的未来版本将指定一种机制,用于根据观察到的网络参数调整计时器值。

* [Join/Prune-Period] This is the interval between sending Join/Prune messages. Default: 60 seconds. This value may be set to take into account such things as the configured bandwidth and expected average number of multicast route entries for the attached network or link (e.g., the period would be longer for lower-speed links, or for routers in the center of the network that expect to have a larger number of entries). In addition, a router could modify this value (and corresponding Join/Prune-Holdtime value) if the number of route entries changes significantly (e.g., by an order of magnitude). For example, given a default minimum Join/Prune-Period value, if the number of route entries with a particular iif increases from N to N*100, the router could increase its Join/Prune-Period (and Join/Prune-Holdtime), for that interface, by a factor of 10; and if/when the number of entries decreases back to N, the Join/Prune-Period (and Join/Prune-Holdtime) could be decreased to its previous value. If the Join/Prune-Period is modified, these changes should be made relatively infrequently and the router should continue to refresh at its previous Join/Prune-Period for at least Join/Prune-Holdtime, in order to allow the upstream router to

* [Join/Prune Period]这是发送Join/Prune消息之间的间隔。默认值:60秒。该值可以被设置为考虑诸如所连接的网络或链路的配置带宽和预期的多播路由条目的平均数量等因素(例如,对于较低速度的链路,或者对于网络中心的路由器,期望具有更多条目的周期将更长)。此外,如果路由条目的数量发生显著变化(例如,一个数量级),路由器可以修改该值(以及相应的Join/Prune Holdtime值)。例如,给定默认的最小连接/修剪周期值,如果具有特定iif的路由条目的数量从N增加到N*100,则路由器可以将该接口的连接/修剪周期(以及连接/修剪保持时间)增加10倍;如果/当条目数减回到N时,连接/修剪周期(以及连接/修剪保持时间)可以减少到它以前的值。如果修改了加入/删减周期,则应相对不频繁地进行这些更改,并且路由器应在其上一个加入/删减周期至少在加入/删减保持时间内继续刷新,以便允许上游路由器

adapt.

适应

* [Join-Prune Holdtime] This is the Holdtime specified in Join/Prune messages, and is used to time out oifs. This should be set to 3.5 * [Join/Prune-Period]. Default: 210 seconds.

* [Join Prune Holdtime]这是在Join/Prune消息中指定的保持时间,用于超时OIF。该值应设置为3.5*[加入/删除周期]。默认值:210秒。

* [Join/Prune-Suppression-Timeout] This is the mean interval between receiving a Join/Prune with a higher Holdtime (with ties broken by higher network layer address) and allowing duplicate Join/Prunes to be sent again. This should be set to approximately 1.25 * [Join/Prune-Period]. Default: 75 seconds.

* [Join/Prune Suppression Timeout]这是接收具有更高保持时间的Join/Prune(通过更高的网络层地址断开连接)和允许再次发送重复的Join/Prune之间的平均间隔。该值应设置为大约1.25*[连接/修剪周期]。默认值:75秒。

* [Data-Timeout] This is the time after which (S,G) state for a silent source will be deleted. Default: 210 seconds.

* [数据超时]这是静默源的(S,G)状态将被删除的时间。默认值:210秒。

* [Register-Suppression-Timeout] This is the mean interval between receiving a Register-Stop and allowing Registers to be sent again. A lower value means more frequent register bursts at RP, while a higher value means longer join latency for new receivers. Default: 60 seconds. (Note that if null Registers are sent [Probe-Time] seconds before the timeout, register bursts are prevents, and [Register-Suppression-Timeout] may be lowered to decrease join latency.)

* [寄存器抑制超时]这是接收寄存器停止和允许再次发送寄存器之间的平均间隔。较低的值意味着RP时更频繁的寄存器突发,而较高的值意味着新接收器的连接延迟更长。默认值:60秒。(请注意,如果在超时前的[Probe Time]秒发送空寄存器,则会阻止寄存器突发,并且[register Suppression timeout]可能会降低以减少连接延迟。)

* [Probe-Time] When null Registers are used, this is the time between sending a null Register and the Register-Suppression-Timer expiring unless it is restarted by receiving a Register-Stop. Thus, a null Register would be sent when the Register-Suppression-Timer reaches this value. Default: 5 seconds.

* [探测时间]当使用空寄存器时,这是发送空寄存器和寄存器抑制计时器到期之间的时间,除非通过接收寄存器停止重新启动。因此,当寄存器抑制计时器达到此值时,将发送空寄存器。默认值:5秒。

* [Assert-Timeout] This is the interval between the last time an Assert is received, and the time at which the assert is timed out. Default: 180 seconds.

* [断言超时]这是上一次收到断言与断言超时之间的间隔。默认值:180秒。

* [Random-Delay-Join-Timeout] This is the maximum interval between the time when the RPF neighbor changes, and the time at which a triggered Join/Prune message is sent. Default: 4.5 seconds.

* [Random Delay Join Timeout]这是RPF邻居更改的时间与发送触发的加入/删除消息的时间之间的最大间隔。默认值:4.5秒。

* [Hello-Period] This is the interval between sending Hello messages. Default: 30 seconds.

* [Hello Period]这是发送Hello消息之间的间隔。默认值:30秒。

* [Hello-Holdtime] This is the Holdtime specified in Hello messages, after which neighbors will time out their neighbor entries for the router. This should be set to 3.5 * [Hello-Period]. Default: 105 seconds.

* [Hello Holdtime]这是Hello消息中指定的Holdtime,之后邻居将超时路由器的邻居条目。该值应设置为3.5*[Hello Period]。默认值:105秒。

* [C-RP-Adv-Period] For C-RPs, this is the interval between sending C-RP-Adv messages. Default: 60 seconds.

* [C-RP-Adv-Period]对于C-RPs,这是发送C-RP-Adv消息之间的间隔。默认值:60秒。

* [RP-Holdtime] For C-RPs, this is the Holdtime specified in C-RP-Adv messages, and is used by the BSR to time out RPs. This should be set to 2.5 * [C-RP-Adv-Period]. Default: 150 seconds.

* [RP保持时间]对于C-RPs,这是在C-RP-Adv消息中指定的保持时间,由BSR用于超时RPs。该值应设置为2.5*[C-RP-Adv-Period]。默认值:150秒。

* [Bootstrap-Period] At the elected BSR, this is the interval between originating Bootstrap messages, and should be equal to 60 seconds.

* [Bootstrap Period]在选定的BSR上,这是原始引导消息之间的间隔,应等于60秒。

* [Bootstrap-Timeout] This is the time after which the elected BSR will be assumed unreachable when Bootstrap messages are not received from it. This should be set to `2 * [Bootstrap-Period] + 10'. Default: 130 seconds.

* [Bootstrap Timeout]这是当没有从所选BSR接收到引导消息时,该BSR将被认为不可访问的时间。这应该设置为'2*[引导周期]+10'。默认值:130秒。

3.9 Summary of flags used
3.9 使用的标志摘要

Following is a summary of all the flags used in our scheme.

以下是我们方案中使用的所有标志的摘要。

Bit | Used in | Definition

定义中使用的位

Border | Register | Register for external sources is coming from PIM multicast border router Null | Register | Register sent as Probe of RP, the encapsulated IP data packet should not be forwarded RPT | Route entry | Entry represents state on the RP-tree RPT | Join/Prune | Join is associated with the shared tree and therefore the Join/Prune message is propagated along the RP-tree (source encoded is an RP address) RPT | Assert | The data packet was routed down the shared tree; thus, the path indicated corresponds to the RP tree SPT | (S,G) entry | Packets have arrived on the iif towards S, and the iif is different from the (*,G) iif WC |Join | The receiver expects to receive packets from all sources via this (shared tree) path. Thus, the Join/Prune applies to a (*,G) entry WC | Route entry | Wildcard entry; if there is no more specific match for a particular source, packets will be forwarded according to this entry

Border | Register |外部源寄存器来自PIM多播边界路由器Null | Register | Register作为RP探测器发送,封装的IP数据包不应转发RPT |路由条目|条目表示RP树上的状态RPT |连接/修剪|连接与共享树相关联,因此连接/修剪消息沿RP树传播(源编码为RP地址)RPT |断言|数据包沿共享树向下路由;因此,指示的路径对应于RP树SPT |(S,G)条目|数据包已到达iif上朝向S,并且iif不同于(*,G)iif WC | Join |接收器期望通过该(共享树)路径从所有源接收数据包。因此,联接/删减适用于(*,G)条目WC |路由条目|通配符条目;如果特定源没有更具体的匹配项,则将根据此条目转发数据包

3.10 Security
3.10 安全

All PIM control messages may use IPsec [6] to address security concerns.

所有PIM控制消息都可以使用IPsec[6]来解决安全问题。

4 Packet Formats

4数据包格式

This section describes the details of the packet formats for PIM control messages.

本节介绍PIM控制消息的数据包格式的详细信息。

All PIM control messages have protocol number 103.

所有动力传动系接口模块控制信息都有协议编号103。

Basically, PIM messages are either unicast (e.g. Registers and Register-Stop), or multicast hop-by-hop to `ALL-PIM-ROUTERS' group `224.0.0.13' (e.g. Join/Prune, Asserts, etc.).

基本上,PIM消息可以是单播(例如寄存器和寄存器停止),也可以是逐跳多播到“ALL-PIM-ROUTERS”组“224.0.0.13”(例如加入/删除、断言等)。

     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |PIM Ver| Type  | Reserved      |           Checksum            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |PIM Ver| Type  | Reserved      |           Checksum            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

PIM Ver PIM Version number is 2.

PIM版本号为2。

Type Types for specific PIM messages. PIM Types are:

键入特定PIM消息的类型。PIM类型包括:

0 = Hello 1 = Register 2 = Register-Stop 3 = Join/Prune 4 = Bootstrap 5 = Assert 6 = Graft (used in PIM-DM only) 7 = Graft-Ack (used in PIM-DM only) 8 = Candidate-RP-Advertisement

0=你好1=寄存器2=寄存器停止3=连接/删除4=引导5=断言6=嫁接(仅用于PIM-DM)7=嫁接确认(仅用于PIM-DM)8=候选RP播发

Reserved set to zero. Ignored upon receipt.

保留设置为零。收到时忽略。

Checksum The checksum is the 16-bit one's complement of the one's complement sum of the entire PIM message, (excluding the data portion in the Register message). For computing the checksum, the checksum field is zeroed.

校验和校验和是整个PIM消息(不包括寄存器消息中的数据部分)的16位1的补码和。为了计算校验和,校验和字段被置零。

4.1 Encoded Source and Group Address formats
4.1 编码源和组地址格式

1 Encoded-Unicast-address: Takes the following format:

1编码单播地址:采用以下格式:

  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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Addr Family   | Encoding Type |     Unicast 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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Addr Family   | Encoding Type |     Unicast Address           |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+++++++
        

Addr Family The address family of the `Unicast Address' field of this address.

Addr Family此地址的“单播地址”字段的地址族。

Here is the address family numbers assigned by IANA:

以下是IANA分配的地址系列号:

 Number    Description
 --------  ---------------------------------------------------------
      0    Reserved
      1    IP (IP version 4)
      2    IP6 (IP version 6)
      3    NSAP
      4    HDLC (8-bit multidrop)
      5    BBN 1822
      6    802 (includes all 802 media plus Ethernet "canonical format")
      7    E.163
      8    E.164 (SMDS, Frame Relay, ATM)
      9    F.69 (Telex)
     10    X.121 (X.25, Frame Relay)
     11    IPX
     12    Appletalk
     13    Decnet IV
     14    Banyan Vines
     15    E.164 with NSAP format subaddress
        
 Number    Description
 --------  ---------------------------------------------------------
      0    Reserved
      1    IP (IP version 4)
      2    IP6 (IP version 6)
      3    NSAP
      4    HDLC (8-bit multidrop)
      5    BBN 1822
      6    802 (includes all 802 media plus Ethernet "canonical format")
      7    E.163
      8    E.164 (SMDS, Frame Relay, ATM)
      9    F.69 (Telex)
     10    X.121 (X.25, Frame Relay)
     11    IPX
     12    Appletalk
     13    Decnet IV
     14    Banyan Vines
     15    E.164 with NSAP format subaddress
        

Encoding Type The type of encoding used within a specific Address Family. The value `0' is reserved for this field, and represents the native encoding of the Address Family.

编码类型特定地址族中使用的编码类型。值“0”为该字段保留,表示地址族的本机编码。

Unicast Address The unicast address as represented by the given Address Family and Encoding Type.

单播地址由给定地址族和编码类型表示的单播地址。

2 Encoded-Group-Address: Takes the following format:

2编码组地址:采用以下格式:

  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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Addr Family   | Encoding Type |   Reserved    |  Mask Len     |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                Group 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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Addr Family   | Encoding Type |   Reserved    |  Mask Len     |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                Group multicast Address                        |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

Addr Family described above.

上面描述的Addr族。

Encoding Type described above.

上述编码类型。

Reserved Transmitted as zero. Ignored upon receipt.

保留传输为零。收到时忽略。

Mask Len The Mask length is 8 bits. The value is the number of contiguous bits left justified used as a mask which describes the address. It is less than or equal to the address length in bits for the given Address Family and Encoding Type. If the message is sent for a single group then the Mask length must equal the address length in bits for the given Address Family and Encoding Type. (e.g. 32 for IPv4 native encoding and 128 for IPv6 native encoding).

掩码长度掩码长度为8位。该值是用作描述地址的掩码的左对齐连续位数。它小于或等于给定地址族和编码类型的地址长度(以位为单位)。如果为单个组发送消息,则掩码长度必须等于给定地址族和编码类型的地址长度(以位为单位)。(例如,IPv4本机编码为32,IPv6本机编码为128)。

Group multicast Address contains the group address.

组多播地址包含组地址。

3 Encoded-Source-Address: Takes the following format:

3编码源地址:采用以下格式:

  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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Addr Family   | Encoding Type | Rsrvd   |S|W|R|  Mask Len     |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                        Source 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
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 | Addr Family   | Encoding Type | Rsrvd   |S|W|R|  Mask Len     |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
 |                        Source Address                         |
 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

Addr Family described above.

上面描述的Addr族。

Encoding Type described above.

上述编码类型。

Reserved Transmitted as zero, ignored on receipt.

保留传输为零,接收时忽略。

S,W,R See Section 4.5 for details.

S、 W,R详见第4.5节。

Mask Length Mask length is 8 bits. The value is the number of contiguous bits left justified used as a mask which describes the address. The mask length must be less than or equal to the address length in bits for the given Address Family and Encoding Type. If the message is sent for a single group then the Mask length must equal the address length in bits for the given Address Family and Encoding Type. In version 2 of PIM, it is strongly recommended that this field be set to 32 for IPv4 native encoding.

掩码长度掩码长度为8位。该值是用作描述地址的掩码的左对齐连续位数。掩码长度必须小于或等于给定地址系列和编码类型的地址长度(以位为单位)。如果为单个组发送消息,则掩码长度必须等于给定地址族和编码类型的地址长度(以位为单位)。在PIM版本2中,强烈建议将IPv4本机编码的此字段设置为32。

Source Address The source address.

源地址源地址。

4.2 Hello Message
4.2 你好消息

It is sent periodically by routers on all interfaces.

它由所有接口上的路由器定期发送。

     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |PIM Ver| Type  | Reserved      |           Checksum            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |       OptionType              |         OptionLength          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          OptionValue                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+++
    |                               .                               |
    |                               .                               |
    |                               .                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |       OptionType              |         OptionLength          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          OptionValue                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+++
        
     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |PIM Ver| Type  | Reserved      |           Checksum            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |       OptionType              |         OptionLength          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          OptionValue                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+++
    |                               .                               |
    |                               .                               |
    |                               .                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |       OptionType              |         OptionLength          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          OptionValue                          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+++
        

PIM Version, Type, Reserved, Checksum Described above.

上述PIM版本、类型、保留、校验和。

OptionType The type of the option given in the following OptionValue field.

OptionType以下OptionValue字段中给定的选项类型。

OptionLength The length of the OptionValue field in bytes.

OptionLength OptionValue字段的长度(以字节为单位)。

OptionValue A variable length field, carrying the value of the option.

OptionValue一个可变长度字段,携带选项的值。

The Option fields may contain the following values:

选项字段可能包含以下值:

* OptionType = 1; OptionLength = 2; OptionValue = Holdtime; where Holdtime is the amount of time a receiver must keep the neighbor reachable, in seconds. If the Holdtime is set to `0xffff', the receiver of this message never times out the neighbor. This may be used with ISDN lines, to avoid keeping the link up with periodic Hello messages. Furthermore, if the Holdtime is set to `0', the information is timed out immediately.

* OptionType=1;可选长度=2;OptionValue=保持时间;其中Holdtime是接收器必须使邻居保持可访问的时间量,以秒为单位。如果Holdtime设置为“0xffff”,则此消息的接收者不会使邻居超时。这可以与ISDN线路一起使用,以避免用周期性的Hello消息保持链路。此外,如果保持时间设置为“0”,则信息将立即超时。

* OptionType 2 to 16: reserved

* 选项类型2至16:保留

* The rest of the OptionTypes are defined in another document.

* 其余选项类型在另一个文档中定义。

In general, options may be ignored; but a router must not ignore the

一般来说,选项可能被忽略;但是路由器不能忽视

4.3 Register Message
4.3 注册信息

A Register message is sent by the DR or a PMBR to the RP when a multicast packet needs to be transmitted on the RP-tree. Source address is set to the address of the DR, destination address is to the RP's address.

当需要在RP树上传输多播数据包时,DR或PMBR向RP发送一条注册消息。源地址设置为DR的地址,目标地址设置为RP的地址。

     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |PIM Ver| Type  | Reserved      |           Checksum            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |B|N|                       Reserved                            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
                          Multicast data packet
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |PIM Ver| Type  | Reserved      |           Checksum            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |B|N|                       Reserved                            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                                                               |
                          Multicast data packet
    |                                                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

PIM Version, Type, Reserved, Checksum Described above. Note that the checksum for Registers is done only on the PIM header, excluding the data packet portion.

上述PIM版本、类型、保留、校验和。注意,寄存器的校验和仅在PIM报头上进行,不包括数据包部分。

B The Border bit. If the router is a DR for a source that it is directly connected to, it sets the B bit to 0. If the router is a PMBR for a source in a directly connected cloud, it sets the B bit to 1.

B边界位。如果路由器是直接连接到的源的DR,它会将B位设置为0。如果路由器是直连云中某个源的PMBR,它会将B位设置为1。

N The Null-Register bit. Set to 1 by a DR that is probing the RP before expiring its local Register-Suppression timer. Set to 0 otherwise.

N为空寄存器位。在RP的本地寄存器抑制计时器过期之前,由正在探测RP的DR设置为1。否则设置为0。

Multicast data packet The original packet sent by the source.

多播数据包源发送的原始数据包。

For (S,G) null Registers, the Multicast data packet portion contains only a dummy header with S as the source address, G as the destination address, and a data length of zero.

对于(S,G)空寄存器,多播数据分组部分仅包含伪报头,其中S作为源地址,G作为目的地址,数据长度为零。

4.4 Register-Stop Message
4.4 寄存器停止消息

A Register-Stop is unicast from the RP to the sender of the Register message. Source address is the address to which the register was addressed. Destination address is the source address of the register message.

寄存器停止从RP单播到寄存器消息的发送方。源地址是寄存器的地址。目标地址是寄存器消息的源地址。

     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |PIM Ver| Type  | Reserved      |           Checksum            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                    Encoded-Group Address                      |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                    Encoded-Unicast-Source 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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |PIM Ver| Type  | Reserved      |           Checksum            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                    Encoded-Group Address                      |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                    Encoded-Unicast-Source Address             |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

PIM Version, Type, Reserved, Checksum Described above.

上述PIM版本、类型、保留、校验和。

Encoded-Group Address Format described above. Note that for Register-Stops the Mask Len field contains full address length * 8 (e.g. 32 for IPv4 native encoding), if the message is sent for a single group.

上面描述的编码组地址格式。请注意,如果为单个组发送消息,则对于寄存器停止,掩码Len字段包含完整地址长度*8(例如,IPv4本机编码为32)。

Encoded-Unicast-Source Address host address of source from multicast data packet in register. The format for this address is given in the Encoded-Unicast-Address in 4.1. A special wild card value (0's), can be used to indicate any source.

编码的单播源地址来自寄存器中多播数据包的源的主机地址。该地址的格式在4.1中的编码单播地址中给出。特殊通配符值(0)可用于指示任何源。

4.5 Join/Prune Message
4.5 加入/删除消息

A Join/Prune message is sent by routers towards upstream sources and RPs. Joins are sent to build shared trees (RP trees) or source trees (SPT). Prunes are sent to prune source trees when members leave groups as well as sources that do not use the shared tree.

路由器向上游源和RPs发送加入/删减消息。连接被发送到构建共享树(RP树)或源树(SPT)。当成员离开组以及不使用共享树的源时,将发送修剪以修剪源树。

     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |PIM Ver| Type  | Reserved      |           Checksum            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |             Encoded-Unicast-Upstream Neighbor Address         |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Reserved     | Num groups    |          Holdtime             |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |            Encoded-Multicast Group Address-1                  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   Number of Joined  Sources   |   Number of Pruned Sources    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |               Encoded-Joined Source Address-1                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                             .                                 |
    |                             .                                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |               Encoded-Joined Source Address-n                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |               Encoded-Pruned Source Address-1                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                             .                                 |
    |                             .                                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |               Encoded-Pruned Source Address-n                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                           .                                   |
    |                           .                                   |
    |                           .                                   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                Encoded-Multicast Group Address-n              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   Number of Joined  Sources   |   Number of Pruned Sources    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |PIM Ver| Type  | Reserved      |           Checksum            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |             Encoded-Unicast-Upstream Neighbor Address         |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |  Reserved     | Num groups    |          Holdtime             |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |            Encoded-Multicast Group Address-1                  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   Number of Joined  Sources   |   Number of Pruned Sources    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |               Encoded-Joined Source Address-1                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                             .                                 |
    |                             .                                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |               Encoded-Joined Source Address-n                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |               Encoded-Pruned Source Address-1                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                             .                                 |
    |                             .                                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |               Encoded-Pruned Source Address-n                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                           .                                   |
    |                           .                                   |
    |                           .                                   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                Encoded-Multicast Group Address-n              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |   Number of Joined  Sources   |   Number of Pruned Sources    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    |               Encoded-Joined Source Address-1                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                             .                                 |
    |                             .                                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |               Encoded-Joined Source Address-n                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |               Encoded-Pruned Source Address-1                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                             .                                 |
    |                             .                                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |               Encoded-Pruned Source Address-n                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    |               Encoded-Joined Source Address-1                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                             .                                 |
    |                             .                                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |               Encoded-Joined Source Address-n                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |               Encoded-Pruned Source Address-1                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                             .                                 |
    |                             .                                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |               Encoded-Pruned Source Address-n                 |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

PIM Version, Type, Reserved, Checksum Described above.

上述PIM版本、类型、保留、校验和。

Encoded-Unicast Upstream Neighbor Address The address of the RPF or upstream neighbor. The format for this address is given in the Encoded-Unicast-Address in 4.1. .IP "Reserved" Transmitted as zero, ignored on receipt.

编码单播上行邻居地址RPF或上行邻居的地址。该地址的格式在4.1中的编码单播地址中给出。IP“保留”传输为零,接收时忽略。

Holdtime The amount of time a receiver must keep the Join/Prune state alive, in seconds. If the Holdtime is set to `0xffff', the receiver of this message never times out the oif. This may be used with ISDN lines, to avoid keeping the link up with periodical Join/Prune messages. Furthermore, if the Holdtime is set to `0', the information is timed out immediately.

Holdtime接收器必须使连接/删除状态保持活动状态的时间量,以秒为单位。如果保持时间设置为“0xffff”,则此消息的接收者不会超时oif。这可用于ISDN线路,以避免使用定期加入/删减消息保持链路。此外,如果保持时间设置为“0”,则信息将立即超时。

Number of Groups The number of multicast group sets contained in the message.

组数消息中包含的多播组集数。

Encoded-Multicast group address For format description see Section 4.1. A wild card group in the (*,*,RP) join is represented by a 224.0.0.0 in the group address field and `4' in the mask length field. A (*,*,RP) join also has the WC-bit and the RPT-bit set.

编码多播组地址的格式描述见第4.1节。(*,*,RP)联接中的通配符组在组地址字段中用224.0.0.0表示,在掩码长度字段中用“4”表示。(*,*,RP)联接还设置了WC位和RPT位。

Number of Joined Sources Number of join source addresses listed for a given group.

已加入源的数量为给定组列出的加入源地址的数量。

Join Source Address-1 .. n This list contains the sources that the sending router will forward multicast datagrams for if received on the interface this message is sent on.

加入源地址-1。。n此列表包含发送路由器将转发多播数据报的源,如果在发送此消息的接口上收到此消息。

See format section 4.1. The fields explanation for the Encoded-Source-Address format follows:

见格式第4.1节。编码源地址格式的字段解释如下:

Reserved Described above.

如上所述。

S The Sparse bit is a 1 bit value, set to 1 for PIM-SM. It is used for PIM v.1 compatibility.

S稀疏位为1位值,对于PIM-SM设置为1。它用于PIM v.1兼容性。

W The WC bit is a 1 bit value. If 1, the join or prune applies to the (*,G) or (*,*,RP) entry. If 0, the join or prune applies to the (S,G) entry where S is Source Address. Joins and prunes sent towards the RP must have this bit set.

W WC位为1位值。如果为1,则联接或修剪将应用于(*,G)或(*,*,RP)条目。如果为0,则联接或修剪应用于(S,G)项,其中S是源地址。发送到RP的联接和修剪必须设置此位。

R The RPT-bit is a 1 bit value. If 1, the information about (S,G) is sent towards the RP. If 0, the information must be sent toward S, where S is the Source Address.

R RPT位为1位值。如果为1,则有关(S,G)的信息发送到RP。如果为0,则信息必须发送到S,其中S是源地址。

Mask Length, Source Address Described above.

掩码长度,如上所述的源地址。

Represented in the form of < WC-bit >< RPT-bit ><Mask length >< Source address>:

以<WC位><RPT位><Mask length><Source address>的形式表示:

A source address could be a host IPv4 native encoding address :

源地址可以是主机IPv4本机编码地址:

              < 0 >< 0 >< 32 >< 192.1.1.17 >
        
              < 0 >< 0 >< 32 >< 192.1.1.17 >
        

A source address could be the RP's IP address :

源地址可以是RP的IP地址:

              < 1 >< 1 >< 32 >< 131.108.13.111 >
        
              < 1 >< 1 >< 32 >< 131.108.13.111 >
        

A source address could be a subnet address to prune from the RP-tree :

源地址可以是要从RP树中删除的子网地址:

              < 0 >< 1 >< 28 >< 192.1.1.16 >
        
              < 0 >< 1 >< 28 >< 192.1.1.16 >
        

A source address could be a general aggregate :

源地址可以是一般聚合:

              < 0 >< 0 >< 16 >< 192.1.0.0 >
        
              < 0 >< 0 >< 16 >< 192.1.0.0 >
        

Number of Pruned Sources Number of prune source addresses listed for a group.

已修剪源的数目为组列出的修剪源地址的数目。

Prune Source Address-1 .. n This list contains the sources that the sending router does not want to forward multicast datagrams for when received on the interface this message is sent on. If the Join/Prune message boundary exceeds the maximum packet size, then the join and prune lists for the same group must be included in the same packet.

删除源地址-1。。n此列表包含发送路由器在发送此消息的接口上接收时不希望转发多播数据报的源。如果加入/删减消息边界超过最大数据包大小,则同一组的加入和删减列表必须包含在同一数据包中。

4.6 Bootstrap Message
4.6 引导消息

The Bootstrap messages are multicast to `ALL-PIM-ROUTERS' group, out all interfaces having PIM neighbors (excluding the one over which the message was received). Bootstrap messages are sent with TTL value of 1. Bootstrap messages originate at the BSR, and are forwarded by intermediate routers.

引导消息被多播到“ALL-PIM-ROUTERS”组,输出所有具有PIM邻居的接口(不包括接收消息的接口)。以TTL值1发送引导消息。引导消息起源于BSR,并由中间路由器转发。

Bootstrap message is divided up into `semantic fragments', if the original message exceeds the maximum packet size boundaries.

如果原始消息超过最大数据包大小边界,引导消息将被分成“语义片段”。

The semantics of a single `fragment' is given below:

单个“片段”的语义如下所示:

     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |PIM Ver| Type  | Reserved      |           Checksum            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |         Fragment Tag          | Hash Mask len | BSR-priority  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                 Encoded-Unicast-BSR-Address                   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                         Encoded-Group Address-1               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | RP-Count-1    | Frag RP-Cnt-1 |         Reserved              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                 Encoded-Unicast-RP-Address-1                  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          RP1-Holdtime         | RP1-Priority  |   Reserved    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                 Encoded-Unicast-RP-Address-2                  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          RP2-Holdtime         | RP2-Priority  |   Reserved    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                               .                               |
    |                               .                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |PIM Ver| Type  | Reserved      |           Checksum            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |         Fragment Tag          | Hash Mask len | BSR-priority  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                 Encoded-Unicast-BSR-Address                   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                         Encoded-Group Address-1               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | RP-Count-1    | Frag RP-Cnt-1 |         Reserved              |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                 Encoded-Unicast-RP-Address-1                  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          RP1-Holdtime         | RP1-Priority  |   Reserved    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                 Encoded-Unicast-RP-Address-2                  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          RP2-Holdtime         | RP2-Priority  |   Reserved    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                               .                               |
    |                               .                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    |                 Encoded-Unicast-RP-Address-m                  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          RPm-Holdtime         | RPm-Priority  |   Reserved    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                         Encoded-Group Address-2               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                               .                               |
    |                               .                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                         Encoded-Group Address-n               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | RP-Count-n    | Frag RP-Cnt-n |          Reserved             |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                 Encoded-Unicast-RP-Address-1                  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          RP1-Holdtime         | RP1-Priority  |   Reserved    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                 Encoded-Unicast-RP-Address-2                  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          RP2-Holdtime         | RP2-Priority  |   Reserved    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                               .                               |
    |                               .                               |
    |                               .                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                 Encoded-Unicast-RP-Address-m                  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          RPm-Holdtime         | RPm-Priority  |   Reserved    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
    |                 Encoded-Unicast-RP-Address-m                  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          RPm-Holdtime         | RPm-Priority  |   Reserved    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                         Encoded-Group Address-2               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                               .                               |
    |                               .                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                         Encoded-Group Address-n               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | RP-Count-n    | Frag RP-Cnt-n |          Reserved             |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                 Encoded-Unicast-RP-Address-1                  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          RP1-Holdtime         | RP1-Priority  |   Reserved    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                 Encoded-Unicast-RP-Address-2                  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          RP2-Holdtime         | RP2-Priority  |   Reserved    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                               .                               |
    |                               .                               |
    |                               .                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                 Encoded-Unicast-RP-Address-m                  |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |          RPm-Holdtime         | RPm-Priority  |   Reserved    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

PIM Version, Type, Reserved, Checksum Described above.

上述PIM版本、类型、保留、校验和。

Fragment Tag A randomly generated number, acts to distinguish the fragments belonging to different Bootstrap messages; fragments belonging to same Bootstrap message carry the same `Fragment Tag'.

片段标记一个随机生成的数字,用于区分属于不同引导消息的片段;属于同一引导消息的片段带有相同的“片段标记”。

Hash Mask len The length (in bits) of the mask to use in the hash function. For IPv4 we recommend a value of 30. For IPv6 we recommend a value of 126.

哈希掩码len要在哈希函数中使用的掩码的长度(以位为单位)。对于IPv4,我们建议值为30。对于IPv6,我们建议值为126。

BSR-priority Contains the BSR priority value of the included BSR. This field is considered as a high order byte when comparing BSR addresses.

BSR优先级包含包含的BSR的BSR优先级值。在比较BSR地址时,此字段被视为高阶字节。

Encoded-Unicast-BSR-Address The address of the bootstrap router for the domain. The format for this address is given in the Encoded-Unicast-Address in 4.1. .IP "Encoded-Group Address-1..n" The group prefix (address and mask) with which the Candidate RPs are associated. Format previously described.

编码单播BSR地址域的引导路由器的地址。该地址的格式在4.1中的编码单播地址中给出。IP“编码组地址-1..n”与候选RP关联的组前缀(地址和掩码)。前面描述的格式。

RP-Count-1..n The number of Candidate RP addresses included in the whole Bootstrap message for the corresponding group prefix. A router does not replace its old RP-Set for a given group prefix until/unless it receives `RP-Count' addresses for that prefix; the addresses could be carried over several fragments. If only part of the RP-Set for a given group prefix was received, the router discards it, without updating that specific group prefix's RP-Set.

RP-Count-1..n对应组前缀的整个引导消息中包含的候选RP地址数。路由器不会为给定的组前缀替换其旧RP集,直到/除非它收到该前缀的“RP计数”地址;这些地址可以由几个片段组成。如果只收到给定组前缀的RP集的一部分,路由器将丢弃它,而不更新该特定组前缀的RP集。

Frag RP-Cnt-1..m The number of Candidate RP addresses included in this fragment of the Bootstrap message, for the corresponding group prefix. The `Frag RP-Cnt' field facilitates parsing of the RP-Set for a given group prefix, when carried over more than one fragment.

Frag RP-Cnt-1..m对应组前缀的引导消息片段中包含的候选RP地址数。“Frag RP Cnt”字段有助于对给定组前缀的RP集进行解析(当携带多个片段时)。

Encoded-Unicast-RP-address-1..m The address of the Candidate RPs, for the corresponding group prefix. The format for this address is given in the Encoded-Unicast-Address in 4.1. .IP "RP1..m-Holdtime" The Holdtime for the corresponding RP. This field is copied from the `Holdtime' field of the associated RP stored at the BSR.

Encoded-Unicast-RP-address-1..m对应组前缀的候选RPs的地址。该地址的格式在4.1中的编码单播地址中给出。IP“RP1..m-Holdtime”对应RP的保持时间。此字段从存储在BSR的相关RP的“保持时间”字段复制而来。

RP1..m-Priority The `Priority' of the corresponding RP and Encoded-Group Address. This field is copied from the `Priority' field stored at the BSR when receiving a Candidate-RP-Advertisement. The highest priority is `0' (i.e. the lower the value of the `Priority' field, the higher). Note that the priority is per RP per Encoded-Group Address.

RP1..m-Priority对应RP和编码组地址的“优先级”。当接收到候选RP广告时,此字段从存储在BSR中的“优先级”字段复制而来。最高优先级为“0”(即“优先级”字段的值越低,优先级越高)。请注意,优先级为每个编码组地址的每个RP。

4.7 Assert Message
4.7 断言消息

The Assert message is sent when a multicast data packet is received on an outgoing interface corresponding to the (S,G) or (*,G) associated with the source.

当在与源关联的(S,G)或(*,G)对应的传出接口上接收到多播数据包时,发送断言消息。

     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |PIM Ver| Type  | Reserved      |           Checksum            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                      Encoded-Group Address                    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |              Encoded-Unicast-Source Address                   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |R|                        Metric Preference                    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          Metric                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |PIM Ver| Type  | Reserved      |           Checksum            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                      Encoded-Group Address                    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |              Encoded-Unicast-Source Address                   |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |R|                        Metric Preference                    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                          Metric                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

PIM Version, Type, Reserved, Checksum Described above.

上述PIM版本、类型、保留、校验和。

Encoded-Group Address The group address to which the data packet was addressed, and which triggered the Assert. Format previously described.

编码组地址数据包寻址的组地址,触发断言。前面描述的格式。

Encoded-Unicast-Source Address Source address from multicast datagram that triggered the Assert packet to be sent. The format for this address is given in the Encoded-Unicast-Address in 4.1. .IP "R" RPT-bit is a 1 bit value. If the multicast datagram that triggered the Assert packet is routed down the RP tree, then the RPT-bit is 1; if the multicast datagram is routed down the SPT, it is 0.

编码的单播源地址来自触发要发送的断言数据包的多播数据报的源地址。该地址的格式在4.1中的编码单播地址中给出。IP“R”RPT位是1位值。如果触发断言数据包的多播数据报沿RP树向下路由,则RPT位为1;如果多播数据报沿SPT向下路由,则为0。

Metric Preference Preference value assigned to the unicast routing protocol that provided the route to Host address.

分配给提供到主机地址的路由的单播路由协议的度量首选项值。

Metric The unicast routing table metric. The metric is in units applicable to the unicast routing protocol used.

Metric单播路由表度量。度量单位适用于所使用的单播路由协议。

4.8 Graft Message
4.8 嫁接信息

Used in dense-mode. Refer to PIM dense mode specification.

用于密集模式。请参阅动力传动系接口模块密集模式规范。

4.9 Graft-Ack Message
4.9 嫁接确认消息

Used in dense-mode. Refer to PIM dense mode specification.

用于密集模式。请参阅动力传动系接口模块密集模式规范。

4.10 Candidate-RP-Advertisement
4.10 候选RP广告

Candidate-RP-Advertisements are periodically unicast from the C-RPs to the BSR.

候选RP广告周期性地从C-RP单播到BSR。

     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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |PIM Ver| Type  | Reserved      |           Checksum            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Prefix-Cnt    |   Priority    |             Holdtime          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                 Encoded-Unicast-RP-Address                    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                         Encoded-Group Address-1               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                               .                               |
    |                               .                               |
    |                               .                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                         Encoded-Group 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
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |PIM Ver| Type  | Reserved      |           Checksum            |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    | Prefix-Cnt    |   Priority    |             Holdtime          |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                 Encoded-Unicast-RP-Address                    |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                         Encoded-Group Address-1               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                               .                               |
    |                               .                               |
    |                               .                               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
    |                         Encoded-Group Address-n               |
    +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

PIM Version, Type, Reserved, Checksum Described above.

上述PIM版本、类型、保留、校验和。

Prefix-Cnt The number of encoded group addresses included in the message; indicating the group prefixes for which the C-RP is advertising. A Prefix-Cnt of `0' implies a prefix of 224.0.0.0 with mask length of 4; i.e. all multicast groups. If the C-RP is not configured with Group-prefix information, the C-RP puts a default value of `0' in this field.

前缀Cnt消息中包括的编码组地址的数目;指示C-RP正在宣传的组前缀。前缀Cnt为'0'意味着前缀为224.0.0.0,掩码长度为4;i、 e.所有多播组。如果C-RP未配置组前缀信息,C-RP会在此字段中输入默认值“0”。

Priority The `Priority' of the included RP, for the corresponding Encoded-Group Address (if any). highest priority is `0' (i.e. the lower the value of the `Priority' field, the higher the priority). This field is stored at the BSR upon receipt along with the RP address and corresponding Encoded-Group Address.

优先级——对应编码组地址(如有)所包含RP的“优先级”。最高优先级为“0”(即“优先级”字段的值越低,优先级越高)。该字段在收到时与RP地址和相应的编码组地址一起存储在BSR中。

Holdtime The amount of time the advertisement is valid. This field allows advertisements to be aged out.

Holdtime广告有效的时间量。此字段允许广告过期。

Encoded-Unicast-RP-Address The address of the interface to advertise as a Candidate RP. The format for this address is given in the Encoded-Unicast-Address in 4.1. .IP "Encoded-Group Address-1..n" The group prefixes for which the C-RP is advertising. Format previously described.

编码单播RP地址作为候选RP播发的接口地址。该地址的格式在4.1中的编码单播地址中给出。IP“编码组地址-1..n”C-RP为其播发的组前缀。前面描述的格式。

5 Acknowledgments

5致谢

Tony Ballardie, Scott Brim, Jon Crowcroft, Bill Fenner, Paul Francis, Joel Halpern, Horst Hodel, Polly Huang, Stephen Ostrowski, Lixia Zhang and Girish Chandranmenon provided detailed comments on previous drafts. The authors of CBT [8] and membership of the IDMR WG provided many of the motivating ideas for this work and useful feedback on design details.

托尼·巴拉迪、斯科特·布里姆、乔恩·克劳克罗夫特、比尔·芬纳、保罗·弗朗西斯、乔尔·哈尔彭、霍斯特·霍德尔、波利·黄、斯蒂芬·奥斯特罗夫斯基、张丽霞和吉里什·钱德兰梅农对之前的草稿作了详细评论。CBT[8]的作者和IDMR工作组的成员为这项工作提供了许多激励性的想法,并就设计细节提供了有用的反馈。

This work was supported by the National Science Foundation, ARPA, cisco Systems and Sun Microsystems.

这项工作得到了阿尔帕河国家科学基金会、思科系统和太阳微系统的支持。

6 Appendices

6附录

6.1 Appendix I: Major Changes and Updates to the Spec
6.1 附录一:规范的主要变更和更新

This appendix populates the major changes in the specification document as compared to `draft-ietf-idmr-pim-spec-01.ps,txt'.

与“draft-ietf-idmr-pim-spec-01.ps,txt”相比,本附录填充了规范文件中的主要变更。

bsubsection*Major Changes

b子部分*重大变更

List of changes since March '96 IETF:

自1996年3月IETF以来的变更列表:

1. (*,*,RP) Joins state and data forwarding check; replaces (*,G-Prefix) Joins state for interoperability. (*,G) negative cache introduced for the (*,*,RP) state supporting mechanisms.

1. (*,*,RP)加入状态和数据转发检查;替换(*,G-前缀)连接状态以实现互操作性。(*,G)为(*,*,RP)状态支持机制引入了负缓存。

2. Semantic fragmentation for the Bootstrap message.

2. 引导消息的语义碎片。

3. Refinement of Assert details.

3. 断言细节的细化。

4. Addition and refinement of Join/Prune suppression and Register suppression (introduction of null Registers).

4. 添加和细化连接/剪枝抑制和寄存器抑制(引入空寄存器)。

5. Editorial changes and clarifications to the timers section.

5. 对计时器部分的编辑更改和澄清。

6. Addition of Appendix II (BSR Election and RP-Set Distribution), and Appendix III (Glossary of Terms).

6. 增加附录II(BSR选择和RP集分配)和附录III(术语表)。

7. Addition of table of contents.

7. 增加目录。

List of changes incurred since version 1 of the spec.:

规范第1版之后发生的变更列表:

1. Proposal and refinement of bootstrap router (BSR) election mechanisms

1. 引导路由器(BSR)选择机制的提出和改进

2. Introduction of hash functions for Group to RP mapping

2. 组到RP映射的哈希函数介绍

3. New RP-liveness indication mechanisms based upon the the Bootstrap Router (BSR) and the Bootstrap messages.

3. 基于引导路由器(BSR)和引导消息的新RP活性指示机制。

4. Removal of reachability messages, RP reports and multiple RPs per group.

4. 删除可达性消息、RP报告和每组多个RP。

*Packet Format Changes

*数据包格式更改

Packet Format incurred updates to accommodate different address lengths, and address aggregation.

数据包格式更新以适应不同的地址长度和地址聚合。

1 The `Addr Family' and `Encoding Type' fields were added to the packet formats.

1数据包格式中添加了'Addr Family'和'Encoding Type'字段。

2 The Encoded source and group address formats were introduced, with the use of a `Mask length' field to allow aggregation, section 4.1.

2第4.1节介绍了编码的源地址和组地址格式,使用“掩码长度”字段允许聚合。

3 Packet formats are no longer IGMP messages; rather PIM messages.

3数据包格式不再是IGMP消息;而不是PIM消息。

PIM message types and formats were also modified:

PIM消息类型和格式也进行了修改:

[Note: most changes were made to the May 95 version, unless otherwise specified].

[注:除另有规定外,大多数更改均为1995年5月版本]。

1 Obsolete messages:

1过时信息:

Register-Ack [Feb. 96]

注册确认[96年2月]

Poll and Poll Response [Feb. 96]

民意测验和民意测验回应[96年2月]

RP-Reachability [Feb. 96]

RP可达性[96年2月]

RPlist-Mapping [Feb. 96]

RPlist映射[96年2月]

2 New messages:

2新消息:

Candidate-RP-Advertisement [change made in October 95] RP-Set [Feb. 96]

候选人RP广告【95年10月变更】RP套装【96年2月】

3 Modified messages:

3条修改后的信息:

         Join/Prune [Feb. 96]
         Register [Feb. 96]
         Register-Stop [Feb.  96]
         Hello (addition of OptionTypes) [Aug 96]
        
         Join/Prune [Feb. 96]
         Register [Feb. 96]
         Register-Stop [Feb.  96]
         Hello (addition of OptionTypes) [Aug 96]
        

4 Renamed messages:

4条已重命名的消息:

Query messages are renamed as Hello messages [Aug. 96] RP-Set messages are renamed as Bootstrap messages [Aug. 96]

查询消息重命名为Hello消息[96年8月]RP集消息重命名为引导消息[96年8月]

6.2 Appendix II: BSR Election and RP-Set Distribution
6.2 附录二:BSR选举和RP集分配

For simplicity, the bootstrap message is used in both the BSR election and the RP-Set distribution mechanisms. These mechanisms are described by the following state machine, illustrated in figure 4. The protocol transitions for a Candidate-BSR are given in state diagram (a). For routers not configured as Candidate-BSRs, the protocol transitions are given in state diagram (b).

为简单起见,在BSR选择和RP集分发机制中都使用引导消息。这些机制由以下状态机描述,如图4所示。候选BSR的协议转换在状态图(a)中给出。对于未配置为候选BSR的路由器,协议转换在状态图(b)中给出。

[Figures are present only in the postscript version] Fig. 4 State Diagram for the BSR election and RP-Set distribution

[图仅在postscript版本中显示]图4 BSR选择和RP集分布的状态图

Each PIM router keeps a bootstrap-timer, initialized to [Bootstrap-Timeout], in addition to a local BSR field `LclBSR' (initialized to a local address if Candidate-BSR, or to 0 otherwise), and a local RP-Set `LclRP-Set' (initially empty). The main stimuli to the state machine are timer events and arrival of bootstrap messages:

除了本地BSR字段“LclBSR”(如果是候选BSR,则初始化为本地地址,否则初始化为0)和本地RP集“LclRP集”(最初为空),每个PIM路由器保留一个初始化为[引导超时]的引导计时器。对状态机的主要刺激是计时器事件和引导消息的到达:

bsubsection*Initial States and Timer Events

B子部分*初始状态和计时器事件

1

1.

2 If the router is a Candidate-BSR:

2如果路由器是候选BSR:

1

1.

2 The router operates initially in the `CandBSR' state, where it does not originate any bootstrap messages.

2路由器最初在“CandBSR”状态下运行,在此状态下,它不会产生任何引导消息。

3 If the bootstrap-timer expires, and the current state is `CandBSR', the router originates a bootstrap message carrying the local RP-Set and its own BSR priority and address, restarts the bootstrap-timer at [Bootstrap-Period] seconds, and transits into the `ElectedBSR' state. Note that the actual sending of the bootstrap message may be delayed by a random value to reduce transient control overhead. To obtain best results, the random value is set such that the preferred BSR is the first to originate a bootstrap message. We propose the following as an efficient implementation of the random value delay (in seconds):

3如果引导计时器过期,且当前状态为“CandBSR”,路由器将发起一条引导消息,其中包含本地RP集及其自身的BSR优先级和地址,并在[bootstrap Period]秒时重新启动引导计时器,然后过渡到“ElectedBSR”状态。请注意,引导消息的实际发送可能会延迟一个随机值,以减少瞬态控制开销。为了获得最佳结果,将随机值设置为首选BSR是第一个发起引导消息的。我们提出以下建议,作为随机值延迟(秒)的有效实现:

         Delay = 5 + 2 * log_2(1 + bestPriority - myPriority) + AddrDelay
        
         Delay = 5 + 2 * log_2(1 + bestPriority - myPriority) + AddrDelay
        

where myPriority is the Candidate-BSR's configured priority, and bestPriority equals:

其中myPriority是候选BSR配置的优先级,bestPriority等于:

bestPriority = Max(storedPriority, myPriority) ]

最佳优先级=最大(存储优先级,myPriority)]

and AddrDelay is given by the following:

AddrDelay由以下内容给出:

               1 if ( bestPriority equals myPriority) then
               [AddrDelay = log_2(bestAddr - myAddr) / 16, ]
        
               1 if ( bestPriority equals myPriority) then
               [AddrDelay = log_2(bestAddr - myAddr) / 16, ]
        
               2 else [AddrDelay = 2 - (myAddr / 2^31) ]
        
               2 else [AddrDelay = 2 - (myAddr / 2^31) ]
        

where myAddr is the Candidate-BSR's address, and bestAddr is the stored BSR's address.

其中myAddr是候选BSR的地址,bestAddr是存储的BSR地址。

4 If the bootstrap-timer expires, and the current state is `ElectedBSR', the router originates a bootstrap message, and restarts the RP-Set timer at [Bootstrap-Period]. No state transition is incurred.

4如果引导计时器过期,且当前状态为“SelectedBSR”,路由器将发出引导消息,并在[引导周期]重新启动RP Set计时器。没有发生状态转换。

This way, the elected BSR originates periodic bootstrap messages every [Bootstrap-Period].

这样,所选BSR每隔[引导周期]生成周期性引导消息。

3 If a router is not a Candidate-BSR:

3如果路由器不是候选BSR:

1

1.

2 The router operates initially in the `AxptAny' state. In such state, a router accepts the first bootstrap message from the The Reverse Path Forwarding (RPF) neighbor toward the included BSR. The RPF neighbor in this case is the next hop router en route to the included BSR.

2路由器最初在“AxptAny”状态下运行。在这种状态下,路由器接受来自反向路径转发(RPF)邻居的朝向所包括BSR的第一引导消息。在这种情况下,RPF邻居是路由到包含的BSR的下一跳路由器。

3 If the bootstrap-timer expires, and the current state is `AxptPref'-- where the router accepts only preferred bootstrap messages (those that carry BSR-priority and address higher than, or equal to, `LclBSR') from the RPF neighbor toward the included BSR-- the router transits into the `AxptAny' state.

3如果引导计时器过期,且当前状态为“AxptPref”-路由器只接受来自RPF邻居的指向所包含BSR的首选引导消息(那些BSR优先级和地址高于或等于“LclBSR”)时,路由器将转换为“AxptAny”状态。

In this case, if an elected BSR becomes unreachable, the routers start accepting bootstrap messages from another Candidate-BSR after the bootstrap-timer expires. All PIM routers within a domain converge on the preferred reachable Candidate-BSR.

在这种情况下,如果选择的BSR变得不可访问,则路由器在引导计时器过期后开始接受来自另一候选BSR的引导消息。域内的所有PIM路由器都会聚在首选的可到达候选BSR上。

Receiving Bootstrap Message:

正在接收引导消息:

To avoid loops, an RPF check is performed on the included BSR address. Upon receiving a bootstrap message from the RPF neighbor toward the included BSR, the following actions are taken:

为了避免循环,对包含的BSR地址执行RPF检查。从RPF邻居接收到指向所包含BSR的引导消息后,将采取以下操作:

1 If the router is not a Candidate-BSR:

1如果路由器不是候选BSR:

1 If the current state is `AxptAny', the router accepts the bootstrap message, and transits into the `AxptPref' state.

1如果当前状态为“AxptAny”,路由器接受引导消息,并转换为“AxptPref”状态。

2 If the current state is `AxptPref', and the bootstrap message is preferred, the message is accepted. No state transition is incurred.

2如果当前状态为“AxptPref”,并且首选引导消息,则接受该消息。没有发生状态转换。

2 If the router is a Candidate-BSR, and the bootstrap message is preferred, the message is accepted. Further, if this happens when the current state is `Elected BSR', the router transits into the `CandBSR' state.

2如果路由器是候选BSR,并且首选引导消息,则接受该消息。此外,如果在当前状态为“当选BSR”时发生这种情况,则路由器转换为“CandBSR”状态。

When a bootstrap message is accepted, the router restarts the bootstrap-timer at [Bootstrap-Timeout], stores the received BSR priority and address in `LclBSR', and the received RP-Set in `LclRP-Set', and forwards the bootstrap message out all interfaces except the receiving interface.

当接受引导消息时,路由器在[bootstrap Timeout]重新启动引导计时器,将接收到的BSR优先级和地址存储在'LclBSR'中,将接收到的RP集存储在'LclRP Set'中,并将引导消息转发到除接收接口外的所有接口。

If a bootstrap message is rejected, no state transitions are triggered.

如果拒绝引导消息,则不会触发状态转换。

6.3 Appendix III: Glossary of Terms
6.3 附录三:术语表

Following is an alphabetized list of terms and definitions used throughout this specification.

以下是本规范中使用的术语和定义的字母顺序列表。

* { Bootstrap router (BSR)}. A BSR is a dynamically elected router within a PIM domain. It is responsible for constructing the RP-Set and originating Bootstrap messages.

* {引导路由器(BSR)}。BSR是PIM域中动态选择的路由器。它负责构造RP集并发起引导消息。

* { Candidate-BSR (C-BSR)}. A C-BSR is a router configured to participate in the BSR election and act as BSRs if elected.

* {候选BSR(C-BSR)}。C-BSR是一种路由器,配置为参与BSR选择,并在选择时充当BSR。

* { Candidate RP (C-RP)}. A C-RP is a router configured to send periodic Candidate-RP-Advertisement messages to the BSR, and act as an RP when it receives Join/Prune or Register messages for the advertised group prefix.

* {候选RP(C-RP)}。C-RP是一种路由器,配置为向BSR发送周期性候选RP广告消息,并在接收到广告组前缀的加入/删减或注册消息时充当RP。

* { Designated Router (DR)}. The DR sets up multicast route entries and sends corresponding Join/Prune and Register messages on behalf of directly-connected receivers and sources, respectively. The DR may or may not be the same router as the IGMP Querier. The DR may or may not be the long-term, last-hop router for the group; a router on the LAN that has a lower metric route to the data source, or to the group's RP, may take over the role of sending Join/Prune messages.

* {指定路由器(DR)}。DR设置多播路由条目,并分别代表直接连接的接收器和源发送相应的加入/删减和注册消息。DR可能是也可能不是与IGMP查询器相同的路由器。DR可能是也可能不是该组的长期最后一跳路由器;LAN上具有到数据源或组RP的较低度量路由的路由器可以接管发送加入/删除消息的角色。

* { Incoming interface (iif)}. The iif of a multicast route entry indicates the interface from which multicast data packets are accepted for forwarding. The iif is initialized when the entry is created.

* {传入接口(iif)}。多播路由条目的iif表示接收多播数据包进行转发的接口。iif在创建条目时初始化。

* Join list. The Join list is one of two lists of addresses that is included in a Join/Prune message; each address refers to a source or RP. It indicates those sources or RPs to which downstream receiver(s) wish to join.

* 加入名单。连接列表是包含在连接/删除消息中的两个地址列表之一;每个地址都指向一个源或RP。它表示下游接收方希望加入的源或RP。

* { Last-hop router}. The last-hop router is the last router to receive multicast data packets before they are delivered to directly-connected member hosts. In general the last-hop router is the DR for the LAN. However, under various conditions described in this document a parallel router connected to the same LAN may take over as the last-hop router in place of the DR.

* {最后一跳路由器}。最后一跳路由器是在将多播数据包传送到直接连接的成员主机之前接收多播数据包的最后一个路由器。通常,最后一跳路由器是LAN的DR。然而,在本文件中描述的各种情况下,连接到同一LAN的并行路由器可能会取代DR,成为最后一跳路由器。

* { Outgoing interface (oif) list}. Each multicast route entry has an oif list containing the outgoing interfaces to which multicast packets should be forwarded.

* {传出接口(oif)列表}。每个多播路由条目都有一个oif列表,其中包含多播数据包应转发到的传出接口。

* Prune List. The Prune list is the second list of addresses that is included in a Join/Prune message. It indicates those sources or RPs from which downstream receiver(s) wish to prune.

* 删除列表。修剪列表是包含在联接/修剪消息中的第二个地址列表。它表示下游接收方希望修剪的源或RP。

* { PIM Multicast Border Router (PMBR)}. A PMBR connects a PIM domain to other multicast routing domain(s).

* {PIM多播边界路由器(PMBR)}。PMBR将PIM域连接到其他多播路由域。

* { Rendezvous Point (RP)}. Each multicast group has a shared-tree via which receivers hear of new sources and new receivers hear of all sources. The RP is the root of this per-group shared tree, called the RP-Tree.

* {会合点(RP)}。每个多播组都有一个共享树,通过它,接收者可以听到新的源,而新的接收者可以听到所有的源。RP是每个组共享树(称为RP树)的根。

* { RP-Set}. The RP-Set is a set of RP addresses constructed by the BSR based on Candidate-RP advertisements received. The RP-Set information is distributed to all PIM routers in the BSR's PIM domain.

* {RP Set}。RP集是由BSR基于接收到的候选RP广告构造的RP地址集。RP集信息被分发到BSR的PIM域中的所有PIM路由器。

* { Reverse Path Forwarding (RPF)}. RPF is used to select the appropriate incoming interface for a multicast route entry . The RPF neighbor for an address X is the the next-hop router used to forward packets toward X. The RPF interface is the interface to that RPF neighbor. In the common case this is the next hop used by the unicast routing protocol for sending unicast packets toward X. For example, in cases where unicast and multicast routes are not congruent, it can be different.

* {反向路径转发(RPF)}。RPF用于为多播路由条目选择适当的传入接口。地址X的RPF邻居是用于向X转发数据包的下一跳路由器。RPF接口是该RPF邻居的接口。在常见情况下,这是单播路由协议用于向X发送单播数据包的下一跳。例如,在单播和多播路由不一致的情况下,它可以不同。

* { Route entry.} A multicast route entry is state maintained in a router along the distribution tree and is created, and updated based on incoming control messages. The route entry may be different from the forwarding entry; the latter is used to forward data packets in real time. Typically a forwarding entry is not created until data packets arrive, the forwarding entry's iif and oif list are copied from the route entry, and the forwarding entry may be flushed and recreated at will.

* {路由条目。}多播路由条目在路由器中沿分发树进行状态维护,并根据传入的控制消息进行创建和更新。路由条目可能不同于转发条目;后者用于实时转发数据包。通常,直到数据包到达,转发条目的iif和oif列表从路由条目复制,转发条目才会创建,并且可以随意刷新和重新创建转发条目。

* { Shortest path tree (SPT)}. The SPT is the multicast distribution tree created by the merger of all of the shortest paths that connect receivers to the source (as determined by unicast routing).

* {最短路径树(SPT)}。SPT是由连接接收器和源的所有最短路径(由单播路由确定)合并而成的多播分发树。

* { Sparse Mode (SM)}. SM is one mode of operation of a multicast protocol. PIM SM uses explicit Join/Prune messages and Rendezvous points in place of Dense Mode PIM's and DVMRP's broadcast and prune mechanism.

* {稀疏模式(SM)}。SM是多播协议的一种操作模式。PIM SM使用显式连接/修剪消息和集合点代替密集模式PIM和DVMRP的广播和修剪机制。

* { Wildcard (WC) multicast route entry}. Wildcard multicast route entries are those entries that may be used to forward packets for any source sending to the specified group. Wildcard bots in the join list of a Join/Prune message represent either a (*,G) or (*,*,RP) join; in the prune list they represent a (*,G) prune.

* {通配符(WC)多播路由条目}。通配符多播路由条目是可用于转发发送到指定组的任何源的数据包的条目。连接/删除消息的连接列表中的通配符bot表示(*,G)或(*,*,RP)连接;在修剪列表中,它们表示(*,G)修剪。

* { (S,G) route entry}. (S,G) is a source-specific route entry. It may be created in response to data packets, Join/Prune messages, or Asserts. The (S,G) state in routers creates a source-rooted, shortest path (or reverse shortest path) distribution tree. (S,G)RPT bit entries are source-specific entries on the shared RP-Tree; these entries are used to prune particular sources off of the shared tree.

* {(S,G)路由入口}。(S,G)是特定于源的路线入口。它可以响应数据包、加入/删除消息或断言而创建。路由器中的(S,G)状态创建源根最短路径(或反向最短路径)分布树。(S,G)RPT位条目是共享RP树上的源特定条目;这些条目用于从共享树中删除特定的源。

* { (*,G) route entry}. Group members join the shared RP-Tree for a particular group. This tree is represented by (*,G) multicast route entries along the shortest path branches between the RP and the group members.

* {(*,G)路由入口}。组成员加入特定组的共享RP树。该树由沿着RP和组成员之间的最短路径分支的(*,G)多播路由条目表示。

* { (*,*,RP) route entry}. (*,*,RP) refers to any source and any multicast group that maps to the RP included in the entry. The routers along the shortest path branches between a domain's RP(s) and its PMBRs keep (*,*,RP) state and use it to determine how to deliver packets toward the PMBRs if data packets arrive for which there is not a longer match. The wildcard group in the (*,*,RP) route entry is represented by a group address of 224.0.0.0 and a mask length of 4 bits.

* {(*,*,RP)路线入口}。(*,*,RP)指映射到条目中包含的RP的任何源和任何多播组。沿着最短路径的路由器在域的RP和其PMBR之间分支,保持(*,*,RP)状态,并使用它来确定如果数据包到达时没有更长的匹配,如何向PMBR发送数据包。(*,*,RP)路由条目中的通配符组由224.0.0.0的组地址和4位的掩码长度表示。

References

工具书类

1. Deering, S., Estrin, D., Farinacci, D., Jacobson, V., Liu, C., Wei, L., Sharma, P., and A. Helmy, "Protocol Independent Multicast (pim): Motivation and Architecture", Work in Progress.

1. Deering,S.,Estrin,D.,Farinaci,D.,Jacobson,V.,Liu,C.,Wei,L.,Sharma,P.,和A.Helmy,“协议独立多播(pim):动机和架构”,正在进行中。

2. S. Deering, D. Estrin, D. Farinacci, V. Jacobson, C. Liu, and L. Wei. The pim architecture for wide-area multicast routing. ACM Transactions on Networks, April 1996.

2. S.Deering、D.Estrin、D.Farinaci、V.Jacobson、C.Liu和L.Wei。广域多播路由的pim体系结构。ACM网络交易,1996年4月。

3. Estrin, D., Farinacci, D., Jacobson, V., Liu, C., Wei, L., Sharma, P., and A. Helmy, "Protocol Independent Multicast-dense Mode (pim-dm): Protocol Specification", Work in Progress.

3. Estrin,D.,Farinaci,D.,Jacobson,V.,Liu,C.,Wei,L.,Sharma,P.,和A.Helmy,“协议独立多播密集模式(pim dm):协议规范”,正在进行中。

4. Deering, S., "Host Extensions for IP Multicasting", STD 5, RFC 1112, August 1989.

4. Deering,S.,“IP多播的主机扩展”,STD 5,RFC 1112,1989年8月。

5. Fenner, W., "Internet Group Management Protocol, Version 2", RFC 2236, November 1997.

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

6. Atkinson, R., "Security Architecture for the Internet Protocol", RFC 1825, August 1995.

6. 阿特金森,R.,“互联网协议的安全架构”,RFC 18251995年8月。

7. Mark R. Nelson. File verification using CRC. Dr. Dobb's Journal, May 1992.

7. 马克·R·纳尔逊。使用CRC进行文件验证。杜布博士的期刊,1992年5月。

8. A.J. Ballardie, P.F. Francis, and J.Crowcroft. Core based trees. In Proceedings of the ACM SIGCOMM, San Francisco, 1993.

8. A.J.巴拉迪、P.F.弗朗西斯和J.Crowcroft。基于核心的树。在ACM SIGCOMM的诉讼中,旧金山,1993。

Authors' Addresses

作者地址

NOTE: The author list has been reordered to reflect the involvement in detailed editorial work on this specification document. The first four authors are the primary editors and are listed alphabetically. The rest of the authors, also listed alphabetically, participated in all aspects of the architectural and detailed design but managed to get away without hacking the latex!

注:作者列表已重新排序,以反映参与本规范文件详细编辑工作的情况。前四位作者是主要编辑,按字母顺序排列。其余的作者(也按字母顺序列出)参与了建筑和详细设计的各个方面,但成功地逃脱了攻击!

Deborah Estrin Computer Science Dept/ISI University of Southern Calif. Los Angeles, CA 90089

底波拉埃斯特林计算机科学系/南加州大学ISI大学,洛杉矶,CA 90089

   EMail: estrin@usc.edu
        
   EMail: estrin@usc.edu
        

Dino Farinacci Cisco Systems Inc. 170 West Tasman Drive, San Jose, CA 95134

迪诺·法里纳奇思科系统公司,加利福尼亚州圣何塞西塔斯曼大道170号,邮编95134

   EMail: dino@cisco.com
        
   EMail: dino@cisco.com
        

Ahmed Helmy Computer Science Dept. University of Southern Calif. Los Angeles, CA 90089

CA南加州大学艾哈迈德HelMy计算机科学系,洛杉矶90089

   EMail: ahelmy@catarina.usc.edu
        
   EMail: ahelmy@catarina.usc.edu
        

David Thaler EECS Department University of Michigan Ann Arbor, MI 48109

密歇根大学David Thaler分校EECS系,安娜堡48109

   EMail: thalerd@eecs.umich.edu
        
   EMail: thalerd@eecs.umich.edu
        

Stephen Deering Xerox PARC 3333 Coyote Hill Road Palo Alto, CA 94304

加利福尼亚州帕洛阿尔托市郊狼山路3333号斯蒂芬·迪林施乐公园,邮编94304

   EMail: deering@parc.xerox.com
        
   EMail: deering@parc.xerox.com
        

Mark Handley Department of Computer Science University College London Gower Street London, WC1E 6BT UK

马克·汉德利英国伦敦高尔街伦敦大学学院计算机科学系,WC1E 6BT

   EMail: m.handley@cs.ucl.ac.uk
        
   EMail: m.handley@cs.ucl.ac.uk
        

Van Jacobson Lawrence Berkeley Laboratory 1 Cyclotron Road Berkeley, CA 94720

加利福尼亚州伯克利回旋加速器路1号范雅各布森劳伦斯伯克利实验室,邮编94720

   EMail: van@ee.lbl.gov
        
   EMail: van@ee.lbl.gov
        

Ching-gung Liu Computer Science Dept. University of Southern Calif. Los Angeles, CA 90089

加利福尼亚南加州大学计算机科学系,CA洛杉矶90089

   EMail: charley@catarina.usc.edu
        
   EMail: charley@catarina.usc.edu
        

Puneet Sharma Computer Science Dept. University of Southern Calif. Los Angeles, CA 90089

CA南加州大学夏尔马计算机科学系,洛杉矶,90089

   EMail: puneet@catarina.usc.edu
        
   EMail: puneet@catarina.usc.edu
        

Liming Wei Cisco Systems Inc. 170 West Tasman Drive, San Jose, CA 95134

利明伟思科系统有限公司,加利福尼亚州圣何塞西塔斯曼大道170号,邮编95134

   EMail: lwei@cisco.com
        
   EMail: lwei@cisco.com
        

Full Copyright Statement

完整版权声明

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

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

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.

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