Internet Research Task Force (IRTF) B. Adamson Request for Comments: 8406 NRL Category: Informational C. Adjih ISSN: 2070-1721 INRIA J. Bilbao Ikerlan V. Firoiu BAE Systems F. Fitzek TU Dresden S. Ghanem Independent E. Lochin ISAE - Supaero A. Masucci Orange M-J. Montpetit Independent M. Pedersen Aalborg University G. Peralta Ikerlan V. Roca, Ed. INRIA P. Saxena AnsuR Technologies S. Sivakumar Cisco June 2018
Internet Research Task Force (IRTF) B. Adamson Request for Comments: 8406 NRL Category: Informational C. Adjih ISSN: 2070-1721 INRIA J. Bilbao Ikerlan V. Firoiu BAE Systems F. Fitzek TU Dresden S. Ghanem Independent E. Lochin ISAE - Supaero A. Masucci Orange M-J. Montpetit Independent M. Pedersen Aalborg University G. Peralta Ikerlan V. Roca, Ed. INRIA P. Saxena AnsuR Technologies S. Sivakumar Cisco June 2018
Taxonomy of Coding Techniques for Efficient Network Communications
高效网络通信编码技术分类
Abstract
摘要
This document summarizes recommended terminology for Network Coding concepts and constructs. It provides a comprehensive set of terms in order to avoid ambiguities in future IRTF and IETF documents on Network Coding. This document is the product of the Coding for Efficient Network Communications Research Group (NWCRG), and it is in line with the terminology used by the RFCs produced by the Reliable Multicast Transport (RMT) and FEC Framework (FECFRAME) IETF working groups.
本文档总结了网络编码概念和结构的推荐术语。它提供了一套全面的术语,以避免在未来的IRTF和IETF网络编码文档中出现歧义。本文件是高效网络通信编码研究组(NWCRG)的产品,与可靠多播传输(RMT)和FEC框架(FECFRAME)IETF工作组产生的RFC使用的术语一致。
Status of This Memo
关于下段备忘
This document is not an Internet Standards Track specification; it is published for informational purposes.
本文件不是互联网标准跟踪规范;它是为了提供信息而发布的。
This document is a product of the Internet Research Task Force (IRTF). The IRTF publishes the results of Internet-related research and development activities. These results might not be suitable for deployment. This RFC represents the consensus of the Coding for Efficient Network Communications Research Group of the Internet Research Task Force (IRTF). Documents approved for publication by the IRSG are not candidates for any level of Internet Standard; see Section 2 of RFC 7841.
本文件是互联网研究工作组(IRTF)的产品。IRTF发布互联网相关研究和开发活动的结果。这些结果可能不适合部署。本RFC代表了互联网研究任务组(IRTF)高效网络通信编码研究小组的共识。IRSG批准发布的文件不适用于任何级别的互联网标准;见RFC 7841第2节。
Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at https://www.rfc-editor.org/info/rfc8406.
有关本文件当前状态、任何勘误表以及如何提供反馈的信息,请访问https://www.rfc-editor.org/info/rfc8406.
Copyright Notice
版权公告
Copyright (c) 2018 IETF Trust and the persons identified as the document authors. All rights reserved.
版权所有(c)2018 IETF信托基金和确定为文件作者的人员。版权所有。
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document.
本文件受BCP 78和IETF信托有关IETF文件的法律规定的约束(https://trustee.ietf.org/license-info)自本文件出版之日起生效。请仔细阅读这些文件,因为它们描述了您对本文件的权利和限制。
Table of Contents
目录
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 2. General Definitions and Concepts . . . . . . . . . . . . . . 4 3. Taxonomy of Code Uses . . . . . . . . . . . . . . . . . . . . 7 4. Coding Details . . . . . . . . . . . . . . . . . . . . . . . 8 4.1. Coding Types . . . . . . . . . . . . . . . . . . . . . . 8 4.2. Coding Basics . . . . . . . . . . . . . . . . . . . . . . 9 4.3. Coding in Practice . . . . . . . . . . . . . . . . . . . 12 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 6. Security Considerations . . . . . . . . . . . . . . . . . . . 13 7. Informative References . . . . . . . . . . . . . . . . . . . 13 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 2. General Definitions and Concepts . . . . . . . . . . . . . . 4 3. Taxonomy of Code Uses . . . . . . . . . . . . . . . . . . . . 7 4. Coding Details . . . . . . . . . . . . . . . . . . . . . . . 8 4.1. Coding Types . . . . . . . . . . . . . . . . . . . . . . 8 4.2. Coding Basics . . . . . . . . . . . . . . . . . . . . . . 9 4.3. Coding in Practice . . . . . . . . . . . . . . . . . . . 12 5. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 12 6. Security Considerations . . . . . . . . . . . . . . . . . . . 13 7. Informative References . . . . . . . . . . . . . . . . . . . 13 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14
This document is the product of and represents the collaborative work and consensus of the Coding for Efficient Network Communications Research Group (NWCRG); it is not an IETF product and is not a standard. In 2017, the document was discussed during three audio conferences, each of them gathering 6 to 8 key experts; it was co-edited and subjected to an RG Last Call. The general feeling was that the document was ready. Additional information about Network Coding may be found on these NWCRG pages: <https://irtf.org/nwcrg> and <https://datatracker.ietf.org/rg/nwcrg/about/>.
本文件是高效网络通信编码研究小组(NWCRG)的成果,代表了该小组的合作工作和共识;它不是IETF产品,也不是标准。2017年,该文件在三次音频会议上进行了讨论,每一次会议都聚集了6至8位关键专家;它是共同编辑的,并接受了RG的最后一次呼叫。总的感觉是文件已经准备好了。有关网络编码的其他信息,请参见以下NWCRG页面:<https://irtf.org/nwcrg>及<https://datatracker.ietf.org/rg/nwcrg/about/>.
The literature on Network Coding research and system design, including IETF documentation, led to a rich set of concepts and constructs. This document collects terminology used in the domain, both outside and inside IETF, provides concise definitions, and introduces a high-level taxonomy. Its primary goal is to be useful to IETF and IRTF activities. It is also in line with the terminology already used by the RFCs produced by the Reliable Multicast Transport (RMT) and FEC Framework (FECFRAME) IETF working groups, in particular [RFC5052], [RFC5740], [RFC5775], [RFC6363], and [RFC6726]. This document is also related to IETF work being done in the PAYLOAD and TSVWG WGs (in particular, the extension of FECFRAME to support Sliding Window Codes and the Random Linear Coding (RLC) sliding window FEC scheme) and past work in the AVTCORE and MMUSIC WGs. Note that in the definitions, the "(IETF)" tag indicates that the associated term is already used in IETF documents (Internet-Drafts and RFCs).
关于网络编码研究和系统设计的文献,包括IETF文档,形成了丰富的概念和结构。本文档收集了IETF内外领域中使用的术语,提供了简明的定义,并介绍了高级分类法。其主要目标是对IETF和IRTF活动有用。它也符合可靠多播传输(RMT)和FEC框架(FECFRAME)IETF工作组,特别是[RFC5052]、[RFC5740]、[RFC5775]、[RFC6363]和[RFC6726]所产生的RFC所使用的术语。本文件还涉及有效载荷和TSVWG WGs中正在进行的IETF工作(特别是FECFRAME的扩展,以支持滑动窗口代码和随机线性编码(RLC)滑动窗口FEC方案)以及AVTCORE和MMUSIC WGs中过去的工作。请注意,在定义中,“IETF”标记表示相关术语已在IETF文档(互联网草稿和RFC)中使用。
This document focuses on packet transmissions and losses. These losses will typically be triggered by various types of networking issues and/or impairments (e.g., congested routers or intermittent wireless connectivity). The notion of "packet" itself is multiform, depending on the target use case and the notion of network (e.g., in which layer of the protocol stack does the coding middleware operate?). For instance, a "packet" may be a data unit to be carried as a UDP payload because the coding middleware is located between the application and UDP. In another configuration, coding may be applied within an overlay network and the notion of "packet" will be totally different. In any case, the goals of Network Coding can be to improve the network throughput, efficiency, latency, and scalability, as well as to provide resilience to partition, attacks, and eavesdropping (NWCRG charter). Both End-to-End Coding and systems that also perform recoding within intermediate forwarding nodes are considered in this document.
本文档重点介绍数据包传输和丢失。这些损失通常由各种类型的网络问题和/或损害(例如,路由器拥塞或间歇性无线连接)引发。“数据包”的概念本身是多种形式的,这取决于目标用例和网络的概念(例如,编码中间件在协议栈的哪一层运行?)。例如,“分组”可以是作为UDP有效载荷携带的数据单元,因为编码中间件位于应用程序和UDP之间。在另一配置中,可以在覆盖网络内应用编码,并且“分组”的概念将完全不同。在任何情况下,网络编码的目标可以是提高网络吞吐量、效率、延迟和可伸缩性,以及提供对分区、攻击和窃听的恢复能力(NWCRG宪章)。本文档考虑了端到端编码和在中间转发节点内执行重编码的系统。
This document does not consider physical-layer transmission issues, physical-layer codes, or error detection: if low-layer error codes detect but fail to correct bit errors, or if an upper-layer checksum (e.g., within IP or UDP) identifies a corrupted packet, then the packet is supposed to be dropped.
该文档不考虑物理层传输问题、物理层代码或错误检测:如果低层错误代码检测但未能纠正位错误,或者如果上层校验和(例如,在IP或UDP内)标识损坏的分组,则该分组应该被丢弃。
This section provides general definitions and concepts that are used throughout this document.
本节提供了本文档中使用的一般定义和概念。
Packet Erasure Channel: A communication path where packets are either dropped or received without any error. This type of packet drop is referred to as an "erasure" or "loss". The term "channel" must be understood as a generic term for any type of communication technology (e.g., an Ethernet link, a WiFi network, or a full path between two nodes over the Internet). As opposed to the "Erasure" channels, "Error" channels are where one or multiple bit errors may happen during a packet transmission. These "Error" channels are out of scope.
数据包擦除通道:一种通信路径,其中数据包被丢弃或接收时不会出现任何错误。这种类型的丢包被称为“擦除”或“丢失”。术语“信道”必须理解为任何类型通信技术的通用术语(例如,以太网链路、WiFi网络或互联网上两个节点之间的完整路径)。与“擦除”信道相反,“错误”信道是在分组传输期间可能发生一个或多个比特错误的信道。这些“错误”通道超出范围。
Erasure Correcting Code (ECC) or (IETF) Forward Erasure Correction (FEC): A code for the Packet Erasure Channel (only). These codes are also called "Application-Level FECs" to highlight that they have been designed for use within the higher layers of the protocol stack to protect against packet losses. As opposed to ECCs/FECs, "Error" correction codes are capable of identifying the presence of bit errors and perhaps correcting them. The "Error" correction codes are out of scope.
擦除纠错码(ECC)或(IETF)前向擦除纠错码(FEC):用于数据包擦除信道的代码(仅限)。这些代码也称为“应用程序级FEC”,以强调它们设计用于协议栈的更高层,以防止数据包丢失。与ECCs/FECs相反,“错误”纠错码能够识别位错误的存在并可能对其进行纠正。“错误”纠正代码超出范围。
End-to-End Coding: A system where coding is performed at the source or (coding) middlebox, and decoding is performed at the destination(s) or (decoding) middlebox. There is no recoding operation at intermediate nodes. This is the approach followed in the FLUTE/ALC [RFC6726] [RFC5775], NORM [RFC5740], and FECFRAME [RFC6363] protocols.
端到端编码:在源或(编码)中间盒处执行编码,在目的地或(解码)中间盒处执行解码的系统。中间节点上没有重新编码操作。这是FLUTE/ALC[RFC6726][RFC5775]、NORM[RFC5740]和FECFRAME[RFC6363]协议中遵循的方法。
Network Coding: A system where coding can be performed at the source as well as at intermediate forwarding nodes (all or a subset of them). End-to-End Coding is regarded as a special case of Network Coding. Depending on the use case, additional assumptions can be made: for instance, the destination knowing the Coding Nodes' topology and coding operations can help during decoding operations.
网络编码:一种可以在源节点和中间转发节点(全部或部分)执行编码的系统。端到端编码被认为是网络编码的一种特殊情况。根据使用情况,可以做出其他假设:例如,目的地了解编码节点的拓扑和编码操作可以在解码操作期间提供帮助。
Packet versus Symbol: Generally speaking, a Packet is the unit of data that is sent in the Packet Erasure Channel, while a Symbol is the unit of data that is manipulated during the encoding and decoding operations.
分组与符号:一般来说,分组是在分组擦除信道中发送的数据单位,而符号是在编码和解码操作期间操作的数据单位。
Original Payload, Uncoded Payload, Systematic Symbol, or (IETF) Source Symbol: A unit of data originating from the source that is used as input to encoding operations.
原始有效载荷、未编码有效载荷、系统符号或(IETF)源符号:源数据的一个单位,用作编码操作的输入。
Coded Payload, Coded Symbol, or (IETF) Repair Symbol: A unit of data that is the result of a coding operation, applied either to Source Symbols or (in case of recoding) Source and/or Repair Symbols. When there is a single Repair Symbol per Repair Packet, a Repair Symbol corresponds to a Repair Packet.
编码有效载荷、编码符号或(IETF)修复符号:作为编码操作结果的数据单元,应用于源符号或(在重新编码的情况下)源和/或修复符号。当每个维修包有一个维修符号时,维修符号对应于维修包。
Input Symbol and Output Symbol: A unit of data that is used as input to an encoding operation or that is generated as output of an encoding operation. At a recoding node, Repair Symbols are also part of the Input Symbols. With Systematic Coding, Source Symbols are also part of the Output Symbols.
输入符号和输出符号:用作编码操作输入或作为编码操作输出生成的数据单位。在重新编码节点,修复符号也是输入符号的一部分。通过系统编码,源符号也是输出符号的一部分。
(IETF) Encoding Symbol: A Source or a Repair Symbol.
(IETF)编码符号:源或修复符号。
(En)coding versus Recoding versus Decoding: (En)coding is an operation that takes Source Symbols as input and produces Encoding Symbols as output. Recoding is an operation that takes Encoding Symbols as input and produces Encoding Symbols as output. Decoding is an operation takes Encoding Symbols as input and produces Source Symbols as output.
编码与重编码与解码:(En)编码是一种将源符号作为输入并产生编码符号作为输出的操作。重新编码是一种将编码符号作为输入并生成编码符号作为输出的操作。解码是一种将编码符号作为输入并产生源符号作为输出的操作。
(IETF) Source Packet: A packet originating from the source that contributes to one or more Source Symbols. For instance, an RTP packet as a whole can constitute a Source Symbol. In other situations (e.g., to address variable size packets), a single RTP packet may contribute to various Source Symbols.
(IETF)源数据包:一种源数据包,用于产生一个或多个源符号。例如,RTP分组作为一个整体可以构成源符号。在其他情况下(例如,为了寻址可变大小的分组),单个RTP分组可能有助于各种源符号。
(IETF) Repair Packet: A packet containing one or more Repair Symbols.
(IETF)修复包:包含一个或多个修复符号的包。
Figure 1 illustrates the relationships between packets (what is sent in the Packet Erasure Channel) and symbols (what is manipulated during encoding and decoding operations) in case of a Systematic
图1说明了在系统故障情况下,数据包(在数据包擦除信道中发送的内容)和符号(在编码和解码操作期间操作的内容)之间的关系
Coding at a Coding Node that performs Encoding (rather than Recoding). FEC decoding procedures are similarly performed in the reverse order.
在执行编码(而不是重新编码)的编码节点处进行编码。FEC解码过程类似地以相反顺序执行。
Source Packet | | Source Packet to Source Symbols transform | (one or more symbols per packet) v Source Symbols | v Input Symbols +----------------------+ | FEC encoding | +----------------------+ | Output Symbols | v v Source Symbols Repair Symbols | | | | symbol-to-packet transform | | (one or more symbols per packet) v v Source Packet Repair Packet
Source Packet | | Source Packet to Source Symbols transform | (one or more symbols per packet) v Source Symbols | v Input Symbols +----------------------+ | FEC encoding | +----------------------+ | Output Symbols | v v Source Symbols Repair Symbols | | | | symbol-to-packet transform | | (one or more symbols per packet) v v Source Packet Repair Packet
Figure 1: Packet and Symbol Relationships at a Coding Node That Performs Encoding (Rather Than Recoding)
图1:执行编码(而不是重新编码)的编码节点处的数据包和符号关系
Source Node: A node that generates one or more Source Flows.
源节点:生成一个或多个源流的节点。
Coding Node: A node that performs FEC Encoding or Recoding operations. It may be an end host or a middlebox (Encoding case), or a forwarding node (Recoding case).
编码节点:执行FEC编码或重新编码操作的节点。它可以是终端主机或中间盒(编码情况),或转发节点(重新编码情况)。
(IETF) Flow: A stream of packets logically grouped.
(IETF)流:逻辑分组的数据包流。
(IETF) Source Flow: A flow of Source Packets coming from an application on a given host and to which FEC encoding is to be applied, potentially along with other Source Flows. Depending on the use case, Source Flows may come from the same application, from different applications on the same host, or from different applications on different hosts.
(IETF)源流:来自给定主机上的应用程序的源数据包流,FEC编码将应用于该流,可能与其他源数据流一起。根据用例的不同,源流可能来自同一应用程序、同一主机上的不同应用程序或不同主机上的不同应用程序。
(IETF) Repair Flow: A flow containing Repair Packets after FEC encoding.
(IETF)修复流:包含FEC编码后修复包的流。
This section discusses the various ways of using coding, without going into coding details.
本节讨论使用编码的各种方法,而不讨论编码细节。
Source Coding versus Channel Coding: (see Figure 2) When both terms are used, "Source Coding" usually refers to compression techniques (e.g., audio and video compression) within the upper application that generates the Source Flow. "Channel Coding" refers to FEC encoding in order to improve transmission robustness, for instance, within the lower physical layer (out of scope of this document) or as part of Network Coding. These terms should not be confused with "FEC coding within the Source Node" and "FEC recoding within an intermediate Coding Node", respectively.
信源编码与信道编码:(见图2)当使用这两个术语时,“信源编码”通常指生成信源流的上层应用程序中的压缩技术(例如,音频和视频压缩)。“信道编码”是指为了提高传输健壮性而进行的FEC编码,例如,在较低的物理层内(不在本文的范围内)或作为网络编码的一部分。这些术语不应分别与“源节点内的FEC编码”和“中间编码节点内的FEC重新编码”混淆。
raw data flow from camera ^ video flow display | | ^ v | upper | +------------------------+ | +-------------------------+ | source coding | | applica- | source (de)coding | |(e.g., mpeg compression)| | tion |(e.g., mpg decompression)| +------------------------+ v +-------------------------+ | ^ v | +------------------------+ ^ +-------------------------+ | network/AL-FEC coding | | middle- | network/AL-FEC coding | | (e.g., RLC encoding) | | ware | (e.g., RLC decoding) | +------------------------+ v +-------------------------+ | ^ v | +------------------------+ ^ +-------------------------+ | packetization | | | depacketization | | (e.g., UDP/IP) | | communi- | (e.g., UDP/IP) | +------------------------+ | cation +-------------------------+ | | ^ v | layers | +-----------------------+ | +-------------------------+ | PHY layer | | | PHY layer | | (channel coding) | | | (channel decoding) | +-----------------------+ v +-------------------------+ | ^ | source + repair traffic | +-----------------------------------------+
raw data flow from camera ^ video flow display | | ^ v | upper | +------------------------+ | +-------------------------+ | source coding | | applica- | source (de)coding | |(e.g., mpeg compression)| | tion |(e.g., mpg decompression)| +------------------------+ v +-------------------------+ | ^ v | +------------------------+ ^ +-------------------------+ | network/AL-FEC coding | | middle- | network/AL-FEC coding | | (e.g., RLC encoding) | | ware | (e.g., RLC decoding) | +------------------------+ v +-------------------------+ | ^ v | +------------------------+ ^ +-------------------------+ | packetization | | | depacketization | | (e.g., UDP/IP) | | communi- | (e.g., UDP/IP) | +------------------------+ | cation +-------------------------+ | | ^ v | layers | +-----------------------+ | +-------------------------+ | PHY layer | | | PHY layer | | (channel coding) | | | (channel decoding) | +-----------------------+ v +-------------------------+ | ^ | source + repair traffic | +-----------------------------------------+
Figure 2: Example of End-to-End Flow Manipulation with Network Coding
图2:使用网络编码的端到端流操作示例
Figure 2 shows Network Coding between the application and UDP layers (as with RMT or FECFRAME architectures). Other architectures are possible, for instance, with Network Coding below the transport layer to allow recoding within the network.
图2显示了应用程序层和UDP层之间的网络编码(与RMT或FECFRAME架构相同)。其他架构是可能的,例如,在传输层下使用网络编码,以允许在网络内重新编码。
Intra-Flow Coding or Single-Source Network Coding: Process where incoming packets to the Coding Node belong to the same flow.
流内编码或单源网络编码:发送到编码节点的传入数据包属于同一流的过程。
Inter-Flow Coding or Multi-Source Network Coding: Process where incoming packets to the Coding Node belong to different flows.
流间编码或多源网络编码:进入编码节点的数据包属于不同流的过程。
Single-Path Coding: Network Coding over a route that has a single path from the source to each destination(s). In case of multicast or broadcast traffic, this route is a tree. Coding may be done end to end and/or at intermediate forwarding nodes.
单路径编码:通过具有从源到每个目的地的单路径的路由进行的网络编码。在多播或广播流量的情况下,此路由是一棵树。编码可以端到端和/或在中间转发节点上完成。
Multi-Path Coding: Network Coding over a route that has multiple (at least partially) disjoint paths from the source to each given destination. Coding may be done end to end and/or at intermediate forwarding nodes.
多路径编码:在从源到每个给定目的地具有多条(至少部分)不相交路径的路由上进行的网络编码。编码可以端到端和/或在中间转发节点上完成。
This section provides a high-level taxonomy of coding techniques. Technical details are discussed in subsequent sections.
本节提供了编码技术的高级分类。技术细节将在后续章节中讨论。
Linear Coding: Linear combination of a set of Input Symbols (i.e., Source and/or Repair Symbols) using a given set of coefficients and resulting in a Repair Symbol. Many linear codes exist that differ from the way coding coefficients are drawn from a Finite Field of a given size.
线性编码:一组输入符号(即,源和/或修复符号)的线性组合,使用给定的一组系数并产生修复符号。存在许多不同于从给定大小的有限域中提取编码系数的方式的线性码。
Random Linear Coding (RLC): Particular case of Linear Coding using a set of random coding coefficients.
随机线性编码(RLC):使用一组随机编码系数的线性编码的特殊情况。
Adaptive Linear Coding: Linear Coding that utilizes cross-layer adaptation. For instance, an adaptive coding scheme may adapt the generation and transmission of Repair Packets according to the channel variations over time, accounting for the predictive loss of degrees of freedom due to erasures.
自适应线性编码:利用跨层自适应的线性编码。例如,自适应编码方案可以根据信道随时间的变化来调整修复分组的生成和传输,从而考虑由于擦除而导致的自由度的预测损失。
Block Coding: Coding technique where the input Flow(s) must first be segmented into a sequence of blocks; FEC encoding and decoding are performed independently on a per-block basis. The term "Chunk Coding" is sometimes used, where a "Chunk" denotes a block.
块编码:必须首先将输入流分割成一系列块的编码技术;FEC编码和解码在每个块的基础上独立执行。有时使用术语“块编码”,其中“块”表示块。
Sliding Window Coding or Convolutional Coding: General class of coding techniques that rely on a sliding encoding window. This is an alternative solution to Block Coding.
滑动窗口编码或卷积编码:依靠滑动编码窗口的一般编码技术。这是块编码的替代解决方案。
Fixed or Elastic Sliding Window Coding: Coding technique that generates Repair Symbol(s) on the fly, from the set of Source Symbols present in the sliding encoding window at that time, usually by using Linear Coding. The sliding window may be either of fixed size or of variable size over the time (also known as "Elastic Sliding Window"). For instance, the size may depend on acknowledgments sent by the receiver(s) for a particular Source Symbol or Source Packet (received, decoded, or decodable).
固定或弹性滑动窗口编码:通常使用线性编码,从滑动编码窗口中存在的源符号集动态生成修复符号的编码技术。滑动窗口可以是固定大小,也可以是随时间变化的大小(也称为“弹性滑动窗口”)。例如,大小可取决于接收器针对特定源符号或源分组(接收、解码或解码)发送的确认。
Systematic Coding: A coding technique where Source Symbols are part of the output Flow generated by a Coding Node.
系统编码:一种编码技术,其中源符号是编码节点生成的输出流的一部分。
Rateless and Non-rateless Coding: Rateless Coding can generate an unlimited number of Repair Symbols (in practice, this number can be limited by practical considerations or because of use-case requirements) from a given set of Source Symbols, meaning that the code rate is null. RLC codes are an example of Rateless Codes. Alternately, Non-rateless Coding usually has a predefined maximum number of Repair Symbols that can be generated from a given set of Source Symbols.
无速率和无速率编码:无速率编码可以从给定的一组源符号生成无限数量的修复符号(实际上,这个数量可能受到实际考虑或用例要求的限制),这意味着代码速率为空。RLC代码是无速率代码的一个示例。或者,非无速率编码通常具有可从给定的源符号集生成的预定义最大修复符号数。
This section discusses and defines low-level coding aspects.
本节讨论并定义低级编码方面。
Code Rate: In case of a Block Code, the Code Rate is the k/n ratio between the number of Source Symbols, k, and the number of Source plus Repair Symbols, n. With a Sliding Window Code, the Code Rate is defined similarly over a certain time interval, since the Code Rate may change dynamically. By definition, the Code Rate is such that: 0 < Code Rate <= 1. A Code Rate close to 1 indicates that a small number of Repair Symbols have been produced during the encoding process and vice versa.
码率:对于块码,码率是源符号数k与源加修复符号数n之间的k/n比。对于滑动窗口代码,由于代码速率可能会动态变化,因此在特定的时间间隔内类似地定义了代码速率。根据定义,代码速率为:0<代码速率<=1。接近1的码率表示编码过程中产生了少量修复符号,反之亦然。
(En)coding Window: A set of Source (and Repair in the case of recoding) Symbols used as input to the coding operations. The set of symbols will typically change over time, as the Coding Window slides over the input Flow(s).
(En)编码窗口:用作编码操作输入的一组源(在重新编码时修复)符号。当编码窗口在输入流上滑动时,符号集通常会随时间变化。
(En)coding Window Size: The number of Source (and Repair in case of recoding) Symbols in the current Encoding Window. This size may change over the time.
(En)编码窗口大小:当前编码窗口中的源(以及重新编码时的修复)符号数。此大小可能会随时间而变化。
Payload Set: The set of Source and Repair Symbols available (i.e., received or previously decoded) at the receiver and used during FEC decoding operations.
有效载荷集:在接收机处可用(即,接收或先前解码)并在FEC解码操作期间使用的源和修复符号集。
Decoding Window: The set of Source Symbols (only) that are considered in the current linear system of a receiver, independently of the fact these Source Symbols have been received, decoded, or lost. The Decoding Window will typically change over time, as transmissions and decoding progress, and may be different for different receivers of a session where content is multicast or broadcast.
解码窗口:接收器当前线性系统中考虑的源符号集(仅限),与这些源符号已被接收、解码或丢失的事实无关。解码窗口通常会随着传输和解码的进行而随时间改变,并且对于内容是多播或广播的会话的不同接收器可能不同。
Decoding Window Size: The number of Source Symbols (only) in the current Decoding Window. This size may change over time.
解码窗口大小:当前解码窗口中的源符号数(仅限)。这个尺寸可能会随时间而变化。
Rank of a Payload Set or Rank of the Linear System: At a receiver, number of linearly independent members of a Payload Set, or equivalently the number of linearly independent equations of the linear system. It is also known as "Degrees of Freedom". The system may be of "full rank" where decoding is possible or "partial rank" where only partial decoding is possible.
有效载荷集的秩或线性系统的秩:在接收器处,有效载荷集的线性独立成员的数量,或相当于线性系统的线性独立方程的数量。它也被称为“自由度”。系统可以是“满秩”,其中解码是可能的,或者是“部分秩”,其中仅部分解码是可能的。
Seen Payload or Seen Symbol: A Source Symbol is Seen when the receiver can compute a linear combination with this symbol and Source Symbols that are strictly more recent (i.e., with logically higher Encoding Symbol Identifiers). Otherwise, the Source Symbol is considered as "Unseen".
可见有效载荷或可见符号:当接收器可以计算该符号与严格地说是最近的源符号(即,具有逻辑上更高的编码符号标识符)的线性组合时,可以看到源符号。否则,源符号将被视为“不可见”。
Generation or (IETF) Block: With Block Codes, the set of Source Symbols of the input Flow(s) that are logically grouped into a Block, before doing encoding.
生成或(IETF)块:使用块代码时,在编码之前,逻辑分组到块中的输入流的源符号集。
Generation Size, Code Dimension, or (IETF) Block Size: With Block Codes, the number of Source Symbols, k, belonging to a Block.
生成大小、代码维度或(IETF)块大小:对于块代码,属于块的源符号数k。
Coding Matrix or Generator Matrix: A matrix G that transforms the set of Input Symbols X into a set of Repair Symbols: Y = X * G. Defining a Generator Matrix is typical with Block Codes. The set of Input Symbols X can consist only of Source Symbols (e.g., with End-to-End Coding) or can consist of Source and Repair Symbols (e.g., with recoding in an intermediate node).
编码矩阵或生成器矩阵:将一组输入符号X转换为一组修复符号的矩阵G:Y=X*G。定义生成器矩阵通常与块代码一起使用。输入符号集X可以仅由源符号组成(例如,具有端到端编码),或者可以由源符号和修复符号组成(例如,具有中间节点中的重新编码)。
Coding Coefficient: With Linear Coding, this is a coefficient in a certain Finite Field. This coefficient may be chosen in different ways: for instance, randomly, in a predefined table, or using a predefined algorithm plus a seed.
编码系数:对于线性编码,这是某个有限域中的系数。该系数可以以不同的方式选择:例如,在预定义的表中随机选择,或者使用预定义的算法加上种子。
Coding Vector: A set of Coding Coefficients used to generate a certain Repair Symbol through Linear Coding. The number of nonzero coefficients in the Coding Vector defines its density.
编码向量:通过线性编码产生某一修复符号的一组编码系数。编码向量中非零系数的数量定义了其密度。
Finite Field, Galois Field, or Coding Field: Finite Fields, used in Linear Codes, have the desired property of having all elements (except zero) invertible for the + and * operators, and all operations over any elements do not result in an overflow or underflow. Examples of Finite Fields are prime fields {0..p^m-1}, where p is prime. The most used fields use p=2 and are called binary extension fields {0..2^m-1}, where m often equals 1, 4, or 8 for practical reasons.
有限域、伽罗瓦域或编码域:线性码中使用的有限域具有所需的特性,即所有元素(零除外)对于+和*运算符都是可逆的,并且对任何元素的所有操作都不会导致溢出或下溢。有限域的例子是素数域{0..p^m-1},其中p是素数。最常用的字段使用p=2,称为二进制扩展字段{0..2^m-1},其中m通常等于1、4或8,这是出于实际原因。
Finite Field size or Coding Field size: The number of elements in a Finite Field. For example, the binary extension field {0..2^m-1} has size q=2^m.
有限域大小或编码域大小:有限域中的元素数。例如,二进制扩展字段{0..2^m-1}的大小为q=2^m。
Feedback: Feedback information sent by a decoding node to a Coding Node (or from a receiver to a source in case of End-to-End Coding). The nature of information contained in a feedback packet varies, depending on the use case. It can provide reception and/or FEC decoding statistics, the list of available Source Packets received or decoded (acknowledgement), the list of lost Source Packets that should be retransmitted (negative acknowledgement), or a number of additional Repair Symbols needed to have a Full Rank Linear System.
反馈:由解码节点发送到编码节点(或在端到端编码的情况下从接收器发送到源)的反馈信息。反馈数据包中包含的信息的性质因用例而异。它可以提供接收和/或FEC解码统计、接收或解码的可用源分组的列表(确认)、应重新传输的丢失源分组的列表(否定确认)或具有满秩线性系统所需的多个附加修复符号。
This section discusses practical aspects. Indeed, a practical solution must specify the exact manner in which encoding and decoding are performed but also detail all the peripheral aspects, for instance, how an encoder informs a decoder about the parameters used to generate a certain Repair Packet (signaling).
本节讨论实际方面。实际上,实际解决方案必须指定执行编码和解码的确切方式,但还必须详细说明所有外围方面,例如,编码器如何通知解码器用于生成特定修复包(信令)的参数。
(IETF) FEC Scheme: A specification that defines a particular FEC code as well as the additional protocol aspects required to use this FEC code. In particular, the FEC Scheme defines in-band (e.g., information contained in Source and Repair Packet header or trailers) and out-of-band (e.g., information contained in an SDP description) signaling needed to synchronize encoders and decoders.
(IETF)FEC方案:定义特定FEC代码以及使用该FEC代码所需的附加协议方面的规范。具体地,FEC方案定义了同步编码器和解码器所需的带内(例如,包含在源和修复分组报头或拖车中的信息)和带外(例如,包含在SDP描述中的信息)。
Payload Index or (IETF) Encoding Symbol Identifier (ESI): An identifier of a Source or Repair Symbol. With Block Coding, each symbol of a given block is identified by a unique ESI value. With Sliding Window Coding, a continuous Source Flow and a limited field size to hold the ESI, wrapping to zero is unavoidable and the same integer value will be reused several times.
有效负载索引或(IETF)编码符号标识符(ESI):源或修复符号的标识符。通过块编码,给定块的每个符号由唯一的ESI值标识。使用滑动窗口编码、连续的源流和有限的字段大小来保存ESI时,无法避免换行为零,相同的整数值将重复使用多次。
(IETF) FEC Payload ID: Information that identifies the contents of a packet with respect to the FEC Scheme. The FEC Payload ID of a packet containing Source Symbol(s) is usually different from that of a packet containing Repair Symbol(s). The FEC Payload ID typically contains at least an ESI.
(IETF)FEC有效负载ID:识别与FEC方案相关的数据包内容的信息。包含源符号的分组的FEC有效载荷ID通常不同于包含修复符号的分组的FEC有效载荷ID。FEC有效负载ID通常包含至少一个ESI。
Coding Vector and Encoding Window Signaling: With Sliding Window Codes, the FEC Payload ID of a Repair Packet contains information needed and sufficient to identify the Coding Vector and Coding Window. Concerning the Coding Vector, this may consist of a full list of Coding Coefficients (that may or may not be compressed), or a piece of information (e.g., a seed) that can be used to generate the list of Coding Coefficients thanks to a predefined algorithm known by encoders and decoders (e.g., a Pseudorandom Number Generator, or PRNG) or an ESI that points to a given entry in a Generator Matrix in case of a Block Code. Concerning the Coding Window, this may consist of the full list of ESI of symbols in the Coding Window (that may or may not be compressed) or the ESI of the first Source Symbol along with their number (assuming there is no gap).
编码向量和编码窗口信令:对于滑动窗口码,修复包的FEC有效负载ID包含识别编码向量和编码窗口所需和足够的信息。关于编码向量,这可以包括编码系数的完整列表(可以压缩也可以不压缩),或者由于编码器和解码器已知的预定义算法(例如,伪随机数生成器或PRNG),可以用于生成编码系数列表的一段信息(例如,种子)或者,如果是块代码,则是指向生成器矩阵中给定项的ESI。关于编码窗口,这可能包括编码窗口中符号的完整ESI列表(可以压缩也可以不压缩)或第一个源符号的ESI及其编号(假设没有间隙)。
This document has no IANA actions.
本文档没有IANA操作。
This document introduces a recommended terminology for Network Coding and therefore does not contain any security considerations. This does not mean that Network Coding systems do not have any security implication.
本文档介绍了网络编码的推荐术语,因此不包含任何安全注意事项。这并不意味着网络编码系统没有任何安全含义。
[RFC5052] Watson, M., Luby, M., and L. Vicisano, "Forward Error Correction (FEC) Building Block", RFC 5052, DOI 10.17487/RFC5052, August 2007, <https://www.rfc-editor.org/info/rfc5052>.
[RFC5052]Watson,M.,Luby,M.,和L.Vicisano,“前向纠错(FEC)构造块”,RFC 5052,DOI 10.17487/RFC5052,2007年8月<https://www.rfc-editor.org/info/rfc5052>.
[RFC5740] Adamson, B., Bormann, C., Handley, M., and J. Macker, "NACK-Oriented Reliable Multicast (NORM) Transport Protocol", RFC 5740, DOI 10.17487/RFC5740, November 2009, <https://www.rfc-editor.org/info/rfc5740>.
[RFC5740]Adamson,B.,Bormann,C.,Handley,M.,和J.Macker,“面向NACK的可靠多播(NORM)传输协议”,RFC 5740,DOI 10.17487/RFC5740,2009年11月<https://www.rfc-editor.org/info/rfc5740>.
[RFC5775] Luby, M., Watson, M., and L. Vicisano, "Asynchronous Layered Coding (ALC) Protocol Instantiation", RFC 5775, DOI 10.17487/RFC5775, April 2010, <https://www.rfc-editor.org/info/rfc5775>.
[RFC5775]Luby,M.,Watson,M.,和L.Vicisano,“异步分层编码(ALC)协议实例化”,RFC 5775,DOI 10.17487/RFC5775,2010年4月<https://www.rfc-editor.org/info/rfc5775>.
[RFC6363] Watson, M., Begen, A., and V. Roca, "Forward Error Correction (FEC) Framework", RFC 6363, DOI 10.17487/RFC6363, October 2011, <https://www.rfc-editor.org/info/rfc6363>.
[RFC6363]Watson,M.,Begen,A.和V.Roca,“前向纠错(FEC)框架”,RFC 6363,DOI 10.17487/RFC6363,2011年10月<https://www.rfc-editor.org/info/rfc6363>.
[RFC6726] Paila, T., Walsh, R., Luby, M., Roca, V., and R. Lehtonen, "FLUTE - File Delivery over Unidirectional Transport", RFC 6726, DOI 10.17487/RFC6726, November 2012, <https://www.rfc-editor.org/info/rfc6726>.
[RFC6726]Paila,T.,Walsh,R.,Luby,M.,Roca,V.,和R.Lehtonen,“长笛-单向传输上的文件交付”,RFC 6726,DOI 10.17487/RFC6726,2012年11月<https://www.rfc-editor.org/info/rfc6726>.
Authors' Addresses
作者地址
Brian Adamson NRL United States of America
美利坚合众国北爱尔兰共和国布莱恩·亚当森
Email: brian.adamson@nrl.navy.mil
Email: brian.adamson@nrl.navy.mil
Cedric Adjih INRIA France
法国塞德里克·阿吉亚酒店
Email: cedric.adjih@inria.fr
Email: cedric.adjih@inria.fr
Josu Bilbao Ikerlan Spain
西班牙若苏毕尔巴鄂伊克兰酒店
Email: jbilbao@ikerlan.es
Email: jbilbao@ikerlan.es
Victor Firoiu BAE Systems United States of America
Victor Firoiu BAE Systems美利坚合众国
Email: victor.firoiu@baesystems.com
Email: victor.firoiu@baesystems.com
Frank Fitzek TU Dresden Germany
德国德累斯顿弗兰克·菲茨克酒店
Email: frank.fitzek@tu-dresden.de
Email: frank.fitzek@tu-dresden.de
Samah A. M. Ghanem Independent
Samah A.M.Ghanem独立报
Email: samah.ghanem@gmail.com
Email: samah.ghanem@gmail.com
Emmanuel Lochin ISAE - Supaero France
伊曼纽尔·洛钦国际航空公司-法国苏帕航空公司
Email: emmanuel.lochin@isae-supaero.fr
Email: emmanuel.lochin@isae-supaero.fr
Antonia Masucci Orange France
安东尼娅·马苏奇橙色法国
Email: antoniamaria.masucci@orange.com
Email: antoniamaria.masucci@orange.com
Marie-Jose Montpetit Independent United States of America
独立美利坚合众国玛丽·何塞·蒙佩蒂
Email: marie@mjmontpetit.com
Email: marie@mjmontpetit.com
Morten V. Pedersen Aalborg University Denmark
Morten诉Pedersen Aalborg大学丹麦
Email: mvp@es.aau.dk
Email: mvp@es.aau.dk
Goiuri Peralta Ikerlan Spain
西班牙伊克兰市戈乌里佩拉尔塔酒店
Email: gperalta@ikerlan.es
Email: gperalta@ikerlan.es
Vincent Roca (editor) INRIA France
文森特·罗卡(编辑)法国
Email: vincent.roca@inria.fr
Email: vincent.roca@inria.fr
Paresh Saxena AnsuR Technologies Norway
Paresh Saxena AnsuR Technologies挪威公司
Email: paresh.saxena@ansur.es
Email: paresh.saxena@ansur.es
Senthil Sivakumar Cisco United States of America
Senthil Sivakumar Cisco美利坚合众国
Email: ssenthil@cisco.com
Email: ssenthil@cisco.com