Network Working Group T. Speakman Request for Comments: 3208 Cisco Systems Category: Experimental J. Crowcroft UCL J. Gemmell Microsoft D. Farinacci Procket Networks S. Lin Juniper Networks D. Leshchiner TIBCO Software M. Luby Digital Fountain T. Montgomery Talarian Corporation L. Rizzo University of Pisa A. Tweedly N. Bhaskar R. Edmonstone R. Sumanasekera L. Vicisano Cisco Systems December 2001
Network Working Group T. Speakman Request for Comments: 3208 Cisco Systems Category: Experimental J. Crowcroft UCL J. Gemmell Microsoft D. Farinacci Procket Networks S. Lin Juniper Networks D. Leshchiner TIBCO Software M. Luby Digital Fountain T. Montgomery Talarian Corporation L. Rizzo University of Pisa A. Tweedly N. Bhaskar R. Edmonstone R. Sumanasekera L. Vicisano Cisco Systems December 2001
PGM Reliable Transport Protocol Specification
PGM可靠传输协议规范
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 (2001). All Rights Reserved.
版权所有(C)互联网协会(2001年)。版权所有。
Abstract
摘要
Pragmatic General Multicast (PGM) is a reliable multicast transport protocol for applications that require ordered or unordered, duplicate-free, multicast data delivery from multiple sources to multiple receivers. PGM guarantees that a receiver in the group either receives all data packets from transmissions and repairs, or is able to detect unrecoverable data packet loss. PGM is
实用通用多播(PGM)是一种可靠的多播传输协议,适用于需要从多个源到多个接收器的有序或无序、无重复的多播数据传输的应用。PGM保证组中的接收器接收来自传输和修复的所有数据包,或者能够检测不可恢复的数据包丢失。PGM是
specifically intended as a workable solution for multicast applications with basic reliability requirements. Its central design goal is simplicity of operation with due regard for scalability and network efficiency.
专门用于具有基本可靠性要求的多播应用程序的可行解决方案。它的中心设计目标是操作简单,并适当考虑可扩展性和网络效率。
Table of Contents
目录
1. Introduction and Overview .................................. 3 2. Architectural Description .................................. 9 3. Terms and Concepts ......................................... 12 4. Procedures - General ....................................... 18 5. Procedures - Sources ....................................... 19 6. Procedures - Receivers ..................................... 22 7. Procedures - Network Elements .............................. 27 8. Packet Formats ............................................. 31 9. Options .................................................... 40 10. Security Considerations .................................... 56 11. Appendix A - Forward Error Correction ...................... 58 12. Appendix B - Support for Congestion Control ................ 72 13. Appendix C - SPM Requests .................................. 79 14. Appendix D - Poll Mechanism ................................ 82 15. Appendix E - Implosion Prevention .......................... 92 16. Appendix F - Transmit Window Example ....................... 98 17 Appendix G - Applicability Statement ....................... 103 18. Abbreviations .............................................. 105 19. Acknowledgments ............................................ 106 20. References ................................................. 106 21. Authors' Addresses.......................................... 108 22. Full Copyright Statement ................................... 111
1. Introduction and Overview .................................. 3 2. Architectural Description .................................. 9 3. Terms and Concepts ......................................... 12 4. Procedures - General ....................................... 18 5. Procedures - Sources ....................................... 19 6. Procedures - Receivers ..................................... 22 7. Procedures - Network Elements .............................. 27 8. Packet Formats ............................................. 31 9. Options .................................................... 40 10. Security Considerations .................................... 56 11. Appendix A - Forward Error Correction ...................... 58 12. Appendix B - Support for Congestion Control ................ 72 13. Appendix C - SPM Requests .................................. 79 14. Appendix D - Poll Mechanism ................................ 82 15. Appendix E - Implosion Prevention .......................... 92 16. Appendix F - Transmit Window Example ....................... 98 17 Appendix G - Applicability Statement ....................... 103 18. Abbreviations .............................................. 105 19. Acknowledgments ............................................ 106 20. References ................................................. 106 21. Authors' Addresses.......................................... 108 22. Full Copyright Statement ................................... 111
Nota Bene:
Nota Bene:
The publication of this specification is intended to freeze the definition of PGM in the interest of fostering both ongoing and prospective experimentation with the protocol. The intent of that experimentation is to provide experience with the implementation and deployment of a reliable multicast protocol of this class so as to be able to feed that experience back into the longer-term standardization process underway in the Reliable Multicast Transport Working Group of the IETF. Appendix G provides more specific detail on the scope and status of some of this experimentation. Reports of experiments include [16-23]. Additional results and new experimentation are encouraged.
本规范的发布旨在冻结PGM的定义,以促进协议的持续和前瞻性试验。该实验的目的是提供此类可靠多播协议的实施和部署经验,以便能够将该经验反馈到IETF可靠多播传输工作组正在进行的长期标准化过程中。附录G提供了一些实验范围和状态的更具体细节。实验报告包括[16-23]。鼓励更多的结果和新的实验。
A variety of reliable protocols have been proposed for multicast data delivery, each with an emphasis on particular types of applications, network characteristics, or definitions of reliability ([1], [2], [3], [4]). In this tradition, Pragmatic General Multicast (PGM) is a reliable transport protocol for applications that require ordered or unordered, duplicate-free, multicast data delivery from multiple sources to multiple receivers.
人们提出了多种可靠的多播数据传输协议,每种协议都强调特定类型的应用、网络特征或可靠性定义([1]、[2]、[3]、[4])。在这种传统中,实用通用多播(PGM)是一种可靠的传输协议,适用于需要从多个源到多个接收器的有序或无序、无重复的多播数据传输的应用。
PGM is specifically intended as a workable solution for multicast applications with basic reliability requirements rather than as a comprehensive solution for multicast applications with sophisticated ordering, agreement, and robustness requirements. Its central design goal is simplicity of operation with due regard for scalability and network efficiency.
PGM专门用于具有基本可靠性要求的多播应用程序的可行解决方案,而不是具有复杂排序、协议和健壮性要求的多播应用程序的综合解决方案。它的中心设计目标是操作简单,并适当考虑可扩展性和网络效率。
PGM has no notion of group membership. It simply provides reliable multicast data delivery within a transmit window advanced by a source according to a purely local strategy. Reliable delivery is provided within a source's transmit window from the time a receiver joins the group until it departs. PGM guarantees that a receiver in the group either receives all data packets from transmissions and repairs, or is able to detect unrecoverable data packet loss. PGM supports any number of sources within a multicast group, each fully identified by a globally unique Transport Session Identifier (TSI), but since these sources/sessions operate entirely independently of each other, this specification is phrased in terms of a single source and extends without modification to multiple sources.
PGM没有集团成员的概念。它只是在源根据纯本地策略推进的传输窗口内提供可靠的多播数据传输。从接收器加入组到其离开,在源的传输窗口内提供可靠的传输。PGM保证组中的接收器接收来自传输和修复的所有数据包,或者能够检测不可恢复的数据包丢失。PGM支持多播组中的任意数量的源,每个源都由全局唯一传输会话标识符(TSI)完全标识,但由于这些源/会话完全独立于彼此运行,因此本规范以单个源的形式表述,并在不修改的情况下扩展到多个源。
More specifically, PGM is not intended for use with applications that depend either upon acknowledged delivery to a known group of recipients, or upon total ordering amongst multiple sources.
更具体地说,PGM不适用于依赖于已知收件人组的确认交付或多个来源之间的总订购的应用程序。
Rather, PGM is best suited to those applications in which members may join and leave at any time, and that are either insensitive to unrecoverable data packet loss or are prepared to resort to application recovery in the event. Through its optional extensions, PGM provides specific mechanisms to support applications as disparate as stock and news updates, data conferencing, low-delay real-time video transfer, and bulk data transfer.
相反,PGM最适合于成员可以随时加入和离开的应用程序,这些应用程序对不可恢复的数据包丢失不敏感,或者准备在发生这种情况时求助于应用程序恢复。通过可选的扩展,PGM提供了特定的机制来支持不同的应用程序,如股票和新闻更新、数据会议、低延迟实时视频传输和批量数据传输。
In the following text, transport-layer originators of PGM data packets are referred to as sources, transport-layer consumers of PGM data packets are referred to as receivers, and network-layer entities in the intervening network are referred to as network elements.
在下文中,PGM数据分组的传输层发起者被称为源,PGM数据分组的传输层消费者被称为接收器,并且介入网络中的网络层实体被称为网络元件。
Unless otherwise specified, the term "repair" will be used to indicate both the actual retransmission of a copy of a missing packet or the transmission of an FEC repair packet.
除非另有规定,否则术语“修复”将用于指示丢失分组副本的实际重传或FEC修复分组的传输。
Terminology
术语
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [14] and indicate requirement levels for compliant PGM implementations.
本文件中的关键词“必须”、“不得”、“要求”、“应”、“不应”、“应”、“不应”、“建议”、“可”和“可选”应按照RFC 2119[14]中的描述进行解释,并指出符合PGM实施的要求级别。
PGM runs over a datagram multicast protocol such as IP multicast [5]. In the normal course of data transfer, a source multicasts sequenced data packets (ODATA), and receivers unicast selective negative acknowledgments (NAKs) for data packets detected to be missing from the expected sequence. Network elements forward NAKs PGM-hop-by-PGM-hop to the source, and confirm each hop by multicasting a NAK confirmation (NCF) in response on the interface on which the NAK was received. Repairs (RDATA) may be provided either by the source itself or by a Designated Local Repairer (DLR) in response to a NAK.
PGM运行在数据报多播协议上,如IP多播[5]。在数据传输的正常过程中,源多播序列数据包(ODATA),接收器单播选择性否定确认(NAK),用于检测到预期序列中缺失的数据包。网元将NAK-PGM-hop逐PGM-hop转发到源,并通过在接收NAK的接口上多播NAK确认(NCF)来确认每个hop。维修(RDATA)可由源自身或指定的本地维修厂(DLR)响应NAK提供。
Since NAKs provide the sole mechanism for reliability, PGM is particularly sensitive to their loss. To minimize NAK loss, PGM defines a network-layer hop-by-hop procedure for reliable NAK forwarding.
由于NAK提供了唯一的可靠性机制,PGM对其损失特别敏感。为了最大限度地减少NAK丢失,PGM定义了一个网络层逐跳过程,用于可靠的NAK转发。
Upon detection of a missing data packet, a receiver repeatedly unicasts a NAK to the last-hop PGM network element on the distribution tree from the source. A receiver repeats this NAK until it receives a NAK confirmation (NCF) multicast to the group from that PGM network element. That network element responds with an NCF to the first occurrence of the NAK and any further retransmissions of that same NAK from any receiver. In turn, the network element repeatedly forwards the NAK to the upstream PGM network element on the reverse of the distribution path from the source of the original data packet until it also receives an NCF from that network element. Finally, the source itself receives and confirms the NAK by multicasting an NCF to the group.
在检测到丢失的数据分组时,接收器重复地从源向分发树上的最后一跳PGM网元单播NAK。接收器重复该NAK,直到它从该PGM网元接收到到到该组的NAK确认(NCF)多播。该网元以NCF响应NAK的第一次出现以及来自任何接收机的该相同NAK的任何进一步重传。反过来,网元从原始数据分组的源在分发路径的相反方向上重复地将NAK转发给上游PGM网元,直到它也从该网元接收NCF为止。最后,源本身通过向组多播NCF来接收并确认NAK。
While NCFs are multicast to the group, they are not propagated by PGM network elements since they act as hop-by-hop confirmations.
虽然NCF是多播到组的,但它们不会被PGM网络元素传播,因为它们充当逐跳确认。
To avoid NAK implosion, PGM specifies procedures for subnet-based NAK suppression amongst receivers and NAK elimination within network elements. The usual result is the propagation of just one copy of a given NAK along the reverse of the distribution path from any network with directly connected receivers to a source.
为了避免NAK内爆,PGM规定了接收机之间基于子网的NAK抑制和网元内NAK消除的程序。通常的结果是给定NAK的一个副本沿着分布路径的相反方向从任何具有直接连接的接收器的网络传播到源。
The net effect is that unicast NAKs return from a receiver to a source on the reverse of the path on which ODATA was forwarded, that is, on the reverse of the distribution tree from the source. More specifically, they return through exactly the same sequence of PGM network elements through which ODATA was forwarded, but in reverse. The reasons for handling NAKs this way will become clear in the discussion of constraining repairs, but first it's necessary to describe the mechanisms for establishing the requisite source path state in PGM network elements.
净效果是,单播NAK从接收器返回到源,路径与转发ODATA的路径相反,即与源的分发树相反。更具体地说,它们通过与ODATA转发时完全相同的PGM网元序列返回,但顺序相反。在约束修复的讨论中,以这种方式处理NAK的原因将变得很清楚,但首先有必要描述在PGM网络元素中建立必要源路径状态的机制。
To establish source path state in PGM network elements, the basic data transfer operation is augmented by Source Path Messages (SPMs) from a source, periodically interleaved with ODATA. SPMs function primarily to establish source path state for a given TSI in all PGM network elements on the distribution tree from the source. PGM network elements use this information to address returning unicast NAKs directly to the upstream PGM network element toward the source, and thereby insure that NAKs return from a receiver to a source on the reverse of the distribution path for the TSI.
为了在PGM网络元素中建立源路径状态,基本数据传输操作由来自源的源路径消息(SPM)进行扩充,并与ODATA周期性地交织。SPMs的主要功能是在源的分发树上的所有PGM网元中为给定TSI建立源路径状态。PGM网络元件使用该信息来寻址直接返回到上游PGM网络元件的朝向源的单播nak,从而确保nak从接收器返回到与TSI的分发路径相反的源。
SPMs are sent by a source at a rate that serves to maintain up-to-date PGM neighbor information. In addition, SPMs complement the role of DATA packets in provoking further NAKs from receivers, and maintaining receive window state in the receivers.
SPM由源以维护最新PGM邻居信息的速率发送。此外,spm补充了数据分组在激发来自接收机的进一步nak以及在接收机中保持接收窗口状态方面的作用。
As a further efficiency, PGM specifies procedures for the constraint of repairs by network elements so that they reach only those network segments containing group members that did not receive the original transmission. As NAKs traverse the reverse of the ODATA path (upward), they establish repair state in the network elements which is used in turn to constrain the (downward) forwarding of the corresponding RDATA.
作为进一步的效率,PGM规定了由网络元件进行修复的约束程序,以便它们仅到达包含未接收原始传输的组成员的网段。当NAK沿着ODATA路径的相反方向(向上)移动时,它们在网元中建立修复状态,该状态反过来用于约束相应RDATA的(向下)转发。
Besides procedures for the source to provide repairs, PGM also specifies options and procedures that permit designated local repairers (DLRs) to announce their availability and to redirect repair requests (NAKs) to themselves rather than to the original source. In addition to these conventional procedures for loss recovery through selective ARQ, Appendix A specifies Forward Error Correction (FEC) procedures for sources to provide and receivers to request general error correcting parity packets rather than selective retransmissions.
除了源提供维修的程序外,PGM还规定了允许指定本地维修商(DLR)宣布其可用性并将维修请求(NAK)重定向到自身而不是原始源的选项和程序。除了这些通过选择性ARQ进行丢失恢复的常规程序外,附录A规定了源提供的前向纠错(FEC)程序,以及接收器请求一般纠错奇偶校验包而不是选择性重传的前向纠错(FEC)程序。
Finally, since PGM operates without regular return traffic from receivers, conventional feedback mechanisms for transport flow and congestion control cannot be applied. Appendix B specifies a TCP-friendly, NE-based solution for PGM congestion control, and cites a reference to a TCP-friendly, end-to-end solution for PGM congestion control.
最后,由于PGM运行时没有来自接收器的常规返回流量,因此无法应用用于传输流和拥塞控制的传统反馈机制。附录B规定了用于PGM拥塞控制的TCP友好的、基于网元的解决方案,并引用了用于PGM拥塞控制的TCP友好的端到端解决方案。
In its basic operation, PGM relies on a purely rate-limited transmission strategy in the source to bound the bandwidth consumed by PGM transport sessions and to define the transmit window maintained by the source.
在其基本操作中,PGM依赖于源中的纯速率限制传输策略来限制PGM传输会话所消耗的带宽,并定义由源维护的传输窗口。
PGM defines four basic packet types: three that flow downstream (SPMs, DATA, NCFs), and one that flows upstream (NAKs).
PGM定义了四种基本的数据包类型:三种流向下游(SPM、数据、NCF),一种流向上游(NAKs)。
PGM has been designed to serve that broad range of multicast applications that have relatively simple reliability requirements, and to do so in a way that realizes the much advertised but often unrealized network efficiencies of multicast data transfer. The usual impediments to realizing these efficiencies are the implosion of negative and positive acknowledgments from receivers to sources, repair latency from the source, and the propagation of repairs to disinterested receivers.
PGM的设计目的是为具有相对简单的可靠性要求的广泛的多播应用服务,并以一种实现多播数据传输的广为人知但往往未实现的网络效率的方式服务。实现这些效率的常见障碍是从接收者到消息源的否定和肯定确认的内爆、来自消息源的修复延迟以及修复传播到无私的接收者。
1.2.1. Reliability.
1.2.1. 可靠性
Reliable data delivery across an unreliable network is conventionally achieved through an end-to-end protocol in which a source (implicitly or explicitly) solicits receipt confirmation from a receiver, and the receiver responds positively or negatively. While the frequency of negative acknowledgments is a function of the reliability of the network and the receiver's resources (and so, potentially quite low), the frequency of positive acknowledgments is fixed at at least the rate at which the transmit window is advanced, and usually more often.
通过不可靠网络的可靠数据传送通常通过端到端协议来实现,在该协议中,源(隐式或显式)请求来自接收器的接收确认,并且接收器正面或负面响应。虽然否定确认的频率是网络和接收器资源的可靠性的函数(因此,可能非常低),但肯定确认的频率至少固定在发送窗口提前的速率上,并且通常更频繁。
Negative acknowledgments primarily determine repairs and reliability. Positive acknowledgments primarily determine transmit buffer management.
否定确认主要决定维修和可靠性。肯定应答主要决定传输缓冲区管理。
When these principles are extended without modification to multicast protocols, the result, at least for positive acknowledgments, is a burden of positive acknowledgments transmitted to the source that quickly threatens to overwhelm it as the number of receivers grows. More succinctly, ACK implosion keeps ACK-based reliable multicast protocols from scaling well.
当这些原则在不修改多播协议的情况下被扩展时,其结果(至少对于肯定确认而言)是将肯定确认传输到源的负担,随着接收器数量的增加,该负担很快就会被压倒。更简洁地说,ACK内爆使得基于ACK的可靠多播协议无法很好地扩展。
One of the goals of PGM is to get as strong a definition of reliability as possible from as simple a protocol as possible. ACK implosion can be addressed in a variety of effective but complicated ways, most of which require re-transmit capability from other than the original source.
PGM的目标之一是从尽可能简单的协议中获得尽可能强的可靠性定义。ACK内爆可以通过多种有效但复杂的方法解决,其中大多数方法都需要来自原始源以外的其他源的重新传输能力。
An alternative is to dispense with positive acknowledgments altogether, and to resort to other strategies for buffer management while retaining negative acknowledgments for repairs and reliability. The approach taken in PGM is to retain negative acknowledgments, but to dispense with positive acknowledgments and resort instead to timeouts at the source to manage transmit resources.
另一种方法是完全不使用肯定的确认,而采用其他策略进行缓冲区管理,同时保留否定的确认以实现修复和可靠性。PGM中采用的方法是保留否定应答,但不使用肯定应答,而是在源位置使用超时来管理传输资源。
The definition of reliability with PGM is a direct consequence of this design decision. PGM guarantees that a receiver either receives all data packets from transmissions and repairs, or is able to detect unrecoverable data packet loss.
PGM可靠性定义是该设计决策的直接结果。PGM保证接收机接收来自传输和修复的所有数据包,或者能够检测不可恢复的数据包丢失。
PGM includes strategies for repeatedly provoking NAKs from receivers, and for adding reliability to the NAKs themselves. By reinforcing the NAK mechanism, PGM minimizes the probability that a receiver will detect a missing data packet so late that the packet is unavailable for repair either from the source or from a designated local repairer (DLR). Without ACKs and knowledge of group membership, however, PGM cannot eliminate this possibility.
PGM包括从接收器反复激发NAK的策略,以及增加NAK本身的可靠性的策略。通过加强NAK机制,PGM将接收机检测到丢失数据包的时间太晚,以致该数据包无法从源或指定的本地维修商(DLR)进行维修的概率降至最低。然而,如果没有ACK和对集团成员资格的了解,PGM无法消除这种可能性。
A second consequence of eliminating ACKs is that knowledge of group membership is neither required nor provided by the protocol. Although a source may receive some PGM packets (NAKs for instance) from some receivers, the identity of the receivers does not figure in the processing of those packets. Group membership MAY change during the course of a PGM transport session without the knowledge of or consequence to the source or the remaining receivers.
消除ACK的第二个后果是协议既不要求也不提供组成员的知识。尽管源可以从一些接收机接收一些PGM分组(例如nak),但是在处理这些分组时,接收机的标识不起作用。在PGM传输会话过程中,组成员身份可能会发生变化,而不知道源或剩余接收器的情况或其后果。
While PGM avoids the implosion of positive acknowledgments simply by dispensing with ACKs, the implosion of negative acknowledgments is addressed directly.
虽然PGM仅通过免除确认来避免正面确认的内爆,但负面确认的内爆是直接解决的。
Receivers observe a random back-off prior to generating a NAK during which interval the NAK is suppressed (i.e. it is not sent, but the receiver acts as if it had sent it) by the receiver upon receipt of a matching NCF. In addition, PGM network elements eliminate duplicate NAKs received on different interfaces on the same network element.
接收机在生成NAK之前观察到随机退避,在此期间,接收机在接收到匹配的NCF时抑制NAK(即,不发送NAK,但接收机如同已发送NAK一样行事)。此外,PGM网元消除了在同一网元的不同接口上接收到的重复NAK。
The combination of these two strategies usually results in the source receiving just a single NAK for any given lost data packet.
这两种策略的组合通常导致源仅接收任何给定丢失数据包的单个NAK。
Whether a repair is provided from a DLR or the original source, it is important to constrain that repair to only those network segments containing members that negatively acknowledged the original transmission rather than propagating it throughout the group. PGM specifies procedures for network elements to use the pattern of NAKs to define a sub-tree within the group upon which to forward the corresponding repair so that it reaches only those receivers that missed it in the first place.
无论修复是由DLR提供还是由原始源提供,都必须将该修复仅限于包含对原始传输进行负面确认的成员的网段,而不是将其传播到整个组。PGM规定了网络元件使用NAK模式在组内定义子树的程序,在该子树上转发相应的修复,以便它仅到达最初错过修复的接收器。
PGM is designed to achieve the greatest improvement in reliability (as compared to the usual UDP) with the least complexity. As a result, PGM does NOT address conference control, global ordering amongst multiple sources in the group, nor recovery from network partitions.
PGM旨在以最小的复杂性实现最大的可靠性改进(与通常的UDP相比)。因此,PGM无法解决会议控制、组中多个源之间的全局排序,也无法从网络分区恢复。
PGM is designed to function, albeit with less efficiency, even when some or all of the network elements in the multicast tree have no knowledge of PGM. To that end, all PGM data packets can be conventionally multicast routed by non-PGM network elements with no loss of functionality, but with some inefficiency in the propagation of RDATA and NCFs.
PGM被设计为即使在多播树中的某些或所有网络元素不知道PGM的情况下也能正常工作,尽管效率较低。为此,所有PGM数据包都可以由非PGM网络元件以传统方式进行多播路由,而不会丢失功能,但在RDATA和NCF的传播中效率较低。
In addition, since NAKs are unicast to the last-hop PGM network element and NCFs are multicast to the group, NAK/NCF operation is also consistent across non-PGM network elements. Note that for NAK suppression to be most effective, receivers should always have a PGM network element as a first hop network element between themselves and every path to every PGM source. If receivers are several hops removed from the first PGM network element, the efficacy of NAK suppression may degrade.
此外,由于NAK是单播到最后一跳PGM网元的,NCF是多播到组的,所以NAK/NCF操作在非PGM网元上也是一致的。注意,为了使NAK抑制最有效,接收机应始终具有一个PGM网元作为其自身和每个PGM源的每条路径之间的第一跳网元。如果接收机是从第一PGM网元移除的多个跳,则NAK抑制的效果可能降低。
In addition to the basic data transfer operation described above, PGM specifies several end-to-end options to address specific application requirements. PGM specifies options to support fragmentation, late joining, redirection, Forward Error Correction (FEC), reachability, and session synchronization/termination/reset. Options MAY be appended to PGM data packet headers only by their original transmitters. While they MAY be interpreted by network elements, options are neither added nor removed by network elements.
除上述基本数据传输操作外,PGM还指定了多个端到端选项,以满足特定的应用要求。PGM指定支持分段、延迟加入、重定向、前向纠错(FEC)、可达性和会话同步/终止/重置的选项。选项只能由其原始发送器附加到PGM数据包头。虽然这些选项可以由网络元素解释,但网络元素既不添加也不删除选项。
All options are receiver-significant (i.e., they must be interpreted by receivers). Some options are also network-significant (i.e., they must be interpreted by network elements).
所有选项都是接收器重要的(即,它们必须由接收器解释)。一些选项也具有网络重要性(即,它们必须由网络元素进行解释)。
Fragmentation MAY be used in conjunction with data packets to allow a transport-layer entity at the source to break up application-layer data packets into multiple PGM data packets to conform with the maximum transmission unit (MTU) supported by the network layer.
分段可与数据分组一起使用,以允许源处的传输层实体将应用层数据分组分成多个PGM数据分组,以符合网络层支持的最大传输单元(MTU)。
Late joining allows a source to indicate whether or not receivers may request all available repairs when they initially join a particular transport session.
延迟加入允许源指示接收器在最初加入特定传输会话时是否可以请求所有可用的修复。
Redirection MAY be used in conjunction with Poll Responses to allow a DLR to respond to normal NCFs or POLLs with a redirecting POLR advertising its own address as an alternative re-transmitter to the original source.
重定向可与轮询响应一起使用,以允许DLR响应正常NCF或使用重定向POLR来进行轮询,重定向POLR将其自己的地址作为原始源的替代重新发送器。
FEC techniques MAY be applied by receivers to use source-provided parity packets rather than selective retransmissions to effect loss recovery.
接收机可以应用FEC技术来使用源提供的奇偶校验分组,而不是选择性重传来实现丢失恢复。
As an end-to-end transport protocol, PGM specifies packet formats and procedures for sources to transmit and for receivers to receive data. To enhance the efficiency of this data transfer, PGM also specifies packet formats and procedures for network elements to improve the reliability of NAKs and to constrain the propagation of repairs. The division of these functions is described in this section and expanded in detail in the next section.
作为一种端到端传输协议,PGM为发送源和接收端指定数据包格式和程序。为了提高这种数据传输的效率,PGM还为网元指定数据包格式和程序,以提高NAK的可靠性并限制修复的传播。这些功能的划分将在本节中描述,并在下一节中详细展开。
Data Transmission
数据传输
Sources multicast ODATA packets to the group within the transmit window at a given transmit rate.
以给定的传输速率将多播ODATA数据包发送到传输窗口内的组。
Source Path State
源路径状态
Sources multicast SPMs to the group, interleaved with ODATA if present, to establish source path state in PGM network elements.
向组发送多播SPM,如果存在ODATA,则与ODATA交错,以在PGM网络元素中建立源路径状态。
NAK Reliability
NAK可靠性
Sources multicast NCFs to the group in response to any NAKs they receive.
源将多播NCF发送到组,以响应它们接收到的任何NAK。
Repairs
修理
Sources multicast RDATA packets to the group in response to NAKs received for data packets within the transmit window.
将多播RDATA数据包发送到组,以响应在传输窗口内为数据包接收的NAK。
Transmit Window Advance
发送窗口提前
Sources MAY advance the trailing edge of the window according to one of a number of strategies. Implementations MAY support automatic adjustments such as keeping the window at a fixed size in bytes, a fixed number of packets or a fixed real time duration. In addition, they MAY optionally delay window advancement based on NAK-silence for a certain period. Some possible strategies are outlined later in this document.
震源可根据多种策略之一推进窗口的后缘。实现可能支持自动调整,例如将窗口保持在以字节为单位的固定大小、固定数量的数据包或固定的实时持续时间。此外,它们可以选择性地基于NAK静默延迟窗口前进一段时间。本文件后面将概述一些可能的策略。
Source Path State
源路径状态
Receivers use SPMs to determine the last-hop PGM network element for a given TSI to which to direct their NAKs.
接收机使用spm来确定给定TSI的最后一跳PGM网元,以将其nak定向到该网元。
Data Reception
数据接收
Receivers receive ODATA within the transmit window and eliminate any duplicates.
接收机在发送窗口内接收ODATA并消除任何重复。
Repair Requests
维修请求
Receivers unicast NAKs to the last-hop PGM network element (and MAY optionally multicast a NAK with TTL of 1 to the local group) for data packets within the receive window detected to be missing from the expected sequence. A receiver MUST repeatedly transmit a given NAK until it receives a matching NCF.
接收机将NAK单播到最后一跳PGM网元(并且可以可选地将TTL为1的NAK多播到本地组),用于在接收窗口内检测到从预期序列中丢失的数据分组。接收机必须重复发送给定的NAK,直到接收到匹配的NCF。
NAK Suppression
NAK抑制
Receivers suppress NAKs for which a matching NCF or NAK is received during the NAK transmit back-off interval.
接收机抑制在NAK发射退避间隔期间接收到匹配NCF或NAK的NAK。
Receive Window Advance
提前接收窗口
Receivers immediately advance their receive windows upon receipt of any PGM data packet or SPM within the transmit window that advances the receive window.
在接收到任何PGM数据包或发送窗口内提前接收窗口的SPM后,接收机立即提前接收窗口。
Network elements forward ODATA without intervention.
网元转发ODATA而无需干预。
Source Path State
源路径状态
Network elements intercept SPMs and use them to establish source path state for the corresponding TSI before multicast forwarding them in the usual way.
网元拦截SPM并使用它们为相应的TSI建立源路径状态,然后以通常的方式进行多播转发。
NAK Reliability
NAK可靠性
Network elements multicast NCFs to the group in response to any NAK they receive. For each NAK received, network elements create repair state recording the transport session identifier, the sequence number of the NAK, and the input interface on which the NAK was received.
网元将NCF多播到组,以响应它们接收到的任何NAK。对于接收到的每个NAK,网络元件创建修复状态,记录传输会话标识符、NAK的序列号和接收NAK的输入接口。
Constrained NAK Forwarding
受限NAK转发
Network elements repeatedly unicast forward only the first copy of any NAK they receive to the upstream PGM network element on the distribution path for the TSI until they receive an NCF in response. In addition, they MAY optionally multicast this NAK upstream with TTL of 1.
网元重复单播仅将其接收到的任何NAK的第一个副本转发到TSI的分发路径上的上游PGM网元,直到它们接收到响应NCF为止。此外,它们可以选择在TTL为1的情况下向上游多播该NAK。
Nota Bene: Once confirmed by an NCF, network elements discard NAK packets; NAKs are NOT retained in network elements beyond this forwarding operation, but state about the reception of them is stored.
Nota Bene:一旦NCF确认,网元丢弃NAK数据包;除了此转发操作之外,NAK不会保留在网络元素中,而是存储关于接收它们的状态。
NAK Elimination
NAK消除
Network elements discard exact duplicates of any NAK for which they already have repair state (i.e., that has been forwarded either by themselves or a neighboring PGM network element), and respond with a matching NCF.
网元丢弃其已具有修复状态(即,已由其自身或相邻PGM网元转发的)的任何NAK的精确副本,并用匹配的NCF响应。
Constrained RDATA Forwarding
受限RDATA转发
Network elements use NAKs to maintain repair state consisting of a list of interfaces upon which a given NAK was received, and they forward the corresponding RDATA only on these interfaces.
网元使用NAK来维护修复状态,修复状态由接收到给定NAK的接口列表组成,并且它们仅在这些接口上转发相应的RDATA。
NAK Anticipation
纳克预期
If a network element hears an upstream NCF (i.e., on the upstream interface for the distribution tree for the TSI), it establishes repair state without outgoing interfaces in anticipation of responding to and eliminating duplicates of the NAK that may arrive from downstream.
如果网元听到上游NCF(即,在TSI分发树的上游接口上),它将建立无输出接口的修复状态,以预期响应和消除可能从下游到达的NAK的重复。
Before proceeding from the preceding overview to the detail in the subsequent Procedures, this section presents some concepts and definitions that make that detail more intelligible.
在从前面的概述开始到后续步骤中的细节之前,本节介绍了一些概念和定义,这些概念和定义使细节更易于理解。
Every PGM packet is identified by a:
每个PGM数据包由一个:
TSI transport session identifier
传输会话标识符
TSIs MUST be globally unique, and only one source at a time may act as the source for a transport session. (Note that repairers do not change the TSI in any RDATA they transmit). TSIs are composed of the concatenation of a globally unique source identifier (GSI) and a source-assigned data-source port.
TSI必须是全局唯一的,并且一次只能有一个源作为传输会话的源。(请注意,维修人员不会更改他们传输的任何RDATA中的TSI)。TSI由全局唯一源标识符(GSI)和源分配的数据源端口连接而成。
Since all PGM packets originated by receivers are in response to PGM packets originated by a source, receivers simply echo the TSI heard from the source in any corresponding packets they originate.
由于接收器发起的所有PGM数据包都是对源发起的PGM数据包的响应,因此接收器只是在其发起的任何相应数据包中回显从源听到的TSI。
Since all PGM packets originated by network elements are in response to PGM packets originated by a receiver, network elements simply echo the TSI heard from the receiver in any corresponding packets they originate.
由于由网络元件发起的所有PGM分组响应于由接收器发起的PGM分组,因此网络元件简单地在其发起的任何对应分组中回显从接收器听到的TSI。
PGM uses a circular sequence number space from 0 through ((2**32) - 1) to identify and order ODATA packets. Sources MUST number ODATA packets in unit increments in the order in which the corresponding application data is submitted for transmission. Within a transmit or
PGM使用从0到((2**32)-1)的循环序列号空间来识别和排序ODATA数据包。源必须以单位增量对ODATA数据包进行编号,编号顺序与提交传输的相应应用程序数据的顺序相同。在一个传输或
receive window (defined below), a sequence number x is "less" or "older" than sequence number y if it numbers an ODATA packet preceding ODATA packet y, and a sequence number y is "greater" or "more recent" than sequence number x if it numbers an ODATA packet subsequent to ODATA packet x.
接收窗口(定义见下文),如果序列号x对ODATA数据包y之前的ODATA数据包进行编号,则序列号x比序列号y“少”或“老”;如果序列号y对ODATA数据包x之后的ODATA数据包进行编号,则序列号y比序列号x“大”或“最近”。
The description of the operation of PGM rests fundamentally on the definition of the source-maintained transmit window. This definition in turn is derived directly from the amount of transmitted data (in seconds) a source retains for repair (TXW_SECS), and the maximum transmit rate (in bytes/second) maintained by a source to regulate its bandwidth utilization (TXW_MAX_RTE).
PGM操作的描述基本上取决于源维护传输窗口的定义。该定义又直接从源保留用于修复(TXW_SECS)的传输数据量(以秒为单位)和源保持用于调节其带宽利用率(TXW_MAX_RTE)的最大传输速率(以字节/秒为单位)推导而来。
In terms of sequence numbers, the transmit window is the range of sequence numbers consumed by the source for sequentially numbering and transmitting the most recent TXW_SECS of ODATA packets. The trailing (or left) edge of the transmit window (TXW_TRAIL) is defined as the sequence number of the oldest data packet available for repair from a source. The leading (or right) edge of the transmit window (TXW_LEAD) is defined as the sequence number of the most recent data packet a source has transmitted.
就序列号而言,传输窗口是源为顺序编号和传输ODATA数据包的最新TXW_秒而消耗的序列号范围。传输窗口(TXW_TRAIL)的后缘(或左缘)定义为可从源修复的最旧数据包的序列号。传输窗口(TXW_LEAD)的前边缘(或右边缘)定义为源传输的最近数据包的序列号。
The size of the transmit window in sequence numbers (TXW_SQNS) (i.e., the difference between the leading and trailing edges plus one) MUST be no greater than half the PGM sequence number space less one.
序列号(TXW_SQNS)中传输窗口的大小(即,前缘和后缘之间的差值加1)不得大于PGM序列号空间减去1的一半。
When TXW_TRAIL is equal to TXW_LEAD, the transmit window size is one. When TXW_TRAIL is equal to TXW_LEAD plus one, the transmit window size is empty.
当TXW_TRAIL等于TXW_LEAD时,传输窗口大小为1。当TXW_TRAIL等于TXW_LEAD加1时,传输窗口大小为空。
The receive window at the receivers is determined entirely by PGM packets from the source. That is, a receiver simply obeys what the source tells it in terms of window state and advancement.
接收机处的接收窗口完全由来自源的PGM分组确定。也就是说,接收者只是简单地服从源在窗口状态和前进方面告诉它的内容。
For a given transport session identified by a TSI, a receiver maintains:
对于由TSI标识的给定传输会话,接收器保持:
RXW_TRAIL the sequence number defining the trailing edge of the receive window, the sequence number (known from data packets and SPMs) of the oldest data packet available for repair from the source
RXW_TRAIL定义接收窗口后缘的序列号,可从源修复的最旧数据包的序列号(从数据包和SPM中知道)
RXW_LEAD the sequence number defining the leading edge of the receive window, the greatest sequence number of any received data packet within the transmit window
RXW_LEAD定义接收窗口前沿的序列号,即发送窗口内任何接收数据包的最大序列号
The receive window is the range of sequence numbers a receiver is expected to use to identify receivable ODATA.
接收窗口是接收机用于识别可接收ODATA的序列号范围。
A data packet is described as being "in" the receive window if its sequence number is in the receive window.
如果数据包的序列号在接收窗口中,则该数据包被描述为“在”接收窗口中。
The receive window is advanced by the receiver when it receives an SPM or ODATA packet within the transmit window that increments RXW_TRAIL. Receivers also advance their receive windows upon receipt of any PGM data packet within the receive window that advances the receive window.
当接收器在发送窗口内接收到递增RXW_TRAIL的SPM或ODATA数据包时,接收窗口由接收器提前。在接收窗口内接收到任何提前接收窗口的PGM数据包时,接收机也提前其接收窗口。
To establish the repair state required to constrain RDATA, it's essential that NAKs return from a receiver to a source on the reverse of the distribution tree from the source. That is, they must return through the same sequence of PGM network elements through which the ODATA was forwarded, but in reverse. There are two reasons for this, the less obvious one being by far the more important.
为了建立约束RDATA所需的修复状态,NAK必须从接收器返回到源,与源的分布树相反。也就是说,它们必须通过与ODATA转发相同的PGM网元序列返回,但顺序相反。这有两个原因,不太明显的一个更重要。
The first and obvious reason is that RDATA is forwarded on the same path as ODATA and so repair state must be established on this path if it is to constrain the propagation of RDATA.
第一个明显的原因是,RDATA与ODATA在同一路径上转发,因此如果要限制RDATA的传播,必须在此路径上建立修复状态。
The second and less obvious reason is that in the absence of repair state, PGM network elements do NOT forward RDATA, so the default behavior is to discard repairs. If repair state is not properly established for interfaces on which ODATA went missing, then receivers on those interfaces will continue to NAK for lost data and ultimately experience unrecoverable data loss.
第二个也是不太明显的原因是,在没有修复状态的情况下,PGM网元不会转发RDATA,因此默认行为是放弃修复。如果没有为ODATA丢失的接口正确建立修复状态,那么这些接口上的接收器将继续NAK丢失数据,并最终经历不可恢复的数据丢失。
The principle function of SPMs is to provide the source path state required for PGM network elements to forward NAKs from one PGM network element to the next on the reverse of the distribution tree for the TSI, establishing repair state each step of the way. This source path state is simply the address of the upstream PGM network element on the reverse of the distribution tree for the TSI. That upstream PGM network element may be more than one subnet hop away. SPMs establish the identity of the upstream PGM network element on the distribution tree for each TSI in each group in each PGM network element, a sort of virtual PGM topology. So although NAKs are unicast addressed, they are NOT unicast routed by PGM network elements in the conventional sense. Instead PGM network elements use
SPMs的主要功能是提供PGM网元将NAK从一个PGM网元转发到下一个PGM网元所需的源路径状态(与TSI的分发树相反),并在每一步建立修复状态。该源路径状态只是TSI分发树背面上游PGM网元的地址。该上游PGM网络元件可以在多个子网跳距之外。SPM在分发树上为每个PGM网元中每个组中的每个TSI建立上游PGM网元的标识,这是一种虚拟PGM拓扑。因此,尽管NAK是单播寻址的,但它们不是传统意义上由PGM网元单播路由的。相反,PGM网元使用
the source path state established by SPMs to direct NAKs PGM-hop-by-PGM-hop toward the source. The idea is to constrain NAKs to the pure PGM topology spanning the more heterogeneous underlying topology of both PGM and non-PGM network elements.
由SPMs建立的源路径状态,用于将NAKs PGM跃点一个接一个地指向源。其思想是将NAK约束到纯PGM拓扑,跨越PGM和非PGM网络元素的更异构的底层拓扑。
The result is repair state in every PGM network element between the receiver and the source so that the corresponding RDATA is never discarded by a PGM network element for lack of repair state.
结果是接收器和源之间的每个PGM网元中的修复状态,因此PGM网元不会因为缺少修复状态而丢弃相应的RDATA。
SPMs also maintain transmit window state in receivers by advertising the trailing and leading edges of the transmit window (SPM_TRAIL and SPM_LEAD). In the absence of data, SPMs MAY be used to close the transmit window in time by advancing the transmit window until SPM_TRAIL is equal to SPM_LEAD plus one.
SPM还通过公布传输窗口的后缘和前缘(SPM_TRAIL和SPM_LEAD)来维持接收机中的传输窗口状态。在没有数据的情况下,SPM可用于通过提前发送窗口及时关闭发送窗口,直到SPM_TRAIL等于SPM_LEAD加1。
This section just provides enough short-hand to make the Procedures intelligible. For the full details of packet contents, please refer to Packet Formats below.
本节只是提供了足够的简写,使程序易于理解。有关数据包内容的完整详细信息,请参阅下面的数据包格式。
SPMs are transmitted by sources to establish source-path state in PGM network elements, and to provide transmit-window state in receivers.
SPM由源发送,以在PGM网元中建立源路径状态,并在接收机中提供发送窗口状态。
SPMs are multicast to the group and contain:
SPM多播到组,并包含:
SPM_TSI the source-assigned TSI for the session to which the SPM corresponds
SPM_TSI源为SPM对应的会话分配的TSI
SPM_SQN a sequence number assigned sequentially by the source in unit increments and scoped by SPM_TSI
SPM_SQN源以单位增量顺序分配的序列号,范围由SPM_TSI确定
Nota Bene: this is an entirely separate sequence than is used to number ODATA and RDATA.
注:这是一个完全独立的序列,不用于对ODATA和RDATA进行编号。
SPM_TRAIL the sequence number defining the trailing edge of the source's transmit window (TXW_TRAIL)
SPM_TRAIL定义源传输窗口后缘的序列号(TXW_TRAIL)
SPM_LEAD the sequence number defining the leading edge of the source's transmit window (TXW_LEAD)
SPM_LEAD定义震源传输窗口前沿的序列号(TXW_LEAD)
SPM_PATH the network-layer address (NLA) of the interface on the PGM network element on which the SPM is forwarded
SPM_PATH转发SPM的PGM网元上接口的网络层地址(NLA)
ODATA packets are transmitted by sources to send application data to receivers.
ODATA数据包由源发送,以向接收器发送应用程序数据。
ODATA packets are multicast to the group and contain:
ODATA数据包是多播到组的,包含:
OD_TSI the globally unique source-assigned TSI
OD_TSI分配给TSI的全局唯一源
OD_TRAIL the sequence number defining the trailing edge of the source's transmit window (TXW_TRAIL)
OD_TRAIL定义源传输窗口后缘的序列号(TXW_TRAIL)
OD_TRAIL makes the protocol more robust in the face of lost SPMs. By including the trailing edge of the transmit window on every data packet, receivers that have missed any SPMs that advanced the transmit window can still detect the case, recover the application, and potentially re-synchronize to the transport session.
OD_TRAIL使协议在面对丢失的SPM时更加健壮。通过在每个数据包上包括传输窗口的后缘,错过任何使传输窗口提前的SPM的接收机仍然可以检测情况,恢复应用程序,并可能重新同步到传输会话。
OD_SQN a sequence number assigned sequentially by the source in unit increments and scoped by OD_TSI
OD_SQN源以单位增量顺序分配的序列号,范围由OD_TSI确定
RDATA packets are repair packets transmitted by sources or DLRs in response to NAKs.
RDATA数据包是由源或DLR响应NAK发送的修复数据包。
RDATA packets are multicast to the group and contain:
RDATA数据包被多播到组,并包含:
RD_TSI OD_TSI of the ODATA packet for which this is a repair
这是修复的ODATA数据包的RD_TSI OD_TSI
RD_TRAIL the sequence number defining the trailing edge of the source's transmit window (TXW_TRAIL). This is updated to the most current value when the repair is sent, so it is not necessarily the same as OD_TRAIL of the ODATA packet for which this is a repair
RD_TRAIL定义源传输窗口后缘的序列号(TXW_TRAIL)。在发送修复时,它会更新为最新值,因此它不一定与作为修复的ODATA数据包的OD_TRAIL相同
RD_SQN OD_SQN of the ODATA packet for which this is a repair
这是修复的ODATA数据包的RD_SQN OD_SQN
NAKs are transmitted by receivers to request repairs for missing data packets.
接收器发送NAK,以请求修复丢失的数据包。
NAKs are unicast (PGM-hop-by-PGM-hop) to the source and contain:
NAK是到源的单播(PGM-hop-by-PGM-hop),包含:
NAK_TSI OD_TSI of the ODATA packet for which a repair is requested
请求修复的ODATA数据包的NAK_TSI OD_TSI
NAK_SQN OD_SQN of the ODATA packet for which a repair is requested
请求修复的ODATA数据包的NAK_SQN OD_SQN
NAK_SRC the unicast NLA of the original source of the missing ODATA.
NAK_SRC丢失的ODATA的原始源的单播NLA。
NAK_GRP the multicast group NLA
NAK_GRP多播组NLA
NNAKs are transmitted by a DLR that receives NAKs redirected to it by either receivers or network elements to provide flow-control feed-back to a source.
NNAK由DLR传输,DLR接收由接收器或网络元件重定向到它的NAK,以向源提供流控制反馈。
NNAKs are unicast (PGM-hop-by-PGM-hop) to the source and contain:
NNAK是到源的单播(PGM-hop-by-PGM-hop),包含:
NNAK_TSI NAK_TSI of the corresponding re-directed NAK.
NNAKèTSI NAKèTSI的相应重新定向NAK。
NNAK_SQN NAK_SQN of the corresponding re-directed NAK.
NNAK_SQN NAK_SQN对应重新定向NAK的NAK_SQN。
NNAK_SRC NAK_SRC of the corresponding re-directed NAK.
NNAK_SRC NAK_SRC对应的重新定向NAK。
NNAK_GRP NAK_GRP of the corresponding re-directed NAK.
NNAK_GRP NAK_GRP对应的重新定向NAK。
NCFs are transmitted by network elements and sources in response to NAKs.
NCF由网络元件和源响应NAK进行传输。
NCFs are multicast to the group and contain:
NCF多播到组,包含:
NCF_TSI NAK_TSI of the NAK being confirmed
正在确认NAK的NCFèTSI NAKèTSI
NCF_SQN NAK_SQN of the NAK being confirmed
正在确认NAK的NCF_SQN NAK_SQN
NCF_SRC NAK_SRC of the NAK being confirmed
正在确认的NAK的NCF_SRC NAK_SRC
NCF_GRP NAK_GRP of the NAK being confirmed
正在确认NAK的NCF_GRP NAK_GRP
OPT_LENGTH 0x00 - Option's Length
OPT_长度0x00-选项的长度
OPT_FRAGMENT 0x01 - Fragmentation
OPT_片段0x01-片段
OPT_NAK_LIST 0x02 - List of NAK entries
OPT_NAK_列表0x02-NAK条目列表
OPT_JOIN 0x03 - Late Joining
OPT_JOIN 0x03-延迟加入
OPT_REDIRECT 0x07 - Redirect
OPT_重定向0x07-重定向
OPT_SYN 0x0D - Synchronization
OPT_SYN 0x0D-同步
OPT_FIN 0x0E - Session Fin receivers, conventional feedbackish
OPT_FIN 0x0E-会话FIN接收器,常规反馈
OPT_RST 0x0F - Session Reset
OPT_RST 0x0F-会话重置
OPT_PARITY_PRM 0x08 - Forward Error Correction Parameters
OPT_奇偶校验_PRM 0x08-前向纠错参数
OPT_PARITY_GRP 0x09 - Forward Error Correction Group Number
OPT_奇偶校验_GRP 0x09-前向纠错组编号
OPT_CURR_TGSIZE 0x0A - Forward Error Correction Group Size
OPT_CURR_TGSIZE 0x0A-前向纠错组大小
OPT_CR 0x10 - Congestion Report
OPT_CR 0x10-拥塞报告
OPT_CRQST 0x11 - Congestion Report Request
OPT_CRQST 0x11-拥塞报告请求
OPT_NAK_BO_IVL 0x04 - NAK Back-Off Interval
OPT_NAK_BO_IVL 0x04-NAK后退间隔
OPT_NAK_BO_RNG 0x05 - NAK Back-Off Range
OPT_NAK_BO_RNG 0x05-NAK后退范围
OPT_NBR_UNREACH 0x0B - Neighbor Unreachable
OPT_NBR_UNREACH 0x0B-无法访问邻居
OPT_PATH_NLA 0x0C - Path NLA
OPT_PATH_NLA 0x0C-路径NLA
OPT_INVALID 0x7F - Option invalidated
选项“”无效0x7F-选项无效
Since SPMs, NCFs, and RDATA must be treated conditionally by PGM network elements, they must be distinguished from other packets in the chosen multicast network protocol if PGM network elements are to extract them from the usual switching path.
由于PGM网元必须有条件地处理SPM、NCF和RDATA,因此如果PGM网元要从通常的交换路径中提取它们,则必须将它们与所选多播网络协议中的其他数据包区分开来。
The most obvious way for network elements to achieve this is to examine every packet in the network for the PGM transport protocol and packet types. However, the overhead of this approach is costly for high-performance, multi-protocol network elements. An alternative, and a requirement for PGM over IP multicast, is that SPMs, NCFs, and RDATA MUST be transmitted with the IP Router Alert Option [6]. This option gives network elements a network-layer indication that a packet should be extracted from IP switching for more detailed processing.
网元实现这一点最明显的方法是检查网络中的每个数据包,以了解PGM传输协议和数据包类型。然而,这种方法的开销对于高性能、多协议的网络元件来说是昂贵的。PGM over IP多播的另一个选择和要求是,SPM、NCF和RDATA必须使用IP路由器警报选项进行传输[6]。该选项为网络元件提供网络层指示,即应从IP交换中提取数据包以进行更详细的处理。
Since PGM relies on a purely rate-limited transmission strategy in the source to bound the bandwidth consumed by PGM transport sessions, an assortment of techniques is assembled here to make that strategy as conservative and robust as possible. These techniques are the minimum REQUIRED of a PGM source.
由于PGM依赖于源中的纯速率限制传输策略来限制PGM传输会话所消耗的带宽,因此这里汇集了各种技术,以使该策略尽可能保守和健壮。这些技术是PGM源的最低要求。
A source MUST number ODATA packets in the order in which they are submitted for transmission by the application. A source MUST transmit ODATA packets in sequence and only within the transmit window beginning with TXW_TRAIL at no greater a rate than TXW_MAX_RTE.
源必须按照ODATA数据包提交以供应用程序传输的顺序对其进行编号。源必须以不大于TXW_MAX_RTE的速率在从TXW_TRAIL开始的传输窗口内按顺序传输ODATA数据包。
TXW_MAX_RTE is typically the maximum cumulative transmit rate of SPM, ODATA, and RDATA. Different transmission strategies MAY define TXW_MAX_RTE as appropriate for the implementation.
TXW_MAX_RTE通常是SPM、ODATA和RDATA的最大累积传输速率。不同的传输策略可定义TXW_MAX_RTE,以适用于实施。
To regulate its transmit rate, a source MUST use a token bucket scheme or any other traffic management scheme that yields equivalent behavior. A token bucket [7] is characterized by a continually sustainable data rate (the token rate) and the extent to which the data rate may exceed the token rate for short periods of time (the token bucket size). Over any arbitrarily chosen interval, the number of bytes the source may transmit MUST NOT exceed the token bucket size plus the product of the token rate and the chosen interval.
为了调节其传输速率,源必须使用令牌桶方案或产生等效行为的任何其他流量管理方案。令牌桶[7]的特征是持续可持续的数据速率(令牌速率)和数据速率在短时间内可能超过令牌速率的程度(令牌桶大小)。在任意选择的时间间隔内,源可传输的字节数不得超过令牌桶大小加上令牌速率与所选时间间隔的乘积。
In addition, a source MUST bound the maximum rate at which successive packets may be transmitted using a leaky bucket scheme drained at a maximum transmit rate, or equivalent mechanism.
此外,源必须使用以最大传输速率排出的漏桶方案或等效机制来限制连续分组的最大传输速率。
To preserve the logic of PGM's transmit window, a source MUST strictly prioritize sending of pending NCFs first, pending SPMs second, and only send ODATA or RDATA when no NCFs or SPMs are pending. The priority of RDATA versus ODATA is application dependent. The sender MAY implement weighted bandwidth sharing between RDATA and ODATA. Note that strict prioritization of RDATA over ODATA may stall progress of ODATA if there are receivers that keep generating NAKs so as to always have RDATA pending (e.g. a steady stream of late joiners with OPT_JOIN). Strictly prioritizing ODATA over RDATA may lead to a larger portion of receivers getting unrecoverable losses.
为了保留PGM传输窗口的逻辑,源必须严格优先发送挂起的NCF,其次是挂起的SPM,并且只有在没有挂起的NCF或SPM时才发送ODATA或RDATA。RDATA与ODATA的优先级取决于应用程序。发送方可以在RDATA和ODATA之间实现加权带宽共享。请注意,如果有接收器持续生成NAK以使RDATA始终处于挂起状态(例如,具有OPT_JOIN的稳定延迟加入者流),则RDATA的严格优先级高于ODATA可能会阻碍ODATA的进程。严格优先考虑ODATA而不是RDATA可能会导致更大比例的接收机遭受不可恢复的损失。
Interleaved with ODATA and RDATA, a source MUST transmit SPMs at a rate at least sufficient to maintain current source path state in PGM network elements. Note that source path state in network elements does not track underlying changes in the distribution tree from a source until an SPM traverses the altered distribution tree. The consequence is that NAKs may go unconfirmed both at receivers and amongst network elements while changes in the underlying distribution tree take place.
与ODATA和RDATA交织,源必须以至少足以维持PGM网元中当前源路径状态的速率传输SPM。请注意,网元中的源路径状态不会从源跟踪分发树中的底层更改,直到SPM遍历更改后的分发树。其结果是,当底层分布树发生变化时,NAK可能在接收器处和网络元素之间都未确认。
In the absence of data to transmit, a source SHOULD transmit SPMs at a decaying rate in order to assist early detection of lost data, to maintain current source path state in PGM network elements, and to maintain current receive window state in the receivers.
在没有要发送的数据的情况下,源应以衰减速率发送spm,以帮助早期检测丢失的数据,保持PGM网络元件中的当前源路径状态,并保持接收机中的当前接收窗口状态。
In this scheme [8], a source maintains an inter-heartbeat timer IHB_TMR which times the interval between the most recent packet (ODATA, RDATA, or SPM) transmission and the next heartbeat transmission. IHB_TMR is initialized to a minimum interval IHB_MIN after the transmission of any data packet. If IHB_TMR expires, the source transmits a heartbeat SPM and initializes IHB_TMR to double its previous value. The transmission of consecutive heartbeat SPMs doubles IHB each time up to a maximum interval IHB_MAX. The transmission of any data packet initializes IHB_TMR to IHB_MIN once again. The effect is to provoke prompt detection of missing packets in the absence of data to transmit, and to do so with minimal bandwidth overhead.
在该方案[8]中,源维护心跳间计时器IHB_TMR,该计时器乘以最近的数据包(ODATA、RDATA或SPM)传输和下一次心跳传输之间的间隔。在传输任何数据包后,IHB_TMR被初始化为最小间隔IHB_MIN。如果IHB_TMR过期,源将传输心跳SPM并初始化IHB_TMR,使其值加倍。连续心跳SPM的传输每次将IHB加倍,最大间隔为IHB_MAX。任何数据包的传输都会将IHB_TMR再次初始化为IHB_MIN。其效果是在没有数据传输的情况下激发对丢失数据包的快速检测,并以最小的带宽开销来实现。
Ambient and heartbeat SPMs are described as driven by separate timers in this specification to highlight their contrasting functions. Ambient SPMs are driven by a count-down timer that expires regularly while heartbeat SPMs are driven by a count-down timer that keeps being reset by data, and the interval of which changes once it begins to expire. The ambient SPM timer is just counting down in real-time while the heartbeat timer is measuring the inter-data-packet interval.
在本规范中,环境和心跳SPM被描述为由单独的计时器驱动,以突出其对比功能。环境SPM由定期到期的倒计时计时器驱动,而心跳SPM由不断被数据重置的倒计时计时器驱动,其时间间隔在开始到期时改变。环境SPM计时器正在实时倒计时,而心跳计时器正在测量数据包间隔。
In the presence of data, no heartbeat SPMs will be transmitted since the transmission of data keeps setting the IHB_TMR back to its initial value. At the same time however, ambient SPMs MUST be interleaved into the data as a matter of course, not necessarily as a heartbeat mechanism. This ambient transmission of SPMs is REQUIRED to keep the distribution tree information in the network current and to allow new receivers to synchronize with the session.
在存在数据的情况下,不会传输心跳SPM,因为数据传输会将IHB_TMR设置回其初始值。然而,与此同时,环境SPM必须作为一种理所当然的方式交织到数据中,而不一定是作为心跳机制。SPM的这种环境传输需要保持网络中的分发树信息最新,并允许新的接收器与会话同步。
An implementation SHOULD de-couple ambient and heartbeat SPM timers sufficiently to permit them to be configured independently of each other.
实现应充分解耦环境和心跳SPM计时器,以允许它们彼此独立配置。
A source MUST immediately multicast an NCF in response to any NAK it receives. The NCF is REQUIRED since the alternative of responding immediately with RDATA would not allow other PGM network elements on the same subnet to do NAK anticipation, nor would it allow DLRs on the same subnet to provide repairs. A source SHOULD be able to detect a NAK storm and adopt countermeasure to protect the network against a denial of service. A possible countermeasure is to send the first NCF immediately in response to a NAK and then delay the generation of further NCFs (for identical NAKs) by a small interval, so that identical NCFs are rate-limited, without affecting the ability to suppress NAKs.
源必须立即多播NCF以响应其接收到的任何NAK。需要NCF,因为使用RDATA立即响应的替代方案不允许同一子网上的其他PGM网元进行NAK预测,也不允许同一子网上的DLR提供修复。源应能够检测到NAK风暴,并采取对策保护网络免受拒绝服务的影响。一种可能的对策是响应于NAK立即发送第一NCF,然后将进一步的NCF(对于相同的NAK)的生成延迟一小段时间,以便相同的NCF是速率受限的,而不影响抑制NAK的能力。
After multicasting an NCF in response to a NAK, a source MUST then multicast RDATA (while respecting TXW_MAX_RTE) in response to any NAK it receives for data packets within the transmit window.
在多播NCF以响应NAK之后,源必须多播RDATA(同时遵守TXW_MAX_RTE),以响应其在传输窗口内接收到的任何NAK数据包。
In the interest of increasing the efficiency of a particular RDATA packet, a source MAY delay RDATA transmission to accommodate the arrival of NAKs from the whole loss neighborhood. This delay SHOULD not exceed twice the greatest propagation delay in the loss neighborhood.
为了提高特定RDATA分组的效率,源可以延迟RDATA传输以适应来自整个丢失邻域的nak的到达。该延迟不应超过损失邻域中最大传播延迟的两倍。
Initial data reception
初始数据接收
A receiver SHOULD initiate data reception beginning with the first data packet it receives within the advertised transmit window. This packet's sequence number (ODATA_SQN) temporarily defines the trailing edge of the transmit window from the receiver's perspective. That is, it is assigned to RXW_TRAIL_INIT within the receiver, and until the trailing edge sequence number advertised in subsequent packets (SPMs or ODATA or RDATA) increments past RXW_TRAIL_INIT, the receiver MUST only request repairs for sequence numbers subsequent to RXW_TRAIL_INIT. Thereafter, it MAY request repairs anywhere in the transmit window. This temporary restriction on repair requests prevents receivers from requesting a potentially large amount of history when they first begin to receive a given PGM transport session.
接收器应该从其在广告发送窗口内接收的第一个数据包开始启动数据接收。该数据包的序列号(ODATA_SQN)从接收器的角度临时定义了传输窗口的后缘。也就是说,它被分配给接收机内的RXW_TRAIL_INIT,并且直到在后续数据包(spm或ODATA或RDATA)中公布的后缘序列号增加超过RXW_TRAIL_INIT,接收机必须仅请求修复RXW_TRAIL_INIT之后的序列号。此后,它可能会请求在传输窗口中的任何位置进行维修。这种对修复请求的临时限制可防止接收器在首次开始接收给定PGM传输会话时请求潜在的大量历史记录。
Note that the JOIN option, discussed later, MAY be used to provide a different value for RXW_TRAIL_INIT.
请注意,稍后讨论的JOIN选项可用于为RXW_TRAIL_INIT提供不同的值。
Receiving and discarding data packets
接收和丢弃数据包
Within a given transport session, a receiver MUST accept any ODATA or RDATA packets within the receive window. A receiver MUST discard any data packet that duplicates one already received in the transmit window. A receiver MUST discard any data packet outside of the receive window.
在给定的传输会话中,接收器必须在接收窗口内接受任何ODATA或RDATA数据包。接收器必须丢弃与传输窗口中已接收的数据包重复的任何数据包。接收器必须丢弃接收窗口之外的任何数据包。
Contiguous data
连续数据
Contiguous data is comprised of those data packets within the receive window that have been received and are in the range from RXW_TRAIL up to (but not including) the first missing sequence number in the receive window. The most recently received data packet of contiguous data defines the leading edge of contiguous data.
连续数据由接收窗口内已接收的数据包组成,其范围从RXW_TRAIL到(但不包括)接收窗口中的第一个缺失序列号。最近接收到的连续数据的数据包定义了连续数据的前缘。
As its default mode of operation, a receiver MUST deliver only contiguous data packets to the application, and it MUST do so in the order defined by those data packets' sequence numbers. This provides applications with a reliable ordered data flow.
作为其默认操作模式,接收器必须仅向应用程序发送连续的数据包,并且必须按照这些数据包的序列号定义的顺序发送。这为应用程序提供了可靠的有序数据流。
Non contiguous data
非连续数据
PGM receiver implementations MAY optionally provide a mode of operation in which data is delivered to an application in the order received. However, the implementation MUST only deliver complete application protocol data units (APDUs) to the application. That is, APDUs that have been fragmented into different TPDUs MUST be reassembled before delivery to the application.
PGM接收机实现可以可选地提供一种操作模式,在该模式中,数据按照接收到的顺序被传送到应用程序。但是,实现必须只向应用程序交付完整的应用程序协议数据单元(APDU)。也就是说,在交付到应用程序之前,必须重新组装已分割为不同TPDU的APDU。
Receivers MUST receive and sequence SPMs for any TSI they are receiving. An SPM is in sequence if its sequence number is greater than that of the most recent in-sequence SPM and within half the PGM number space. Out-of-sequence SPMs MUST be discarded.
接收器必须接收并对其接收的任何TSI的SPM排序。如果SPM的序列号大于序列中最近的SPM的序列号且在PGM编号空间的一半以内,则SPM为序列中的。必须丢弃顺序错误的SPM。
For each TSI, receivers MUST use the most recent SPM to determine the NLA of the upstream PGM network element for use in NAK addressing. A receiver MUST NOT initiate repair requests until it has received at least one SPM for the corresponding TSI.
对于每个TSI,接收机必须使用最新的SPM来确定用于NAK寻址的上游PGM网元的NLA。在至少收到一个对应TSI的SPM之前,接收方不得发起维修请求。
Since SPMs require per-hop processing, it is likely that they will be forwarded at a slower rate than data, and that they will arrive out of sync with the data stream. In this case, the window information that the SPMs carry will be out of date. Receivers SHOULD expect this to be the case and SHOULD detect it by comparing the packet lead and trail values with the values the receivers have stored for lead and trail. If the SPM packet values are less, they SHOULD be ignored, but the rest of the packet SHOULD be processed as normal.
由于SPM需要逐跳处理,因此它们的转发速率可能低于数据,并且它们将与数据流不同步。在这种情况下,SPM携带的窗口信息将过期。接收者应该预料到这种情况,并且应该通过将数据包的lead和trail值与接收者为lead和trail存储的值进行比较来检测。如果SPM数据包值较小,则应忽略它们,但数据包的其余部分应按正常方式处理。
Detecting missing data packets
检测丢失的数据包
Receivers MUST detect gaps in the expected data sequence in the following manners:
接收器必须通过以下方式检测预期数据序列中的间隙:
by comparing the sequence number on the most recently received ODATA or RDATA packet with the leading edge of contiguous data
通过将最近接收到的ODATA或RDATA数据包上的序列号与连续数据的前沿进行比较
by comparing SPM_LEAD of the most recently received SPM with the leading edge of contiguous data
通过比较最近接收到的SPM的SPM_前沿与连续数据的前沿
In both cases, if the receiver has not received all intervening data packets, it MAY initiate selective NAK generation for each missing sequence number.
在这两种情况下,如果接收机没有接收到所有介入的数据分组,则它可以针对每个缺失的序列号启动选择性NAK生成。
In addition, a receiver may detect a single missing data packet by receiving an NCF or multicast NAK for a data packet within the transmit window which it has not received. In this case it MAY initiate selective NAK generation for the said sequence number.
此外,接收机可以通过在发送窗口内接收其尚未接收到的数据分组的NCF或多播NAK来检测单个丢失的数据分组。在这种情况下,它可以为所述序列号启动选择性NAK生成。
In all cases, receivers SHOULD temper the initiation of NAK generation to account for simple mis-ordering introduced by the network. A possible mechanism to achieve this is to assume loss only after the reception of N packets with sequence numbers higher than those of the (assumed) lost packets. A possible value for N is 2. This method SHOULD be complemented with a timeout based mechanism that handles the loss of the last packet before a pause in the transmission of the data stream. The leading edge field in SPMs SHOULD also be taken into account in the loss detection algorithm.
在所有情况下,接收器都应调节NAK生成的启动,以解释网络引入的简单错误排序。实现这一点的一种可能机制是仅在接收到序列号高于(假定的)丢失的分组的序列号的N个分组之后才假定丢失。N的可能值为2。此方法应辅以基于超时的机制,该机制处理数据流传输暂停前最后一个数据包的丢失。在损耗检测算法中,还应考虑SPMs中的前沿场。
Generating NAKs
生成NAK
NAK generation follows the detection of a missing data packet and is the cycle of:
NAK生成在检测到丢失的数据包之后,是以下周期:
waiting for a random period of time (NAK_RB_IVL) while listening for matching NCFs or NAKs
等待随机时间段(NAK_RB_IVL),同时侦听匹配的NCF或NAK
transmitting a NAK if a matching NCF or NAK is not heard
如果没有听到匹配的NCF或NAK,则发送NAK
waiting a period (NAK_RPT_IVL) for a matching NCF and recommencing NAK generation if the matching NCF is not received
为匹配的NCF等待一段时间(NAK_RPT_IVL),如果未收到匹配的NCF,则重新开始NAK生成
waiting a period (NAK_RDATA_IVL) for data and recommencing NAK generation if the matching data is not received
为数据等待一段时间(NAK_RDATA_IVL),如果未收到匹配数据,则重新开始NAK生成
The entire generation process can be summarized by the following state machine:
整个生成过程可通过以下状态机进行总结:
| | detect missing tpdu | - clear data retry count | - clear NCF retry count V matching NCF |--------------------------| <---------------| BACK-OFF_STATE | <---------------------- | | start timer(NAK_RB_IVL) | ^ ^ | | | | | | |--------------------------| | | | matching | | timer expires | | | NAK | | - send NAK | | | | | | | | V V | | | |--------------------------| | | | | WAIT_NCF_STATE | | | | matching NCF | start timer(NAK_RPT_IVL) | | | |<--------------| |------------> | | |--------------------------| timer expires | | | | ^ - increment NCF | | NAK_NCF_RETRIES | | | retry count | | exceeded | | | | | V ----------- | | Cancelation matching NAK | | - restart timer(NAK_RPT_IVL) | | | | | V |--------------------------| | --------------->| WAIT_DATA_STATE |-----------------------> |start timer(NAK_RDATA_IVL)| timer expires | | - increment data |--------------------------| retry count | | ^ NAK_DATA_RETRIES | | | exceeded | | | | ----------- | matching NCF or NAK V - restart timer(NAK_RDATA_IVL) Cancellation
| | detect missing tpdu | - clear data retry count | - clear NCF retry count V matching NCF |--------------------------| <---------------| BACK-OFF_STATE | <---------------------- | | start timer(NAK_RB_IVL) | ^ ^ | | | | | | |--------------------------| | | | matching | | timer expires | | | NAK | | - send NAK | | | | | | | | V V | | | |--------------------------| | | | | WAIT_NCF_STATE | | | | matching NCF | start timer(NAK_RPT_IVL) | | | |<--------------| |------------> | | |--------------------------| timer expires | | | | ^ - increment NCF | | NAK_NCF_RETRIES | | | retry count | | exceeded | | | | | V ----------- | | Cancelation matching NAK | | - restart timer(NAK_RPT_IVL) | | | | | V |--------------------------| | --------------->| WAIT_DATA_STATE |-----------------------> |start timer(NAK_RDATA_IVL)| timer expires | | - increment data |--------------------------| retry count | | ^ NAK_DATA_RETRIES | | | exceeded | | | | ----------- | matching NCF or NAK V - restart timer(NAK_RDATA_IVL) Cancellation
In any state, receipt of matching RDATA or ODATA completes data recovery and successful exit from the state machine. State transition stops any running timers.
在任何状态下,收到匹配的RDATA或ODATA都会完成数据恢复并成功退出状态机。状态转换停止任何正在运行的计时器。
In any state, if the trailing edge of the window moves beyond the sequence number, data recovery for that sequence number terminates.
在任何状态下,如果窗口的后缘移动超过序列号,则该序列号的数据恢复将终止。
During NAK_RB_IVL a NAK is said to be pending. When awaiting data or an NCF, a NAK is said to be outstanding.
在NAK_RB_IVL期间,据说NAK正在等待。当等待数据或NCF时,NAK被称为未完成。
Backing off NAK transmission
后退NAK传输
Before transmitting a NAK, a receiver MUST wait some interval NAK_RB_IVL chosen randomly over some time period NAK_BO_IVL. During this period, receipt of a matching NAK or a matching NCF will suspend NAK generation. NAK_RB_IVL is counted down from the time a missing data packet is detected.
在发送NAK之前,接收机必须等待在某个时间段NAK_BO_IVL上随机选择的某个间隔NAK_RB_IVL。在此期间,收到匹配的NAK或匹配的NCF将暂停NAK生成。NAK_RB_IVL从检测到丢失数据包时开始倒计时。
A value for NAK_BO_IVL learned from OPT_NAK_BO_IVL (see 16.4.1 below) MUST NOT be used by a receiver (i.e., the receiver MUST NOT NAK) unless either NAK_BO_IVL_SQN is zero, or the receiver has seen POLL_RND == 0 for POLL_SQN =< NAK_BO_IVL_SQN within half the sequence number space.
从OPT_NAK_BO_IVL(见下文16.4.1)获取的NAK_BO_IVL值(见下文16.4.1)不得由接收方使用(即,接收方不得使用NAK),除非NAK_BO_IVL_SQN为零,或者接收方在一半序列号空间内看到POLL_SQN=<NAK_BO IVL_SQN的POLL_RND==0。
When a parity NAK (Appendix A, FEC) is being generated, the back-off interval SHOULD be inversely biased with respect to the number of parity packets requested. This way NAKs requesting larger numbers of parity packets are likely to be sent first and thus suppress other NAKs. A NAK for a given transmission group suppresses another NAK for the same transmission group only if it is requesting an equal or larger number of parity packets.
当生成奇偶校验NAK(附录a,FEC)时,退避间隔应与请求的奇偶校验数据包的数量成反比。这样,请求更多奇偶校验分组的nak可能首先被发送,从而抑制其他nak。仅当给定传输组的NAK请求相等或更大数量的奇偶校验数据包时,该传输组的NAK才会抑制同一传输组的另一NAK。
When a receiver has to transmit a sequence of NAKs, it SHOULD transmit the NAKs in order from oldest to most recent.
当接收器必须发送一系列NAK时,它应该按照从最早到最近的顺序发送NAK。
Suspending NAK generation
暂停NAK生成
Suspending NAK generation just means waiting for either NAK_RB_IVL, NAK_RPT_IVL or NAK_RDATA_IVL to pass. A receiver MUST suspend NAK generation if a duplicate of the NAK is already pending from this receiver or the NAK is already outstanding from this or another receiver.
暂停NAK生成只意味着等待NAK_RB_IVL、NAK_RPT_IVL或NAK_RDATA_IVL通过。如果此接收器的NAK副本已挂起,或者此接收器或其他接收器的NAK已挂起,则接收器必须暂停NAK生成。
NAK suppression
NAK抑制
A receiver MUST suppress NAK generation and wait at least NAK_RDATA_IVL before recommencing NAK generation if it hears a matching NCF or NAK during NAK_RB_IVL. A matching NCF must match NCF_TSI with NAK_TSI, and NCF_SQN with NAK_SQN.
如果接收机在NAK_RB_IVL期间听到匹配的NCF或NAK,则接收机必须抑制NAK生成并在重新开始NAK生成之前至少等待NAK_RDATA_IVL。匹配的NCF必须将NCF_TSI与NAK_TSI匹配,NCF_SQN与NAK_SQN匹配。
Transmitting a NAK
发送NAK
Upon expiry of NAK_RB_IVL, a receiver MUST unicast a NAK to the upstream PGM network element for the TSI specifying the transport session identifier and missing sequence number. In addition, it MAY
在NAK_RB_IVL到期时,接收机必须单播NAK到TSI的上游PGM网元,指定传输会话标识符和丢失的序列号。此外,它可能
multicast a NAK with TTL of 1 to the group, if the PGM parent is not directly connected. It also records both the address of the source of the corresponding ODATA and the address of the group in the NAK header.
如果PGM父级未直接连接,则将TTL为1的NAK多播到组。它还将相应ODATA的源地址和组地址记录在NAK头中。
It MUST repeat the NAK at a rate governed by NAK_RPT_IVL up to NAK_NCF_RETRIES times while waiting for a matching NCF. It MUST then wait NAK_RDATA_IVL before recommencing NAK generation. If it hears a matching NCF or NAK during NAK_RDATA_IVL, it MUST wait anew for NAK_RDATA_IVL before recommencing NAK generation (i.e. matching NCFs and NAKs restart NAK_RDATA_IVL).
在等待匹配的NCF时,它必须以NAK_RPT_IVL控制的速率重复NAK,直到NAK_NCF_重试次数。然后,它必须等待NAK_RDATA_IVL,然后再开始NAK生成。如果在NAK_RDATA_IVL期间听到匹配的NCF或NAK,则必须在重新开始NAK生成之前重新等待NAK_RDATA_IVL(即,匹配的NCF和NAK重新启动NAK_RDATA_IVL)。
Completion of NAK generation
NAK生成的完成
NAK generation is complete only upon the receipt of the matching RDATA (or even ODATA) packet at any time during NAK generation.
只有在NAK生成期间的任何时候收到匹配的RDATA(甚至ODATA)数据包时,NAK生成才完成。
Cancellation of NAK generation
NAK生成的取消
NAK generation is cancelled upon the advancing of the receive window so as to exclude the matching sequence number of a pending or outstanding NAK, or NAK_DATA_RETRIES / NAK_NCF_RETRIES being exceeded. Cancellation of NAK generation indicates unrecoverable data loss.
在接收窗口提前时取消NAK生成,以排除挂起或未完成NAK的匹配序列号,或超过NAK_数据_重试/NAK_NCF_重试次数。取消NAK生成表示无法恢复的数据丢失。
Receiving NCFs and multicast NAKs
接收ncf和多播nak
A receiver MUST discard any NCFs or NAKs it hears for data packets outside the transmit window or for data packets it has received. Otherwise they are treated as appropriate for the current repair state.
对于传输窗口外的数据包或已接收的数据包,接收器必须丢弃其听到的任何NCF或NAK。否则,它们将被视为适用于当前修复状态。
Upon receipt of an in-sequence SPM, a network element records the Source Path Address SPM_PATH with the multicast routing information for the TSI. If the receiving network element is on the same subnet as the forwarding network element, this address will be the same as the address of the immediately upstream network element on the distribution tree for the TSI. If, however, non-PGM network elements intervene between the forwarding and the receiving network elements, this address will be the address of the first PGM network element across the intervening network elements.
在接收到顺序中的SPM时,网元记录源路径地址SPM_Path以及TSI的多播路由信息。如果接收网元与转发网元位于同一子网中,则该地址将与TSI分发树上紧邻上游的网元的地址相同。然而,如果非PGM网络元件介入转发和接收网络元件之间,则该地址将是跨越介入网络元件的第一个PGM网络元件的地址。
The network element then forwards the SPM on each outgoing interface for that TSI. As it does so, it encodes the network address of the outgoing interface in SPM_PATH in each copy of the SPM it forwards.
然后,网元在该TSI的每个传出接口上转发SPM。这样做时,它会在转发的每个SPM副本的SPM_路径中对传出接口的网络地址进行编码。
Network elements MUST immediately transmit an NCF in response to any unicast NAK they receive. The NCF MUST be multicast to the group on the interface on which the NAK was received.
网络元件必须立即发送NCF以响应其接收到的任何单播NAK。NCF必须多播到接收NAK的接口上的组。
Nota Bene: In order to avoid creating multicast routing state for PGM network elements across non-PGM-capable clouds, the network-header source address of NCFs transmitted by network elements MUST be set to the ODATA source's NLA, not the network element's NLA as might be expected.
注:为了避免在不支持PGM的云上为PGM网元创建多播路由状态,网元传输的NCF的网络头源地址必须设置为ODATA源的NLA,而不是预期的网元的NLA。
Network elements should be able to detect a NAK storm and adopt counter-measure to protect the network against a denial of service. A possible countermeasure is to send the first NCF immediately in response to a NAK and then delay the generation of further NCFs (for identical NAKs) by a small interval, so that identical NCFs are rate-limited, without affecting the ability to suppress NAKs.
网元应能够检测NAK风暴,并采取相应措施保护网络免受拒绝服务的影响。一种可能的对策是响应于NAK立即发送第一NCF,然后将进一步的NCF(对于相同的NAK)的生成延迟一小段时间,以便相同的NCF是速率受限的,而不影响抑制NAK的能力。
Simultaneously, network elements MUST establish repair state for the NAK if such state does not already exist, and add the interface on which the NAK was received to the corresponding repair interface list if the interface is not already listed.
同时,网元必须为NAK建立修复状态(如果该状态不存在),并将接收NAK的接口添加到相应的修复接口列表(如果该接口尚未列出)。
The NAK forwarding procedures for network elements are quite similar to those for receivers, but three important differences should be noted.
网络元件的NAK转发过程与接收器的NAK转发过程非常相似,但应注意三个重要区别。
First, network elements do NOT back off before forwarding a NAK (i.e., there is no NAK_BO_IVL) since the resulting delay of the NAK would compound with each hop. Note that NAK arrivals will be randomized by the receivers from which they originate, and this factor in conjunction with NAK anticipation and elimination will combine to forestall NAK storms on subnets with a dense network element population.
首先,网络元件在转发NAK之前不会后退(即,没有NAK_BO_IVL),因为NAK的结果延迟将与每个跳复合。请注意,NAK到达将由其来源的接收器随机分配,该因素与NAK预测和消除相结合,将在网络元素密集的子网上预防NAK风暴。
Second, network elements do NOT retry confirmed NAKs if RDATA is not seen; they simply discard the repair state and rely on receivers to re-request the repair. This approach keeps the repair state in the network elements relatively ephemeral and responsive to underlying routing changes.
第二,如果看不到RDATA,网元不会重试已确认的NAK;他们只需放弃修复状态,并依赖接收者重新请求修复。这种方法使网元中的修复状态相对短暂,并对底层路由更改作出响应。
Third, note that ODATA does NOT cancel NAK forwarding in network elements since it is switched by network elements without transport-layer intervention.
第三,请注意,ODATA不会取消网元中的NAK转发,因为它是由网元在没有传输层干预的情况下进行切换的。
Nota Bene: Once confirmed by an NCF, network elements discard NAK packets; they are NOT retained in network elements beyond this forwarding operation.
Nota Bene:一旦NCF确认,网元丢弃NAK数据包;它们不会保留在此转发操作之外的网络元素中。
NAK forwarding requires that a network element listen to NCFs for the same transport session. NAK forwarding also requires that a network element observe two time out intervals for any given NAK (i.e., per NAK_TSI and NAK_SQN): NAK_RPT_IVL and NAK_RDATA_IVL.
NAK转发要求网元侦听同一传输会话的NCF。NAK转发还要求网元遵守任何给定NAK的两个超时间隔(即,每个NAK_TSI和NAK_SQN):NAK_RPT_IVL和NAK_RDATA_IVL。
The NAK repeat interval NAK_RPT_IVL, limits the length of time for which a network element will repeat a NAK while waiting for a corresponding NCF. NAK_RPT_IVL is counted down from the transmission of a NAK. Expiry of NAK_RPT_IVL cancels NAK forwarding (due to missing NCF).
NAK repeat interval NAK_RPT_IVL限制了网元在等待相应NCF时重复NAK的时间长度。NAK_RPT_IVL从NAK的传输开始倒计时。NAK_RPT_IVL到期取消NAK转发(由于缺少NCF)。
The NAK RDATA interval NAK_RDATA_IVL, limits the length of time for which a network element will wait for the corresponding RDATA. NAK_RDATA_IVL is counted down from the time a matching NCF is received. Expiry of NAK_RDATA_IVL causes the network element to discard the corresponding repair state (due to missing RDATA).
NAK RDATA间隔NAK_RDATA_IVL限制了网元等待相应RDATA的时间长度。NAK_RDATA_IVL从收到匹配的NCF时开始倒计时。NAK_RDATA_IVL的到期导致网元放弃相应的修复状态(由于缺少RDATA)。
During NAK_RPT_IVL, a NAK is said to be pending. During NAK_RDATA_IVL, a NAK is said to be outstanding.
在NAK_RPT_IVL期间,据说NAK正在等待。在NAK_RDATA_IVL期间,据说NAK是杰出的。
A Network element MUST forward NAKs only to the upstream PGM network element for the TSI.
网元必须仅向TSI的上游PGM网元转发NAK。
A network element MUST repeat a NAK at a rate of NAK_RPT_RTE for an interval of NAK_RPT_IVL until it receives a matching NCF. A matching NCF must match NCF_TSI with NAK_TSI, and NCF_SQN with NAK_SQN.
网元必须以NAK_RPT_RTE的速率重复NAK,间隔为NAK_RPT_IVL,直到接收到匹配的NCF为止。匹配的NCF必须将NCF_TSI与NAK_TSI匹配,NCF_SQN与NAK_SQN匹配。
Upon reception of the corresponding NCF, network elements MUST wait at least NAK_RDATA_IVL for the corresponding RDATA. Receipt of the corresponding RDATA at any time during NAK forwarding cancels NAK forwarding and tears down the corresponding repair state in the network element.
在接收到相应的NCF时,网络元件必须至少等待对应的RDATA的NAK_RDATA_IVL。在NAK转发期间的任何时候接收到相应的RDATA都会取消NAK转发并中断网元中相应的修复状态。
Two NAKs duplicate each other if they bear the same NAK_TSI and NAK_SQN. Network elements MUST discard all duplicates of a NAK that is pending.
如果两个NAK具有相同的NAK_TSI和NAK_SQN,则它们会相互复制。网元必须丢弃挂起的NAK的所有副本。
Once a NAK is outstanding, network elements MUST discard all duplicates of that NAK for NAK_ELIM_IVL. Upon expiry of NAK_ELIM_IVL, network elements MUST suspend NAK elimination for that TSI/SQN until the first duplicate of that NAK is seen after the expiry of NAK_ELIM_IVL. This duplicate MUST be forwarded in the usual manner. Once this duplicate NAK is outstanding, network elements MUST once again discard all duplicates of that NAK for NAK_ELIM_IVL, and so on. NAK_RDATA_IVL MUST be reset each time a NAK for the corresponding TSI/SQN is confirmed (i.e., each time NAK_ELIM_IVL is reset). NAK_ELIM_IVL MUST be some small fraction of NAK_RDATA_IVL.
一旦NAK未完成,网元必须为NAK_ELIM_IVL丢弃该NAK的所有副本。NAK_ELIM_IVL到期后,网元必须暂停该TSI/SQN的NAK消除,直到在NAK_ELIM_IVL到期后看到该NAK的第一个副本。此副本必须以通常方式转发。一旦该重复NAK未完成,网元必须再次为NAK_ELIM_IVL丢弃该NAK的所有重复项,以此类推。每次确认相应TSI/SQN的NAK时(即每次重置NAK_ELIM_IVL),必须重置NAK_RDATA_IVL。NAK_ELIM_IVL必须是NAK_RDATA_IVL的一小部分。
NAK_ELIM_IVL acts to balance implosion prevention against repair state liveness. That is, it results in the elimination of all but at most one NAK per NAK_ELIM_IVL thereby allowing repeated NAKs to keep the repair state alive in the PGM network elements.
NAK_ELIM_IVL的作用是平衡内爆预防和修复状态活性。也就是说,它导致每个NAK_ELIM_IVL消除除最多一个以外的所有NAK,从而允许重复的NAK在PGM网络元件中保持修复状态。
An unsolicited NCF is one that is received by a network element when the network element has no corresponding pending or outstanding NAK. Network elements MUST process unsolicited NCFs differently depending on the interface on which they are received.
未经请求的NCF是当网元没有相应的挂起或未完成的NAK时由网元接收的NCF。网元必须根据接收非请求NCF的接口,以不同方式处理非请求NCF。
If the interface on which an NCF is received is the same interface the network element would use to reach the upstream PGM network element, the network element simply establishes repair state for NCF_TSI and NCF_SQN without adding the interface to the repair interface list, and discards the NCF. If the repair state already exists, the network element restarts the NAK_RDATA_IVL and NAK_ELIM_IVL timers and discards the NCF.
如果接收NCF的接口与网元用于到达上游PGM网元的接口相同,则网元仅为NCF_TSI和NCF_SQN建立修复状态,而不将该接口添加到修复接口列表中,并丢弃NCF。如果修复状态已经存在,网元将重新启动NAK_RDATA_IVL和NAK_ELIM_IVL计时器并丢弃NCF。
If the interface on which an NCF is received is not the same interface the network element would use to reach the upstream PGM network element, the network element does not establish repair state and just discards the NCF.
如果接收NCF的接口与网元用于到达上游PGM网元的接口不同,则网元不会建立修复状态,而只是丢弃NCF。
Anticipated NAKs permit the elimination of any subsequent matching NAKs from downstream. Upon establishing anticipated repair state, network elements MUST eliminate subsequent NAKs only for a period of NAK_ELIM_IVL. Upon expiry of NAK_ELIM_IVL, network elements MUST suspend NAK elimination for that TSI/SQN until the first duplicate of that NAK is seen after the expiry of NAK_ELIM_IVL. This duplicate MUST be forwarded in the usual manner. Once this duplicate NAK is outstanding, network elements MUST once again discard all duplicates of that NAK for NAK_ELIM_IVL, and so on. NAK_RDATA_IVL MUST be reset
预期NAK允许从下游消除任何后续匹配NAK。在建立预期的修复状态后,网元必须仅在NAK_ELIM_IVL期间消除后续NAK。NAK_ELIM_IVL到期后,网元必须暂停该TSI/SQN的NAK消除,直到在NAK_ELIM_IVL到期后看到该NAK的第一个副本。此副本必须以通常方式转发。一旦该重复NAK未完成,网元必须再次为NAK_ELIM_IVL丢弃该NAK的所有重复项,以此类推。必须重置NAK_RDATA_IVL
each time a NAK for the corresponding TSI/SQN is confirmed (i.e., each time NAK_ELIM_IVL is reset). NAK_ELIM_IVL must be some small fraction of NAK_RDATA_IVL.
每次确认对应TSI/SQN的NAK时(即每次重置NAK_ELIM_IVL时)。NAK_ELIM_IVL必须是NAK_RDATA_IVL的一小部分。
Network elements MAY implement local procedures for withholding NAK confirmations for receivers detected to be reporting excessive loss. The result of these procedures would ultimately be unrecoverable data loss in the receiver.
网络元件可实施本地程序,用于为被检测为报告过度损失的接收器扣留NAK确认。这些程序的结果最终将是接收器中无法恢复的数据丢失。
A PGM network element uses the source and group addresses (NLAs) contained in the transport header to find the state for the corresponding TSI, looks up the corresponding upstream PGM network element's address, uses it to re-address the (unicast) NAK, and unicasts it on the upstream interface for the distribution tree for the TSI.
PGM网元使用传输报头中包含的源地址和组地址(NLA)查找相应TSI的状态,查找相应上游PGM网元的地址,使用它重新寻址(单播)NAK,并在TSI分发树的上游接口上单播。
Network elements MUST maintain repair state for each interface on which a given NAK is received at least once. Network elements MUST then use this list of interfaces to constrain the forwarding of the corresponding RDATA packet only to those interfaces in the list. An RDATA packet corresponds to a NAK if it matches NAK_TSI and NAK_SQN.
网元必须保持每个接口的修复状态,在该接口上至少接收一次给定的NAK。然后,网元必须使用此接口列表来限制相应RDATA数据包仅转发到列表中的那些接口。如果RDATA数据包与NAK_TSI和NAK_SQN匹配,则它对应于NAK。
Network elements MUST maintain this repair state only until either the corresponding RDATA is received and forwarded, or NAK_RDATA_IVL passes after forwarding the most recent instance of a given NAK. Thereafter, the corresponding repair state MUST be discarded.
网元必须保持此修复状态,直到接收并转发相应的RDATA,或者在转发给定NAK的最新实例后通过NAK_RDATA_IVL。此后,必须放弃相应的修复状态。
Network elements SHOULD discard and not forward RDATA packets for which they have no repair state. Note that the consequence of this procedure is that, while it constrains repairs to the interested subset of the network, loss of repair state precipitates further NAKs from neglected receivers.
网元应丢弃且不转发其没有修复状态的RDATA数据包。注意,该过程的结果是,虽然它限制对网络的感兴趣子集的修复,但修复状态的丢失会使被忽略的接收机进一步产生NAK。
All of the packet formats described in this section are transport-layer headers that MUST immediately follow the network-layer header in the packet. Only data packet headers (ODATA and RDATA) may be followed in the packet by application data. For each packet type, the network-header source and destination addresses are specified in
本节中描述的所有数据包格式都是传输层报头,必须紧跟数据包中的网络层报头。只有数据包头(ODATA和RDATA)可以在包中后跟应用程序数据。对于每种数据包类型,网络报头源地址和目标地址在中指定
addition to the format and contents of the transport layer header. Recall from General Procedures that, for PGM over IP multicast, SPMs, NCFs, and RDATA MUST also bear the IP Router Alert Option.
添加到传输层标头的格式和内容。回顾一下一般过程,对于IP多播上的PGM,SPM、NCF和RDATA也必须具有IP路由器警报选项。
For PGM over IP, the IP protocol number is 113.
对于IP上的PGM,IP协议编号为113。
In all packets the descriptions of Data-Source Port, Data-Destination Port, Type, Options, Checksum, Global Source ID (GSI), and Transport Service Data Unit (TSDU) Length are:
在所有数据包中,对数据源端口、数据目标端口、类型、选项、校验和、全局源ID(GSI)和传输服务数据单元(TSDU)长度的描述如下:
Data-Source Port:
数据源端口:
A random port number generated by the source. This port number MUST be unique within the source. Source Port together with Global Source ID forms the TSI.
由源生成的随机端口号。此端口号在源中必须是唯一的。源端口与全局源ID一起构成TSI。
Data-Destination Port:
数据目标端口:
A globally well-known port number assigned to the given PGM application.
分配给给定PGM应用程序的全球知名端口号。
Type:
类型:
The high-order two bits of the Type field encode a version number, 0x0 in this instance. The low-order nibble of the type field encodes the specific packet type. The intervening two bits (the low-order two bits of the high-order nibble) are reserved and MUST be zero.
类型字段的高阶两位编码版本号,在本例中为0x0。类型字段的低阶半字节编码特定的数据包类型。中间的两位(高阶半字节的低阶两位)是保留的,必须为零。
Within the low-order nibble of the Type field:
在类型字段的低阶半字节内:
values in the range 0x0 through 0x3 represent SPM-like packets (i.e., session-specific, sourced by a source, periodic),
0x0到0x3范围内的值表示类似SPM的数据包(即,特定于会话的、由源发出的、周期性的),
values in the range 0x4 through 0x7 represent DATA-like packets (i.e., data and repairs),
0x4到0x7范围内的值表示数据包(即数据和修复),
values in the range 0x8 through 0xB represent NAK-like packets (i.e., hop-by-hop reliable NAK forwarding procedures),
0x8到0xB范围内的值表示类似NAK的数据包(即逐跳可靠NAK转发过程),
and values in the range 0xC through 0xF represent SPMR-like packets (i.e., session-specific, sourced by a receiver, asynchronous).
0xC到0xF范围内的值表示类似于SPMR的数据包(即,特定于会话、由接收器来源、异步)。
Options:
选项:
This field encodes binary indications of the presence and significance of any options. It also directly encodes some options.
该字段对任何选项的存在和重要性的二进制指示进行编码。它还直接对一些选项进行编码。
bit 0 set => One or more Option Extensions are present
位0 set=>存在一个或多个选项扩展
bit 1 set => One or more Options are network-significant
第1位设置=>一个或多个选项是网络重要选项
Note that this bit is clear when OPT_FRAGMENT and/or OPT_JOIN are the only options present.
注意,当OPT_片段和/或OPT_连接是唯一存在的选项时,此位是明确的。
bit 6 set => Packet is a parity packet for a transmission group of variable sized packets (OPT_VAR_PKTLEN). Only present when OPT_PARITY is also present.
位6 set=>数据包是一组可变大小数据包(OPT_VAR_PKTLEN)的奇偶校验数据包。仅当OPT_奇偶校验也存在时才存在。
bit 7 set => Packet is a parity packet (OPT_PARITY)
位7 set=>数据包是奇偶校验数据包(OPT_奇偶校验)
Bits are numbered here from left (0 = MSB) to right (7 = LSB).
位在这里从左(0=MSB)到右(7=LSB)进行编号。
All the other options (option extensions) are encoded in extensions to the PGM header.
所有其他选项(选项扩展)都在PGM标头的扩展中编码。
Checksum:
校验和:
This field is the usual 1's complement of the 1's complement sum of the entire PGM packet including header.
该字段是整个PGM数据包(包括报头)的补码和的常用补码。
The checksum does not include a network-layer pseudo header for compatibility with network address translation. If the computed checksum is zero, it is transmitted as all ones. A value of zero in this field means the transmitter generated no checksum.
校验和不包括与网络地址转换兼容的网络层伪报头。如果计算出的校验和为零,则将其作为“全部1”传输。此字段中的值为零表示变送器未生成校验和。
Note that if any entity between a source and a receiver modifies the PGM header for any reason, it MUST either recompute the checksum or clear it. The checksum is mandatory on data packets (ODATA and RDATA).
请注意,如果源和接收器之间的任何实体出于任何原因修改PGM报头,则必须重新计算校验和或清除校验和。校验和在数据包(ODATA和RDATA)上是必需的。
Global Source ID:
全局源ID:
A globally unique source identifier. This ID MUST NOT change throughout the duration of the transport session. A RECOMMENDED identifier is the low-order 48 bits of the MD5 [9] signature of the DNS name of the source. Global Source ID together with Data-Source Port forms the TSI.
全局唯一的源标识符。在整个传输会话期间,此ID不得更改。建议的标识符是源DNS名称的MD5[9]签名的低位48位。全局源ID与数据源端口一起构成TSI。
TSDU Length:
TSDU长度:
The length in octets of the transport data unit exclusive of the transport header.
传输数据单元(不包括传输标头)的长度(以八位字节为单位)。
Note that those who require the TPDU length must obtain it from sum of the transport header length (TH) and the TSDU length. TH length is the sum of the size of the particular PGM packet header (type_specific_size) plus the length of any options that might be present.
请注意,需要TPDU长度的用户必须从传输标头长度(TH)和TSDU长度之和中获得该长度。TH length是特定PGM数据包头的大小(特定类型的大小)加上可能存在的任何选项的长度之和。
Address Family Indicators (AFIs) are as specified in [10].
地址系列指示符(AFI)如[10]所述。
SPMs are sent by a source to establish source path state in network elements and to provide transmit window state to receivers.
SPM由源发送,以在网络元件中建立源路径状态,并向接收器提供传输窗口状态。
The network-header source address of an SPM is the unicast NLA of the entity that originates the SPM.
SPM的网络头源地址是发起SPM的实体的单播NLA。
The network-header destination address of an SPM is a multicast group NLA.
SPM的网络头目标地址是多播组NLA。
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Options | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Global Source ID ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... Global Source ID | TSDU Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SPM's Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Trailing Edge Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Leading Edge Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NLA AFI | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Path NLA ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+ | Option Extensions when present ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ... -+-+-+-+-+-+-+-+-+-+-+-+-+-+
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Options | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Global Source ID ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... Global Source ID | TSDU Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SPM's Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Trailing Edge Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Leading Edge Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NLA AFI | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Path NLA ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+ | Option Extensions when present ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ... -+-+-+-+-+-+-+-+-+-+-+-+-+-+
Source Port:
源端口:
SPM_SPORT
SPM_运动
Data-Source Port, together with SPM_GSI forms SPM_TSI
数据源端口与SPM_GSI一起构成SPM_TSI
Destination Port:
目的港:
SPM_DPORT
SPM\U端口
Data-Destination Port
数据目的端口
Type:
类型:
SPM_TYPE = 0x00
SPM_TYPE = 0x00
Global Source ID:
全局源ID:
SPM_GSI
SPM_GSI
Together with SPM_SPORT forms SPM_TSI
与SPM_SPORT一起形成SPM_TSI
SPM's Sequence Number
SPM序列号
SPM_SQN
SPM_SQN
The sequence number assigned to the SPM by the source.
源分配给SPM的序列号。
Trailing Edge Sequence Number:
Trailing Edge Sequence Number:translate error, please retry
SPM_TRAIL
SPM_小径
The sequence number defining the current trailing edge of the source's transmit window (TXW_TRAIL).
定义源传输窗口(TXW_TRAIL)当前后缘的序列号。
Leading Edge Sequence Number:
前缘序列号:
SPM_LEAD
SPM_铅
The sequence number defining the current leading edge of the source's transmit window (TXW_LEAD).
定义震源传输窗口(TXW_LEAD)当前前缘的序列号。
If SPM_TRAIL == 0 and SPM_LEAD == 0x80000000, this indicates that no window information is present in the packet.
如果SPM_TRAIL==0且SPM_LEAD==0x8000000,则表示数据包中不存在窗口信息。
Path NLA:
路径NLA:
SPM_PATH
SPM_路径
The NLA of the interface on the network element on which this SPM was forwarded. Initialized by a source to the source's NLA, rewritten by each PGM network element upon forwarding.
转发此SPM的网元上接口的NLA。由源初始化为源的NLA,在转发时由每个PGM网元重写。
Data packets carry application data from a source or a repairer to receivers.
数据包将应用程序数据从源或维修厂传送到接收器。
ODATA:
小田:
Original data packets transmitted by a source.
源发送的原始数据包。
RDATA:
RDATA:
Repairs transmitted by a source or by a designated local repairer (DLR) in response to a NAK.
由来源或指定的本地维修商(DLR)响应NAK传输的维修。
The network-header source address of a data packet is the unicast NLA of the entity that originates the data packet.
数据包的网络报头源地址是发起数据包的实体的单播NLA。
The network-header destination address of a data packet is a multicast group NLA.
数据分组的网络报头目的地址是多播组NLA。
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Options | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Global Source ID ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... Global Source ID | TSDU Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data Packet Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Trailing Edge Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Extensions when present ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ... -+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ... +-+-+- ...
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Options | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Global Source ID ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... Global Source ID | TSDU Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data Packet Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Trailing Edge Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Extensions when present ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ... -+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Data ... +-+-+- ...
Source Port:
源端口:
OD_SPORT, RD_SPORT
奥迪运动,奥迪运动
Data-Source Port, together with Global Source ID forms:
数据源端口以及全局源ID表单:
OD_TSI, RD_TSI
乌珠仔,乌珠仔
Destination Port:
目的港:
OD_DPORT, RD_DPORT
OD\U端口,RD\U端口
Data-Destination Port
数据目的端口
Type:
类型:
OD_TYPE = 0x04 RD_TYPE = 0x05
OD_类型=0x04 RD_类型=0x05
Global Source ID:
全局源ID:
OD_GSI, RD_GSI
OD_GSI,RD_GSI
Together with Source Port forms:
连同源端口表单:
OD_TSI, RD_TSI
乌珠仔,乌珠仔
Data Packet Sequence Number:
数据包序列号:
OD_SQN, RD_SQN
OD_SQN,RD_SQN
The sequence number originally assigned to the ODATA packet by the source.
源最初分配给ODATA数据包的序列号。
Trailing Edge Sequence Number:
后缘序列号:
OD_TRAIL, RD_TRAIL
OD_小径,RD_小径
The sequence number defining the current trailing edge of the source's transmit window (TXW_TRAIL). In RDATA, this MAY not be the same as OD_TRAIL of the ODATA packet for which it is a repair.
定义源传输窗口(TXW_TRAIL)当前后缘的序列号。在RDATA中,这可能与修复的ODATA数据包的OD_轨迹不同。
Data:
数据:
Application data.
应用程序数据。
NAK:
NAK:
Negative Acknowledgments are sent by receivers to request the repair of an ODATA packet detected to be missing from the expected sequence.
接收器发送否定确认,以请求修复检测到的预期序列中缺失的ODATA数据包。
N-NAK:
N-NAK:
Null Negative Acknowledgments are sent by DLRs to provide flow control feedback to the source of ODATA for which the DLR has provided the corresponding RDATA.
空否定应答由DLR发送,以向ODATA源提供流控制反馈,DLR已为ODATA源提供了相应的RDATA。
The network-header source address of a NAK is the unicast NLA of the entity that originates the NAK. The network-header source address of NAK is rewritten by each PGM network element with its own.
NAK的网络头源地址是发起NAK的实体的单播NLA。NAK的网络头源地址由每个PGM网元用自己的地址重写。
The network-header destination address of a NAK is initialized by the originator of the NAK (a receiver) to the unicast NLA of the upstream PGM network element known from SPMs. The network-header destination address of a NAK is rewritten by each PGM network element with the unicast NLA of the upstream PGM network element to which this NAK is forwarded. On the final hop, the network-header destination address of a NAK is rewritten by the PGM network element with the unicast NLA of the original source or the unicast NLA of a DLR.
NAK的网络报头目的地地址由NAK的发起者(接收器)初始化为从SPMs知道的上游PGM网元的单播NLA。NAK的网络报头目的地地址由每个PGM网元用该NAK转发到的上游PGM网元的单播NLA重写。在最后一跳,PGM网元使用原始源的单播NLA或DLR的单播NLA重写NAK的网络报头目的地地址。
NCF:
国家合作框架:
NAK Confirmations are sent by network elements and sources to confirm the receipt of a NAK.
网络元件和来源发送NAK确认,以确认收到NAK。
The network-header source address of an NCF is the ODATA source's NLA, not the network element's NLA as might be expected.
NCF的网络头源地址是ODATA源的NLA,而不是预期的网元的NLA。
The network-header destination address of an NCF is a multicast group NLA.
NCF的网络头目标地址是多播组NLA。
Note that in NAKs and N-NAKs, unlike the other packets, the field SPORT contains the Data-Destination port and the field DPORT contains the Data-Source port. As a general rule, the content of SPORT/DPORT is determined by the direction of the flow: in packets which travel down-stream SPORT is the port number chosen in the data source (Data-Source Port) and DPORT is the data destination port number (Data-Destination Port). The opposite holds for packets which travel upstream. This makes DPORT the protocol endpoint in the recipient host, regardless of the direction of the packet.
注意,在NAKs和N-NAKs中,与其他数据包不同,字段SPORT包含数据目的地端口,字段DPORT包含数据源端口。一般来说,SPORT/DPORT的内容由流的方向决定:在下行的数据包中,SPORT是在数据源(数据源端口)中选择的端口号,DPORT是数据目的端口号(数据目的端口)。相反的情况适用于上行传输的数据包。这使得DPORT成为接收方主机中的协议端点,而与数据包的方向无关。
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Options | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Global Source ID ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... Global Source ID | TSDU Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Requested Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NLA AFI | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source NLA ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+ | NLA AFI | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Multicast Group NLA ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+ | Option Extensions when present ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ...
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Options | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Global Source ID ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... Global Source ID | TSDU Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Requested Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NLA AFI | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source NLA ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+ | NLA AFI | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Multicast Group NLA ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+ | Option Extensions when present ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ...
Source Port:
源端口:
NAK_SPORT, NNAK_SPORT
纳克运动,纳克运动
Data-Destination Port
数据目的端口
NCF_SPORT
NCF_运动
Data-Source Port, together with Global Source ID forms NCF_TSI
数据源端口与全局源ID一起构成NCF_TSI
Destination Port:
目的港:
NAK_DPORT, NNAK_DPORT
纳克港,纳克港
Data-Source Port, together with Global Source ID forms:
数据源端口以及全局源ID表单:
NAK_TSI, NNAK_TSI
纳库齐,纳库齐
NCF_DPORT
国家森林公园
Data-Destination Port
数据目的端口
Type:
类型:
NAK_TYPE = 0x08 NNAK_TYPE = 0x09
NAK_类型=0x08 NNAK_类型=0x09
NCF_TYPE = 0x0A
NCF_TYPE = 0x0A
Global Source ID:
全局源ID:
NAK_GSI, NNAK_GSI, NCF_GSI
NAK_GSI、NNAK_GSI、NCF_GSI
Together with Data-Source Port forms
与数据源端口表单一起使用
NAK_TSI, NNAK_TSI, NCF_TSI
纳库齐、纳库齐、新南威尔士
Requested Sequence Number:
请求的序列号:
NAK_SQN, NNAK_SQN
没有,没有
NAK_SQN is the sequence number of the ODATA packet for which a repair is requested.
NAK_SQN是请求修复的ODATA数据包的序列号。
NNAK_SQN is the sequence number of the RDATA packet for which a repair has been provided by a DLR.
NNAK_SQN是由DLR提供修复的RDATA数据包的序列号。
NCF_SQN
NCF_SQN
NCF_SQN is NAK_SQN from the NAK being confirmed.
NCF_SQN是确认的NAK中的NAK_SQN。
Source NLA:
资料来源:NLA:
NAK_SRC, NNAK_SRC, NCF_SRC
NAK_SRC、NNAK_SRC、NCF_SRC
The unicast NLA of the original source of the missing ODATA.
缺少ODATA的原始源的单播NLA。
Multicast Group NLA:
多播组NLA:
NAK_GRP, NNAK_GRP, NCF_GRP
NAK_玻璃钢、NNAK_玻璃钢、NCF_玻璃钢
The multicast group NLA. NCFs MAY bear OPT_REDIRECT and/or OPT_NAK_LIST
多播组NLA。NCF可能带有OPT_重定向和/或OPT_NAK_列表
PGM specifies several end-to-end options to address specific application requirements. PGM specifies options to support fragmentation, late joining, and redirection.
PGM指定了多个端到端选项,以满足特定的应用程序需求。PGM指定支持分段、延迟加入和重定向的选项。
Options MAY be appended to PGM data packet headers only by their original transmitters. While they MAY be interpreted by network elements, options are neither added nor removed by network elements.
选项只能由其原始发送器附加到PGM数据包头。虽然这些选项可以由网络元素解释,但网络元素既不添加也不删除选项。
Options are all in the TLV style, or Type, Length, Value. The Type field is contained in the first byte, where bit 0 is the OPT_END bit, followed by 7 bits of type. The OPT_END bit MUST be set in the last option in the option list, whichever that might be. The Length field is the total length of the option in bytes, and directly follows the Type field. Following the Length field are 5 reserved bits, the OP_ENCODED flag, the 2 Option Extensibility bits OPX and the OP_ENCODED_NULL flag. Last are 7 bits designated for option specific information which may be defined on a per-option basis. If not defined for a particular option, they MUST be set to 0.
选项均为TLV样式,或类型、长度、值。类型字段包含在第一个字节中,其中位0是OPT_结束位,后面是7位类型。必须在选项列表的最后一个选项中设置OPT_结束位,以可能的选项为准。长度字段是选项的总长度(字节),直接跟在类型字段后面。长度字段后面是5个保留位、OP_编码标志、2个选项扩展位OPX和OP_编码的_空标志。最后是指定用于选项特定信息的7位,可根据每个选项进行定义。如果未为特定选项定义,则必须将其设置为0。
The Option Extensibility bits dictate the desired treatment of an option if it is unknown to the network element processing it.
如果处理选项的网元不知道该选项,则选项扩展性位指示对该选项的所需处理。
Nota Bene: Only network elements pay any attention to these bits.
注:只有网络元素才会注意这些位。
The OPX bits are defined as follows:
OPX位的定义如下:
00 - Ignore the option
00-忽略该选项
01 - Invalidate the option by changing the type to OPT_INVALID = 0x7F
01-通过将类型更改为OPT_INVALID=0x7F使选项无效
10 - Discard the packet
10-丢弃数据包
11 - Unsupported, and reserved for future use
11-不受支持,保留供将来使用
Some options present in data packet (ODATA and RDATA) are strictly associated with the packet content (PGM payload), OPT_FRAGMENT being an example. These options must be preserved even when the data packet that would normally contain them is not received, but its the payload is recovered though the use of FEC. PGM specifies a mechanism to accomplish this that uses the F (OP_ENCODED) and U (OP_ENCODED_NULL) bits in the option common header. OP_ENCODED and OP_ENCODED_NULL MUST be normally set to zero except when the option is used in FEC packets to preserve original options. See Appendix A for details.
数据包中存在的一些选项(ODATA和RDATA)与包内容(PGM有效负载)严格相关,OPT_片段就是一个例子。即使未收到通常包含这些选项的数据包,但通过使用FEC恢复其有效载荷,也必须保留这些选项。PGM指定了一种实现这一点的机制,该机制使用选项公共标头中的F(OP_编码)和U(OP_编码的_NULL)位。OP_ENCODED和OP_ENCODED_NULL通常必须设置为零,除非在FEC数据包中使用该选项以保留原始选项。详情见附录A。
There is a limit of 16 options per packet.
每个数据包最多有16个选项。
General Option Format
通用选项格式
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U|Opt. Specific| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Value ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+-+
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U|Opt. Specific| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Value ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+...+-+-+
When option extensions are appended to the standard PGM header, the extensions MUST be preceded by an option extension length field specifying the total length of all option extensions.
将选项扩展附加到标准PGM标头时,扩展之前必须有一个选项扩展长度字段,指定所有选项扩展的总长度。
In addition, the presence of the options MUST be encoded in the Options field of the standard PGM header before the Checksum is computed.
此外,在计算校验和之前,必须在标准PGM报头的选项字段中对选项的存在进行编码。
All network-significant options MUST be appended before any exclusively receiver-significant options.
所有网络重要选项必须附加在任何独占接收器重要选项之前。
To provide an indication of the end of option extensions, OPT_END (0x80) MUST be set in the Option Type field of the trailing option extension.
要提供选项扩展结束的指示,必须在后续选项扩展的选项类型字段中设置OPT_end(0x80)。
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Type | Option Length | Total length of all options | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Type | Option Length | Total length of all options | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Option Type = 0x00
选项类型=0x00
Option Length = 4 octets
选项长度=4个八位字节
Total length of all options
所有选项的总长度
The total length in octets of all option extensions including OPT_LENGTH.
所有选项扩展(包括OPT_长度)的总长度(以八位字节为单位)。
OPT_LENGTH is NOT network-significant.
OPT_长度与网络无关。
Fragmentation allows transport-layer entities at a source to break up application protocol data units (APDUs) into multiple PGM data packets (TPDUs) to conform with the MTU supported by the network layer. The fragmentation option MAY be applied to ODATA and RDATA packets only.
碎片化允许源处的传输层实体将应用协议数据单元(APDU)拆分为多个PGM数据包(TPDU),以符合网络层支持的MTU。分段选项只能应用于ODATA和RDATA数据包。
Architecturally, the accumulation of TSDUs into APDUs is applied to TPDUs that have already been received, duplicate eliminated, and contiguously sequenced by the receiver. Thus APDUs MAY be reassembled across increments of the transmit window.
在体系结构上,TSDU到APDU的累积应用于已经被接收器接收、消除重复并连续排序的TPDU。因此,可以跨传输窗口的增量重新组装apdu。
OPT_FRAG_OFF the offset of the fragment from the beginning of the APDU
选择碎片从APDU开始的偏移量
OPT_FRAG_LEN the total length of the original APDU
OPT_FRAG_LEN原始APDU的总长度
A source fragments APDUs into a contiguous series of fragments no larger than the MTU supported by the network layer. A source sequentially and uniquely assigns OD_SQNs to these fragments in the order in which they occur in the APDU. A source then sets OPT_FRAG_OFF to the value of the offset of the fragment in the original APDU (where the first byte of the APDU is at offset 0, and OPT_FRAG_OFF numbers the first byte in the fragment), and set OPT_FRAG_LEN to the value of the total length of the original APDU.
源将apdu分割成一系列不大于网络层支持的MTU的连续片段。源按照这些片段在APDU中出现的顺序,将OD_SQN顺序唯一地分配给这些片段。然后,源将OPT_FRAG_OFF设置为原始APDU中片段的偏移量值(其中APDU的第一个字节位于偏移量0处,OPT_FRAG_OFF对片段中的第一个字节进行编号),并将OPT_FRAG_LEN设置为原始APDU的总长度值。
Receivers detect and accumulate fragmented packets until they have received an entire contiguous sequence of packets comprising an APDU. This sequence begins with the fragment bearing OPT_FRAG_OFF of 0, and terminates with the fragment whose length added to its OPT_FRAG_OFF is OPT_FRAG_LEN.
接收机检测并累积碎片数据包,直到接收到包含APDU的完整连续数据包序列。该序列从带有OPT_FRAG_OFF的0的片段开始,并以添加到OPT_FRAG_OFF的长度为OPT_FRAG_LEN的片段结束。
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | First Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Offset | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | First Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Offset | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Option Type = 0x01
选项类型=0x01
Option Length = 12 octets
选项长度=12个八位字节
First Sequence Number
第一序列号
Sequence Number of the PGM DATA/RDATA packet containing the first fragment of the APDU.
包含APDU第一个片段的PGM数据/RDATA数据包的序列号。
Offset
抵消
The byte offset of the fragment from the beginning of the APDU (OPT_FRAG_OFF).
片段从APDU开始的字节偏移量(OPT_FRAG_OFF)。
Length
长
The total length of the original APDU (OPT_FRAG_LEN).
原始APDU的总长度(OPT_FRAG_LEN)。
OPT_FRAGMENT is NOT network-significant.
OPT_片段不具有网络显著性。
The NAK List option MAY be used in conjunction with NAKs to allow receivers to request transmission for more than one sequence number with a single NAK packet. The option is limited to 62 listed NAK entries. The NAK list MUST be unique and duplicate free. It MUST be ordered, and MUST consist of either a list of selective or a list of parity NAKs. In general, network elements, sources and receivers must process a NAK list as if they had received individual NAKs for each sequence number in the list. The procedures for each are outlined in detail earlier in this document. Clarifications and differences are detailed here.
NAK列表选项可与NAK一起使用,以允许接收机使用单个NAK分组请求传输多个序列号。该选项仅限于62个列出的NAK条目。NAK列表必须唯一且无重复。它必须是有序的,并且必须由选择性NAK列表或奇偶校验NAK列表组成。通常,网元、源和接收机必须处理NAK列表,就像它们已经接收到列表中每个序列号的单独NAK一样。本文件前面详细介绍了每种方法的步骤。这里详细说明了澄清和区别。
A list of sequence numbers for which retransmission is requested.
请求重新传输的序列号列表。
Receivers MAY append the NAK List option to a NAK to indicate that they wish retransmission of a number of RDATA.
接收机可将NAK列表选项附加到NAK以指示其希望重新传输多个RDATA。
Receivers SHOULD proceed to back off NAK transmission in a manner consistent with the procedures outlined for single sequence number NAKs. Note that the repair of each separate sequence number will be completed upon receipt of a separate RDATA packet.
接收机应继续以与单序列号NAK概述的程序一致的方式退避NAK传输。请注意,每个单独序列号的修复将在收到单独的RDATA数据包后完成。
Reception of an NCF or multicast NAK containing the NAK List option suspends generation of NAKs for all sequence numbers within the NAK list, as well as the sequence number within the NAK header.
接收包含NAK列表选项的NCF或多播NAK时,暂停NAK列表内所有序列号以及NAK报头内序列号的NAK生成。
Network elements MUST immediately respond to a NAK with an identical NCF containing the same NAK list as the NAK itself.
网元必须立即使用包含与NAK本身相同的NAK列表的相同NCF响应NAK。
Network elements MUST forward a NAK containing a NAK List option if any one sequence number specified by the NAK (including that in the main NAK header) is not currently outstanding. That is, it MUST forward the NAK, if any one sequence number does not have an elimination timer running for it. The NAK must be forwarded intact.
如果NAK指定的任何一个序列号(包括主NAK头中的序列号)当前未完成,则网元必须转发包含NAK列表选项的NAK。也就是说,如果任何一个序列号没有为其运行消除计时器,则它必须转发NAK。NAK必须完整地转发。
Network elements MUST eliminate a NAK containing the NAK list option only if all sequence numbers specified by the NAK (including that in the main NAK header) are outstanding. That is, they are all running an elimination timer.
只有当NAK指定的所有序列号(包括主NAK头中的序列号)未完成时,网络元件才必须消除包含NAK列表选项的NAK。也就是说,它们都运行一个消除计时器。
Upon receipt of an unsolicited NCF containing the NAK list option, a network element MUST anticipate data for every sequence number specified by the NAK as if it had received an NCF for every sequence number specified by the NAK.
在收到包含NAK列表选项的未经请求的NCF后,网元必须预测NAK指定的每个序列号的数据,就好像它已经收到NAK指定的每个序列号的NCF一样。
A source MUST immediately respond to a NAK with an identical NCF containing the same NAK list as the NAK itself.
源必须立即使用包含与NAK本身相同的NAK列表的相同NCF响应NAK。
It MUST then multicast RDATA (while respecting TXW_MAX_RTE) for every requested sequence number.
然后,它必须为每个请求的序列号多播RDATA(同时遵守TXW_MAX_RTE)。
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Requested Sequence Number 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ..... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Requested Sequence Number 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Requested Sequence Number 1 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ..... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Requested Sequence Number N | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Option Type = 0x02
选项类型=0x02
Option Length = 4 + (4 * number of SQNs) octets
Option Length = 4 + (4 * number of SQNs) octets
Requested Sequence Number
请求的序列号
A list of up to 62 additional sequence numbers to which the NAK applies.
NAK适用的最多62个附加序列号的列表。
OPT_NAK_LIST is network-significant.
OPT_NAK_列表具有网络重要性。
Late joining allows a source to bound the amount of repair history receivers may request when they initially join a particular transport session.
延迟加入允许源绑定最初加入特定传输会话时接收器可能请求的修复历史记录量。
This option indicates that receivers that join a transport session in progress MAY request repair of all data as far back as the given minimum sequence number from the time they join the transport session. The default is for receivers to receive data only from the first packet they receive and onward.
此选项表示加入正在进行的传输会话的接收器可以请求修复所有数据,最早可追溯到他们加入传输会话时的给定最小序列号。默认情况下,接收方仅从接收到的第一个数据包开始接收数据。
OPT_JOIN_MIN the minimum sequence number for repair
OPT_JOIN_MIN维修的最小序列号
If a PGM packet (ODATA, RDATA, or SPM) bears OPT_JOIN, a receiver MAY initialize the trailing edge of the receive window (RXW_TRAIL_INIT) to the given Minimum Sequence Number and proceeds with normal data reception.
如果PGM分组(ODATA、RDATA或SPM)具有OPT_JOIN,则接收机可以将接收窗口的后缘(RXW_TRAIL_INIT)初始化为给定的最小序列号,并继续进行正常数据接收。
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Minimum Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Minimum Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Option Type = 0x03
选项类型=0x03
Option Length = 8 octets
选项长度=8个八位字节
Minimum Sequence Number
最小序列号
The minimum sequence number defining the initial trailing edge of the receive window for a late joining receiver.
定义延迟加入接收器接收窗口初始后缘的最小序列号。
OPT_JOIN is NOT network-significant.
OPT_JOIN不具有网络重要性。
Redirection MAY be used by a designated local repairer (DLR) to advertise its own address as an alternative to the original source, for requesting repairs.
指定的本地维修商(DLR)可以使用重定向来公布其自己的地址,作为原始来源的替代,以请求维修。
These procedures allow a PGM Network Element to use a DLR that is one PGM hop from it either upstream or downstream in the multicast distribution tree. The former are referred to as upstream DLRs. The latter are referred to as off-tree DLRs. Off-Tree because even though they are downstream of the point of loss, they might not lie on the subtree affected by the loss.
这些过程允许PGM网元使用DLR,该DLR是多播分发树中上游或下游的一个PGM跃点。前者称为上游DLR。后者被称为树下DLR。因为即使它们位于损失点的下游,它们也可能不位于受损失影响的子树上。
A DLR MUST receive any PGM sessions for which it wishes to provide retransmissions. A DLR SHOULD respond to NCFs or POLLs sourced by its PGM parent with a redirecting POLR response packet containing an OPT_REDIRECT which provides its own network layer address. Recipients of redirecting POLRs MAY then direct NAKs for subsequent ODATA sequence numbers to the DLR rather than to the original source. In addition, DLRs that receive redirected NAKs for which they have RDATA MUST send a NULL NAK to provide flow control to the original source without also provoking a repair from that source.
DLR必须接收其希望提供重传的任何PGM会话。DLR应使用包含OPT_重定向的重定向POLR响应包响应其PGM父级来源的NCF或轮询,该重定向包含其自己的网络层地址。重定向polr的接收者随后可以将用于后续ODATA序列号的nak定向到DLR而不是原始源。此外,接收具有RDATA的重定向NAK的DLR必须发送空NAK,以向原始源提供流控制,而不会引发该源的修复。
OPT_REDIR_NLA the DLR's own unicast network-layer address to which recipients of the redirecting POLR MAY direct subsequent NAKs for the corresponding TSI.
OPT_REDIR_NLA DLR自己的单播网络层地址,重定向POLR的接收者可以将相应TSI的后续NAK定向到该地址。
A DLR MUST receive any PGM sessions for which it wishes to provide a source of repairs. In addition to acting as an ordinary PGM receiver, a DLR MAY then respond to NCFs or relevant POLLs sourced by parent network elements (or even by the source itself) by sending a POLR containing an OPT_REDIRECT providing its own network-layer address.
DLR必须接收其希望提供维修来源的任何PGM会话。除了充当普通PGM接收器之外,DLR还可以通过发送包含OPT_重定向的POLR(提供其自己的网络层地址)来响应由父网络元件(甚至由源本身)来源的ncf或相关轮询。
If a DLR can provide FEC repairs it MUST denote this by setting OPT_PARITY in the PGM header of its POLR response.
如果DLR可以提供FEC修复,则必须通过在其POLR响应的PGM报头中设置OPT_奇偶校验来表示。
If the NCF completes NAK transmission initiated by the DLR itself, the DLR MUST NOT send a redirecting POLR.
如果NCF完成了由DLR本身发起的NAK传输,则DLR不得发送重定向POLR。
When a DLR receives an NCF from its upstream PGM parent, it SHOULD send a redirecting POLR, multicast to the group. The DLR SHOULD record that it is acting as an upstream DLR for the said session. Note that this POLR MUST have both the data source's source address and the router alert option in its network header.
当DLR从其上游PGM父级接收到NCF时,它应向组发送重定向POLR、多播。DLR应记录其作为所述会话的上游DLR。请注意,此POLR的网络标头中必须同时包含数据源的源地址和路由器警报选项。
An upstream DLR MUST act as an ordinary PGM source in responding to any NAK it receives (i.e., directed to it). That is, it SHOULD respond first with a normal NCF and then RDATA as usual. In addition, an upstream DLR that receives redirected NAKs for which it has RDATA MUST send a NULL NAK to provide flow control to the original source. If it cannot provide the RDATA it forwards the NAK to the upstream PGM neighbor as usual.
上游DLR必须作为普通PGM源响应其接收到的任何NAK(即,定向到它)。也就是说,它应该首先使用正常的NCF进行响应,然后像往常一样使用RDATA进行响应。此外,接收重定向NAK(其具有RDATA)的上游DLR必须发送空NAK以向原始源提供流控制。如果不能提供RDATA,它会像往常一样将NAK转发给上游PGM邻居。
Nota Bene: In order to propagate on exactly the same distribution tree as ODATA, RDATA and POLR packets transmitted by DLRs MUST bear the ODATA source's NLA as the network-header source address, not the DLR's NLA as might be expected.
注:为了在与ODATA完全相同的分发树上传播,由DLR传输的RDATA和POLR数据包必须将ODATA源的NLA作为网络头源地址,而不是预期的DLR的NLA。
A DLR that receives a POLL with sub-type PGM_POLL_DLR MUST respond with a unicast redirecting POLR if it provides the appropriate service. The DLR SHOULD respond using the rules outlined for polling in Appendix D of this text. If the DLR responds, it SHOULD record that it is acting as an off-tree DLR for the said session.
接收子类型为PGM_POLL_DLR的轮询的DLR如果提供了适当的服务,则必须使用单播重定向POLR进行响应。DLR应使用本文附录D中列出的轮询规则进行响应。如果DLR响应,则应记录其作为所述会话的树外DLR。
An off-tree DLR acts in a special way in responding to any NAK it receives (i.e., directed to it). It MUST respond to a NAK directed to it from its parent by unicasting an NCF and RDATA to its parent. The parent will then forward the RDATA down the distribution tree. The DLR uses its own and the parent's NLA addresses in the network header for the source and destination respectively. The unicast NCF and RDATA packets SHOULD not have the router alert option. In all other ways the RDATA header should be "as if" the packet had come from the source.
树外DLR以一种特殊的方式响应它接收到的任何NAK(即,定向到它)。它必须通过将NCF和RDATA单播到其父级来响应从其父级定向给它的NAK。然后父级将RDATA转发到分发树下。DLR在网络标头中分别为源和目标使用其自己的NLA地址和父NLA地址。单播NCF和RDATA数据包不应具有路由器警报选项。在所有其他方式中,RDATA报头应该是“好像”数据包来自源。
Again, an off-tree DLR that receives redirected NAKs for which it has RDATA MUST originate a NULL NAK to provide flow control to the original source. It MUST originate the NULL NAK before originating the RDATA. This must be done to reduce the state held in the network element.
同样,接收其具有RDATA的重定向NAK的离树DLR必须发起空NAK,以向原始源提供流控制。它必须在创建RDATA之前创建空NAK。必须这样做以减少网元中的状态。
If it cannot provide the RDATA for a given NAK, an off-tree DLR SHOULD confirm the NAK with a unicast NCF as normal, then immediately send a NAK for the said data packet back to its parent.
如果不能为给定的NAK提供RDATA,树外DLR应使用单播NCF确认NAK正常,然后立即将所述数据包的NAK发送回其父级。
Note that it is possible for a DLR to provide service to its parent and to downstream network elements simultaneously. A downstream loss coupled with a loss for the same data on some other part of the distribution tree served by its parent could cause this. In this case it may provide both upstream and off-tree functionality simultaneously.
请注意,DLR可以同时向其父网络元件和下游网络元件提供服务。下游损失加上父级提供服务的分发树的某些其他部分上相同数据的损失可能会导致这种情况。在这种情况下,它可以同时提供上游和非树功能。
Note that a DLR differentiates between NAKs from an NE downstream or from its parent by comparing the network-header source address of the NAK with it's upstream PGM parent's NLA. The DLR knows the parent's NLA from the session's SPM messages.
请注意,DLR通过比较NAK的网络头源地址与其上游PGM父级的NLA来区分来自NE下游或其父级的NAK。DLR从会话的SPM消息中知道父级的NLA。
When a PGM router receives notification of a loss via a NAK, it SHOULD first try to use a known DLR to recover the loss. If such a DLR is not known it SHOULD initiate DLR discovery. DLR discovery may occur in two ways. If there are upstream DLRs, the NAK transmitted by this router to its PGM parent will trigger their discovery, via a redirecting POLR. Also, a network element SHOULD initiate a search for off-tree DLRs using the PGM polling mechanism, and the sub-type PGM_POLL_DLR.
当PGM路由器通过NAK接收到丢失通知时,它应该首先尝试使用已知的DLR来恢复丢失。如果此类DLR未知,则应启动DLR发现。DLR发现有两种方式。如果存在上游DLR,则该路由器向其PGM父级传输的NAK将通过重定向POLR触发它们的发现。此外,网元应使用PGM轮询机制和子类型PGM_POLL_DLR启动对树外DLR的搜索。
If a DLR can provide FEC repairs it will denote this by setting OPT_PARITY in the PGM header of its POLR response. A network element SHOULD only direct parity NAKs to a DLR that can provide FEC repairs.
如果DLR可以提供FEC修复,它将通过在其POLR响应的PGM报头中设置OPT_奇偶校验来表示。网元应仅将奇偶校验NAK定向到可提供FEC修复的DLR。
When it can, a network element SHOULD use upstream DLRs.
如果可以,网元应使用上行DLR。
Upon receiving a redirecting POLR, network elements SHOULD record the redirecting information for the TSI, and SHOULD redirect subsequent NAKs for the same TSI to the network address provided in the redirecting POLR rather than to the PGM neighbor known via the SPMs. Note, however, that a redirecting POLR is NOT regarded as matching the NAK that provoked it, so it does not complete the transmission of that NAK. Only a normal matching NCF can complete the transmission of a NAK.
在接收到重定向POLR时,网络元件应记录TSI的重定向信息,并应将相同TSI的后续NAK重定向到重定向POLR中提供的网络地址,而不是通过SPMs已知的PGM邻居。然而,请注意,重定向POLR不被视为与引发它的NAK匹配,因此它不完成该NAK的传输。只有正常匹配的NCF才能完成NAK的传输。
For subsequent NAKs, if the network element has recorded redirection information for the corresponding TSI, it MAY change the destination network address of those NAKs and attempt to transmit them to the DLR. No NAK for a specific SQN SHOULD be sent to an off-tree DLR if a NAK for the SQN has been seen on the interface associated with the DLR. Instead the NAK SHOULD be forwarded upstream. Subsequent NAKs for different SQNs MAY be forwarded to the said DLR (again assuming no NAK for them has been seen on the interface to the DLR).
对于后续的nak,如果网元已经记录了对应TSI的重定向信息,则它可以改变那些nak的目的地网络地址并尝试将它们发送到DLR。如果在与DLR相关联的接口上看到SQN的NAK,则不应将特定SQN的NAK发送到树外DLR。相反,NAK应该向上游转发。不同sqn的后续NAK可转发到所述DLR(再次假设在到DLR的接口上没有看到它们的NAK)。
If a corresponding NCF is not received from the DLR within NAK_RPT_IVL, the network element MUST discard the redirecting information for the TSI and re-attempt to forward the NAK towards the PGM upstream neighbor.
如果在NAK_RPT_IVL内没有从DLR接收到相应的NCF,则网元必须丢弃用于TSI的重定向信息,并重新尝试将NAK转发到PGM上游邻居。
If a NAK is received from the DLR for a requested SQN, the network element MUST discard the redirecting information for the SQN and re-attempt to forward the NAK towards the PGM upstream neighbor. The network element MAY still direct NAKs for different SQNs to the DLR.
如果从请求的SQN的DLR接收到NAK,则网元必须丢弃SQN的重定向信息,并重新尝试将NAK转发到PGM上游邻居。网元仍然可以将不同SQN的NAK定向到DLR。
RDATA and NCFs from upstream DLRs will flow down the distribution tree. However, RDATA and NCFs from off-tree DLRs will be unicast to the network element. The network element will terminate the NCF, but MUST put the source's NLA and the group address into the network header and MUST add router alert before forwarding the RDATA packet to the distribution subtree.
来自上游DLR的RDATA和NCF将沿着分发树向下流动。但是,来自树外DLR的RDATA和NCF将单播到网元。网元将终止NCF,但必须将源的NLA和组地址放入网络头中,并且必须在将RDATA数据包转发到分发子树之前添加路由器警报。
NULL NAKs from an off-tree DLR for an RDATA packet requested from that off-tree DLR MUST always be forwarded upstream. The network element can assume that these will arrive before the matching RDATA. Other NULL NAKs are forwarded only if matching repair state has not already been created. Network elements MUST NOT confirm or retry NULL NAKs and they MUST NOT add the receiving interface to the repair state. If a NULL NAK is used to initially create repair state, this fact must be recorded so that any subsequent non-NULL NAK will not be eliminated, but rather will be forwarded to provoke an actual repair. State created by a NULL NAK exists only for NAK_ELIM_IVL.
对于从树外DLR请求的RDATA数据包,树外DLR的空NAK必须始终向上游转发。网元可以假定这些将在匹配的RDATA之前到达。只有在尚未创建匹配的修复状态时,才会转发其他空NAK。网元不得确认或重试空NAK,并且不得将接收接口添加到修复状态。如果使用空NAK最初创建修复状态,则必须记录此事实,以便不会消除任何后续非空NAK,而是将其转发以引发实际修复。空NAK创建的状态仅存在于NAK_ELIM_IVL。
These procedures are intended to be applied in instances where a receiver's first hop router on the reverse path to the source is not a PGM Network Element. So, receivers MUST ignore a redirecting POLR from a DLR on the same IP subnet that the receiver resides on, since this is likely to suffer identical loss to the receiver and so be useless. Therefore, these procedures are entirely OPTIONAL. A receiver MAY choose to ignore all redirecting POLRs since in cases where its first hop router on the reverse path is PGM capable, it would ignore them anyway. Also, note that receivers will never learn of off-tree DLRs.
这些程序旨在应用于到源的反向路径上的接收器的第一跳路由器不是PGM网元的情况。因此,接收器必须忽略来自接收器所在的同一IP子网上的DLR的重定向POLR,因为这可能会对接收器造成相同的损失,因此毫无用处。因此,这些程序完全是可选的。接收机可以选择忽略所有重定向POLR,因为在反向路径上的第一跳路由器支持PGM的情况下,它无论如何都会忽略它们。另外,请注意,接收器永远不会了解脱离树的DLR。
Upon receiving a redirecting POLR, receivers SHOULD record the redirecting information for the TSI, and MAY redirect subsequent NAKs for the same TSI to the network address provided in the redirecting POLR rather than to the PGM neighbor for the corresponding ODATA for which the receiver is requesting repair. Note, however, that a redirecting POLR is NOT regarded as matching the NAK that provoked it, so it does not complete the transmission of that NAK. Only a normal matching NCF can complete the transmission of a NAK.
在接收到重定向POLR时,接收机应当记录TSI的重定向信息,并且可以将相同TSI的后续nak重定向到重定向POLR中提供的网络地址,而不是针对接收机正在请求修复的相应ODATA的PGM邻居。然而,请注意,重定向POLR不被视为与引发它的NAK匹配,因此它不完成该NAK的传输。只有正常匹配的NCF才能完成NAK的传输。
For subsequent NAKs, if the receiver has recorded redirection information for the corresponding TSI, it MAY change the destination network address of those NAKs and attempt to transmit them to the
对于后续的nak,如果接收器已经记录了对应TSI的重定向信息,则其可以改变那些nak的目的地网络地址并尝试将它们发送到终端
DLR. If a corresponding NCF is not received within NAK_RPT_IVL, the receiver MUST discard the redirecting information for the TSI and re-attempt to forward the NAK to the PGM neighbor for the original source of the missing ODATA.
德国航空航天局。如果在NAK_RPT_IVL内未接收到相应的NCF,则接收器必须丢弃TSI的重定向信息,并重新尝试将NAK转发给缺少ODATA的原始源的PGM邻居。
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NLA AFI | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DLR's NLA ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NLA AFI | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | DLR's NLA ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+
Option Type = 0x07
选项类型=0x07
Option Length = 4 + NLA length
选项长度=4+NLA长度
DLR's NLA
DLR的NLA
The DLR's own unicast network address to which recipients of the redirecting POLR may direct subsequent NAKs.
DLR自身的单播网络地址,重定向POLR的接收者可将后续NAK定向到该地址。
OPT_REDIRECT is network-significant.
OPT_重定向具有网络重要性。
The SYN option indicates the starting data packet for a session. It must only appear in ODATA or RDATA packets.
SYN选项指示会话的起始数据包。它只能出现在ODATA或RDATA数据包中。
The SYN option MAY be used to provide a useful abstraction to applications that can simplify application design by providing stream start notification. It MAY also be used to let a late joiner to a session know that it is indeed late (i.e. it would not see the SYN option).
SYN选项可用于为应用程序提供有用的抽象,通过提供流启动通知简化应用程序设计。它还可用于让会话的迟到加入者知道它确实迟到了(即,它不会看到SYN选项)。
Procedures for receivers are implementation dependent. A receiver MAY use the SYN to provide its applications with abstractions of the data stream.
接收器的程序取决于实现。接收机可以使用SYN向其应用程序提供数据流的抽象。
Sources MAY include OPT_SYN in the first data for a session. That is, they MAY include the option in:
源可以在会话的第一个数据中包括OPT_SYN。也就是说,它们可能包括以下选项:
the first ODATA sent on a session by a PGM source
PGM源在会话中发送的第一个ODATA
any RDATA sent as a result of loss of this ODATA packet
由于此ODATA数据包丢失而发送的任何RDATA
all FEC packets for the first transmission group; in this case it is interpreted as the first packet having the SYN
用于第一传输组的所有FEC分组;在这种情况下,它被解释为具有SYN的第一个分组
In an identical manner to sources, DLRs MUST provide OPT_SYN in any retransmitted data that is at the start of a session.
以与源相同的方式,DLR必须在会话开始时的任何重传数据中提供OPT_SYN。
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Option Type = 0x0D
选项类型=0x0D
Option Length = 4
选项长度=4
OPT_SYN is NOT network-significant.
OPT_SYN不具有网络重要性。
This FIN option indicates the last data packet for a session and an orderly close down.
此FIN选项指示会话和有序关闭的最后一个数据包。
The FIN option MAY be used to provide an abstraction to applications that can simplify application design by providing stream end notification.
FIN选项可用于为应用程序提供抽象,通过提供流结束通知简化应用程序设计。
This option MAY be present in the last data packet or transmission group for a session. The FIN PGM option MUST appear in every SPM sent after the last ODATA for a session. The SPM_LEAD sequence number in an SPM with the FIN option indicates the last known data successfully transmitted for the session.
该选项可能存在于会话的最后一个数据分组或传输组中。FIN PGM选项必须出现在会话的最后一个ODATA之后发送的每个SPM中。带有FIN选项的SPM中的SPM_前导序列号表示为会话成功传输的最后已知数据。
A receiver SHOULD use receipt of a FIN to let it know that it can tear down its data structures for the said session once a suitable time period has expired (TXW_SECS). It MAY still try to solicit retransmissions within the existing transmit window.
接收器应使用FIN的接收,让其知道一旦适当的时间段到期(TXW_SECS),它可以为所述会话拆除其数据结构。它仍然可以尝试在现有传输窗口内请求重新传输。
Other than this, procedures for receivers are implementation dependent. A receiver MAY use the FIN to provide its applications with abstractions of the data stream and to inform its applications that the session is ending.
除此之外,接收器的过程取决于实现。接收机可以使用FIN向其应用程序提供数据流的抽象,并通知其应用程序会话即将结束。
9.7.2. OPT_FIN - Procedures - Sources
9.7.2. OPT_FIN-程序-来源
Sources MUST include OPT_FIN in every SPM sent after it has been determined that the application has closed gracefully. If a source is aware at the time of transmission that it is ending a session the source MAY include OPT_FIN in,
在确定应用程序已正常关闭后,源必须在发送的每个SPM中包含OPT_FIN。如果一个源在传输时意识到它正在结束一个会话,那么该源可以包括OPT_FIN in,
the last ODATA
最后的小田
any associated RDATAs for the last data
最后一个数据的任何关联RData
FEC packets for the last transmission group; in this case it is interpreted as the last packet having the FIN
最后一个传输组的FEC分组;在这种情况下,它被解释为具有FIN的最后一个数据包
When a source detects that it needs to send an OPT_FIN it SHOULD immediately send it. This is done either by appending it to the last data packet or transmission group or by immediately sending an SPM and resetting the SPM heartbeat timer (i.e. it does not wait for a timer to expire before sending the SPM). After sending an OPT_FIN, the session SHOULD not close and stop sending SPMs until after a time period equal to TXW_SECS.
当源检测到它需要发送OPT_FIN时,它应该立即发送它。这可以通过将其附加到最后一个数据包或传输组,或者通过立即发送SPM并重置SPM心跳计时器(即,在发送SPM之前不会等待计时器过期)来实现。发送OPT_FIN后,会话不应关闭并停止发送SPM,直到时间段等于TXW_秒。
In an identical manner to sources, DLRs MUST provide OPT_FIN in any retransmitted data that is at the end of a session.
以与源相同的方式,DLR必须在会话结束时的任何重传数据中提供OPT_FIN。
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Option Type = 0x0E
选项类型=0x0E
Option Length = 4
选项长度=4
OPT_FIN is NOT network-significant.
OPT_FIN不具有网络重要性。
The RST option MAY appear in every SPM sent after an unrecoverable error is identified by the source. This acts to notify the receivers that the session is being aborted. This option MAY appear only in SPMs. The SPM_LEAD sequence number in an SPM with the RST option indicates the last known data successfully transmitted for the session.
源识别出不可恢复的错误后,RST选项可能会出现在发送的每个SPM中。这将通知接收方会话正在中止。此选项可能仅出现在SPM中。带有RST选项的SPM中的SPM_前导序列号表示为会话成功传输的最后已知数据。
Receivers SHOULD treat the reception of OPT_RST in an SPM as an abort of the session.
接收方应将SPM中接收到的OPT_RST视为会话中止。
A receiver that receives an SPM with an OPT_RST with the N bit set SHOULD not send any more NAKs for the said session towards the source. If the N bit (see 9.8.5) is not set, the receiver MAY continue to try to solicit retransmit data within the current transmit window.
接收具有设置了N位的OPT_RST的SPM的接收器不应向源发送所述会话的任何更多nak。如果未设置N位(见9.8.5),则接收器可继续尝试在当前传输窗口内请求重新传输数据。
Sources SHOULD include OPT_RST in every SPM sent after it has been determined that an unrecoverable error condition has occurred. The N bit of the OPT_RST SHOULD only be sent if the source has determined that it cannot process NAKs for the session. The cause of the OPT_RST is set to an implementation specific value. If the error code is unknown, then the value of 0x00 is used. When a source detects that it needs to send an OPT_RST it SHOULD immediately send it. This is done by immediately sending an SPM and resetting the SPM heartbeat timer (i.e. it does not wait for a timer to expire before sending the SPM). After sending an OPT_RST, the session SHOULD not close and stop sending SPMs until after a time period equal to TXW_SECS.
在确定发生不可恢复的错误情况后,源应在发送的每个SPM中包含OPT_RST。仅当源确定无法处理会话的NAK时,才应发送OPT_RST的N位。OPT_RST的原因设置为特定于实现的值。如果错误代码未知,则使用0x00值。当源检测到它需要发送选项时,它应该立即发送。这是通过立即发送SPM并重置SPM心跳计时器来完成的(即,在发送SPM之前不会等待计时器过期)。发送OPT_RST后,会话不应关闭并停止发送SPM,直到超过等于TXW_SECS的时间段。
None.
没有一个
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U|N|Error Code | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U|N|Error Code | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Option Type = 0x0F
选项类型=0x0F
Option Length = 4
选项长度=4
N bit
N位
The N bit is set to 1 to indicate that NAKs for previous ODATA will go unanswered from the source. The application will tell the source to turn this bit on or off.
N位被设置为1,以指示先前ODATA的NAK将无法从源应答。应用程序将告诉源打开或关闭此位。
Error Code
错误代码
The 6 bit error code field is used to forward an error code down to the receivers from the source.
6位错误代码字段用于将错误代码从源转发到接收器。
The value of 0x00 indicates an unknown reset reason. Any other value indicates the application purposely aborted and gave a reason (the error code value) that may have meaning to the end receiver application. These values are entirely application dependent.
值0x00表示未知的重置原因。任何其他值表示应用程序故意中止,并给出可能对最终接收器应用程序有意义的原因(错误代码值)。这些值完全依赖于应用程序。
OPT_RST is NOT network-significant.
OPT_RST不具有网络重要性。
In addition to the usual problems of end-to-end authentication, PGM is vulnerable to a number of security risks that are specific to the mechanisms it uses to establish source path state, to establish repair state, to forward NAKs, to identify DLRs, and to distribute repairs. These mechanisms expose PGM network elements themselves to security risks since network elements not only switch but also interpret SPMs, NAKs, NCFs, and RDATA, all of which may legitimately be transmitted by PGM sources, receivers, and DLRs. Short of full authentication of all neighboring sources, receivers, DLRs, and network elements, the protocol is not impervious to abuse.
除了端到端身份验证的常见问题外,PGM还容易受到许多安全风险的影响,这些风险与PGM用于建立源路径状态、建立修复状态、转发NAK、识别DLR和分发修复的机制有关。这些机制使PGM网络元件本身面临安全风险,因为网络元件不仅切换,而且还解释SPM、NAK、NCF和RDATA,所有这些都可以通过PGM源、接收器和DLR合法传输。除非对所有相邻的源、接收器、DLR和网络元素进行完全认证,否则该协议不会受到滥用。
So putting aside the problems of rogue PGM network elements for the moment, there are enough potential security risks to network elements associated with sources, receivers, and DLRs alone. These risks include denial of service through the exhausting of both CPU bandwidth and memory, as well as loss of (repair) data connectivity through the muddling of repair state.
因此,暂且不考虑流氓PGM网元的问题,仅与源、接收器和DLR相关的网元就有足够的潜在安全风险。这些风险包括由于CPU带宽和内存耗尽而导致的拒绝服务,以及由于修复状态混乱而导致的(修复)数据连接丢失。
False SPMs may cause PGM network elements to mis-direct NAKs intended for the legitimate source with the result that the requested RDATA would not be forthcoming.
错误的SPM可能会导致PGM网络元素错误地引导用于合法源的NAK,从而导致请求的RDATA无法提供。
False NAKs may cause PGM network elements to establish spurious repair state that will expire only upon time-out and could lead to memory exhaustion in the meantime.
错误的NAK可能导致PGM网络元件建立虚假的修复状态,该状态仅在超时时才会过期,同时可能导致内存耗尽。
False NCFs may cause PGM network elements to suspend NAK forwarding prematurely (or to mis-direct NAKs in the case of redirecting POLRs) resulting eventually in loss of RDATA.
错误的NCF可能导致PGM网元过早地暂停NAK转发(或者在重定向POLR的情况下错误地引导NAK),最终导致RDATA丢失。
False RDATA may cause PGM network elements to tear down legitimate repair state resulting eventually in loss of legitimate RDATA.
错误的RDATA可能会导致PGM网元中断合法修复状态,最终导致合法RDATA丢失。
The development of precautions for network elements to protect themselves against incidental or unsophisticated versions of these attacks is work outside of this spec and includes:
为网络元件制定预防措施,以保护其自身免受这些攻击的偶然或不成熟版本的攻击,这超出了本规范的范围,包括:
Damping of jitter in the value of either the network-header source address of SPMs or the path NLA in SPMs. While the network-header source address is expected to change seldom, the path NLA is expected to change occasionally as a consequence of changes in underlying multicast routing information.
抑制SPMs的网络头源地址或SPMs中的路径NLA值中的抖动。虽然网络报头源地址预计很少更改,但由于基础多播路由信息的更改,路径NLA预计偶尔会更改。
The extension of NAK shedding procedures to control the volume, not just the rate, of confirmed NAKs. In either case, these procedures assist network elements in surviving NAK attacks at the expense of maintaining service. More efficiently, network elements may use the knowledge of TSIs and their associated transmit windows gleaned from SPMs to control the proliferation of repair state.
延长NAK脱落程序,以控制已确认NAK的体积,而不仅仅是速率。在这两种情况下,这些程序都有助于网络元件在NAK攻击中幸存下来,而代价是维护服务。更有效地,网元可以使用从SPM收集的TSI及其相关传输窗口的知识来控制修复状态的扩散。
A three-way handshake between network elements and DLRs that would permit a network element to ascertain with greater confidence that an alleged DLR is identified by the alleged network-header source address, and is PGM conversant.
网元和DLR之间的一种三向握手,允许网元以更大的信心确定所谓的DLR由所谓的网络报头源地址识别,并且熟悉PGM。
The following procedures incorporate packet-level Reed Solomon Erasure correcting techniques as described in [11] and [12] into PGM. This approach to Forward Error Correction (FEC) is based upon the computation of h parity packets from k data packets for a total of n packets such that a receiver can reconstruct the k data packets out of any k of the n packets. The original k data packets are referred to as the Transmission Group, and the total n packets as the FEC Block.
以下程序将[11]和[12]中所述的分组级Reed-Solomon擦除校正技术合并到PGM中。这种前向纠错(FEC)的方法基于从k个数据分组计算h个奇偶校验分组以获得总共n个分组,使得接收机可以从n个分组中的任意k个分组中重构k个数据分组。原始k个数据分组被称为传输组,总n个分组被称为FEC块。
These procedures permit any combination of pro-active FEC or on-demand FEC with conventional ARQ (selective retransmission) within a given TSI to provide any flavor of layered or integrated FEC. The two approaches can be used by the same or different receivers in a single transport session without conflict. Once provided by a source, the actual use of FEC or selective retransmission for loss recovery in the session is entirely at the discretion of the receivers. Note however that receivers SHOULD NOT ask for selective retransmissions when FEC is available, nevertheless sources MUST provide selective retransmissions in response to selective NAKs from the leading partial transmission group (i.e. the most recent transmission group, which is not yet full). For any group that is full, the source SHOULD provide FEC on demand in response to a selective NAK.
这些程序允许在给定TSI内将主动FEC或按需FEC与常规ARQ(选择性重传)进行任何组合,以提供分层或集成FEC的任何风格。这两种方法可以由相同或不同的接收器在单个传输会话中使用,而不会产生冲突。一旦由信源提供,在会话中使用FEC或选择性重传进行丢失恢复完全由接收机决定。然而,请注意,当FEC可用时,接收机不应请求选择性重传,然而,源必须提供选择性重传,以响应来自领先部分传输组(即,最近的传输组,尚未满)的选择性nak。对于已满的任何组,源应根据需要提供FEC,以响应选择性NAK。
Pro-active FEC refers to the technique of computing parity packets at transmission time and transmitting them as a matter of course following the data packets. Pro-active FEC is RECOMMENDED for providing loss recovery over simplex or asymmetric multicast channels over which returning repair requests is either impossible or costly. It provides increased reliability at the expense of bandwidth.
主动FEC指的是在传输时计算奇偶校验包并在数据包之后顺理成章地传输它们的技术。建议使用主动FEC在单工或非对称多播信道上提供丢失恢复,在单工或非对称多播信道上返回修复请求是不可能的或代价高昂的。它以牺牲带宽为代价提供了更高的可靠性。
On-demand FEC refers to the technique of computing parity packets at repair time and transmitting them only upon demand (i.e., receiver-based loss detection and repair request). On-demand FEC is RECOMMENDED for providing loss recovery of uncorrelated loss in very large receiver populations in which the probability of any single packet being lost is substantial. It provides equivalent reliability to selective NAKs (ARQ) at no more and typically less expense of bandwidth.
按需FEC是指在修复时计算奇偶校验包并仅在需要时发送它们的技术(即,基于接收器的丢失检测和修复请求)。建议按需FEC在任何单个数据包丢失的概率很大的非常大的接收器群体中提供不相关丢失的丢失恢复。它提供了与选择性NAK(ARQ)同等的可靠性,而不需要更多且通常更少的带宽开销。
Selective NAKs are NAKs that request the retransmission of specific packets by sequence number corresponding to the sequence number of any data packets detected to be missing from the expected sequence (conventional ARQ). Selective NAKs can be used for recovering losses
选择性nak是请求按照与从预期序列(常规ARQ)中检测到丢失的任何数据分组的序列号相对应的序列号重新传输特定分组的nak。选择性NAK可用于弥补损失
occurring in leading partial transmission groups, i.e. in the most recent transmission group, which is not yet full. The RECOMMENDED way of handling partial transmission groups, however, is for the data source to use variable-size transmission groups (see below).
发生在领先的部分传输组中,即最近的传输组中,尚未满。但是,处理部分传输组的推荐方法是数据源使用可变大小的传输组(见下文)。
Parity NAKs are NAKs that request the transmission of a specific number of parity packets by count corresponding to the count of the number of data packets detected to be missing from a group of k data packets (on-demand FEC).
奇偶校验nak是通过与从k个数据分组组(按需FEC)中检测到丢失的数据分组的数目的计数相对应的计数来请求传输特定数目的奇偶校验分组的nak。
The objective of these procedures is to incorporate these FEC techniques into PGM so that:
这些程序的目的是将这些FEC技术纳入PGM,以便:
sources MAY provide parity packets either pro-actively or on-demand, interchangeably within the same TSI,
源可以主动或按需在同一TSI内交换地提供奇偶校验分组,
receivers MAY use either selective or parity NAKs interchangeably within the same TSI (however, in a session where on-demand parity is available receivers SHOULD only use parity NAKs).
接收机可以在同一TSI内互换地使用选择性或奇偶校验nak(然而,在按需奇偶校验可用的会话中,接收机应该只使用奇偶校验nak)。
network elements maintain repair state based on either selective or parity NAKs in the same data structure, altering only search, RDATA constraint, and deletion algorithms in either case,
网元基于同一数据结构中的选择性或奇偶校验NAK维护修复状态,在任何情况下只改变搜索、RDATA约束和删除算法,
and only OPTION additions to the basic packet formats are REQUIRED.
并且只需要对基本数据包格式添加选项。
Advertising FEC parameters in the transport session
在传输会话中公布FEC参数
Sources add OPT_PARITY_PRM to SPMs to provide session-specific parameters such as the number of packets (TGSIZE == k) in a transmission group. This option lets receivers know how many packets there are in a transmission group, and it lets network elements sort repair state by transmission group number. This option includes an indication of whether pro-active and/or on-demand parity is available from the source.
源向SPM添加OPT_PARITY_PRM,以提供特定于会话的参数,例如传输组中的数据包数(TGSIZE==k)。此选项让接收器知道一个传输组中有多少个数据包,并让网络元素按传输组编号对修复状态进行排序。此选项包括指示是否可从源获得主动和/或按需奇偶校验。
Distinguishing parity packets from data packets
区分奇偶校验包和数据包
Sources send pro-active parity packets as ODATA (NEs do not forward RDATA unless a repair state is present) and on-demand parity packets as RDATA. A source MUST add OPT_PARITY to the ODATA/RDATA packet header of parity packets to permit network elements and receivers to distinguish them from data packets.
源将主动奇偶校验数据包作为ODATA发送(除非存在修复状态,否则网元不会转发RDATA),并将按需奇偶校验数据包作为RDATA发送。源必须向奇偶校验数据包的ODATA/RDATA数据包头添加OPT_奇偶校验,以允许网元和接收器将其与数据包区分开来。
Data and parity packet numbering
数据和奇偶校验包编号
Parity packets MUST be calculated over a fixed number k of data packets known as the Transmission Group. Grouping of packets into transmission groups effectively partitions a packet sequence number into a high-order portion (TG_SQN) specifying the transmission group (TG), and a low-order portion (PKT_SQN) specifying the packet number (PKT-NUM in the range 0 through k-1) within that group. From an implementation point of view, it's handy if k, the TG size, is a power of 2. If so, then TG_SQN and PKT_SQN can be mapped side-by-side into the 32 bit SQN. log2(TGSIZE) is then the size in bits of PKT_SQN.
奇偶校验数据包必须在称为传输组的固定数量的k个数据包上进行计算。分组到传输组中有效地将分组序列号划分为指定传输组(TG)的高阶部分(TG_SQN)和指定该组内的分组号(PKT_SQN)(范围0到k-1中的PKT-NUM)的低阶部分(PKT_SQN)。从实现的角度来看,如果k(TG大小)是2的幂,那么它是方便的。如果是这样,那么TG_SQN和PKT_SQN可以并排映射到32位SQN中。log2(TGSIZE)则是PKT_SQN的大小(以位为单位)。
This mapping does not reduce the effective sequence number space since parity packets marked with OPT_PARITY allow the sequence space (PKT_SQN) to be completely reused in order to number the h parity packets, as long as h is not greater than k.
此映射不会减少有效序列号空间,因为标记有OPT_奇偶校验的奇偶校验包允许完全重用序列空间(PKT_SQN),以便对h奇偶校验包进行编号,只要h不大于k。
In the case where h is greater than k, a source MUST add OPT_PARITY_GRP to any parity packet numbered j greater than k-1, specifying the number m of the group of k parity packets to which the packet belongs, where m is just the quotient from the integer division of j by k. Correspondingly, PKT-NUM for such parity packets is just j modulo k. In other words, when a source needs to generate more parity packets than there were original data packets (perhaps because of a particularly lossy line such that a receiver lost not only the original data but some of the parity RDATA as well), use the OPT_PARITY_GRP option in order to number and identify the transmission group of the extra packets that would exceed the normal sequential number space.
在h大于k的情况下,源必须将OPT_PARITY_GRP添加到编号为j大于k-1的任何奇偶校验包,指定该包所属的k奇偶校验包组的数目m,其中m只是j除以k的整数的商。相应地,这种奇偶校验包的PKT-NUM就是j模k。换句话说,当源需要生成比原始数据分组更多的奇偶校验分组时(可能是因为特别有损的线路,使得接收机不仅丢失了原始数据,而且还丢失了一些奇偶校验RDATA),使用OPT_PARITY_GRP选项对超出正常序列号空间的额外数据包的传输组进行编号和标识。
Note that parity NAKs (and consequently their corresponding parity NCFs) MUST also contain the OPT_PARITY flag in the options field of the fixed header, and that in these packets, PKT_SQN MUST contain PKT_CNT, the number of missing packets, rather than PKT_NUM, the SQN of a specific missing packet. More on all this later.
请注意,奇偶校验NAK(以及相应的奇偶校验NCF)还必须在固定报头的选项字段中包含OPT_奇偶校验标志,并且在这些数据包中,PKT_SQN必须包含PKT_CNT,即丢失数据包的数量,而不是PKT_NUM,即特定丢失数据包的SQN。稍后将详细介绍这一切。
Variable Transmission Group Size
可变传输组大小
The transmission group size advertised in the OPT_PARITY_PRM option on SPMs MUST be a power of 2 and constant for the duration of the session. However, the actual transmission group size used MAY not be constant for the duration of the session, and MAY not be a power of 2. When a TG size different from the one advertised in OPT_PARITY_PRM is used, the TG size advertised in OPT_PARITY_PRM MUST be interpreted as specifying the maximum effective size of the TG.
在SPMs上的OPT_奇偶校验_PRM选项中公布的传输组大小必须是2的幂,并且在会话期间保持不变。然而,所使用的实际传输组大小在会话期间可能不是恒定的,并且可能不是2的幂。当使用与OPT_PARITY_PRM中公布的TG大小不同的TG大小时,OPT_PARITY_PRM中公布的TG大小必须解释为指定TG的最大有效大小。
When the actual TG size is not a power of 2 or is smaller than the max TG size, there will be sparse utilization of the sequence number space since some of the sequence numbers that would have been consumed in numbering a maximum sized TG will not be assigned to packets in the smaller TG. The start of the next transmission group will always begin on the boundary of the maximum TG size as though each of the sequence numbers had been utilized.
当实际TG大小不是2的幂或小于最大TG大小时,序列号空间的利用将是稀疏的,因为在对最大TG进行编号时会消耗的一些序列号将不会分配给较小TG中的分组。下一个传输组的开始将始终在最大TG大小的边界上开始,就好像每个序列号都已被利用一样。
When the source decides to use a smaller group size than that advertised in OPT_PARITY_PRM, it appends OPT_CURR_TGSIZE to the last data packet (ODATA) in the truncated transmission group. This lets the receiver know that it should not expect any more packets in this transmission group, and that it may start requesting repairs for any missing packets. If the last data packet itself went missing, the receiver will detect the end of the group when it receives a parity packet for the group, an SPM with SPM_LEAD equal to OD_SQN of the last data packet, or the first packet of the next group, whichever comes first. In addition, any parity packet from this TG will also carry the OPT_CURR_TGSIZE option as will any SPM sent with SPM_LEAD equal to OD_SQN of the last data packet.
当源决定使用比OPT_PARITY_PRM中公布的更小的组大小时,它会将OPT_CURR_TGSIZE附加到截断传输组中的最后一个数据包(ODATA)上。这让接收机知道,它不应该期望在该传输组中有更多的分组,并且它可能开始请求修复任何丢失的分组。如果最后一个数据包本身丢失,接收器将在接收到组的奇偶校验包、SPM_前导等于最后一个数据包的OD_SQN的SPM或下一个组的第一个数据包(以先到者为准)时检测到组的结束。此外,来自该TG的任何奇偶校验数据包也将携带OPT_CURR_TGSIZE选项,与使用等于最后一个数据包的OD_SQN的SPM发送的任何SPM一样。
Variable TSDU length
可变TSDU长度
If a non constant TSDU length is used within a given transmission group, the size of parity packets in the corresponding FEC block MUST be equal to the size of the largest original data packet in the block. Parity packets MUST be computed by padding the original packets with zeros up to the size of the largest data packet. Note that original data packets are transmitted without padding.
如果在给定传输组内使用非恒定TSDU长度,则相应FEC块中奇偶校验分组的大小必须等于该块中最大原始数据分组的大小。奇偶校验数据包的计算方法必须是在原始数据包中填充最大数据包大小的零。请注意,原始数据包是在没有填充的情况下传输的。
Receivers using a combination of original packets and FEC packets to rebuild missing packets MUST pad the original packets in the same way as the source does. The receiver MUST then feed the padded original packets plus the parity packets to the FEC decoder. The decoder produces the original packets padded with zeros up to the size of the largest original packet in the group. In order for the receiver to eliminate the padding on the reconstructed data packets, the original size of the packet MUST be known, and this is accomplished as follows:
使用原始数据包和FEC数据包组合来重建丢失数据包的接收器必须以与源相同的方式填充原始数据包。然后,接收器必须将填充的原始数据包加上奇偶校验数据包馈送给FEC解码器。解码器产生的原始数据包中填充了零,其大小等于组中最大原始数据包的大小。为了使接收器消除重构数据分组上的填充,必须知道分组的原始大小,并且这是通过以下方式实现的:
The source, along with the packet payloads, encodes the TSDU length and appends the 2-byte encoded length to the padded FEC packets.
源与数据包有效载荷一起对TSDU长度进行编码,并将2字节编码长度附加到填充的FEC数据包。
Receivers pad the original packets that they received to the largest original packet size and then append the TSDU length to the padded packets. They then pass them and the FEC packets to the FEC decoder.
接收器将接收到的原始数据包填充到最大的原始数据包大小,然后将TSDU长度附加到填充的数据包。然后,它们将它们和FEC数据包传递给FEC解码器。
The decoder produces padded original packets with their original TSDU length appended. Receivers MUST now use this length to get rid of the padding.
解码器生成附加了原始TSDU长度的填充原始数据包。接收者现在必须使用这个长度来消除填充。
A source that transmits variable size packets MUST take into account the fact that FEC packets will have a size equal to the maximum size of the original packets plus the size of the length field (2 bytes).
传输可变大小数据包的源必须考虑以下事实:FEC数据包的大小等于原始数据包的最大大小加上长度字段的大小(2字节)。
If a fixed packet size is used within a transmission group, the encoded length is not appended to the parity packets. The presence of the fixed header option flag OPT_VAR_PKTLEN in parity packets allows receivers to distinguish between transmission groups with variable sized packets and fixed-size ones, and behave accordingly.
如果在传输组内使用固定的分组大小,则编码长度不会附加到奇偶校验分组。奇偶校验数据包中存在固定报头选项标志OPT_VAR_PKTLEN,这使得接收机能够区分具有可变大小数据包和固定大小数据包的传输组,并相应地进行操作。
Payload-specific options
有效载荷特定选项
Some options present in data packet (ODATA and RDATA) are strictly associated with the packet content (PGM payload), OPT_FRAGMENT being an example. These options must be preserved even when the data packet that would normally contain them is not received, but its the payload is recovered though the use of FEC.
数据包中存在的一些选项(ODATA和RDATA)与包内容(PGM有效负载)严格相关,OPT_片段就是一个例子。即使未收到通常包含这些选项的数据包,但通过使用FEC恢复其有效载荷,也必须保留这些选项。
To achieve this, PGM encodes the content of these options in special options that are inserted in parity packets. Two flags present in the the option common-header are used for this process: bit F (OP_ENCODED) and bit U (OP_ENCODED_NULL).
为了实现这一点,PGM将这些选项的内容编码到插入奇偶校验数据包中的特殊选项中。选项公共标头中存在的两个标志用于此过程:位F(OP_编码)和位U(OP_编码_NULL)。
Whenever at least one of the original packets of a TG contains a payload-specific option of a given type, the source MUST include an encoded version of that option type in all the parity packets it transmits. The encoded option is computed by applying FEC encoding to the whole option with the exception of the first three bytes of the option common-header (E, Option Type, Option Length, OP_ENCODED and OPX fields). The type, length and OPX of the encoded option are the same as the type, length and OPX in the original options. OP_ENCODED is set to 1 (all original option have OP_ENCODED = 0).
每当TG的至少一个原始分组包含给定类型的有效负载特定选项时,源必须在其传输的所有奇偶校验分组中包括该选项类型的编码版本。编码的选项通过对整个选项应用FEC编码来计算,选项公共头的前三个字节除外(E、选项类型、选项长度、OP_编码和OPX字段)。编码选项的类型、长度和OPX与原始选项中的类型、长度和OPX相同。OP_ENCODED设置为1(所有原始选项的OP_ENCODED=0)。
The encoding is performed using the same process that is used to compute the payload of the parity packet. i.e. the FEC encoder is fed with one copy of that option type for each original packet in the TG. If one (or more) original packet of the TG does not contain that option type, an all zeroes option is used for the encoding process. To be able to distinguish this "dummy" option from valid options with all-zeroes payload, OP_ENCODED_NULL is used. OP_ENCODED_NULL is set to 0 in all the original options, but the value of 1 is used in the encoding process if the option did not exist in the original packet. On the receiver side, all option with OP_ENCODED_NULL equal to 1 are discarded after decoding.
使用用于计算奇偶校验分组的有效载荷的相同过程来执行编码。i、 e.对于TG中的每个原始数据包,向FEC编码器馈送该选项类型的一个副本。如果TG的一个(或多个)原始数据包不包含该选项类型,则编码过程将使用全零选项。为了能够区分此“虚拟”选项与有效选项(有效负载为全零),使用OP_ENCODED_NULL。OP_ENCODED_NULL在所有原始选项中都设置为0,但如果原始数据包中不存在该选项,则在编码过程中使用值1。在接收器端,解码后丢弃OP_ENCODED_NULL等于1的所有选项。
When a receiver recovers a missing packet using FEC repair packets, it MUST also recover payload-specific options, if any. The presence of these can be unequivocally detected through the presence of encoded options in parity packets (encoded options have OP_ENCODED set to 1). Receivers apply FEC-recovery to encoded options and possibly original options, as they do to recover packet payloads. The FEC decoding is applied to the whole option with the exception of the first three bytes of the option common-header (E, Option Type, Option Length, OP_ENCODED and OPX fields). Each decoded option is associated with the relative payload, unless OP_ENCODED_NULL turns out to be 1, in which case the decoded option is discarded.
当接收器使用FEC修复数据包恢复丢失的数据包时,它还必须恢复特定于有效负载的选项(如果有的话)。通过奇偶校验包中的编码选项(编码选项的OP_encoded设置为1),可以明确地检测到这些选项的存在。接收机将FEC恢复应用于编码选项和可能的原始选项,就像它们用于恢复数据包有效负载一样。FEC解码应用于整个选项,但选项公共头的前三个字节(E、选项类型、选项长度、OP_编码和OPX字段)除外。每个解码选项都与相对有效负载相关联,除非OP_ENCODED_NULL结果为1,在这种情况下,解码选项被丢弃。
The decoding MUST be performed using the 1st occurrence of a given option type in original/parity packets. If one or more original packets do not contain that option type, an option of the same type with zero value must be used. This option MUST have OP_ENCODED_NULL equal to 1.
必须使用原始/奇偶校验数据包中给定选项类型的第一次出现来执行解码。如果一个或多个原始数据包不包含该选项类型,则必须使用具有零值的相同类型的选项。此选项的OP_ENCODED_NULL必须等于1。
This section just provides enough short-hand to make the Procedures intelligible. For the full details of packet contents, please refer to Packet Formats below.
本节只是提供了足够的简写,使程序易于理解。有关数据包内容的完整详细信息,请参阅下面的数据包格式。
OPT_PARITY indicated in pro-active (ODATA) and on-demand (RDATA) parity packets to distinguish them from data packets. This option is directly encoded in the "Option" field of the fixed PGM header
在主动(ODATA)和按需(RDATA)奇偶校验数据包中指示OPT_奇偶校验,以将其与数据包区分开来。此选项直接编码在固定PGM标头的“选项”字段中
OPT_VAR_PKTLEN MAY be present in pro-active (ODATA) and on-demand (RDATA) parity packets to indicate that the corresponding transmission group is composed of variable size data packets. This option is directly encoded in the "Option" field of the fixed PGM header
OPT_VAR_PKTLEN可存在于主动(ODATA)和按需(RDATA)奇偶校验分组中,以指示相应的传输组由可变大小的数据分组组成。此选项直接编码在固定PGM标头的“选项”字段中
OPT_PARITY_PRM appended by sources to SPMs to specify session-specific parameters such as the transmission group size and the availability of pro-active and/or on-demand parity from the source
OPT_奇偶校验\u PRM由源附加到SPM,以指定特定于会话的参数,如传输组大小以及源的主动奇偶校验和/或按需奇偶校验的可用性
OPT_PARITY_GRP the number of the group (greater than 0) of h parity packets to which the parity packet belongs when more than k parity packets are provided by the source
OPT_PARITY_GRP当源提供超过k个奇偶校验数据包时,奇偶校验数据包所属的h个奇偶校验数据包组(大于0)的数目
OPT_CURR_TGSIZE appended by sources to the last data packet and any parity packets in a variable sized transmission group to indicate to the receiver the actual size of a transmission group. May also be appended to certain SPMs
由源附加到可变大小传输组中的最后一个数据包和任何奇偶校验包的OPT_CURR_TGSIZE,以向接收机指示传输组的实际大小。也可以附加到某些SPM
NAK_TG_SQN the high-order portion of NAK_SQN specifying the transmission group for which parity packets are requested
NAK_TG_SQN指定请求奇偶校验数据包的传输组的NAK_SQN的高阶部分
NAK_PKT_CNT the low-order portion of NAK_SQN specifying the number of missing data packets for which parity packets are requested
NAK_PKT_CNT NAK_SQN的低阶部分,指定请求奇偶校验数据包的丢失数据包的数量
Nota Bene: NAK_PKT_CNT (and NCF_PKT_CNT) are 0-based counters, meaning that NAK_PKT_CNT = 0 means that 1 FEC RDATA is being requested, and in general NAK_PKT_CNT = k - 1 means that k FEC RDATA are being requested.
注:NAK_PKT_CNT(和NCF_PKT_CNT)是基于0的计数器,这意味着NAK_PKT_CNT=0表示正在请求1个FEC RDATA,通常NAK_PKT_CNT=k-1表示正在请求k个FEC RDATA。
NCF_TG_SQN the high-order portion of NCF_SQN specifying the transmission group for which parity packets were requested
NCF_TG_SQN指定请求奇偶校验数据包的传输组的NCF_SQN的高阶部分
NCF_PKT_CNT the low-order portion of NCF_SQN specifying the number of missing data packets for which parity packets were requested
NCF_PKT_CNT NCF_SQN的低阶部分,指定请求奇偶校验数据包的丢失数据包的数量
Nota Bene: NCF_PKT_CNT (and NAK_PKT_CNT) are 0-based counters, meaning that NAK_PKT_CNT = 0 means that 1 FEC RDATA is being requested, and in general NAK_PKT_CNT = k - 1 means that k FEC RDATA are being requested.
注:NCF_PKT_CNT(和NAK_PKT_CNT)是基于0的计数器,这意味着NAK_PKT_CNT=0表示正在请求1个FEC RDATA,通常NAK_PKT_CNT=k-1表示正在请求k个FEC RDATA。
RDATA_TG_SQN the high-order portion of RDATA_SQN specifying the transmission group to which the parity packet belongs
RDATA_TG_SQN RDATA_SQN的高阶部分,指定奇偶校验数据包所属的传输组
RDATA_PKT_SQN the low-order portion of RDATA_SQN specifying the parity packet sequence number within the transmission group
RDATA_PKT_SQN RDATA_SQN的低阶部分,指定传输组内的奇偶校验包序列号
ODATA_TG_SQN the high-order portion of ODATA_SQN specifying the transmission group to which the parity packet belongs
ODATA_TG_SQN ODATA_SQN的高阶部分,指定奇偶校验数据包所属的传输组
ODATA_PKT_SQN the low-order portion of ODATA_SQN specifying the parity packet sequence number within the transmission group
ODATA_PKT_SQN ODATA_SQN的低阶部分,指定传输组内的奇偶校验包序列号
If a source elects to provide parity for a given transport session, it MUST first provide the transmission group size PARITY_PRM_TGS in the OPT_PARITY_PRM option of its SPMs. This becomes the maximum effective transmission group size in the event that the source elects to send smaller size transmission groups. If a source elects to provide proactive parity for a given transport session, it MUST set PARITY_PRM_PRO in the OPT_PARITY_PRM option of its SPMs. If a source elects to provide on-demand parity for a given transport session, it MUST set PARITY_PRM_OND in the OPT_PARITY_PRM option of its SPMs.
如果源选择为给定传输会话提供奇偶校验,它必须首先在其SPM的OPT_奇偶校验_PRM_TGS选项中提供传输组大小奇偶校验。如果源选择发送较小大小的传输组,则这将成为最大有效传输组大小。如果源选择为给定传输会话提供主动奇偶校验,则必须在其SPM的OPT_parity_PRM_PRO选项中设置奇偶校验。如果源选择为给定传输会话提供按需奇偶校验,则必须在其SPM的OPT_parity_PRM选项中设置奇偶校验。
A source MUST send any pro-active parity packets for a given transmission group only after it has first sent all of the corresponding k data packets in that group. Pro-active parity packets MUST be sent as ODATA with OPT_PARITY in the fixed header.
源必须在第一次发送给定传输组中所有对应的k个数据包之后,才发送该组的任何主动奇偶校验包。主动奇偶校验数据包必须作为ODATA发送,在固定报头中具有OPT_奇偶校验。
If a source elects to provide on-demand parity, it MUST respond to a parity NAK for a transmission group with a parity NCF. The source MUST complete the transmission of the k original data packets and the proactive parity packets, possibly scheduled, before starting the transmission of on-demand parity packets. Subsequently, the source MUST send the number of parity packets requested by that parity NAK. On-demand parity packets MUST be sent as RDATA with OPT_PARITY in the fixed header. Previously transmitted pro-active parity packets cannot be reused as on-demand parity packets, these MUST be computed with new, previously unused, indexes.
如果源选择提供按需奇偶校验,则它必须使用奇偶校验NCF响应传输组的奇偶校验NAK。在开始按需奇偶校验数据包的传输之前,源必须完成k个原始数据包和主动奇偶校验数据包(可能已调度)的传输。随后,源必须发送该奇偶校验NAK请求的奇偶校验数据包的数量。按需奇偶校验数据包必须作为RDATA发送,在固定报头中具有OPT_奇偶校验。以前传输的主动奇偶校验数据包不能作为按需奇偶校验数据包重复使用,必须使用以前未使用的新索引计算这些数据包。
In either case, the source MUST provide selective retransmissions only in response to selective NAKs from the leading partial transmission group. For any group that is full, the source SHOULD provide FEC on demand in response to a selective retransmission request.
在任一情况下,源必须仅响应于来自领先部分传输组的选择性nak而提供选择性重传。对于任何已满的组,源应根据需要提供FEC,以响应选择性重传请求。
In the absence of data to transmit, a source SHOULD prematurely terminate the current transmission group by including OPT_CURR_TGSIZE to the last data packet or to any proactive parity packets provided.
在没有要传输的数据的情况下,源应通过将OPT_CURR_TGSIZE包含到最后一个数据包或提供的任何主动奇偶校验包中,提前终止当前传输组。
If the last data packet has already been transmitted and there is no provision for sending proactive parity packets, an SPM with OPT_CURR_TGSIZE SHOULD be sent.
如果已传输最后一个数据包,并且没有发送主动奇偶校验包的规定,则应发送带有OPT_CURR_TGSIZE的SPM。
A source consolidates requests for on-demand parity in the same transmission group according to the following procedures. If the number of pending (i.e., unsent) parity packets from a previous request for on-demand parity packets is equal to or greater than NAK_PKT_CNT in a subsequent NAK, that subsequent NAK MUST be confirmed but MAY otherwise be ignored. If the number of pending (i.e., unsent) parity packets from a previous request for on-demand parity packets is less than NAK_PKT_CNT in a subsequent NAK, that subsequent NAK MUST be confirmed but the source need only increase the number of pending parity packets to NAK_PKT_CNT.
源根据以下过程合并同一传输组中的按需奇偶校验请求。如果来自对按需奇偶校验分组的先前请求的未决(即,未发送)奇偶校验分组的数目等于或大于后续NAK中的NAK_PKT_CNT,则必须确认该后续NAK,但可以忽略该后续NAK。如果来自对按需奇偶校验分组的先前请求的未决(即,未发送)奇偶校验分组的数目小于后续NAK中的NAK_PKT_CNT,则必须确认该后续NAK,但源只需要将未决奇偶校验分组的数目增加到NAK_PKT_CNT。
When a source provides parity packets relative to a transmission group with variable sized packets, it MUST compute parity packets by padding the smaller original packets with zeroes out to the size of the largest of the original packets. The source MUST also append the encoded TSDU lengths at the end of any padding or directly to the end of the largest packet, and add the OPT_VAR_PKTLEN option as specified in the overview description.
当源提供相对于具有可变大小数据包的传输组的奇偶校验数据包时,它必须通过将较小的原始数据包填充为最大原始数据包的大小来计算奇偶校验数据包。源还必须将编码的TSDU长度附加到任何填充的末尾或直接附加到最大数据包的末尾,并按照概述中的说明添加OPT_VAR_PKTLEN选项。
When a source provides variable sized transmission groups, it SHOULD append the OPT_CURR_TGSIZE option to the last data packet in the shortened group, and it MUST append the OPT_CURR_TGSIZE option to any parity packets it sends within that group. In case the the last data packet is sent before a determination has been made to shorten the group and there is no provision for sending proactive parity packets, an SPM with OPT_CURR_TGSIZE SHOULD be sent. The source MUST also add OPT_CURR_TGSIZE to any SPM that it sends with SPM_LEAD equal to OD_SQN of the last data packet.
当源提供可变大小的传输组时,它应该将OPT_CURR_TGSIZE选项附加到缩短组中的最后一个数据包,并且它必须将OPT_CURR_TGSIZE选项附加到它在该组中发送的任何奇偶校验包。如果在确定缩短组之前发送最后一个数据包,并且没有发送主动奇偶校验包的规定,则应发送带有OPT_CURR_TGSIZE的SPM。源还必须将OPT_CURR_TGSIZE添加到它发送的任何SPM中,SPM_LEAD等于最后一个数据包的OD_SQN。
A receiver MUST NAK for the entire number of packets missing based on the maximum TG size, even if it already knows that the actual TG size is smaller. The source MUST take this into account and compute the number of packets effectively needed as the difference between NAK_PKT_CNT and an offset computed as the difference between the max TG size and the effective TG size.
即使接收机已经知道实际的TG大小较小,也必须基于最大TG大小对丢失的数据包的总数进行NAK。源必须考虑到这一点,并计算有效需要的数据包数量,作为NAK_PKT_CNT和偏移量之间的差值,计算为最大TG大小和有效TG大小之间的差值。
If a receiver elects to make use of parity packets for loss recovery, it MUST first learn the transmission group size PARITY_PRM_TGS from OPT_PARITY_PRM in the SPMs for the TSI. The transmission group size is used by a receiver to determine the sequence number boundaries between transmission groups.
如果接收机选择使用奇偶校验数据包进行丢失恢复,则必须首先从TSI的SPM中的OPT_奇偶校验PRM中学习传输组大小奇偶校验PRM TGS。接收器使用传输组大小来确定传输组之间的序列号边界。
Thereafter, if PARITY_PRM_PRO is also set in the SPMs for the TSI, a receiver SHOULD use any pro-active parity packets it receives for loss recovery, and if PARITY_PRM_OND is also set in the SPMs for the TSI, it MAY solicit on-demand parity packets upon loss detection. If PARITY_PRM_OND is set, a receiver MUST NOT send selective NAKs, except in partial transmission groups if the source does not use the variable transmission-group size option. Parity packets are ODATA (pro-active) or RDATA (on-demand) packets distinguished by OPT_PARITY which lets receivers know that ODATA/RDATA_TG_SQN identifies the group of PARITY_PRM_TGS packets to which the parity may be applied for loss recovery in the corresponding transmission group, and that ODATA/RDATA_PKT_SQN is being reused to number the parity packets within that group. Receivers order parity packets and eliminate duplicates within a transmission group based on ODATA/RDATA_PKT_SQN and on OPT_PARITY_GRP if present.
此后,如果在SPMs中也为TSI设置了奇偶校验,则接收机应使用其接收的任何主动奇偶校验分组进行丢失恢复,并且如果在SPMs中也为TSI设置了奇偶校验,则接收机可在丢失检测时请求按需奇偶校验分组。如果设置了奇偶校验,则接收机不得发送选择性NAK,除非在部分传输组中,如果源不使用可变传输组大小选项,则不发送选择性NAK。奇偶校验分组是由OPT_奇偶校验区分的ODATA(主动)或RDATA(按需)分组,它让接收机知道ODATA/RDATA_TG_SQN标识奇偶校验组,奇偶校验可应用于相应传输组中的丢失恢复,并且ODATA/RDATA_PKT_SQN被重用以对该组中的奇偶校验数据包进行编号。接收机根据ODATA/RDATA_PKT_SQN和OPT_parity_GRP(如果存在)订购奇偶校验数据包并消除传输组中的重复数据。
To solicit on-demand parity packets, a receiver MUST send parity NAKs upon loss detection. For the purposes of soliciting on-demand parity, loss detection occurs at transmission group boundaries, i.e. upon receipt of the last data packet in a transmission group, upon receipt of any data packet in any subsequent transmission group, or upon receipt of any parity packet in the current or a subsequent transmission group.
若要请求按需奇偶校验数据包,接收器必须在检测到丢失时发送奇偶校验NAK。为了请求按需奇偶校验,在传输组边界处发生丢失检测,即,在接收到传输组中的最后一个数据分组时,在接收到任何后续传输组中的任何数据分组时,或者在接收到当前或后续传输组中的任何奇偶校验分组时。
A parity NAK is simply a NAK with OPT_PARITY and NAK_PKT_CNT set to the count of the number of packets detected to be missing from the transmission group specified by NAK_TG_SQN. Note that this constrains the receiver to request no more parity packets than there are data packets in the transmission group.
奇偶校验NAK简单地是具有OPT_奇偶校验和NAK_PKT_CNT设置为从NAK_TG_SQN指定的传输组中检测到丢失的分组数的NAK。注意,这限制了接收机请求的奇偶校验分组不多于传输组中的数据分组。
A receiver SHOULD bias the value of NAK_BO_IVL for parity NAKs inversely proportional to NAK_PKT_CNT so that NAKs for larger losses are likely to be scheduled ahead of NAKs for smaller losses in the same receiver population.
接收机应将奇偶校验NAK的NAK_BO_IVL值与NAK_PKT_CNT成反比,以便在相同接收机总体中,较大损耗的NAK可能比较小损耗的NAK提前安排。
A confirming NCF for a parity NAK is a parity NCF with NCF_PKT_CNT equal to or greater than that specified by the parity NAK.
奇偶校验NAK的确认NCF是NCF_PKT_CNT等于或大于奇偶校验NAK指定值的奇偶校验NCF。
A receiver's NAK_RDATA_IVL timer is not cancelled until all requested parity packets have been received.
在接收到所有请求的奇偶校验数据包之前,不会取消接收器的NAK_RDATA_IVL计时器。
In the absence of data (detected from SPMs bearing SPM_LEAD equal to RXW_LEAD) on non-transmission-group boundaries, receivers MAY resort to selective NAKs for any missing packets in that partial transmission group.
在非传输组边界上没有数据(从具有等于RXW_前导的SPM的SPM检测到)的情况下,接收机可以针对该部分传输组中的任何缺失分组求助于选择性nak。
When a receiver handles parity packets belonging to a transmission group with variable sized packets, (detected from the presence of the OPT_VAR_PKTLEN option in the parity packets), it MUST decode them as specified in the overview description and use the decoded TSDU length to get rid of the padding in the decoded packet.
当接收器使用可变大小的数据包处理属于传输组的奇偶校验数据包时(从奇偶校验数据包中存在的OPT_VAR_PKTLEN选项中检测到),它必须按照概述中的规定对其进行解码,并使用解码的TSDU长度来消除解码数据包中的填充。
If the source was using a variable sized transmission group via the OPT_CURR_TGSIZE, the receiver might learn this before having requested (and received) any retransmission. The above happens if it sees OPT_CURR_TGSIZE in the last data packet of the TG, in any proactive parity packet or in a SPM. If the receivers learns this and determines that it has missed one or more packets in the shortened transmission group, it MAY then NAK for them without waiting for the start of the next transmission group. Otherwise it will start NAKing at the start of the next transmission group.
如果源通过OPT_CURR_TGSIZE使用可变大小的传输组,则接收机可能在请求(并接收)任何重传之前了解到这一点。如果在TG的最后一个数据包、任何主动奇偶校验包或SPM中看到OPT_CURR_TGSIZE,则会发生上述情况。如果接收机了解到这一点并确定它错过了缩短的传输组中的一个或多个分组,则它可以在不等待下一个传输组的开始的情况下为它们NAK。否则,它将在下一个传输组开始时开始NAKing。
In both cases, the receiver MUST NAK for the number of packets missing assuming that the size of the transmission group is the maximum effective transmission group. In other words, the receivers cannot exploit the fact that it might already know that the transmission group was smaller but MUST always NAK for the number of packets it believes are missing, plus the number of packets required to bring the total packets up to the maximum effective transmission group size.
在这两种情况下,假定传输组的大小是最大有效传输组,则接收机必须NAK丢失的分组数。换句话说,接收机不能利用其可能已经知道传输组较小但必须始终NAK其认为丢失的分组数量加上使总分组达到最大有效传输组大小所需的分组数量这一事实。
After the first parity packet has been delivered to the receiver, the actual TG size is known to him, either because already known or because discovered via OPT_CURR_TGSIZE contained in the parity packet. Hence the receiver can decode the whole group as soon as the minimum number of parity packets needed is received.
在将第一个奇偶校验包交付给接收机之后,实际的TG大小对接收机来说是已知的,因为已经知道或者因为通过奇偶校验包中包含的OPT_CURR_TGSIZE发现。因此,一旦接收到所需奇偶校验包的最小数目,接收机就可以解码整个组。
Pro-active parity packets (ODATA with OPT_PARITY) are switched by network elements without transport-layer intervention.
主动奇偶校验数据包(具有OPT_奇偶校验的ODATA)由网络元件进行交换,而无需传输层干预。
On-demand parity packets (RDATA with OPT_PARITY) necessitate modified request, confirmation and repair constraint procedures for network elements. In the context of these procedures, repair state is maintained per NAK_TSI and NAK_TG_SQN, and in addition to recording the interfaces on which corresponding NAKs have been received, records the largest value of NAK_PKT_CNT seen in corresponding NAKs on each interface. This value is referred to as the known packet count. The largest of the known packet counts recorded for any interface in the repair state for the transmit group or carried by an NCF is referred to as the largest known packet count.
按需奇偶校验数据包(带有OPT_奇偶校验的RDATA)需要修改网元的请求、确认和修复约束程序。在这些程序中,按照NAK_TSI和NAK_TG_SQN维护维修状态,除了记录接收到相应NAK的接口外,还记录每个接口上相应NAK中的最大NAK_PKT_CNT值。该值称为已知数据包计数。为处于传输组修复状态的任何接口记录的或由NCF承载的最大已知分组计数称为最大已知分组计数。
Upon receipt of a parity NAK, a network element responds with the corresponding parity NCF. The corresponding parity NCF is just an NCF formed in the usual way (i.e., a multicast copy of the NAK with the packet type changed), but with the addition of OPT_PARITY and with NCF_PKT_CNT set to the larger of NAK_PKT_CNT and the known packet count for the receiving interface. The network element then creates repair state in the usual way with the following modifications.
在接收到奇偶校验NAK时,网元用相应的奇偶校验NCF进行响应。相应的奇偶校验NCF只是以通常方式形成的NCF(即,分组类型改变的NAK的多播副本),但是添加了OPT_奇偶校验,并且NCF_PKT_CNT设置为NAK_PKT_CNT和接收接口的已知分组计数中的较大者。然后,网元通过以下修改以常规方式创建修复状态。
If repair state for the receiving interface does not exist, the network element MUST create it and additionally record NAK_PKT_CNT from the parity NAK as the known packet count for the receiving interface.
如果接收接口的修复状态不存在,网元必须创建它,并从奇偶校验NAK额外记录NAK_PKT_CNT,作为接收接口的已知数据包计数。
If repair state for the receiving interface already exists, the network element MUST eliminate the NAK only if NAK_ELIM_IVL has not expired and NAK_PKT_CNT is equal to or less than the largest known packet count. If NAK_PKT_CNT is greater than the known packet count for the receiving interface, the network element MUST update the latter with the larger NAK_PKT_CNT.
如果接收接口的修复状态已经存在,则只有在NAK_ELIM_IVL尚未过期且NAK_PKT_CNT等于或小于最大已知数据包计数时,网元才必须消除NAK。如果NAK_PKT_CNT大于接收接口的已知数据包计数,则网元必须使用较大的NAK_PKT_CNT更新后者。
Upon either adding a new interface or updating the known packet count for an existing interface, the network element MUST determine if NAK_PKT_CNT is greater than the largest known packet count. If so or if NAK_ELIM_IVL has expired, the network element MUST forward the parity NAK in the usual way with a value of NAK_PKT_CNT equal to the largest known packet count.
在添加新接口或更新现有接口的已知数据包计数时,网元必须确定NAK_PKT_CNT是否大于最大已知数据包计数。如果是,或者如果NAK_ELIM_IVL已过期,则网元必须以通常的方式转发奇偶校验NAK,其值NAK_PKT_CNT等于已知的最大分组计数。
Upon receipt of an on-demand parity packet, a network element MUST locate existing repair state for the corresponding RDATA_TSI and RDATA_TG_SQN. If no such repair state exists, the network element MUST discard the RDATA as usual.
在收到按需奇偶校验数据包后,网元必须定位相应RDATA_TSI和RDATA_TG_SQN的现有修复状态。如果不存在这样的修复状态,网元必须像往常一样丢弃RDATA。
If corresponding repair state exists, the largest known packet count MUST be decremented by one, then the network element MUST forward the RDATA on all interfaces in the existing repair state, and decrement the known packet count by one for each. Any interfaces whose known packet count is thereby reduced to zero MUST be deleted from the repair state. If the number of interfaces is thereby reduced to zero, the repair state itself MUST be deleted.
如果存在相应的修复状态,则必须将已知的最大数据包计数减少1,然后网元必须转发处于现有修复状态的所有接口上的RDATA,并将每个接口上的已知数据包计数减少1。任何已知数据包计数因此减少到零的接口都必须从修复状态中删除。如果接口数量因此减少到零,则必须删除修复状态本身。
Upon reception of a parity NCF, network elements MUST cancel pending NAK retransmission only if NCF_PKT_CNT is greater or equal to the largest known packet count. Network elements MUST use parity NCFs to anticipate NAKs in the usual way with the addition of recording NCF_PKT_CNT from the parity NCF as the largest known packet count with the anticipated state so that any subsequent NAKs received with NAK_PKT_CNT equal to or less than NCF_PKT_CNT will be eliminated, and
在接收到奇偶校验NCF时,只有当NCF_PKT_CNT大于或等于已知的最大分组计数时,网络元件才必须取消挂起的NAK重传。网络元件必须使用奇偶校验NCF以通常的方式预测NAK,并将奇偶校验NCF中的NCF_PKT_CNT记录为具有预期状态的最大已知数据包计数,以便消除使用等于或小于NCF_PKT_CNT的NAK接收的任何后续NAK,以及
any with NAK_PKT_CNT greater than NCF_PKT_CNT will be forwarded. Network elements which receive a parity NCF with NCF_PKT_CNT larger than the largest known packet count MUST also use it to anticipate NAKs, increasing the largest known packet count to reflect NCF_PKT_CNT (partial anticipation).
任何NAK_PKT_CNT大于NCF_PKT_CNT的将被转发。接收奇偶校验NCF且NCF_PKT_CNT大于最大已知数据包计数的网元也必须使用它来预测NAK,增加最大已知数据包计数以反映NCF_PKT_CNT(部分预测)。
Parity NNAKs follow the usual elimination procedures with the exception that NNAKs are eliminated only if existing NAK state has a NAK_PKT_CNT greater than NNAK_PKT_CNT.
奇偶校验NNAK遵循通常的消除程序,但只有当现有NAK状态的NAK_PKT_CNT大于NNAK_PKT_CNT时,才会消除NNAK。
Network elements must take extra precaution when the source is using a variable sized transmission group. Network elements learn that the source is using a TG size smaller than the maximum from OPT_CURR_TGSIZE in parity RDATAs or in SPMs. When this happens, they compute a TG size offset as the difference between the maximum TG size and the actual TG size advertised by OPT_CURR_TGSIZE. Upon reception of parity RDATA, the TG size offset is used to update the repair state as follows:
当电源使用可变大小的传输组时,网络元件必须采取额外的预防措施。网络元素了解到源使用的TG大小小于奇偶校验RDATAs或SPM中OPT_CURR_TGSIZE的最大值。当这种情况发生时,他们计算TG大小偏移量,作为最大TG大小和OPT_CURR_TGSIZE公布的实际TG大小之间的差值。接收奇偶校验RDATA后,TG大小偏移用于更新修复状态,如下所示:
Any interface whose known packet count is reduced to the TG size offset is deleted from the repair state.
任何已知数据包计数减少到TG大小偏移量的接口都将从修复状态中删除。
This replaces the normal rule for deleting interfaces that applies when the TG size is equal to the maximum TG size.
这取代了当TG大小等于最大TG大小时适用的删除接口的常规规则。
A DLR with the ability to provide FEC repairs MUST indicate this by setting the OPT_PARITY bit in the redirecting POLR. It MUST then process any redirected FEC NAKs in the usual way.
能够提供FEC修复的DLR必须通过在重定向POLR中设置OPT_奇偶校验位来指示这一点。然后,它必须以通常的方式处理任何重定向的FEC NAK。
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| |P O| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Transmission Group Size | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| |P O| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Transmission Group Size | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Option Type = 0x08
选项类型=0x08
Option Length = 8 octets
选项长度=8个八位字节
P-bit (PARITY_PRM_PRO)
P位(奇偶校验PRM PRO)
Indicates when set that the source is providing pro-active parity packets.
指示何时设置源提供主动奇偶校验数据包。
O-bit (PARITY_PRM_OND)
O位(奇偶校验)
Indicates when set that the source is providing on-demand parity packets.
指示何时设置源提供按需奇偶校验数据包。
At least one of PARITY_PRM_PRO and PARITY_PRM_OND MUST be set.
必须至少设置奇偶校验和奇偶校验。
Transmission Group Size (PARITY_PRM_TGS)
传输组大小(奇偶校验PRM TGS)
The number of data packets in the transmission group over which the parity packets are calculated. If a variable transmission group size is being used, then this becomes the maximum effective transmission group size across the session.
传输组中计算奇偶校验数据包的数据包数。如果正在使用可变传输组大小,则这将成为整个会话中的最大有效传输组大小。
OPT_PARITY_PRM MAY be appended only to SPMs.
OPT_奇偶校验_PRM只能附加到SPM。
OPT_PARITY_PRM is network-significant.
OPT_奇偶校验_PRM具有网络重要性。
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Parity Group Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Parity Group Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Option Type = 0x09
选项类型=0x09
Option Length = 8 octets
选项长度=8个八位字节
Parity Group Number (PRM_GROUP)
奇偶校验组编号(PRM_组)
The number of the group of k parity packets amongst the h parity packets within the transmission group to which the parity packet belongs, where the first k parity packets are in group zero. PRM_GROUP MUST NOT be zero.
奇偶校验分组所属的传输组内的h个奇偶校验分组中的k个奇偶校验分组组的数目,其中第一k个奇偶校验分组在组0中。PRM_组不能为零。
OPT_PARITY_GRP MAY be appended only to parity packets.
OPT_PARITY_GRP只能附加到奇偶校验分组。
OPT_PARITY_GRP is NOT network-significant.
OPT_奇偶校验_GRP与网络无关。
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Actual Transmission Group Size | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Actual Transmission Group Size | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Option Type = 0x0A
选项类型=0x0A
Option Length = 8 octets
选项长度=8个八位字节
Actual Transmission Group Size (PRM_ATGSIZE)
实际传输组大小(PRM_ATGSIZE)
The actual number of data packets in this transmission group. This MUST be less than or equal to the maximum transmission group size PARITY_PRM_TGS in OPT_PARITY_PRM.
此传输组中的实际数据包数。这必须小于或等于OPT_奇偶校验PRM中的最大传输组大小奇偶校验PRM_TGS。
OPT_CURR_TGSIZE MAY be appended to data and parity packets (ODATA or RDATA) and to SPMs.
OPT_CURR_TGSIZE可以附加到数据和奇偶校验包(ODATA或RDATA)以及SPM。
OPT_CURR_TGSIZE is network-significant except when appended to ODATA.
OPT_CURR_TGSIZE是网络重要的,除非附加到ODATA。
A source MUST implement strategies for congestion avoidance, aimed at providing overall network stability, fairness among competing PGM flows, and some degree of fairness towards coexisting TCP flows [13]. In order to do this, the source must be provided with feedback on the status of the network in terms of traffic load. This appendix specifies NE procedures that provide such feedback to the source in a scalable way. (An alternative TCP-friendly scheme for congestion control that does not require NE support can be found in [16]).
源必须实施拥塞避免策略,旨在提供整体网络稳定性、竞争PGM流之间的公平性,以及对共存TCP流的某种程度的公平性[13]。为了做到这一点,必须向源提供有关网络流量负载状态的反馈。本附录规定了以可扩展方式向源提供此类反馈的NE程序。(不需要网元支持的TCP友好拥塞控制替代方案见[16])。
The procedures specified in this section enable the collection and selective forwarding of three types of feedback to the source:
本节规定的程序可收集并有选择地将三种类型的反馈转发给信息源:
o Worst link load as measured in network elements.
o 网络元素中测量的最坏链路负载。
o Worst end-to-end path load as measured in network elements.
o 网络元件中测量的最差端到端路径负载。
o Worst end-to-end path load as reported by receivers.
o 接收机报告的最差端到端路径负载。
This specification defines in detail NE procedures, receivers procedures and packet formats. It also defines basic procedures in receivers for generating congestion reports. This specification does not define the procedures used by PGM sources to adapt their transmission rates in response of congestion reports. Those procedures depend upon the specific congestion control scheme.
本规范详细定义了网元程序、接收机程序和数据包格式。它还定义了接收器中生成拥塞报告的基本过程。本规范未定义PGM源为响应拥塞报告而调整其传输速率所使用的程序。这些程序取决于具体的拥塞控制方案。
PGM defines a header option that PGM receivers may append to NAKs (OPT_CR). OPT_CR carries congestion reports in NAKs that propagate upstream towards the source.
PGM定义了一个头选项,PGM接收器可以附加到NAK(OPT_CR)。OPT_CR在nak中携带拥塞报告,该报告向上游传播到源。
During the process of hop-by-hop reverse NAK forwarding, NEs examine OPT_CR and possibly modify its contents prior to forwarding the NAK upstream. Forwarding CRs also has the side effect of creating congestion report state in the NE. The presence of OPT_CR and its contents also influences the normal NAK suppression rules. Both the modification performed on the congestion report and the additional suppression rules depend on the content of the congestion report and on the congestion report state recorded in the NE as detailed below.
在逐跳反向NAK转发的过程中,ne在向上游转发NAK之前检查OPT_CR并可能修改其内容。转发CRs还具有在网元中创建拥塞报告状态的副作用。OPT_-CR的存在及其含量也会影响正常的NAK抑制规则。对拥塞报告和附加抑制规则执行的修改取决于拥塞报告的内容和网元中记录的拥塞报告状态,如下所述。
OPT_CR contains the following fields:
OPT_CR包含以下字段:
OPT_CR_NE_WL Reports the load in the worst link as detected though NE internal measurements
OPT_CR_NE_WL报告通过NE内部测量检测到的最差链路中的负载
OPT_CR_NE_WP Reports the load in the worst end-to-end path as detected though NE internal measurements
OPT_CR_NE_WP报告通过NE内部测量检测到的最差端到端路径中的负载
OPT_CR_RX_WP Reports the load in the worst end-to-end path as detected by receivers
OPT_CR_RX_WP报告接收机检测到的最差端到端路径中的负载
A load report is either a packet drop rate (as measured at an NE's interfaces) or a packet loss rate (as measured in receivers). Its value is linearly encoded in the range 0-0xFFFF, where 0xFFFF represents a 100% loss/drop rate. Receivers that send a NAK bearing OPT_CR determine which of the three report fields are being reported.
负载报告是分组丢弃率(在网元接口处测量)或分组丢失率(在接收机中测量)。其值在0-0xFFFF范围内进行线性编码,其中0xFFFF表示100%的丢失/丢弃率。发送带有NAK的OPT_CR的接收器确定正在报告三个报告字段中的哪一个。
OPT_CR also contains the following fields:
OPT_CR还包含以下字段:
OPT_CR_NEL A bit indicating that OPT_CR_NE_WL is being reported.
OPT_CR_NEL一位,表示正在报告OPT_CR_NE_WL。
OPT_CR_NEP A bit indicating that OPT_CR_NE_WP is being reported.
OPT_CR_NEP一位,表示正在报告OPT_CR_NE_WP。
OPT_CR_RXP A bit indicating that OPT_CR_RX_WP is being reported.
OPT_CR_RXP一位,表示正在报告OPT_CR_RX_WP。
OPT_CR_LEAD A SQN in the ODATA space that serves as a temporal reference for the load report values. This is initialized by receivers with the leading edge of the transmit window as known at the moment of transmitting the NAK. This value MAY be advanced in NEs that modify the content of OPT_CR.
OPT_CR_在ODATA空间中引导一个SQN,作为负载报告值的时间参考。这由接收机初始化,接收机具有在发送NAK时已知的发送窗口的前沿。该值可在修改OPT_CR内容的网元中提前。
OPT_CR_RCVR The identity of the receiver that generated the worst OPT_CR_RX_WP.
OPT_CR_RCVR生成最差OPT_CR_RX_WP的接收器的标识。
The complete format of the option is specified later.
选项的完整格式将在后面指定。
To permit network elements to report worst link, receivers append OPT_CR to a NAK with bit OPT_CR_NEL set and OPT_CR_NE_WL set to zero. NEs receiving NAKs that contain OPT_CR_NE_WL process the option and update per-TSI state related to it as described below. The ultimate result of the NEs' actions ensures that when a NAK leaves a sub-tree, OPT_CR_NE_WL contains a congestion report that reflects the load of the worst link in that sub-tree. To achieve this, NEs rewrite OPT_CR_NE_WL with the worst value among the loads measured on the local (outgoing) links for the session and the congestion reports received from those links.
为了允许网络元件报告最差链路,接收机将OPT_CR附加到NAK,位OPT_CR_NEL设置为零,OPT_CR_NE_WL设置为零。接收包含OPT_CR_NE_WL的NAK的网元按照与之相关的TSI状态处理该选项并进行更新,如下所述。网元操作的最终结果确保当NAK离开子树时,OPT_CR_NE_WL包含反映该子树中最差链路负载的拥塞报告。为了实现这一点,网元重写OPT_CR_NE_WL,使用在会话的本地(传出)链路上测量的负载和从这些链路接收的拥塞报告中的最坏值。
Note that the mechanism described in this sub-section does not permit the monitoring of the load on (outgoing) links at non-PGM-capable multicast routers. For this reason, NE-Based Worst Link Reports SHOULD be used in pure PGM topologies only. Otherwise, this mechanism might fail in detecting congestion. To overcome this limitation PGM sources MAY use a heuristic that combines NE-Based Worst Link Reports and Receiver-Based Reports.
请注意,本小节中描述的机制不允许在不支持PGM的多播路由器上监控(传出)链路上的负载。因此,基于NE的最差链路报告应仅在纯PGM拓扑中使用。否则,该机制可能无法检测拥塞。为克服此限制,PGM源可使用结合基于NE的最差链路报告和基于接收器的报告的启发式方法。
To permit network elements to report a worst path, receivers append OPT_CR to a NAK with bit OPT_CR_NEP set and OPT_CR_NE_WP set to zero. The processing of this field is similar to that of OPT_CR_NE_WL with the difference that, on the reception of a NAK, the value of OPT_CR_NE_WP is adjusted with the load measured on the interface on which the NAK was received according to the following formula:
为了允许网络元件报告最坏路径,接收机将OPT_CR附加到NAK,位OPT_CR_NEP set和OPT_CR_NE_WP设置为零。该字段的处理类似于OPT_CR_NE_WL的处理,不同之处在于,在接收NAK时,OPT_CR_NE_WP的值根据以下公式在接收NAK的接口上测量的负载进行调整:
OPT_CR_NE_WP = if_load + OPT_CR_NE_WP * (100% - if_loss_rate)
OPT_CR_NE_WP = if_load + OPT_CR_NE_WP * (100% - if_loss_rate)
The worst among the adjusted OPT_CR_NE_WP is then written in the outgoing NAK. This results in a hop-by-hop accumulation of link loss rates into a path loss rate.
然后,将调整后的OPT_CR_NE_WP中最差的一个写入传出的NAK中。这导致链路丢失率逐跳累积为路径丢失率。
As with OPT_CR_NE_WL, the congestion report in OPT_CR_NE_WP may be invalid if the multicast distribution tree includes non-PGM-capable routers.
与OPT_CR_NE_WL一样,如果多播分发树包括不支持PGM的路由器,OPT_CR_NE_WP中的拥塞报告可能无效。
To report a packet loss rate, receivers append OPT_CR to a NAK with bit OPT_CR_RXP set and OPT_CR_RX_WP set to the packet loss rate. NEs receiving NAKs that contain OPT_CR_RX_WP process the option and update per-TSI state related to it as described below. The ultimate result of the NEs' actions ensures that when a NAK leaves a sub-tree, OPT_CR_RX_WP contains a congestion report that reflects the load of the worst receiver in that sub-tree. To achieve this, NEs rewrite OTP_CR_RE_WP with the worst value among the congestion reports received on its outgoing links for the session. In addition to this, OPT_CR_RCVR MUST contain the NLA of the receiver that originally measured the value of OTP_CR_RE_WP being forwarded.
为了报告分组丢失率,接收机将OPT_CR附加到NAK,比特OPT_CR_RXP设置为分组丢失率,OPT_CR_RX_WP设置为分组丢失率。接收包含OPT_CR_RX_WP的NAK的网元处理该选项,并按照与之相关的TSI状态进行更新,如下所述。网元操作的最终结果确保当NAK离开子树时,OPT_CR_RX_WP包含反映该子树中最差接收器负载的拥塞报告。为了实现这一点,网元重写OTP_CR_RE_WP,该值在会话的传出链路上收到的拥塞报告中是最差的。除此之外,OPT_CR_RCVR必须包含最初测量被转发的OTP_CR_RE_WP值的接收机的NLA。
To enable the generation of any type of congestion report, receivers MUST insert OPT_CR in each NAK they generate and provide the corresponding field (OPT_CR_NE_WL, OPT_CR_NE_WP, OPT_CR_RX_WP). The specific fields to be reported will be advertised to receivers in OPT_CRQST on the session's SPMs. Receivers MUST provide only those options requested in OPT_CRQST.
为了能够生成任何类型的拥塞报告,接收器必须在其生成的每个NAK中插入OPT_CR,并提供相应的字段(OPT_CR_NE_WL、OPT_CR_NE_WP、OPT_CR_RX_WP)。要报告的特定字段将在会话的SPM上公布给OPT_CRQST中的接收者。接收方必须仅提供OPT_CRQST中要求的选项。
Receivers MUST initialize OPT_CR_NE_WL and OPT_CR_NE_WP to 0 and they MUST initialize OPT_CR_RCVR to their NLA. At the moment of sending the NAK, they MUST also initialize OPT_CR_LEAD to the leading edge of the transmission window.
接收机必须将OPT_CR_NE_WL和OPT_CR_NE_WP初始化为0,并且必须将OPT_CR_RCVR初始化为其NLA。在发送NAK时,他们还必须将OPT_CR_导线初始化到传输窗口的前缘。
Additionally, if a receiver generates a NAK with OPT_CR with OPT_CR_RX_WP, it MUST initialize OPT_CR_RX_WP to the proper value, internally computed.
此外,如果接收机使用OPT_CR和OPT_CR_RX_WP生成NAK,则必须将OPT_CR_RX_WP初始化为内部计算的正确值。
Network elements start processing each OPT_CR by selecting a reference SQN in the ODATA space. The reference SQN selected is the highest SQN known to the NE. Usually this is OPT_CR_LEAD contained in the NAK received.
网元通过在ODATA空间中选择参考SQN开始处理每个OPT_CR。选择的参考SQN是NE已知的最高SQN。通常这是收到的NAK中包含的OPT_CR_铅。
They use the selected SQN to age the value of load measurement as follows:
他们使用选定的SQN对荷载测量值进行老化,如下所示:
o locally measured load values (e.g. interface loads) are considered up-to-date
o 本地测量的荷载值(如界面荷载)被认为是最新的
o load values carried in OPT_CR are considered up-to-date and are not aged so as to be independent of variance in round-trip times from the network element to the receivers
o OPT_CR中的负载值被认为是最新的,并且没有老化,因此与从网元到接收器的往返时间的变化无关
o old load values recorded in the NE are exponentially aged according to the difference between the selected reference SQN and the reference SQN associated with the old load value.
o 根据所选参考SQN和与旧负荷值相关联的参考SQN之间的差异,对记录在NE中的旧负荷值进行指数老化。
The exponential aging is computed so that a recorded value gets scaled down by a factor exp(-1/2) each time the expected inter-NAK time elapses. Hence the aging formula must include the current loss rate as follows:
计算指数老化,以便在每次预期的NAK间隔时间过去时,记录的值按比例缩小因子exp(-1/2)。因此,账龄公式必须包括如下当前损失率:
aged_loss_rate = loss_rate * exp( - SQN_difference * loss_rate / 2)
aged_loss_rate = loss_rate * exp( - SQN_difference * loss_rate / 2)
Note that the quantity 1/loss_rate is the expected SQN_lag between two NAKs, hence the formula above can also be read as:
请注意,数量1/损失率是两个NAK之间的预期SQN_滞后,因此上述公式也可以理解为:
aged_loss_rate = loss_rate * exp( - 1/2 * SQN_difference / SQN_lag)
aged_loss_rate = loss_rate * exp( - 1/2 * SQN_difference / SQN_lag)
which equates to (loss_rate * exp(-1/2)) when the SQN_difference is equal to expected SQN_lag between two NAKs.
当SQN_差等于两个NAK之间的预期SQN_滞后时,等于(损失率*exp(-1/2))。
All the subsequent computations refer to the aged load values.
所有后续计算均参考老化荷载值。
Network elements process OPT_CR by handling the three possible types of congestion reports independently.
网元通过独立处理三种可能类型的拥塞报告来处理OPT_CR。
For each congestion report in an incoming NAK, a new value is computed to be used in the outgoing NAK:
对于传入NAK中的每个拥塞报告,将计算一个新值以在传出NAK中使用:
o The new value for OPT_CR_NE_WL is the maximum of the load measured on the outgoing interfaces for the session, the value of OPT_CR_NE_WL of the incoming NAK, and the value previously sent upstream (recorded in the NE). All these values are as obtained after the aging process.
o OPT_CR_NE_WL的新值是在会话的传出接口上测量的负载、传入NAK的OPT_CR_NE_WL的值以及先前向上游发送的值(记录在NE中)中的最大值。所有这些值都是在老化过程后获得的。
o The new value for OPT_CR_NE_WP is the maximum of the value previously sent upstream (after aging) and the value of OPT_CR_NE_WP in the incoming NAK adjusted with the load on the interface upon which the NAK was received (as described above).
o OPT_CR_NE_WP的新值是先前向上游发送的值(老化后)和传入NAK中OPT_CR_NE_WP的值的最大值,该值根据接收NAK的接口上的负载进行调整(如上所述)。
o The new value for OPT_CR_RX_WP is the maximum of the value previously sent upstream (after aging) and the value of OPT_CR_RX_WP in the incoming NAK.
o OPT_CR_RX_WP的新值是先前向上游发送的值(老化后)和传入NAK中OPT_CR_RX_WP的值的最大值。
o If OPT_CR_RX_WP was selected from the incoming NAK, the new value for OPT_CR_RCVR is the one in the incoming NAK. Otherwise it is the value previously sent upstream.
o 如果从传入NAK中选择了OPT_CR_RX_WP,则OPT_CR_RCVR的新值为传入NAK中的值。否则,它是先前向上游发送的值。
o The new value for OPT_CR_LEAD is the reference SQN selected for the aging procedure.
o OPT_CR_LEAD的新值是为老化程序选择的参考SQN。
Normal suppression rules hold to determine if a NAK should be forwarded upstream or not. However if any of the outgoing congestion reports has changed by more than 5% relative to the one previously sent upstream, this new NAK is not suppressed.
正常抑制规则用于确定NAK是否应向上游转发。但是,如果任何传出拥塞报告相对于先前向上游发送的拥塞报告的变化超过5%,则不会抑制此新NAK。
PGM routers monitor the load on all their outgoing links and record it in the form of per-interface loss rate statistics. "load" MUST be interpreted as the percentage of the packets meant to be forwarded on the interface that were dropped. Load statistics refer to the aggregate traffic on the links and not to PGM traffic only.
PGM路由器监控其所有输出链路上的负载,并以每个接口丢失率统计的形式进行记录。“load”必须解释为要在接口上转发的数据包被丢弃的百分比。负载统计是指链路上的聚合流量,而不仅仅是PGM流量。
This document does not specify the algorithm to be used to collect such statistics, but requires that such algorithm provide both accuracy and responsiveness in the measurement process. As far as accuracy is concerned, the expected measurement error SHOULD be upper-limited (e.g. less than than 10%). As far as responsiveness is concerned, the measured load SHOULD converge to the actual value in a limited time (e.g. converge to 90% of the actual value in less than 200 milliseconds), when the instantaneous offered load changes. Whenever both requirements cannot be met at the same time, accuracy SHOULD be traded for responsiveness.
本文件未规定用于收集此类统计数据的算法,但要求此类算法在测量过程中提供准确性和响应性。就精度而言,预期测量误差应为上限(例如小于10%)。就响应性而言,当瞬时提供的负载发生变化时,测量的负载应在有限的时间内收敛到实际值(例如,在不到200毫秒的时间内收敛到实际值的90%)。如果不能同时满足这两个要求,则应以准确性换取响应性。
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| L P R| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Congestion Report Reference SQN | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NE Worst Link | NE Worst Path | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Rcvr Worst Path | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NLA AFI | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Worst Receiver's NLA ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| L P R| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Congestion Report Reference SQN | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NE Worst Link | NE Worst Path | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Rcvr Worst Path | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NLA AFI | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Worst Receiver's NLA ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+
Option Type = 0x10
选项类型=0x10
Option Length = 20 octets + NLA length
选项长度=20个八位字节+NLA长度
L OPT_CR_NEL bit : set indicates OPT_CR_NE_WL is being reported
L OPT_CR_NEL位:设置表示正在报告OPT_CR_NE_WL
P OPT_CR_NEP bit : set indicates OPT_CR_NE_WP is being reported
P OPT_CR_NEP位:设置表示正在报告OPT_CR_NE_WP
R OPT_CR_RXP bit : set indicates OPT_CR_RX_WP is being reported
R OPT_CR_RXP位:设置表示正在报告OPT_CR_RX_WP
Congestion Report Reference SQN (OPT_CR_LEAD).
拥堵报告参考SQN(可选CR领导)。
A SQN in the ODATA space that serves as a temporal reference point for the load report values.
ODATA空间中的SQN,用作负载报告值的时间参考点。
NE Worst Link (OPT_CR_NE_WL).
东北最差链路(OPT_CR_NE_WL)。
Reports the load in the worst link as detected though NE internal measurements
报告通过NE内部测量检测到的最差链路中的负载
NE Worst Path (OPT_CR_NE_WP).
NE最差路径(OPT_CR_NE_WP)。
Reports the load in the worst end-to-end path as detected though NE internal measurements
报告通过NE内部测量检测到的最差端到端路径中的负载
Rcvr Worst Path (OPT_CR_RX_WP).
Rcvr最坏路径(OPT_CR_RX_WP)。
Reports the load in the worst end-to-end path as detected by receivers
报告接收机检测到的最差端到端路径中的负载
Worst Receiver's NLA (OPT_CR_RCVR).
最差接收机的NLA(OPT_CR_RCVR)。
The unicast address of the receiver that generated the worst OPT_CR_RX_WP.
生成最差OPT_CR_RX_WP的接收器的单播地址。
OPT_CR MAY be appended only to NAKs.
OPT_CR只能附加到nak。
OPT-CR is network-significant.
OPT-CR具有网络重要性。
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| L P R| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| L P R| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Option Type = 0x11
选项类型=0x11
Option Length = 4 octets
选项长度=4个八位字节
L OPT_CRQST_NEL bit : set indicates OPT_CR_NE_WL is being requested
L OPT_CRQST_NEL位:设置表示正在请求OPT_cru NE_WL
P OPT_CRQST_NEP bit : set indicates OPT_CR_NE_WP is being requested
P OPT_CRQST_NEP位:设置表示正在请求OPT_CRQST_NE_WP
R OPT_CRQST_RXP bit : set indicates OPT_CR_RX_WP is being requested
R OPT_CRQST_RXP位:设置表示正在请求OPT_cru RX_WP
OPT_CRQST MAY be appended only to SPMs.
OPT_CRQST只能附加到SPM中。
OPT-CRQST is network-significant.
OPT-CRQST具有网络重要性。
SPM Requests (SPMRs) MAY be used to solicit an SPM from a source in a non-implosive way. The typical application is for late-joining receivers to solicit SPMs directly from a source in order to be able to NAK for missing packets without having to wait for a regularly scheduled SPM from that source.
SPM请求(SPMR)可用于以非内爆方式从源请求SPM。典型的应用是,延迟加入的接收机直接从源请求SPM,以便能够NAK丢失的分组,而不必等待来自该源的定时SPM。
Allowing for SPMR implosion protection procedures, a receiver MAY unicast an SPMR to a source to solicit the most current session, window, and path state from that source any time after the receiver has joined the group. A receiver may learn the TSI and source to which to direct the SPMR from any other PGM packet it receives in the group, or by any other means such as from local configuration or directory services. The receiver MUST use the usual SPM procedures to glean the unicast address to which it should direct its NAKs from the solicited SPM.
考虑到SPMR内爆保护过程,接收机可以在加入组后的任何时间将SPMR单播到源以从该源请求最新会话、窗口和路径状态。接收机可以从其在组中接收的任何其他PGM分组或通过任何其他方式(例如从本地配置或目录服务)学习要将SPMR定向到的TSI和源。接收器必须使用通常的SPM程序从请求的SPM收集它应该将其NAK定向到的单播地址。
This section just provides enough short-hand to make the Procedures intelligible. For the full details of packet contents, please refer to Packet Formats below.
本节只是提供了足够的简写,使程序易于理解。有关数据包内容的完整详细信息,请参阅下面的数据包格式。
SPMRs are transmitted by receivers to solicit SPMs from a source.
SPMR由接收器发送,以从源请求SPM。
SPMs are unicast to a source and contain:
SPM单播到源并包含:
SPMR_TSI the source-assigned TSI for the session to which the SPMR corresponds
SPMR_TSI源为SPMR对应的会话分配TSI
A source MUST respond immediately to an SPMR with the corresponding SPM rate limited to once per IHB_MIN per TSI. The corresponding SPM matches SPM_TSI to SPMR_TSI and SPM_DPORT to SPMR_DPORT.
源必须立即响应SPMR,相应的SPM速率限制为每个IHB_MIN每个TSI一次。相应的SPM将SPM_TSI与SPMR_TSI匹配,并将SPM_DPORT与SPMR_DPORT匹配。
To moderate the potentially implosive behavior of SPMRs at least on a densely populated subnet, receivers MUST use the following back-off and suppression procedure based on multicasting the SPMR with a TTL of 1 ahead of and in addition to unicasting the SPMR to the source. The role of the multicast SPMR is to suppress the transmission of identical SPMRs from the subnet.
为了至少在人口稠密的子网上缓和SPMR的潜在内爆行为,接收机必须使用以下退避和抑制程序,该程序基于在SPMR之前以1的TTL对SPMR进行多播,以及将SPMR单播到源。多播SPMR的作用是抑制来自子网的相同SPMR的传输。
More specifically, before unicasting a given SPMR, receivers MUST choose a random delay on SPMR_BO_IVL (~250 msecs) during which they listen for a multicast of an identical SPMR. If a receiver does not see a matching multicast SPMR within its chosen random interval, it MUST first multicast its own SPMR to the group with a TTL of 1 before then unicasting its own SPMR to the source. If a receiver does see a
更具体地说,在单播给定的SPMR之前,接收机必须在SPMR_BO__IVL上选择一个随机延迟(~250毫秒),在此期间,它们侦听相同SPMR的多播。如果接收器在其选择的随机间隔内没有看到匹配的多播SPMR,则必须首先将其自己的SPMR多播到TTL为1的组,然后再将其自己的SPMR单播到源。如果接收器确实看到
matching multicast SPMR within its chosen random interval, it MUST refrain from unicasting its SPMR and wait instead for the corresponding SPM.
在选定的随机间隔内匹配多播SPMR,它必须避免单播其SPMR,而是等待相应的SPM。
In addition, receipt of the corresponding SPM within this random interval SHOULD cancel transmission of an SPMR.
此外,在此随机间隔内收到相应的SPM应取消SPMR的传输。
In either case, the receiver MUST wait at least SPMR_SPM_IVL before attempting to repeat the SPMR by choosing another delay on SPMR_BO_IVL and repeating the procedure above.
在任何一种情况下,接收器必须至少等待SPMR_SPM_IVL,然后通过选择SPMR_BO_IVL上的另一个延迟并重复上述过程来尝试重复SPMR。
The corresponding SPMR matches SPMR_TSI to SPMR_TSI and SPMR_DPORT to SPMR_DPORT. The corresponding SPM matches SPM_TSI to SPMR_TSI and SPM_DPORT to SPMR_DPORT.
相应的SPMR将SPMR_TSI与SPMR_TSI匹配,并将SPMR_DPORT与SPMR_DPORT匹配。相应的SPM将SPM_TSI与SPMR_TSI匹配,并将SPM_DPORT与SPMR_DPORT匹配。
SPMR:
SPMR:
SPM Requests are sent by receivers to request the immediate transmission of an SPM for the given TSI from a source.
SPM请求由接收器发送,以请求从源立即传输给定TSI的SPM。
The network-header source address of an SPMR is the unicast NLA of the entity that originates the SPMR.
SPMR的网络头源地址是发起SPMR的实体的单播NLA。
The network-header destination address of an SPMR is the unicast NLA of the source from which the corresponding SPM is requested.
SPMR的网络报头目标地址是请求相应SPM的源的单播NLA。
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Options | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Global Source ID ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... Global Source ID | TSDU Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Extensions when present ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ...
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Options | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Global Source ID ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... Global Source ID | TSDU Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Extensions when present ... +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ...
Source Port:
源端口:
SPMR_SPORT
体育运动
Data-Destination Port
数据目的端口
Destination Port:
目的港:
SPMR_DPORT
SPMR_DPORT
Data-Source Port, together with Global Source ID forms SPMR_TSI
数据源端口与全局源ID一起构成SPMR_TSI
Type:
类型:
SPMR_TYPE = 0x0C
SPMR_TYPE = 0x0C
Global Source ID:
全局源ID:
SPMR_GSI
SPMR_GSI
Together with Source Port forms
与源端口表单一起使用
SPMR_TSI
苏慈先生
These procedures provide PGM network elements and sources with the ability to poll their downstream PGM neighbors to solicit replies in an implosion-controlled way.
这些程序使PGM网元和源能够轮询其下游PGM邻居,以内爆控制的方式请求回复。
Both general polls and specific polls are possible. The former provide a PGM (parent) node with a way to check if there are any PGM (children) nodes connected to it, both network elements and receivers, and to estimate their number. The latter may be used by PGM parent nodes to search for nodes with specific properties among its PGM children. An example of application for this is DLR discovery.
一般民意调查和具体民意调查都是可能的。前者为PGM(父)节点提供了一种检查是否有任何连接到它的PGM(子)节点(网元和接收器)的方法,并估计它们的数量。PGM父节点可使用后者在其PGM子节点中搜索具有特定属性的节点。DLR发现就是一个应用示例。
Polling is implemented using two additional PGM packets:
使用两个额外的PGM数据包实现轮询:
POLL a Poll Request that PGM parent nodes multicast to the group to perform the poll. Similarly to NCFs, POLL packets stop at the first PGM node they reach, as they are not forwarded by PGM network elements.
轮询PGM父节点多播到组以执行轮询的轮询请求。与NCF类似,轮询数据包在它们到达的第一个PGM节点处停止,因为它们不是由PGM网元转发的。
POLR a Poll Response that PGM children nodes (either network elements or receivers) use to reply to a Poll Request by addressing it to the NLA of the interface from which the triggering POLL was sent.
POLR一种轮询响应,PGM子节点(网络元件或接收器)通过将轮询请求寻址到发送触发轮询的接口的NLA来响应轮询请求。
The polling mechanism dictates that PGM children nodes that receive a POLL packet reply to it only if certain conditions are satisfied and ignore the POLL otherwise. Two types of condition are possible: a random condition that defines a probability of replying for the polled child, and a deterministic condition. Both the random condition and the deterministic condition are controlled by the polling PGM parent node by specifying the probability of replying and defining the deterministic condition(s) respectively. Random-only poll, deterministic-only poll or a combination of the two are possible.
轮询机制规定,仅当满足某些条件时,接收轮询数据包的PGM子节点才会回复该数据包,否则忽略轮询。两种类型的条件是可能的:一种是定义被轮询子代应答概率的随机条件,另一种是确定性条件。轮询PGM父节点通过分别指定应答概率和定义确定性条件来控制随机条件和确定性条件。仅随机轮询、仅确定性轮询或两者的组合是可能的。
The random condition in polls allows the prevention of implosion of replies by controlling their number. Given a probability of replying P and assuming that each receiver makes an independent decision, the number of expected replies to a poll is P*N where N is the number of PGM children relative to the polling PGM parent. The polling node can control the number of expected replies by specifying P in the POLL packet.
民意测验中的随机条件允许通过控制回复的数量来防止回复的内爆。假设回答P的概率并假设每个接收者做出独立的决定,则对轮询的预期回答数为P*N,其中N是相对于轮询PGM父级的PGM子级的数目。轮询节点可以通过在轮询数据包中指定P来控制预期回复的数量。
This section just provides enough short-hand to make the Procedures intelligible. For the full details of packet contents, please refer to Packet Formats below.
本节只是提供了足够的简写,使程序易于理解。有关数据包内容的完整详细信息,请参阅下面的数据包格式。
POLL_SQN a sequence number assigned sequentially by the polling parent in unit increments and scoped by POLL_PATH and the TSI of the session.
POLL_SQN轮询父级以单位增量顺序分配的序列号,其范围由轮询路径和会话的TSI确定。
POLL_ROUND a poll round sequence number. Multiple poll rounds are possible within a POLL_SQN.
轮询\u舍入轮询舍入序列号。在一次投票中可以进行多轮投票。
POLL_S_TYPE the sub-type of the poll request
POLL_S_TYPE轮询请求的子类型
POLL_PATH the network-layer address (NLA) of the interface on the PGM network element or source on which the POLL is transmitted
POLL_PATH传输轮询的PGM网元或源上接口的网络层地址(NLA)
POLL_BO_IVL the back-off interval that MUST be used to compute the random back-off time to wait before sending the response to a poll. POLL_BO_IVL is expressed in microseconds.
POLL_BO_IVL在将响应发送到轮询之前,必须使用回退间隔来计算要等待的随机回退时间。POLL_BO_IVL以微秒表示。
POLL_RAND a random string used to implement the randomness in replying
POLL_RAND一个随机字符串,用于实现应答的随机性
POLL_MASK a bit-mask used to determine the probability of random replies
轮询掩码用于确定随机回复概率的位掩码
Poll request MAY also contain options which specify deterministic conditions for the reply. No options are currently defined.
轮询请求还可能包含指定回复的确定性条件的选项。当前未定义任何选项。
POLR_SQN POLL_SQN of the poll request for which this is a reply
POLR_SQN POLL_SQN此为答复的轮询请求的轮询
POLR_ROUND POLL_ROUND of the poll request for which this is a reply
POLR_ROUND POLL_这是答复的轮询请求的一轮轮询
Poll response MAY also contain options. No options are currently defined.
轮询响应也可能包含选项。当前未定义任何选项。
General Polls may be used to check for and count PGM children that are 1 PGM hop downstream of an interface of a given node. They have POLL_S_TYPE equal to PGM_POLL_GENERAL. PGM children that receive a general poll decide whether to reply to it only based on the random condition present in the POLL.
一般轮询可用于检查和计数在给定节点接口下游1个PGM跳的PGM子节点。它们的POLL_S_类型等于PGM_POLL_GENERAL。接受一般民意测验的PGM儿童仅根据民意测验中存在的随机条件决定是否回复。
To prevent response implosion, PGM parents that initiate a general poll SHOULD establish the probability of replying to the poll, P, so that the expected number of replies is contained. The expected number of replies is N * P, where N is the number of children. To be able to compute this number, PGM parents SHOULD already have a rough estimate of the number of children. If they do not have a recent estimate of this number, they SHOULD send the first poll with a very low probability of replying and increase it in subsequent polls in order to get the desired number of replies.
为防止响应内爆,发起一般轮询的PGM家长应确定答复轮询的概率P,以便包含预期的答复数量。预期答复数为N*P,其中N是子级数。为了能够计算出这个数字,PGM父母应该已经粗略估计了孩子的数量。如果他们没有这个数字的最新估计,他们应该以非常低的答复概率发送第一次民意测验,并在随后的民意测验中增加,以获得所需的答复数量。
To prevent poll-response implosion caused by a sudden increase in the children population occurring between two consecutive polls with increasing probability of replying, PGM parents SHOULD use poll rounds. Poll rounds allow PGM parents to "freeze" the size of the children population when they start a poll and to maintain it constant across multiple polls (with the same POLL_SQN but different POLL_ROUND). This works by allowing PGM children to respond to a poll only if its POLL_ROUND is zero or if they have previously received a poll with the same POLL_SQN and POLL_ROUND equal to zero.
为了防止在连续两次民意调查之间,由于儿童人口突然增加而导致的民意调查响应内爆,且答复概率增加,PGM家长应使用民意调查轮。调查轮允许PGM家长在开始调查时“冻结”儿童人口的规模,并在多个调查中保持不变(使用相同的调查轮,但不同的调查轮)。这是通过允许PGM子级仅在轮询轮数为零或之前收到的轮询轮数相同且轮询轮数等于零的情况下响应轮询来实现的。
In addition to this PGM children MUST observe a random back-off in replying to a poll. This spreads out the replies in time and allows a PGM parent to abort the poll if too many replies are being received. To abort an ongoing poll a PGM parent MUST initiate another poll with different POLL_SQN. PGM children that receive a POLL MUST cancel any pending reply for POLLs with POLL_SQN different from the one of the last POLL received.
除此之外,PGM儿童在回答民意测验时必须遵守随机退让原则。这将及时分发答复,并允许PGM家长在收到太多答复时中止轮询。要中止正在进行的轮询,PGM父级必须使用不同的轮询启动另一个轮询。收到轮询的PGM子级必须取消轮询与上次收到的轮询不同的任何未决答复。
For a given poll with probability of replying P, a PGM parent estimates the number of children as M / P, where M is the number of responses received. PGM parents SHOULD keep polling periodically and use some average of the result of recent polls as their estimate for the number of children.
对于回答概率为P的给定民意测验,PGM父母将子女数量估计为M/P,其中M是收到的回答数量。PGM家长应定期进行投票,并使用最近投票结果的一些平均值作为他们对孩子数量的估计。
Specific polls provide a way to search for PGM children that comply to specific requisites. As an example specific poll could be used to search for down-stream DLRs. A specific poll is characterized by a POLL_S_TYPE different from PGM_POLL_GENERAL. PGM children decide whether to reply to a specific poll or not based on the POLL_S_TYPE, on the random condition and on options possibly present in the POLL. The way options should be interpreted is defined by POLL_S_TYPE. The random condition MUST be interpreted as an additional condition to be satisfied. To disable the random condition PGM parents MUST specify a probability of replying P equal to 1.
特定调查提供了一种搜索符合特定要求的PGM儿童的方法。例如,可以使用特定的轮询来搜索下游DLR。特定轮询的特点是轮询类型不同于PGM_poll_GENERAL。PGM儿童根据投票类型、随机条件和投票中可能存在的选项决定是否回复特定投票。选项的解释方式由轮询类型定义。随机条件必须解释为需要满足的附加条件。要禁用随机条件,PGM父母必须指定回复P的概率等于1。
PGM children MUST ignore a POLL packet if they do not understand POLL_S_TYPE. Some specific POLL_S_TYPE may also require that the children ignore a POLL if they do not fully understand all the PGM options present in the packet.
如果PGM子级不了解轮询类型,则必须忽略轮询数据包。某些特定的轮询类型也可能要求孩子们忽略轮询,如果他们不完全理解数据包中存在的所有PGM选项。
A PGM parent (source or network element), that wants to poll the first PGM-hop children connected to one of its outgoing interfaces MUST send a POLL packet on that interface with:
如果PGM父级(源或网元)希望轮询连接到其一个传出接口的第一个PGM跃点子级,则必须在该接口上发送轮询数据包,该数据包包含:
POLL_SQN equal to POLL_SQN of the last POLL sent incremented by one. If poll rounds are used, this must be equal to POLL_SQN of the last group of rounds incremented by one.
POLL_SQN等于上次发送的轮询的POLL_SQN,递增1。如果使用轮询轮,则该值必须等于最后一组轮的poll_SQN加1。
POLL_ROUND The round of the poll. If the poll has a single round, this must be zero. If the poll has multiple rounds, this must be one plus the last POLL_ROUND for the same POLL_SQN, or zero if this is the first round within this POLL_SQN.
在这轮投票中投票。如果投票只有一轮,则必须为零。如果投票有多轮,则必须是一轮加上同一投票的最后一轮,如果这是该投票的第一轮,则为零。
POLL_S_TYPE the type of the poll. For general poll use PGM_POLL_GENERAL
POLL\u S\u TYPE轮询的类型。对于一般轮询,请使用PGM_poll_general
POLL_PATH set to the NLA of the outgoing interface
轮询路径设置为传出接口的NLA
POLL_BO_IVL set to the wanted reply back-off interval. As far as the choice of this is concerned, using NAK_BO_IVL is usually a conservative option, however a smaller value MAY be used, if the number of expected replies can be determined with a good confidence or if a conservatively low probability of reply (P) is being used (see POLL_MASK next). When the number of expected replies is unknown, a large POLL_BO_IVL SHOULD be used, so that the poll can be effectively aborted if the number of replies being received is too large.
POLL_BO_IVL设置为想要的回复回退间隔。就选择这一点而言,使用NAK_BO_IVL通常是一个保守的选择,但是如果可以很好地确定预期回复的数量,或者如果使用保守的低回复概率(P)(见下文的轮询掩码),则可以使用较小的值。当预期回复的数量未知时,应使用大型轮询,以便在收到回复的数量过大时可以有效地中止轮询。
POLL_RAND MUST be a random string re-computed each time a new poll is sent on a given interface
POLL_RAND必须是每次在给定接口上发送新轮询时重新计算的随机字符串
POLL_MASK determines the probability of replying, P, according to the relationship P = 1 / ( 2 ^ B ), where B is the number of bits set in POLL_MASK [15]. If this is a deterministic poll, B MUST be 0, i.e. POLL_MASK MUST be a all-zeroes bit-mask.
POLL_MASK根据关系P=1/(2^B)确定应答概率P,其中B是POLL_MASK中设置的位数[15]。如果这是确定性轮询,B必须为0,即轮询掩码必须为全零位掩码。
Nota Bene: POLLs transmitted by network elements MUST bear the ODATA source's network-header source address, not the network element's NLA. POLLs MUST also be transmitted with the IP
注:网元传输的轮询必须带有ODATA源的网络头源地址,而不是网元的NLA。投票也必须通过IP传输
Router Alert Option [6], to be allow PGM network element to intercept them.
路由器警报选项[6],允许PGM网元拦截它们。
A PGM parent that has started a poll by sending a POLL packet SHOULD wait at least POLL_BO_IVL before starting another poll. During this interval it SHOULD collect all the valid response (the one with POLR_SQN and POLR_ROUND matching with the outstanding poll) and process them at the end of the collection interval.
通过发送轮询数据包启动轮询的PGM父级在启动另一个轮询之前应至少等待poll_BO_IVL。在此时间间隔内,它应收集所有有效的响应(POLR_SQN和POLR_ROUND与未完成的轮询匹配的响应),并在收集时间间隔结束时对其进行处理。
A PGM parent SHOULD observe the rules mentioned in the description of general procedures, to prevent implosion of response. These rules should in general be observed both for generic polls and specific polls. The latter however can be performed using deterministic poll (with no implosion prevention) if the expected number of replies is known to be small. A PGM parent that issue a generic poll with the intent of estimating the children population size SHOULD use poll rounds to "freeze" the children that are involved in the measure process. This allows the sender to "open the door wider" across
PGM母公司应遵守一般程序说明中提到的规则,以防止响应内爆。一般而言,无论是一般投票还是特定投票,都应遵守这些规则。但是,如果已知预期的回复数量较小,则可以使用确定性轮询(无内爆预防)执行后一种方法。PGM家长如果发布一般性调查以估计儿童人口规模,则应使用调查轮次“冻结”参与测量过程的儿童。这使得发送者可以“打开更宽的门”
subsequent rounds (by increasing the probability of response), without fear of being flooded by late joiners. Note the use of rounds has the drawback of introducing additional delay in the estimate of the population size, as the estimate obtained at the end of a round-group refers to the condition present at the time of the first round.
随后的几轮(通过增加响应的概率),不必担心被迟到的参与者淹没。注:轮次的使用有一个缺点,即在估计总体规模时会引入额外的延迟,因为在轮次组结束时获得的估计值是指在第一轮时出现的情况。
A PGM parent that has started a poll SHOULD monitor the number of replies during the collection phase. If this become too large, the PGM parent SHOULD abort the poll by immediately starting a new poll (different POLL_SQN) and specifying a very low probability of replying.
已开始轮询的PGM父级应在收集阶段监控回复数。如果该值太大,PGM父级应立即开始新的轮询(不同的轮询)并指定非常低的答复概率,从而中止轮询。
When polling is being used to estimate the receiver population for the purpose of calculating NAK_BO_IVL, OPT_NAK_BO_IVL (see 16.4.1 below) MUST be appended to SPMs, MAY be appended to NCFs and POLLs, and in all cases MUST have NAK_BO_IVL_SQN set to POLL_SQN of the most recent complete round of polls, and MUST bear that round's corresponding derived value of NAK_BAK_IVL. In this way, OPT_NAK_BO_IVL provides a current value for NAK_BO_IVL at the same time as information is being gathered for the calculation of a future value of NAK_BO_IVL.
当使用轮询来估计接收者人数以计算NAK_BO_IVL时,必须将OPT_NAK_BO_IVL(见下文16.4.1)附加到SPM,可以附加到NCF和轮询,并且在所有情况下,必须将NAK_BO_IVL_SQN设置为最近一轮完整轮询的POLL_SQN,并且必须具有该轮相应的NAK_BAK_IVL派生值。这样,OPT_NAK_BO_IVL在为计算NAK_BO_IVL的未来值而收集信息的同时,为NAK_BO_IVL提供当前值。
PGM receivers and network elements MUST compute a 32-bit random node identifier (RAND_NODE_ID) at startup time. When a PGM child (receiver or network element) receives a POLL it MUST use its RAND_NODE_ID to match POLL_RAND of incoming POLLs. The match is limited to the bits specified by POLL_MASK. If the incoming POLL contain a POLL_MASK made of all zeroes, the match is successful despite the content of POLL_RAND (deterministic reply). If the match fails, then the receiver or network element MUST discard the POLL without any further action, otherwise it MUST check the fields POLL_ROUND, POLL_S_TYPE and any PGM option included in the POLL to determine whether it SHOULD reply to the poll.
PGM接收器和网络元件必须在启动时计算32位随机节点标识符(RAND_node_ID)。当PGM子级(接收器或网元)接收到轮询时,它必须使用其随机节点ID匹配传入轮询的随机数。匹配仅限于POLL_MASK指定的位。如果传入的轮询包含一个由全零组成的轮询掩码,则匹配成功,而不考虑轮询RAND(确定性回复)的内容。如果匹配失败,则接收方或网元必须放弃轮询而不采取任何进一步的行动,否则必须检查轮询中包含的字段POLL_ROUND、POLL_S_TYPE和任何PGM选项,以确定是否应回复轮询。
If POLL_ROUND is non-zero and the PGM receiver has not received a previous poll with the same POLL_SQN and a zero POLL_ROUND, it MUST discard the poll without further action.
如果POLL_ROUND为非零,且PGM接收方未收到具有相同POLL_SQN和零POLL_ROUND的上一次轮询,则必须放弃该轮询,而无需进一步操作。
If POLL_S_TYPE is equal to PGM_POLL_GENERAL, the PGM child MUST schedule a reply to the POLL despite the presence of PGM options on the POLL packet.
如果POLL_S_TYPE等于PGM_POLL_GENERAL,则尽管轮询数据包上存在PGM选项,PGM子级必须安排对轮询的回复。
If POLL_S_TYPE is different from PGM_POLL_GENERAL, the decision on whether a reply should be scheduled depends on the actual type and on the options possibly present in the POLL.
如果POLL_S_类型不同于PGM_POLL_GENERAL,则是否安排回复取决于实际类型和投票中可能存在的选项。
If POLL_S_TYPE is unknown to the recipient of the POLL, it MUST NOT reply and ignore the poll. Currently the only POLL_S_TYPE defined are PGM_POLL_GENERAL and PGM_POLL_DLR.
如果投票的收件人不知道投票类型,则不得回复并忽略投票。目前唯一定义的轮询类型是PGM_POLL_GENERAL和PGM_POLL_DLR。
If a PGM receiver or network element has decided to reply to a POLL, it MUST schedule the transmission of a single POLR at a random time in the future. The random delay is chosen in the interval [0, POLL_BO_IVL]. POLL_BO_IVL is the one contained in the POLL received. When this timer expires, it MUST send a POLR using POLL_PATH of the received POLL as destination address. POLR_SQN MUST be equal to POLL_SQN and POLR_ROUND must be equal to POLL_ROUND. The POLR MAY contain PGM options according to the semantic of POLL_S_TYPE or the semantic of PGM options possibly present in the POLL. If POLL_S_TYPE is PGM_POLL_GENERAL no option is REQUIRED.
如果PGM接收器或网元已决定回复轮询,则必须在将来的随机时间安排单个POLR的传输。在间隔[0,POLL_BO_IVL]中选择随机延迟。POLL_BO_IVL是收到的民意测验中包含的一项。当此计时器过期时,它必须使用所接收轮询的轮询路径作为目标地址发送POLR。POLR_SQN必须等于POLL_SQN,POLR_ROUND必须等于POLL_ROUND。根据轮询类型的语义或轮询中可能存在的PGM选项的语义,POLR可能包含PGM选项。如果POLL_S_类型为PGM_POLL_GENERAL,则不需要任何选项。
A PGM receiver or network element MUST cancel any pending transmission of POLRs if a new POLL is received with POLL_SQN different from POLR_SQN of the poll that scheduled POLRs.
如果接收到的新轮询的POLL_SQN与调度的POLR的POLL_SQN不同,则PGM接收器或网元必须取消任何未决的POLR传输。
The POLL_S_TYPE values currently defined are:
当前定义的轮询类型值为:
PGM_POLL_GENERAL 0
PGM_POLL_GENERAL 0
PGM_POLL_DLR 1
PGM_POLL_DLR 1
The packet formats described in this section are transport-layer headers that MUST immediately follow the network-layer header in the packet.
本节中描述的数据包格式是传输层报头,必须紧跟数据包中的网络层报头。
The descriptions of Data-Source Port, Data-Destination Port, Options, Checksum, Global Source ID (GSI), and TSDU Length are those provided in Section 8.
数据源端口、数据目标端口、选项、校验和、全局源ID(GSI)和TSDU长度的说明见第8节。
POLL are sent by PGM parents (sources or network elements) to initiate a poll among their first PGM-hop children.
轮询由PGM家长(源或网络元素)发送,以在其第一个PGM hop子代中发起轮询。
POLLs are sent to the ODATA multicast group. The network-header source address of a POLL is the ODATA source's NLA. POLL MUST be transmitted with the IP Router Alert Option.
轮询将发送到ODATA多播组。轮询的网络头源地址是ODATA源的NLA。轮询必须通过IP路由器警报选项传输。
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Options | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Global Source ID ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... Global Source ID | TSDU Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | POLL's Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | POLL's Round | POLL's Sub-type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NLA AFI | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Path NLA ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+ | POLL's Back-off Interval | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Random String | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Matching Bit-Mask | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Extensions when present ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ... -+-+-+-+-+-+-+-+-+-+-+-+-+-+
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Options | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Global Source ID ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... Global Source ID | TSDU Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | POLL's Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | POLL's Round | POLL's Sub-type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NLA AFI | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Path NLA ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-...-+-+ | POLL's Back-off Interval | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Random String | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Matching Bit-Mask | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Extensions when present ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ... -+-+-+-+-+-+-+-+-+-+-+-+-+-+
Source Port:
源端口:
POLL_SPORT
波尔图运动
Data-Source Port, together with POLL_GSI forms POLL_TSI
数据源端口,连同POLL_GSI表单POLL_TSI
Destination Port:
目的港:
POLL_DPORT
投票站
Data-Destination Port
数据目的端口
Type:
类型:
POLL_TYPE = 0x01
POLL_TYPE = 0x01
Global Source ID:
全局源ID:
POLL_GSI
投票站
Together with POLL_SPORT forms POLL_TSI
连同POLL_SPORT forms POLL_TSI
POLL's Sequence Number
投票序号
POLL_SQN
投票站
The sequence number assigned to the POLL by the originator.
发起者分配给轮询的序列号。
POLL's Round
投票回合
POLL_ROUND
投票
The round number within the poll sequence number.
轮询序列号中的整数。
POLL's Sub-type
POLL的子类型
POLL_S_TYPE
投票类型
The sub-type of the poll request.
轮询请求的子类型。
Path NLA:
路径NLA:
POLL_PATH
轮询路径
The NLA of the interface on the source or network element on which this POLL was forwarded.
转发此轮询的源或网元上接口的NLA。
POLL's Back-off Interval
民意测验退避间隔
POLL_BO_IVL
民意测验
The back-off interval used to compute a random back-off for the reply, expressed in microseconds.
用于计算回复的随机回退的回退间隔,以微秒为单位。
Random String
随机字符串
POLL_RAND
波卢兰德
A random string used to implement the random condition in replying.
用于在应答时实现随机条件的随机字符串。
Matching Bit-Mask
匹配位掩码
POLL_MASK
波尔图面具
A bit-mask used to determine the probability of random replies.
用于确定随机应答概率的位掩码。
POLR are sent by PGM children (receivers or network elements) to reply to a POLL.
POLR由PGM子级(接收器或网络元件)发送,以回复轮询。
The network-header source address of a POLR is the unicast NLA of the entity that originates the POLR. The network-header destination address of a POLR is initialized by the originator of the POLL to the unicast NLA of the upstream PGM element (source or network element) known from the POLL that triggered the POLR.
POLR的网络头源地址是发起POLR的实体的单播NLA。POLR的网络报头目的地地址由轮询的发起人初始化为从触发POLR的轮询中已知的上游PGM元素(源或网元)的单播NLA。
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Options | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Global Source ID ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... Global Source ID | TSDU Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | POLR's Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | POLR's Round | reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Extensions when present ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ... -+-+-+-+-+-+-+-+-+-+-+-+-+-+
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Source Port | Destination Port | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Options | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Global Source ID ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | ... Global Source ID | TSDU Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | POLR's Sequence Number | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | POLR's Round | reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Option Extensions when present ... | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+- ... -+-+-+-+-+-+-+-+-+-+-+-+-+-+
Source Port:
源端口:
POLR_SPORT
波尔图运动
Data-Destination Port
数据目的端口
Destination Port:
目的港:
POLR_DPORT
波尔图港
Data-Source Port, together with Global Source ID forms POLR_TSI
数据源端口与全局源ID一起构成POLR_TSI
Type:
类型:
POLR_TYPE = 0x02
POLR_TYPE = 0x02
Global Source ID:
全局源ID:
POLR_GSI
波尔鲁格西
Together with POLR_DPORT forms POLR_TSI
与波尔图港一起形成波尔图港
POLR's Sequence Number
波尔序列号
POLR_SQN
波尔图广场
The sequence number (POLL_SQN) of the POLL packet for which this is a reply.
作为回复的轮询数据包的序列号(POLL_SQN)。
POLR's Round
波尔圆
POLR_ROUND
波尔图回合
The round number (POLL_ROUND) of the POLL packet for which this is a reply.
作为答复的轮询数据包的轮数(POLL_round)。
These procedures are intended to prevent NAK implosion and to limit its extent in case of the loss of all or part of the suppressing multicast distribution tree. They also provide a means to adaptively tune the NAK back-off interval, NAK_BO_IVL.
这些程序旨在防止NAK内爆,并在多播分发树全部或部分丢失的情况下限制其范围。它们还提供了一种自适应调整NAK后退间隔NAK_BO_IVL的方法。
The PGM virtual topology is established and refreshed by SPMs. Between one SPM and the next, PGM nodes may have an out-of-date view of the PGM topology due to multicast routing changes, flapping, or a link/router failure. If any of the above happens relative to a PGM parent node, a potential NAK implosion problem arises because the parent node is unable to suppress the generation of duplicate NAKs as it cannot reach its children using NCFs. The procedures described below introduce an alternative way of performing suppression in this case. They also attempt to prevent implosion by adaptively tuning NAK_BO_IVL.
PGM虚拟拓扑由SPMs建立和刷新。在一个SPM和下一个SPM之间,由于多播路由更改、抖动或链路/路由器故障,PGM节点可能具有过时的PGM拓扑视图。如果上述任何一种情况发生在PGM父节点上,则可能会出现NAK内爆问题,因为父节点无法抑制重复NAK的生成,因为它无法使用NCF到达其子节点。下面描述的步骤介绍了在这种情况下执行抑制的替代方法。他们还试图通过自适应调整NAK_BO_IVL来防止内爆。
Sources and network elements continuously monitor the number of duplicated NAKs received and use this observation to tune the NAK back-off interval (NAK_BO_IVL) for the first PGM-hop receivers connected to them. Receivers learn the current value of NAK_BO_IVL through OPT_NAK_BO_IVL appended to NCFs or SPMs.
信源和网络元件持续监控接收到的重复NAK的数量,并使用该观察来调整连接到它们的第一个PGM跃点接收机的NAK后退间隔(NAK_BO_IVL)。接收者通过附加到NCF或SPM的OPT_NAK_BO_IVL学习NAK_BO_IVL的当前值。
For each TSI, sources and network elements advertise the value of NAK_BO_IVL that their first PGM-hop receivers should use. They advertise a separate value on all the outgoing interfaces for the TSI and keep track of the last values advertised.
对于每个TSI,源和网络元件宣传其第一个PGM跃点接收机应使用的NAK_BO_IVL的值。它们在TSI的所有传出接口上公布一个单独的值,并跟踪最后公布的值。
For each interface and TSI, sources and network elements count the number of NAKs received for a specific repair state (i.e., per sequence number per TSI) from the time the interface was first added to the repair state list until the time the repair state is discarded. Then they use this number to tune the current value of NAK_BO_IVL as follows:
对于每个接口和TSI,源和网元统计从接口首次添加到修复状态列表到修复状态被丢弃为止,针对特定修复状态接收的NAK数量(即,每个TSI的每个序列号)。然后,他们使用该数字调整NAK_BO_IVL的当前值,如下所示:
Increase the current value NAK_BO_IVL when the first duplicate NAK is received for a given SQN on a particular interface.
当在特定接口上接收到给定SQN的第一个重复NAK时,增加当前值NAK_BO_IVL。
Decrease the value of NAK_BO_IVL if no duplicate NAKs are received on a particular interface for the last NAK_PROBE_NUM measurements where each measurement corresponds to the creation of a new repair state.
如果在最后一次NAK_PROBE_NUM测量的特定接口上未接收到重复的NAK,则减小NAK_BO_IVL的值,其中每个测量对应于新修复状态的创建。
An upper and lower limit are defined for the possible value of NAK_BO_IVL at any time. These are NAK_BO_IVL_MAX and NAK_BO_IVL_MIN respectively. The initial value that should be used as a starting point to tune NAK_BO_IVL is NAK_BO_IVL_DEFAULT. The policies RECOMMENDED for increasing and decreasing NAK_BO_IVL are multiplying by two and dividing by two respectively.
为NAK_BO_IVL在任何时候的可能值定义了上限和下限。它们分别是NAK_BO_IVL_MAX和NAK_BO_IVL_MIN。应该用作调整NAK_BO_IVL的起点的初始值是NAK_BO_IVL_默认值。建议增加和减少NAK_BO_IVL的政策分别为乘以2和除以2。
Sources and network elements advertise the current value of NAK_BO_IVL through the OPT_NAK_BO_IVL that they append to NCFs. They MAY also append OPT_NAK_BO_IVL to outgoing SPMs.
来源和网络元素通过附加到NCF的OPT_NAK_BO_IVL宣传NAK_BO_IVL的当前价值。他们还可以将OPT_NAK_BO_IVL附加到传出的SPM。
In order to avoid forwarding the NAK_BO_IVL advertised by the parent, network elements must be able to recognize OPT_NAK_BO_IVL. Network elements that receive SPMs containing OPT_NAK_BO_IVL MUST either remove the option or over-write its content (NAK_BO_IVL) with the current value of NAK_BO_IVL for the outgoing interface(s), before forwarding the SPMs.
为了避免转发由父代播发的NAK_BO_IVL,网络元件必须能够识别OPT_NAK_BO_IVL。在转发SPM之前,接收包含OPT_NAK_BO_IVL的SPM的网元必须删除该选项或使用传出接口的当前值NAK_BO_IVL重写其内容(NAK_BO_IVL)。
Sources MAY advertise the value of NAK_BO_IVL_MAX and NAK_BO_IVL_MIN to the session by appending a OPT_NAK_BO_RNG to SPMs.
消息源可以通过向SPM添加OPT_NAK_BO_BO_RNG来向会话宣传NAK_BO_IVL_MAX和NAK_BO_IVL_MIN的值。
Receivers learn the value of NAK_BO_IVL to use through the option OPT_NAK_BO_IVL, when this is present in NCFs or SPMs. A value for NAK_BO_IVL learned from OPT_NAK_BO_IVL MUST NOT be used by a receiver unless either NAK_BO_IVL_SQN is zero, or the receiver has seen POLL_RND == 0 for POLL_SQN =< NAK_BO_IVL_SQN within half the sequence number space. The initial value of NAK_BO_IVL is set to NAK_BO_IVL_DEFAULT.
当NCF或SPM中存在NAK_BO_IVL选项时,接收者通过选项OPT_NAK_BO_IVL学习要使用的NAK_BO_IVL值。接收机不得使用从OPT_NAK_BO_IVL学习的NAK_BO_IVL值,除非NAK_BO_IVL_SQN为零,或者接收机在序列号空间的一半内看到POLL_RND==0,POLL_SQN=<NAK_BO_IVL_SQN。NAK_BO_IVL的初始值设置为NAK_BO_IVL_默认值。
Receivers that receive an SPM containing OPT_NAK_BO_RNG MUST use its content to set the local values of NAK_BO_IVL_MAX and NAK_BO_IVL_MIN.
接收包含OPT_NAK_BO_RNG的SPM的接收器必须使用其内容设置NAK_BO_IVL_MAX和NAK_BO_IVL_MIN的本地值。
Monitoring the number of duplicate NAKs provides a means to track indirectly the change in the size of first PGM-hop receiver population and adjust NAK_BO_IVL accordingly. Note that the number of duplicate NAKs for a given SQN is related to the number of first PGM-hop children that scheduled (or forwarded) a NAK and not to the absolute number of first PGM-hop children. This mechanism, however, does not work in the absence of packet loss, hence a large number of duplicate NAKs is possible after a period without NAKs, if many new receivers have joined the session in the meanwhile. To address this issue, PGM Sources and network elements SHOULD periodically poll the number of first PGM-hop children using the "general poll" procedures described in Appendix D. If the result of the polls shows that the population size has increased significantly during a period without NAKs, they SHOULD increase NAK_BO_IVL as a safety measure.
监控重复NAK的数量提供了一种间接跟踪第一个PGM跃点接收器总体大小变化并相应调整NAK_BO_IVL的方法。注意,给定SQN的重复NAK的数量与调度(或转发)NAK的第一个PGM跃点子节点的数量有关,而与第一个PGM跃点子节点的绝对数量无关。然而,该机制在没有分组丢失的情况下不工作,因此,如果同时有许多新的接收器加入会话,则在没有nak的时段之后,可能会出现大量重复的nak。为了解决这个问题,PGM来源和网络元件应使用附录D中所述的“一般调查”程序定期调查第一个PGM hop儿童的数量。如果调查结果表明,在没有NAK的时期内,人口数量显著增加,他们应增加NAK_BO_IVL,作为一项安全措施。
In some cases PGM (parent) network elements can promptly detect the loss of all or part of the suppressing multicast distribution tree (due to network failures or route changes) by checking their multicast connectivity, when they receive NAKs. In some other cases this is not possible as the connectivity problem might occur at some other non-PGM node downstream or might take time to reflect in the multicast routing table. To address these latter cases, PGM uses a simple heuristic: a failure is assumed for a TSI when the count of duplicated NAKs received for a repair state reaches the value DUP_NAK_MAX in one of the interfaces.
在某些情况下,当PGM(父)网络元件接收到nak时,通过检查其多播连接,PGM(父)网络元件可以迅速检测到全部或部分抑制多播分布树的丢失(由于网络故障或路由更改)。在其他一些情况下,这是不可能的,因为连接问题可能发生在下游的其他一些非PGM节点上,或者可能需要时间在多播路由表中反映出来。为了解决后一种情况,PGM使用了一种简单的启发式方法:当为修复状态接收的重复NAK数达到其中一个接口中的值DUP_NAK_MAX时,假定TSI出现故障。
When a PGM source or network element detects or assumes a failure for which it looses multicast connectivity to down-stream PGM agents (either receivers or other network elements), it sends unicast NCFs to them in response to NAKs. Downstream PGM network elements which receive unicast NCFs and have multicast connectivity to the multicast session send special SPMs to prevent further NAKs until a regular SPM sent by the source refreshes the PGM tree.
当PGM源或网元检测到或假设故障导致其与下游PGM代理(接收器或其他网元)失去多播连接时,它向它们发送单播NCF以响应NAK。接收单播NCF并与多播会话具有多播连接的下游PGM网元发送特殊SPM,以防止进一步的NAK,直到源发送的常规SPM刷新PGM树。
Procedures - Sources and Network Elements
程序-来源和网络元素
PGM sources or network elements which detect or assume a failure that prevents them from reaching down-stream PGM agents through multicast NCFs revert to confirming NAKs through unicast NCFs for a given TSI on a given interface. If the PGM agent is the source itself, than it MUST generate an SPM for the TSI, in addition to sending the unicast NCF.
如果PGM源或网络元件检测到或假设出现故障,从而阻止它们通过多播NCF到达下游PGM代理,则会恢复为通过单播NCF确认给定接口上给定TSI的NAK。如果PGM代理是源本身,那么除了发送单播NCF外,它还必须为TSI生成SPM。
Network elements MUST keep using unicast NCFs until they receive a regular SPM from the source.
网元必须继续使用单播NCF,直到从源接收到常规SPM。
When a unicast NCF is sent for the reasons described above, it MUST contain the OPT_NBR_UNREACH option and the OPT_PATH_NLA option. OPT_NBR_UNREACH indicates that the sender is unable to use multicast to reach downstream PGM agents. OPT_PATH_NLA carries the network layer address of the NCF sender, namely the NLA of the interface leading to the unreachable subtree.
由于上述原因发送单播NCF时,它必须包含OPT_NBR_UNREACH选项和OPT_PATH_NLA选项。OPT_NBR_UNREACH表示发送方无法使用多播到达下游PGM代理。OPT_PATH_NLA携带NCF发送方的网络层地址,即指向不可访问子树的接口的NLA。
When a PGM network element receives an NCF containing the OPT_NBR_UNREACH option, it MUST ignore it if OPT_PATH_NLA specifies an upstream neighbour different from the one currently known to be the upstream neighbor for the TSI. Assuming the network element matches the OPT_PATH_NLA of the upstream neighbour address, it MUST stop forwarding NAKs for the TSI until it receives a regular SPM for the TSI. In addition, it MUST also generate a special SPM to prevent downstream receivers from sending more NAKs. This special SPM MUST contain the OPT_NBR_UNREACH option and SHOULD have a SPM_SQN equal to SPM_SQN of the last regular SPM forwarded. The OPT_NBR_UNREACH option invalidates the windowing information in SPMs (SPM_TRAIL and SPM_LEAD). The PGM network element that adds the OPT_NBR_UNREACH option SHOULD invalidate the windowing information by setting SPM_TRAIL to 0 and SPM_LEAD to 0x80000000.
当PGM网元接收到包含OPT_NBR_unrach选项的NCF时,如果OPT_PATH_NLA指定的上游邻居与当前已知的TSI上游邻居不同,则必须忽略该NCF。假设网元与上游邻居地址的OPT_PATH_NLA匹配,它必须停止转发TSI的NAK,直到它收到TSI的常规SPM。此外,它还必须生成一个特殊的SPM,以防止下游接收器发送更多的NAK。此特殊SPM必须包含OPT_NBR_UNREACH选项,且SPM_SQN应等于转发的最后一个常规SPM的SPM_SQN。OPT_NBR_unrach选项使SPMs(SPM_TRAIL和SPM_LEAD)中的窗口信息无效。添加OPT_NBR_UNREACH选项的PGM网元应通过将SPM_TRAIL设置为0和SPM_LEAD设置为0x8000000使窗口信息无效。
PGM network elements which receive an SPM containing the OPT_NBR_UNREACH option and whose SPM_PATH matches the currently known PGM parent, MUST forward them in the normal way and MUST stop
接收包含OPT_NBR_UNREACH选项的SPM且其SPM_路径与当前已知的PGM父级匹配的PGM网元必须以正常方式转发它们,并且必须停止
forwarding NAKs for the TSI until they receive a regular SPM for the TSI. If the SPM_PATH does not match the currently known PGM parent, the SPM containing the OPT_NBR_UNREACH option MUST be ignored.
转发TSI的NAK,直到它们收到TSI的常规SPM。如果SPM_路径与当前已知的PGM父级不匹配,则必须忽略包含OPT_NBR_UNREACH选项的SPM。
Procedures - Receivers
程序-接收者
PGM receivers which receive either an NCF or an SPM containing the OPT_NBR_UNREACH option MUST stop sending NAKs until a regular SPM is received for the TSI.
接收NCF或包含OPT_NBR_unrach选项的SPM的PGM接收器必须停止发送NAK,直到收到TSI的常规SPM。
On reception of a unicast NCF containing the OPT_NBR_UNREACH option receivers MUST generate a multicast copy of the packet with TTL set to one on the RPF interface for the data source. This will prevent other receivers in the same subnet from generating NAKs.
在接收到包含OPT_NBR_UNREACH选项的单播NCF时,接收器必须生成数据源RPF接口上TTL设置为1的数据包的多播副本。这将防止同一子网中的其他接收器生成NAK。
Receivers MUST ignore windowing information in SPMs which contain the OPT_NBR_UNREACH option.
接收器必须忽略SPM中包含OPT_NBR_unrach选项的窗口信息。
Receivers MUST ignore NCFs containing the OPT_NBR_UNREACH option if the OPT_PATH_NLA specifies a neighbour different than the one currently know to be the PGM parent neighbour. Similarly receivers MUST ignore SPMs containing the OPT_NBR_UNREACH option if SPM_PATH does not match the current PGM parent.
如果OPT_PATH_NLA指定的邻居与当前已知的PGM父邻居不同,则接收器必须忽略包含OPT_NBR_UNREACH选项的NCF。同样,如果SPM_路径与当前PGM父级不匹配,则接收器必须忽略包含OPT_NBR_UNRACH选项的SPM。
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NAK Back-Off Interval | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NAK Back-Off Interval SQN | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NAK Back-Off Interval | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | NAK Back-Off Interval SQN | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Option Type = 0x04
选项类型=0x04
NAK Back-Off Interval
NAK后退间隔
The value of NAK-generation Back-Off Interval in microseconds.
NAK生成后退间隔的值(以微秒为单位)。
NAK Back-Off Interval Sequence Number
NAK回退间隔序列号
The POLL_SQN to which this value of NAK_BO_IVL corresponds. Zero is reserved and means NAK_BO_IVL is NOT being determined through polling (see Appendix D) and may be used immediately. Otherwise, NAK_BO_IVL MUST NOT be used unless the receiver has also seen POLL_ROUND = 0 for POLL_SQN =< NAK_BO_IVL_SQN within half the sequence number space.
NAK_BO_IVL值对应的POLL_SQN。零是保留的,意味着NAK_BO_IVL不是通过轮询确定的(见附录D),可以立即使用。否则,不得使用NAK_BO_IVL,除非接收方也看到POLL_SQN=<NAK_BO_IVL_SQN在一半序列号空间内的POLL_ROUND=0。
OPT_NAK_BO_IVL MAY be appended to NCFs, SPMs, or POLLs.
OPT_NAK_BO_IVL可以附加到NCF、SPM或投票中。
OPT_NAK_BO_IVL is network-significant.
OPT_NAK_BO_IVL具有网络重要性。
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Maximum NAK Back-Off Interval | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Minimum NAK Back-Off Interval | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Maximum NAK Back-Off Interval | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Minimum NAK Back-Off Interval | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Option Type = 0x05
选项类型=0x05
Maximum NAK Back-Off Interval
最大NAK回退间隔
The maximum value of NAK-generation Back-Off Interval in microseconds.
NAK生成后退间隔的最大值(以微秒为单位)。
Minimum NAK Back-Off Interval
最小NAK退避间隔
The minimum value of NAK-generation Back-Off Interval in microseconds.
NAK生成回退间隔的最小值(以微秒为单位)。
OPT_NAK_BO_RNG MAY be appended to SPMs.
可将OPT_NAK_BO_RNG附加至SPM。
OPT_NAK_BO_RNG is network-significant.
OPT_NAK_BO_RNG具有网络重要性。
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Option Type = 0x0B
选项类型=0x0B
When present in SPMs, it invalidates the windowing information.
当存在于SPMs中时,将使窗口信息无效。
OPT_NBR_UNREACH MAY be appended to SPMs and NCFs.
可将OPT_NBR_Unrach附加到SPM和NCF中。
OPT_NBR_UNREACH is network-significant.
OPT_NBR_Unrach具有网络重要性。
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Path NLA | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |E| Option Type | Option Length |Reserved |F|OPX|U| | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Path NLA | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Option Type = 0x0C
选项类型=0x0C
Path NLA
路径NLA
The NLA of the interface on the originating PGM network element that it uses to send multicast SPMs to the recipient of the packet containing this option.
发起PGM网元上接口的NLA,用于向包含此选项的数据包的收件人发送多播SPM。
OPT_PATH_NLA MAY be appended to NCFs.
可选路径可以附加到NCF。
OPT_PATH_NLA is network-significant.
OPT_PATH_NLA具有网络重要性。
Nota Bene: The concept of and all references to the increment window (TXW_INC) and the window increment (TXW_ADV_SECS) throughout this document are for illustrative purposes only. They provide the shorthand with which to describe the concept of advancing the transmit window without also implying any particular implementation or policy of advancement.
注:本文件中增量窗口(TXW_INC)和增量窗口(TXW_ADV_SECS)的概念和所有参考仅用于说明目的。它们提供了一种简写方式,用于描述推进传输窗口的概念,而不意味着任何特定的推进实施或政策。
The size of the transmit window in seconds is simply TXW_SECS. The size of the transmit window in bytes (TXW_BYTES) is (TXW_MAX_RTE * TXW_SECS). The size of the transmit window in sequence numbers (TXW_SQNS) is (TXW_BYTES / bytes-per-packet).
传输窗口的大小(以秒为单位)仅为TXW_SECS。传输窗口的字节大小(TXW_字节)为(TXW_MAX_RTE*TXW_SECS)。序列号(TXW_SQNS)中传输窗口的大小为(TXW_字节/每个数据包的字节)。
The fraction of the transmit window size (in seconds of data) by which the transmit window is advanced (TXW_ADV_SECS) is called the window increment. The trailing (oldest) such fraction of the transmit window itself is called the increment window.
传输窗口大小(以秒为单位)中传输窗口提前的部分(TXW_ADV_SECS)称为窗口增量。传输窗口本身的后续(最旧)部分称为增量窗口。
In terms of sequence numbers, the increment window is the range of sequence numbers that will be the first to be expired from the transmit window. The trailing (or left) edge of the increment window is just TXW_TRAIL, the trailing (or left) edge of the transmit window. The leading (or right) edge of the increment window (TXW_INC) is defined as one less than the sequence number of the first data packet transmitted by the source TXW_ADV_SECS after transmitting TXW_TRAIL.
就序列号而言,增量窗口是从传输窗口第一个过期的序列号范围。增量窗口的后缘(或左缘)就是TXW_TRAIL,传输窗口的后缘(或左缘)。增量窗口(TXW_INC)的前边缘(或右边缘)被定义为比源TXW_ADV_SECS在发送TXW_TRAIL后发送的第一个数据包的序列号小一个。
A data packet is described as being "in" the transmit or increment window, respectively, if its sequence number is in the range defined by the transmit or increment window, respectively.
如果数据包的序列号分别在发送或增量窗口定义的范围内,则数据包被描述为“在”发送或增量窗口中。
The transmit window is advanced across the increment window by the source when it increments TXW_TRAIL to TXW_INC. When the transmit window is advanced across the increment window, the increment window is emptied (i.e., TXW_TRAIL is momentarily equal to TXW_INC), begins to refill immediately as transmission proceeds, is full again TXW_ADV_SECS later (i.e., TXW_TRAIL is separated from TXW_INC by TXW_ADV_SECS of data), at which point the transmit window is advanced again, and so on.
当源将TXW_TRAIL增加到TXW_INC.时,传输窗口通过增量窗口前进。当传输窗口通过增量窗口前进时,增量窗口被清空(即,TXW_TRAIL瞬时等于TXW_INC),随着传输的进行,立即开始重新填充,在TXW_ADV_SECS之后再次满(即,TXW_TRAIL通过TXW_ADV_SECS的数据与TXW_INC分离),此时传输窗口再次提前,依此类推。
In anticipation of advancing the transmit window, the source starts a timer TXW_ADV_IVL_TMR which runs for time period TXW_ADV_IVL. TXW_ADV_IVL has a value in the range (0, TXW_ADV_SECS). The value MAY be configurable or MAY be determined statically by the strategy used for advancing the transmit window.
在提前发送窗口的预期中,源启动定时器TXW_ADV_IVL_TMR,该定时器在时间段TXW_ADV_IVL内运行。TXW_ADV_IVL的值在范围内(0,TXW_ADV_SECS)。该值可以是可配置的,或者可以由用于推进传输窗口的策略静态地确定。
When TXW_ADV_IVL_TMR is running, a source MAY reset TXW_ADV_IVL_TMR if NAKs are received for packets in the increment window. In addition, a source MAY transmit RDATA in the increment window with priority over other data within the transmit window.
当TXW_ADV_IVL_TMR运行时,如果在增量窗口中接收到数据包的NAK,则源可以重置TXW_ADV_IVL_TMR。此外,源可以在增量窗口中传输RDATA,其优先级高于传输窗口中的其他数据。
When TXW_ADV_IVL_TMR expires, a source SHOULD advance the trailing edge of the transmit window from TXW_TRAIL to TXW_INC.
当TXW_ADV_IVL_TMR过期时,震源应将传输窗口的后缘从TXW_TRAIL提前至TXW_INC。
Once the transmit window is advanced across the increment window, SPM_TRAIL, OD_TRAIL and RD_TRAIL are set to the new value of TXW_TRAIL in all subsequent transmitted packets, until the next window advancement.
一旦传输窗口在增量窗口中前进,SPM_TRAIL、OD_TRAIL和RD_TRAIL将在所有后续传输的数据包中设置为TXW_TRAIL的新值,直到下一个窗口前进。
PGM does not constrain the strategies that a source may use for advancing the transmit window. The source MAY implement any scheme or number of schemes. Three suggested strategies are outlined here.
PGM不限制源用于推进传输窗口的策略。来源可实施任何方案或多个方案。这里概述了三种建议的策略。
Consider the following example:
考虑下面的例子:
Assuming a constant transmit rate of 128kbps and a constant data packet size of 1500 bytes, if a source maintains the past 30 seconds of data for repair and increments its transmit window in 5 second increments, then
假设恒定传输速率为128kbps,恒定数据包大小为1500字节,如果源保持过去30秒的数据进行修复,并以5秒的增量增加其传输窗口,则
TXW_MAX_RTE = 16kBps TXW_ADV_SECS = 5 seconds, TXW_SECS = 35 seconds, TXW_BYTES = 560kB, TXW_SQNS = 383 (rounded up),
TXW_MAX_RTE=16kBps TXW_ADV_SECS=5秒,TXW_SECS=35秒,TXW_字节=560kB,TXW_SQNS=383(四舍五入),
and the size of the increment window in sequence numbers (TXW_MAX_RTE * TXW_ADV_SECS / 1500) = 54 (rounded down).
以及序列号中增量窗口的大小(TXW_MAX_RTE*TXW_ADV_SECS/1500)=54(向下舍入)。
Continuing this example, the following is a diagram of the transmit window and the increment window therein in terms of sequence numbers.
继续该示例,下面是根据序列号的发送窗口和其中的增量窗口的示意图。
TXW_TRAIL TXW_LEAD | | | | |--|--------------- Transmit Window -------------|----| v | | v v v n-1 | n | n+1 | ... | n+53 | n+54 | ... | n+381 | n+382 | n+383 ^ ^ | ^ |--- Increment Window|---| | | TXW_INC
TXW_TRAIL TXW_LEAD | | | | |--|--------------- Transmit Window -------------|----| v | | v v v n-1 | n | n+1 | ... | n+53 | n+54 | ... | n+381 | n+382 | n+383 ^ ^ | ^ |--- Increment Window|---| | | TXW_INC
So the values of the sequence numbers defining these windows are:
因此,定义这些窗口的序列号的值为:
TXW_TRAIL = n TXW_INC = n+53 TXW_LEAD = n+382
TXW_TRAIL = n TXW_INC = n+53 TXW_LEAD = n+382
Nota Bene: In this example the window sizes in terms of sequence numbers can be determined only because of the assumption of a constant data packet size of 1500 bytes. When the data packet sizes are variable, more or fewer sequence numbers MAY be consumed transmitting the same amount (TXW_BYTES) of data.
注:在本例中,只能根据1500字节的恒定数据包大小来确定序列号的窗口大小。当数据分组大小可变时,可以使用更多或更少的序列号来传输相同数量(TXW_字节)的数据。
So, for a given transport session identified by a TSI, a source maintains:
因此,对于TSI标识的给定传输会话,源维护:
TXW_MAX_RTE a maximum transmit rate in kBytes per second, the cumulative transmit rate of some combination of SPMs, ODATA, and RDATA depending on the transmit window advancement strategy
TXW_MAX_RTE以每秒千字节为单位的最大传输速率,是SPM、ODATA和RDATA的某些组合的累积传输速率,具体取决于传输窗口推进策略
TXW_TRAIL the sequence number defining the trailing edge of the transmit window, the sequence number of the oldest data packet available for repair
TXW_TRAIL定义传输窗口后缘的序列号,即可用于修复的最旧数据包的序列号
TXW_LEAD the sequence number defining the leading edge of the transmit window, the sequence number of the most recently transmitted ODATA packet
TXW_LEAD定义传输窗口前沿的序列号,即最近传输的ODATA数据包的序列号
TXW_INC the sequence number defining the leading edge of the increment window, the sequence number of the most recently transmitted data packet amongst those that will expire upon the next increment of the transmit window
TXW_INC定义增量窗口前沿的序列号,即最近传输的数据包的序列号,这些数据包将在下一次传输窗口增量时过期
PGM does not constrain the strategies that a source may use for advancing the transmit window. A source MAY implement any scheme or number of schemes. This is possible because a PGM receiver must obey the window provided by the source in its packets. Three strategies are suggested within this document.
PGM不限制源用于推进传输窗口的策略。一个源可以实现任何方案或多个方案。这是可能的,因为PGM接收器必须遵守源在其数据包中提供的窗口。本文件提出了三种策略。
In the first, called "Advance with Time", the transmit window maintains the last TXW_SECS of data in real-time, regardless of whether any data was sent in that real time period or not. The actual number of bytes maintained at any instant in time will vary between 0 and TXW_BYTES, depending on traffic during the last TXW_SECS. In this case, TXW_MAX_RTE is the cumulative transmit rate of SPMs and ODATA.
在第一种称为“随时间推移”的方法中,传输窗口实时维护最后一个TXW_秒的数据,而不管是否有任何数据在该实时周期内发送。任何时刻保持的实际字节数将在0到TXW_字节之间变化,这取决于最后TXW_秒期间的流量。在这种情况下,TXW_MAX_RTE是SPM和ODATA的累积传输速率。
In the second, called "Advance with Data", the transmit window maintains the last TXW_BYTES bytes of data for repair. That is, it maintains the theoretical maximum amount of data that could be transmitted in the time period TXW_SECS, regardless of when they were transmitted. In this case, TXW_MAX_RTE is the cumulative transmit rate of SPMs, ODATA, and RDATA.
在第二个称为“数据推进”的窗口中,传输窗口维护最后的TXW_字节数据以进行修复。也就是说,它保持了在时间段TXW_SECS内可以传输的理论最大数据量,而不管它们是何时传输的。在这种情况下,TXW_MAX_RTE是SPM、ODATA和RDATA的累积传输速率。
The third strategy leaves control of the window in the hands of the application. The API provided by a source implementation for this, could allow the application to control the window in terms of APDUs and to manually step the window. This gives a form of Application Level Framing (ALF). In this case, TXW_MAX_RTE is the cumulative transmit rate of SPMs, ODATA, and RDATA.
第三种策略将窗口的控制权留给应用程序。源实现为此提供的API允许应用程序根据APDU控制窗口,并手动步进窗口。这提供了一种应用程序级框架(ALF)形式。在这种情况下,TXW_MAX_RTE是SPM、ODATA和RDATA的累积传输速率。
In the first strategy, TXW_MAX_RTE is calculated from SPMs and both ODATA and RDATA, and NAKs reset TXW_ADV_IVL_TMR. In this mode of operation the transmit window maintains the last TXW_BYTES bytes of data for repair. That is, it maintains the theoretical maximum amount of data that could be transmitted in the time period TXW_SECS. This means that the following timers are not treated as real-time timers, instead they are "data driven". That is, they expire when the amount of data that could be sent in the time period they define is sent. They are the SPM ambient time interval, TXW_ADV_SECS, TXW_SECS, TXW_ADV_IVL, TXW_ADV_IVL_TMR and the join interval. Note that the SPM heartbeat timers still run in real-time.
在第一种策略中,TXW_MAX_RTE由SPM和ODATA和RDATA计算,NAKs重置TXW_ADV_IVL_TMR。在此操作模式下,“传输”窗口将保留最后的TXW_字节数据以进行修复。也就是说,它保持了在时间段TXW_SECS内可以传输的理论最大数据量。这意味着以下计时器不被视为实时计时器,而是“数据驱动”。也就是说,当在它们定义的时间段内可以发送的数据量被发送时,它们将过期。它们是SPM环境时间间隔、TXW_ADV_SECS、TXW_SECS、TXW_ADV_IVL、TXW_ADV_IVL\TMR和连接间隔。请注意,SPM心跳计时器仍然实时运行。
While TXW_ADV_IVL_TMR is running, a source uses the receipt of a NAK for ODATA within the increment window to reset timer TXW_ADV_IVL_TMR to TXW_ADV_IVL so that transmit window advancement is delayed until no NAKs for data in the increment window are seen for TXW_ADV_IVL seconds. If the transmit window should fill in the meantime, further transmissions would be suspended until the transmit window can be advanced.
当TXW_ADV_IVL_TMR运行时,源使用增量窗口内ODATA的NAK接收来将计时器TXW_ADV_IVL_TMR重置为TXW_ADV_IVL,以便传输窗口前进被延迟,直到在TXW_ADV_IVL秒的增量窗口中没有数据的NAK为止。如果传输窗口在此期间填满,则将暂停进一步的传输,直到传输窗口可以提前。
A source MUST advance the transmit window across the increment window only upon expiry of TXW_ADV_IVL_TMR.
只有在TXW_ADV_IVL_TMR到期时,信源才能通过增量窗口推进传输窗口。
This mode of operation is intended for non-real-time, messaging applications based on the receipt of complete data at the expense of delay.
此操作模式适用于基于接收完整数据的非实时消息传递应用程序,但以延迟为代价。
This strategy advances the transmit window in real-time. In this mode of operation, TXW_MAX_RTE is calculated from SPMs and ODATA only to maintain a constant data throughput rate by consuming extra bandwidth for repairs. TXW_ADV_IVL has the value 0 which advances the transmit window without regard for whether NAKs for data in the increment window are still being received.
该策略实时推进传输窗口。在此操作模式下,TXW_MAX_RTE仅通过SPMs和ODATA计算,以通过消耗额外带宽进行修复来保持恒定的数据吞吐量。TXW_ADV_IVL的值为0,该值使发送窗口前进,而不考虑增量窗口中数据的nak是否仍在接收。
In this mode of operation, all timers are treated as real-time timers.
在这种操作模式下,所有计时器都被视为实时计时器。
This mode of operation is intended for real-time, streaming applications based on the receipt of timely data at the expense of completeness.
这种操作模式适用于以牺牲完整性为代价,基于及时接收数据的实时流式应用程序。
Some applications may wish more explicit control of the transmit window than that provided by the advance with data / time strategies above. An implementation MAY provide this mode of operation and allow an application to explicitly control the window in terms of APDUs.
一些应用可能希望对传输窗口的控制比advance通过上述数据/时间策略提供的更明确。实现可以提供这种操作模式,并允许应用程序根据apdu显式控制窗口。
As stated in the introduction, PGM has been designed with a specific class of applications in mind in recognition of the fact that a general solution for reliable multicast has proven elusive. The applicability of PGM is narrowed further, and perhaps more significantly, by the prototypical nature of at least four of the transport elements the protocol incorporates. These are congestion control, router assist, local retransmission, and a programmatic API for reliable multicast protocols of this class. At the same time as standardization efforts address each of these elements individually, this publication is intended to foster experimentation with these elements in general, and to inform that standardization process with results from practise.
正如引言中所述,PGM的设计考虑到一个事实,即可靠多播的通用解决方案已被证明是难以捉摸的。由于协议包含的至少四个传输元素的原型性质,PGM的适用范围进一步缩小,可能更显著。这些是拥塞控制、路由器辅助、本地重传,以及用于此类可靠多播协议的编程API。在标准化工作单独解决这些要素的同时,本出版物旨在促进对这些要素的试验,并通过实践结果告知标准化过程。
This section briefly describes some of the experimental aspects of PGM and makes non-normative references to some examples of current practise based upon them.
本节简要介绍了PGM的一些实验方面,并在此基础上对当前实践的一些示例进行了非规范性参考。
At least 3 different approaches to congestion control can be explored with PGM: a receiver-feedback based approach, a router-assist based approach, and layer-coding based approach. The first is supported by the negative acknowledgement mechanism in PGM augmented by an application-layer acknowledgement mechanism. The second is supported by the router exception processing mechanism in PGM. The third is supported by the FEC mechanisms in PGM. An example of a receiver-feedback based approach is provided in [16], and a proposal for a router-assist based approach was proposed in [17]. Open issues for the researchers include how do each of these approaches behave in the presence of multiple competing sessions of the same discipline or of different disciplines, TCP most notably; how do each of them behave over a particular range of topologies, and over a particular range of loads; and how do each of them scale as a function of the size of the receiver population.
PGM至少可以探索3种不同的拥塞控制方法:基于接收器反馈的方法、基于路由器辅助的方法和基于层编码的方法。第一种是由PGM中的否定确认机制支持的,该机制由应用层确认机制扩展。第二种是由PGM中的路由器异常处理机制支持的。第三种是由PGM中的FEC机制支持的。[16]中提供了一个基于接收器反馈的方法示例,而[17]中提出了一个基于路由器辅助的方法建议。研究人员面临的开放性问题包括:在同一学科或不同学科的多个相互竞争的会议中,这些方法如何表现,最显著的是TCP;在特定的拓扑范围和负载范围内,它们各自的行为如何;它们是如何随着接收者群体的规模而扩展的呢。
Router assist has applications not just to implosion control and retransmit constraint as described in this specification, but also to congestion control as described above, and more generally to any feature which may be enhanced by access to per-network-element state and processing. The full range of these features is as yet
路由器辅助不仅适用于本规范中所述的内爆控制和重传约束,还适用于如上所述的拥塞控制,更一般地适用于可通过访问每个网络元件状态和处理来增强的任何特征。到目前为止,这些功能的完整范围还不清楚
unexplored, but a general mechanism for providing router assist in a transport-protocol independent way (GRA) is a topic of active research [18]. That effort has been primarily informed by the router assist component of PGM, and implementation and deployment experience with PGM will continue to be fed back into the specification and eventual standardization of GRA. Open questions facing the researchers ([19], [20], [21]) include how router-based state scales relative to the feature benefit obtained, how system-wide factors (such as throughput and retransmit latency) vary relative to the scale and topology of deployed router assistance, and how incremental deployment considerations affect the tractability of router-assist based features. Router assist may have additional implications in the area of congestion control to the extent that it may be applied in multi-group layered coding schemes to increase the granularity and reduce the latency of receiver based congestion control.
未经探索,但以传输协议独立方式(GRA)提供路由器协助的一般机制是一个积极研究的主题[18]。这项工作主要由PGM的路由器辅助组件提供,PGM的实施和部署经验将继续反馈到GRA的规范和最终标准化中。研究人员面临的开放性问题([19]、[20]、[21])包括基于路由器的状态如何相对于获得的功能优势进行扩展,系统范围内的因素(如吞吐量和重传延迟)如何相对于部署的路由器辅助的规模和拓扑结构进行变化,以及增量部署考虑如何影响基于路由器辅助功能的可处理性。路由器辅助在拥塞控制领域可能具有额外的含义,其可应用于多组分层编码方案中,以增加基于接收器的拥塞控制的粒度并减少延迟。
GRA itself explicitly incorporates elements of active networking, and to the extent that the router assist component of PGM is reflected in GRA, experimentation with the narrowly defined network-element functionality of PGM will provide some of the first real world experience with this promising if controversial technology.
GRA本身明确地包含了主动网络的元素,并且在一定程度上PGM的路由器辅助组件反映在GRA中,对PGM的狭义定义的网络元素功能的实验将提供这种有前途的但有争议的技术的一些第一次真实世界体验。
Local retransmission is not a new idea in general in reliable multicast, but the specific approach taken in PGM of locating re-transmitters on the distribution tree for the session, diverting repair requests from network elements to the re-transmitters, and then propagating repairs downward from the repair point on the distribution tree raises interesting questions concerning where to locate re-transmitters in a given topology, and how network elements locate those re-transmitters and evaluate their efficiency relative to other available sources of retransmissions, most notably the source itself. This particular aspect of PGM, while fully specified, has only been implemented on the network element side, and awaits a host-side implementation before questions like these can be addressed.
本地重传在可靠多播中通常不是一个新概念,但在PGM中采用的具体方法是在会话的分发树上定位重传器,将修复请求从网元转移到重传器,然后,从分布树上的修复点向下传播修复引起了有趣的问题,涉及到在给定拓扑中在何处定位重传器,以及网元如何定位这些重传器,并相对于其他可用重传源评估其效率,最明显的是来源本身。PGM的这一特定方面虽然已完全指定,但仅在网元端实现,并等待主机端实现,然后才能解决此类问题。
PGM presents the opportunity to develop a programming API for reliable multicast applications that reflects both those applications' service requirements as well as the services provided by PGM in support of those applications that may usefully be made visible above the transport interface. At least a couple of host-side implementations of PGM and a concomitant API have been developed for research purposes ([22], [23]), and are available as open source explicitly for the kind of experimentation described in this section.
PGM提供了为可靠的多播应用程序开发编程API的机会,该API反映了这些应用程序的服务需求以及PGM为支持这些应用程序而提供的服务,这些应用程序可以在传输接口上方有效地显示出来。至少有两个PGM的主机端实现和一个伴随的API是为研究目的而开发的([22],[23]),并且可以作为开放源代码明确用于本节所述的实验类型。
Perhaps the broadest experiment that PGM can enable in a community of researchers using a reasonable scale experimental transport protocol is simply in the definition, implementation, and deployment of IP
也许PGM能够在使用合理规模的实验传输协议的研究人员社区中实现的最广泛的实验仅仅是IP的定义、实现和部署
multicast applications for which the reliability provided by PGM is a significant enabler. Experience with such applications will not just illuminate the value of reliable multicast, but will also provoke practical examination of and responses to the attendant policy issues (such as peering, billing, access control, firewalls, NATs, etc.), and, if successful, will ultimately encourage more wide spread deployment of IP multicast itself.
PGM提供的可靠性是一个重要的促成因素的多播应用。此类应用程序的经验不仅将阐明可靠多播的价值,还将引发对伴随而来的策略问题(如对等、计费、访问控制、防火墙、NAT等)的实际检查和响应,如果成功,将最终鼓励更广泛地部署IP多播本身。
ACK Acknowledgment AFI Address Family Indicator ALF Application Level Framing APDU Application Protocol Data Unit ARQ Automatic Repeat reQuest DLR Designated Local Repairer GSI Globally Unique Source Identifier FEC Forward Error Correction MD5 Message-Digest Algorithm MTU Maximum Transmission Unit NAK Negative Acknowledgment NCF NAK Confirmation NLA Network Layer Address NNAK Null Negative Acknowledgment ODATA Original Data POLL Poll Request POLR Poll Response RDATA Repair Data RSN Receive State Notification SPM Source Path Message SPMR SPM Request TG Transmission Group TGSIZE Transmission Group Size TPDU Transport Protocol Data Unit TSDU Transport Service Data Unit TSI Transport Session Identifier TSN Transmit State Notification
确认AFI地址系列指示符ALF应用层成帧APDU应用协议数据单元ARQ自动重复请求DLR指定本地维修商GSI全局唯一源标识符FEC前向纠错MD5消息摘要算法MTU最大传输单元NAK否定确认NCF NAK确认NLA网络层地址NNAK Null否定确认ODATA原始数据轮询请求POLR轮询响应RDATA修复数据RSN接收状态通知SPM源路径消息SPMR SPM请求TG传输组TGSIZE传输组大小TPDU传输协议数据单元TSDU传输服务数据单元TSI传输会话标识符TSN传输状态通知
The design and specification of PGM has been substantially influenced by reviews and revisions provided by several people who took the time to read and critique this document. These include, in alphabetical order:
PGM的设计和规范受到了一些人的审查和修订的实质性影响,这些人花时间阅读和评论了本文件。这些文件按字母顺序包括:
Bob Albrightson Joel Bion Mark Bowles Steve Deering Tugrul Firatli Dan Harkins Dima Khoury Gerard Newman Dave Oran Denny Page Ken Pillay Chetan Rai Yakov Rekhter Dave Rossetti Paul Stirpe Brian Whetten Kyle York
Bob Albrightson Joel Bion Mark Bowles Steve Deering Tugrul Firatli and Harkins Dima Khoury Gerard Newman Dave Oran Denny Page肯Pillay Chetan Rai Yakov Rekhter Dave Rossetti Paul Stirpe Brian Whetten Kyle York
[1] B. Whetten, T. Montgomery, S. Kaplan, "A High Performance Totally Ordered Multicast Protocol", in "Theory and Practice in Distributed Systems", Springer Verlag LCNS938, 1994.
[1] B.Whetten,T.Montgomery,S.Kaplan,“一种高性能全序多播协议”,发表于《分布式系统中的理论与实践》,Springer Verlag LCNS9381994。
[2] S. Floyd, V. Jacobson, C. Liu, S. McCanne, L. Zhang, "A Reliable Multicast Framework for Light-weight Sessions and Application Level Framing", ACM Transactions on Networking, November 1996.
[2] S.Floyd,V.Jacobson,C.Liu,S.McCanne,L.Zhang,“轻量级会话和应用程序级帧的可靠多播框架”,ACM网络事务,1996年11月。
[3] J. C. Lin, S. Paul, "RMTP: A Reliable Multicast Transport Protocol", ACM SIGCOMM August 1996.
[3] 林志强,S.保罗,“RMTP:一种可靠的多播传输协议”,ACM SIGCOMM,1996年8月。
[4] Miller, K., Robertson, K., Tweedly, A. and M. White, "Multicast File Transfer Protocol (MFTP) Specification", Work In Progress.
[4] Miller,K.,Robertson,K.,Tweedy,A.和M.White,“多播文件传输协议(MFTP)规范”,正在进行中。
[5] Deering, S., "Host Extensions for IP Multicasting", STD 5, RFC 1112, August 1989.
[5] Deering,S.,“IP多播的主机扩展”,STD 5,RFC 1112,1989年8月。
[6] Katz, D., "IP Router Alert Option", RFC 2113, February 1997.
[6] Katz,D.,“IP路由器警报选项”,RFC 2113,1997年2月。
[7] C. Partridge, "Gigabit Networking", Addison Wesley 1994.
[7] C.帕特里奇,“千兆网络”,Addison-Wesley,1994年。
[8] H. W. Holbrook, S. K. Singhal, D. R. Cheriton, "Log-Based Receiver-Reliable Multicast for Distributed Interactive Simulation", ACM SIGCOMM 1995.
[8] H.W.Holbrook,S.K.Singhal,D.R.Cheriton,“分布式交互仿真中基于日志的接收器可靠多播”,ACM SIGCOMM 1995。
[9] Rivest, R., "The MD5 Message-Digest Algorithm", RFC 1321, April 1992.
[9] Rivest,R.,“MD5消息摘要算法”,RFC1321,1992年4月。
[10] Reynolds, J. and J. Postel, "Assigned Numbers", STD 2, RFC 1700, October 1994.
[10] Reynolds,J.和J.Postel,“分配的数字”,标准2,RFC 1700,1994年10月。
[11] J. Nonnenmacher, E. Biersack, D. Towsley, "Parity-Based Loss Recovery for Reliable Multicast Transmission", ACM SIGCOMM September 1997.
[11] J.Nonnenmacher,E.Biersack,D.Towsley,“基于奇偶校验的可靠多播传输丢失恢复”,ACM SIGCOMM,1997年9月。
[12] L. Rizzo, "Effective Erasure Codes for Reliable Computer Communication Protocols", Computer Communication Review, April 1997.
[12] L.Rizzo,“可靠计算机通信协议的有效擦除码”,《计算机通信评论》,1997年4月。
[13] V. Jacobson, "Congestion Avoidance and Control", ACM SIGCOMM August 1988.
[13] V.Jacobson,“拥塞避免和控制”,ACM SIGCOMM,1988年8月。
[14] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP, 14, RFC 2119, March 1997.
[14] Bradner,S.,“RFC中用于表示需求水平的关键词”,BCP,14,RFC 211997年3月。
[15] J. Bolot, T. Turletti, I. Wakeman, "Scalable Feedback Control for Multicast Video Distribution in the Internet", Proc. ACM/Sigcomm 94, pp. 58-67.
[15] J.Bolot,T.Turletti,I.Wakeman,“互联网中多播视频分发的可伸缩反馈控制”,Proc。ACM/Sigcomm 94,第58-67页。
[16] L. Rizzo, "pgmcc: A TCP-friendly Single-Rate Multicast Congestion Control Scheme", Proc. of ACM SIGCOMM August 2000.
[16] L.Rizzo,“pgmcc:一种TCP友好的单速率多播拥塞控制方案”,Proc。ACM SIGCOMM于2000年8月发布。
[17] M. Luby, L. Vicisano, T. Speakman. "Heterogeneous multicast congestion control based on router packet filtering", RMT working group, June 1999, Pisa, Italy.
[17] 卢比先生,维西萨诺先生,斯派克曼先生。“基于路由器包过滤的异构多播拥塞控制”,RMT工作组,1999年6月,意大利Pisa。
[18] Cain, B., Speakman, T. and D. Towsley, "Generic Router Assist (GRA) Building Block, Motivation and Architecture", Work In Progress.
[18] Cain,B.,Speakman,T.和D.Towsley,“通用路由器辅助(GRA)构建块,动机和架构”,正在进行的工作。
[19] C. Papadopoulos, and E. Laliotis,"Incremental Deployment of a Router-assisted Reliable Multicast Scheme,", Proc. of Networked Group Communications (NGC2000), Stanford University, Palo Alto, CA. November 2000.
[19] C.Papadopoulos和E.Laliotis,“路由器辅助可靠多播方案的增量部署”,Proc。2000年11月,加利福尼亚州帕洛阿尔托斯坦福大学网络集团通信研究所(NGC2000)。
[20] C. Papadopoulos, "RAIMS: an Architecture for Router-Assisted Internet Multicast Services." Presented at ETH, Zurich, Switzerland, October 23 2000.
[20] C.Papadopoulos,“RAIMS:路由器辅助互联网多播服务的体系结构”,发表于2000年10月23日,瑞士苏黎世ETH。
[21] J. Chesterfield, A. Diana, A. Greenhalgh, M. Lad, and M. Lim, "A BSD Router Implementation of PGM", http://www.cs.ucl.ac.uk/external/m.lad/rpgm/
[21] J. Chesterfield, A. Diana, A. Greenhalgh, M. Lad, and M. Lim, "A BSD Router Implementation of PGM", http://www.cs.ucl.ac.uk/external/m.lad/rpgm/
[22] L. Rizzo, "A PGM Host Implementation for FreeBSD", http://www.iet.unipi.it/~luigi/pgm.html
[22] L. Rizzo, "A PGM Host Implementation for FreeBSD", http://www.iet.unipi.it/~luigi/pgm.html
[23] M. Psaltaki, R. Araujo, G. Aldabbagh, P. Kouniakis, and A. Giannopoulos, "Pragmatic General Multicast (PGM) host implementation for FreeBSD.", http://www.cs.ucl.ac.uk/research/darpa/pgm/PGM_FINAL.html
[23] M. Psaltaki, R. Araujo, G. Aldabbagh, P. Kouniakis, and A. Giannopoulos, "Pragmatic General Multicast (PGM) host implementation for FreeBSD.", http://www.cs.ucl.ac.uk/research/darpa/pgm/PGM_FINAL.html
Tony Speakman EMail: speakman@cisco.com
Tony Speakman电子邮件:speakman@cisco.com
Dino Farinacci Procket Networks 3850 North First Street San Jose, CA 95134 USA EMail: dino@procket.com
美国加利福尼亚州圣何塞北第一街3850号Dino Farinaci Procket Networks 95134电子邮件:dino@procket.com
Steven Lin Juniper Networks 1194 N. Mathilda Ave. Sunnyvale, CA 94086 USA EMail: steven@juniper.net
Steven Lin Juniper Networks 1194 N.Mathilda Ave.Sunnyvale,CA 94086美国电子邮件:steven@juniper.net
Alex Tweedly EMail: agt@cisco.com
Alex Tweedly电子邮件:agt@cisco.com
Nidhi Bhaskar EMail: nbhaskar@cisco.com
Nidhi Bhaskar电子邮件:nbhaskar@cisco.com
Richard Edmonstone EMail: redmonst@cisco.com
Richard Edmonstone电子邮件:redmonst@cisco.com
Rajitha Sumanasekera EMail: rajitha@cisco.com
Rajitha Sumanasekera电子邮件:rajitha@cisco.com
Lorenzo Vicisano Cisco Systems, Inc. 170 West Tasman Drive, San Jose, CA 95134 USA EMail: lorenzo@cisco.com
Lorenzo Vicisano Cisco Systems,Inc.美国加利福尼亚州圣何塞市西塔斯曼大道170号,邮编95134电子邮件:lorenzo@cisco.com
Jon Crowcroft Department of Computer Science University College London Gower Street London WC1E 6BT UK EMail: j.crowcroft@cs.ucl.ac.uk
Jon Crowcroft计算机科学系伦敦大学学院伦敦高尔街伦敦WC1E 6BT英国电子邮件:j。crowcroft@cs.ucl.ac.uk
Jim Gemmell Microsoft Bay Area Research Center 301 Howard Street, #830 San Francisco, CA 94105 USA EMail: jgemmell@microsoft.com
吉姆GEMMEL微软湾区研究中心301 Howard Street,旧金山830,CA 94105美国电子邮件:jgemmell@microsoft.com
Dan Leshchiner Tibco Software 3165 Porter Dr. Palo Alto, CA 94304 USA EMail: dleshc@tibco.com
Dan Leshchiner Tibco Software 3165 Porter Palo Alto博士,加利福尼亚州94304美国电子邮件:dleshc@tibco.com
Michael Luby Digital Fountain, Inc. 39141 Civic Center Drive Fremont CA 94538 USA EMail: luby@digitalfountain.com
Michael Luby Digital Fountain,Inc.美国加利福尼亚州弗里蒙特市市民中心大道39141号94538电子邮件:luby@digitalfountain.com
Todd L. Montgomery Talarian Corporation 124 Sherman Ave. Morgantown, WV 26501 USA EMail: todd@talarian.com
Todd L.Montgomery Talarian Corporation美国威斯康星州摩根敦谢尔曼大道124号26501电子邮件:todd@talarian.com
Luigi Rizzo Dip. di Ing. dell'Informazione Universita` di Pisa via Diotisalvi 2 56126 Pisa Italy EMail: luigi@iet.unipi.it
路易吉·里佐·迪普。迪宁。比萨戴尔信息大学通过Diotisalvi 2 56126比萨意大利电子邮件:luigi@iet.unipi.it
Copyright (C) The Internet Society (2001). All Rights Reserved.
版权所有(C)互联网协会(2001年)。版权所有。
This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.
本文件及其译本可复制并提供给他人,对其进行评论或解释或协助其实施的衍生作品可全部或部分编制、复制、出版和分发,不受任何限制,前提是上述版权声明和本段包含在所有此类副本和衍生作品中。但是,不得以任何方式修改本文件本身,例如删除版权通知或对互联网协会或其他互联网组织的引用,除非出于制定互联网标准的需要,在这种情况下,必须遵循互联网标准过程中定义的版权程序,或根据需要将其翻译成英语以外的其他语言。
The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns.
上述授予的有限许可是永久性的,互联网协会或其继承人或受让人不会撤销。
This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
本文件和其中包含的信息是按“原样”提供的,互联网协会和互联网工程任务组否认所有明示或暗示的保证,包括但不限于任何保证,即使用本文中的信息不会侵犯任何权利,或对适销性或特定用途适用性的任何默示保证。
Acknowledgement
确认
Funding for the RFC Editor function is currently provided by the Internet Society.
RFC编辑功能的资金目前由互联网协会提供。