Internet Engineering Task Force (IETF)                         M. Watson
Request for Comments: 6681                                       Netflix
Category: Standards Track                                 T. Stockhammer
ISSN: 2070-1721                                           Nomor Research
                                                                 M. Luby
                                                   Qualcomm Incorporated
                                                             August 2012
        
Internet Engineering Task Force (IETF)                         M. Watson
Request for Comments: 6681                                       Netflix
Category: Standards Track                                 T. Stockhammer
ISSN: 2070-1721                                           Nomor Research
                                                                 M. Luby
                                                   Qualcomm Incorporated
                                                             August 2012
        

Raptor Forward Error Correction (FEC) Schemes for FECFRAME

FEC帧的Raptor前向纠错(FEC)方案

Abstract

摘要

This document describes Fully-Specified Forward Error Correction (FEC) Schemes for the Raptor and RaptorQ codes and their application to reliable delivery of media streams in the context of the FEC Framework. The Raptor and RaptorQ codes are systematic codes, where a number of repair symbols are generated from a set of source symbols and sent in one or more repair flows in addition to the source symbols that are sent to the receiver(s) within a source flow. The Raptor and RaptorQ codes offer close to optimal protection against arbitrary packet losses at a low computational complexity. Six FEC Schemes are defined: two for the protection of arbitrary packet flows, two that are optimized for small source blocks, and two for the protection of a single flow that already contains a sequence number. Repair data may be sent over arbitrary datagram transport (e.g., UDP) or using RTP.

本文档描述了Raptor和RaptorQ代码的完全指定前向纠错(FEC)方案及其在FEC框架中可靠交付媒体流的应用。Raptor和RaptorQ代码是系统代码,其中,除了在源流中发送给接收器的源符号外,还从一组源符号生成多个修复符号,并在一个或多个修复流中发送。Raptor和RaptorQ码以较低的计算复杂度针对任意数据包丢失提供接近最佳的保护。定义了六个FEC方案:两个用于保护任意分组流,两个用于优化小源块,两个用于保护已经包含序列号的单个流。修复数据可以通过任意数据报传输(如UDP)或使用RTP发送。

Status of This Memo

关于下段备忘

This is an Internet Standards Track document.

这是一份互联网标准跟踪文件。

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 5741.

本文件是互联网工程任务组(IETF)的产品。它代表了IETF社区的共识。它已经接受了公众审查,并已被互联网工程指导小组(IESG)批准出版。有关互联网标准的更多信息,请参见RFC 5741第2节。

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at http://www.rfc-editor.org/info/rfc6681.

有关本文件当前状态、任何勘误表以及如何提供反馈的信息,请访问http://www.rfc-editor.org/info/rfc6681.

Copyright Notice

版权公告

Copyright (c) 2012 IETF Trust and the persons identified as the document authors. All rights reserved.

版权所有(c)2012 IETF信托基金和确定为文件作者的人员。版权所有。

This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (http://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. Code Components extracted from this document must include Simplified BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Simplified BSD License.

本文件受BCP 78和IETF信托有关IETF文件的法律规定的约束(http://trustee.ietf.org/license-info)自本文件出版之日起生效。请仔细阅读这些文件,因为它们描述了您对本文件的权利和限制。从本文件中提取的代码组件必须包括信托法律条款第4.e节中所述的简化BSD许可证文本,并提供简化BSD许可证中所述的无担保。

This document may contain material from IETF Documents or IETF Contributions published or made publicly available before November 10, 2008. The person(s) controlling the copyright in some of this material may not have granted the IETF Trust the right to allow modifications of such material outside the IETF Standards Process. Without obtaining an adequate license from the person(s) controlling the copyright in such materials, this document may not be modified outside the IETF Standards Process, and derivative works of it may not be created outside the IETF Standards Process, except to format it for publication as an RFC or to translate it into languages other than English.

本文件可能包含2008年11月10日之前发布或公开的IETF文件或IETF贡献中的材料。控制某些材料版权的人员可能未授予IETF信托允许在IETF标准流程之外修改此类材料的权利。在未从控制此类材料版权的人员处获得充分许可的情况下,不得在IETF标准流程之外修改本文件,也不得在IETF标准流程之外创建其衍生作品,除了将其格式化以RFC形式发布或将其翻译成英语以外的其他语言。

Table of Contents

目录

   1. Introduction ....................................................4
   2. Document Outline ................................................5
   3. Requirements Notation ...........................................5
   4. Definitions and Abbreviations ...................................5
      4.1. Definitions ................................................6
      4.2. Abbreviations ..............................................6
   5. General Procedures for Raptor FEC Schemes .......................6
   6. Raptor FEC Schemes for Arbitrary Packet Flows ...................8
      6.1. Introduction ...............................................8
      6.2. Formats and Codes ..........................................8
           6.2.1. FEC Framework Configuration Information .............8
           6.2.2. Source FEC Payload ID ...............................9
           6.2.3. Repair FEC Payload ID ..............................10
      6.3. Procedures ................................................11
           6.3.1. Source Symbol Construction .........................11
           6.3.2. Repair Packet Construction .........................12
      6.4. FEC Code Specification ....................................12
   7. Optimized Raptor FEC Scheme for Arbitrary Packet Flows .........12
      7.1. Introduction ..............................................12
      7.2. Formats and Codes .........................................13
           7.2.1. FEC Framework Configuration Information ............13
           7.2.2. Source FEC Payload ID ..............................13
           7.2.3. Repair FEC Payload ID ..............................13
      7.3. Procedures ................................................13
           7.3.1. Source Symbol Construction .........................13
           7.3.2. Repair Packet Construction .........................14
      7.4. FEC Code Specification ....................................14
   8. Raptor FEC Scheme for a Single Sequenced Flow ..................15
      8.1. Formats and Codes .........................................15
           8.1.1. FEC Framework Configuration Information ............15
           8.1.2. Source FEC Payload ID ..............................15
           8.1.3. Repair FEC Payload ID ..............................15
      8.2. Procedures ................................................16
           8.2.1. Source Symbol Construction .........................16
           8.2.2. Derivation of Source FEC Packet
                  Identification Information .........................17
           8.2.3. Repair Packet Construction .........................18
           8.2.4. Procedures for RTP Source Flows ....................18
      8.3. FEC Code Specification ....................................18
   9. Security Considerations ........................................18
   10. Session Description Protocol (SDP) Signaling ..................19
   11. Congestion Control Considerations .............................19
   12. IANA Considerations ...........................................19
      12.1. Registration of FEC Scheme IDs ...........................19
   13. Acknowledgements ..............................................20
   14. References ....................................................21
        
   1. Introduction ....................................................4
   2. Document Outline ................................................5
   3. Requirements Notation ...........................................5
   4. Definitions and Abbreviations ...................................5
      4.1. Definitions ................................................6
      4.2. Abbreviations ..............................................6
   5. General Procedures for Raptor FEC Schemes .......................6
   6. Raptor FEC Schemes for Arbitrary Packet Flows ...................8
      6.1. Introduction ...............................................8
      6.2. Formats and Codes ..........................................8
           6.2.1. FEC Framework Configuration Information .............8
           6.2.2. Source FEC Payload ID ...............................9
           6.2.3. Repair FEC Payload ID ..............................10
      6.3. Procedures ................................................11
           6.3.1. Source Symbol Construction .........................11
           6.3.2. Repair Packet Construction .........................12
      6.4. FEC Code Specification ....................................12
   7. Optimized Raptor FEC Scheme for Arbitrary Packet Flows .........12
      7.1. Introduction ..............................................12
      7.2. Formats and Codes .........................................13
           7.2.1. FEC Framework Configuration Information ............13
           7.2.2. Source FEC Payload ID ..............................13
           7.2.3. Repair FEC Payload ID ..............................13
      7.3. Procedures ................................................13
           7.3.1. Source Symbol Construction .........................13
           7.3.2. Repair Packet Construction .........................14
      7.4. FEC Code Specification ....................................14
   8. Raptor FEC Scheme for a Single Sequenced Flow ..................15
      8.1. Formats and Codes .........................................15
           8.1.1. FEC Framework Configuration Information ............15
           8.1.2. Source FEC Payload ID ..............................15
           8.1.3. Repair FEC Payload ID ..............................15
      8.2. Procedures ................................................16
           8.2.1. Source Symbol Construction .........................16
           8.2.2. Derivation of Source FEC Packet
                  Identification Information .........................17
           8.2.3. Repair Packet Construction .........................18
           8.2.4. Procedures for RTP Source Flows ....................18
      8.3. FEC Code Specification ....................................18
   9. Security Considerations ........................................18
   10. Session Description Protocol (SDP) Signaling ..................19
   11. Congestion Control Considerations .............................19
   12. IANA Considerations ...........................................19
      12.1. Registration of FEC Scheme IDs ...........................19
   13. Acknowledgements ..............................................20
   14. References ....................................................21
        
1. Introduction
1. 介绍

The "Forward Error Correction (FEC) Framework" [RFC6363] describes a general framework for the use of Forward Error Correction in association with arbitrary packet flows. Modeled after the FEC Building Block developed by the IETF Reliable Multicast Transport working group [RFC5052], the FEC Framework defines the concept of FEC Schemes that provide specific Forward Error Correction Schemes. This document describes six FEC Schemes that make use of the Raptor and RaptorQ FEC codes as defined in [RFC5053] and [RFC6330].

“前向纠错(FEC)框架”[RFC6363]描述了与任意分组流相关联的前向纠错使用的一般框架。FEC框架以IETF可靠多播传输工作组[RFC5052]开发的FEC构建块为模型,定义了提供特定前向纠错方案的FEC方案的概念。本文件描述了使用[RFC5053]和[RFC6330]中定义的Raptor和RaptorQ FEC代码的六种FEC方案。

The FEC protection mechanism is independent of the type of source data that can be an arbitrary sequence of packets, for example audio or video data. In general, the operation of the protection mechanism is as follows:

FEC保护机制独立于源数据的类型,源数据可以是包的任意序列,例如音频或视频数据。一般而言,保护机制的操作如下:

o The sender determines a set of source packets (a source block) to be protected together based on the FEC Framework Configuration Information.

o 发送方基于FEC框架配置信息确定要一起保护的一组源分组(源块)。

o The sender arranges the source packets into a set of source symbols, each of which is the same size.

o 发送方将源分组排列成一组源符号,每个符号的大小相同。

o The sender applies the Raptor/RaptorQ protection operation on the source symbols to generate the required number of repair symbols.

o 发送方对源符号应用Raptor/RaptorQ保护操作,以生成所需数量的修复符号。

o The sender packetizes the repair symbols and sends the repair packet(s) and the source packets to the receiver(s). Per the FEC Framework requirements, the sender MUST transmit the source and repair packets in different source and repair flows, or in the case Real-time Transport Protocol (RTP) transport is used for repair packets, in different RTP streams.

o 发送方将修复符号打包,并将修复包和源包发送给接收方。根据FEC框架要求,发送方必须在不同的源和修复流中传输源和修复数据包,或者在实时传输协议(RTP)传输用于修复数据包的情况下,在不同的RTP流中传输源和修复数据包。

o At the receiver side, if all of the source packets are successfully received, there is no need for FEC recovery and the repair packets are discarded. However, if there are missing source packets, the repair packets can be used to recover the missing information.

o 在接收机侧,如果成功接收到所有源分组,则不需要FEC恢复,并且丢弃修复分组。然而,如果存在丢失的源数据包,则可以使用修复数据包来恢复丢失的信息。

The operation of the FEC mechanism requires that the receiver is able to identify the relationships between received source packets and repair packets, in particular, which source packets are missing. In many cases, data already exists in the source packets that can be used to refer to source packets and to identify which packets are missing. In this case, we assume it is possible to derive a "sequence number" directly or indirectly from the source packets, and this sequence number can be used within the FEC Scheme. This case is referred to as a "single sequenced flow". In this case, the FEC

FEC机制的操作要求接收机能够识别所接收的源分组和修复分组之间的关系,尤其是识别丢失了哪些源分组。在许多情况下,源数据包中已经存在数据,这些数据包可用于引用源数据包和识别丢失的数据包。在这种情况下,我们假设可以直接或间接地从源分组导出“序列号”,并且该序列号可以在FEC方案中使用。这种情况称为“单一顺序流”。在这种情况下,FEC

Source Payload ID defined in [RFC6363] is empty and the source packets are not modified by the application of FEC, with obvious backwards compatibility advantages.

[RFC6363]中定义的源有效负载ID为空,并且源数据包不被FEC的应用修改,具有明显的向后兼容性优势。

Otherwise, it is necessary to add data to the source packets for FEC purposes in the form of a non-empty FEC Source Payload ID. This is referred to as the "arbitrary packet flow" case. This document defines six FEC Schemes, two for the case of a single sequenced flow and four for the case of arbitrary packet flows.

否则,有必要以非空FEC源有效负载ID的形式将数据添加到源分组以用于FEC目的。这被称为“任意分组流”情况。本文档定义了六种FEC方案,其中两种用于单序列流,四种用于任意分组流。

2. Document Outline
2. 文件大纲

This document is organized as follows:

本文件的组织结构如下:

o Section 5 defines general procedures applicable to the use of the Raptor and RaptorQ codes in the context of the FEC Framework.

o 第5节定义了适用于在FEC框架中使用Raptor和RaptorQ代码的一般程序。

o Section 6 defines a FEC Scheme for the case of arbitrary source flows and follows the format defined for FEC Schemes in [RFC6363]. When used with Raptor codes, this scheme is equivalent to that defined in 3GPP TS 26.346, "Multimedia Broadcast/Multicast Service (MBMS); Protocols and codecs" [MBMSTS].

o 第6节为任意源流定义了FEC方案,并遵循[RFC6363]中为FEC方案定义的格式。当与Raptor代码一起使用时,该方案相当于3GPP TS 26.346“多媒体广播/多播服务(MBMS);协议和编解码器”[MBMSTS]中定义的方案。

o Section 7 defines a FEC Scheme similar to that defined in Section 6 but with optimizations for the case where only limited source block sizes are required. When used with Raptor codes, this scheme is equivalent to that defined in ETSI TS 102.034, "Digital Video Broadcasting (DVB); Transport of MPEG-2 Based DVB Services over IP Based Networks" [DVBTS] for arbitrary packet flows.

o 第7节定义了与第6节中定义的类似的FEC方案,但针对只需要有限源块大小的情况进行了优化。当与Raptor代码一起使用时,该方案相当于ETSI TS 102.034“数字视频广播(DVB);[DVBTS]中定义的用于任意分组流的基于IP网络的MPEG-2的DVB服务传输”。

o Section 8 defines a FEC Scheme for the case of a single flow, which is already provided with a source packet sequence number. When used with Raptor codes, this scheme is equivalent to that defined in [DVBTS] for the case of a single sequenced flow.

o 第8节定义了单个流情况下的FEC方案,该流已经提供了源分组序列号。当与Raptor代码一起使用时,该方案相当于[DVBTS]中针对单序列流定义的方案。

3. Requirements Notation
3. 需求符号

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 [RFC2119].

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

4. Definitions and Abbreviations
4. 定义和缩写

The definitions, notations, and abbreviations commonly used in this document are summarized in this section.

本节概述了本文件中常用的定义、符号和缩写。

4.1. Definitions
4.1. 定义

The FEC-specific terminology used in this document is defined in [RFC6363]. In this document, as in [RFC6363], the first letter of each FEC-specific term is capitalized along with the new terms defined here:

本文件中使用的FEC专用术语定义见[RFC6363]。在本文件中,如[RFC6363]中所述,每个FEC特定术语的第一个字母与此处定义的新术语一起大写:

Symbol: A unit of data. Its size, in octets, is referred to as the symbol size.

符号:一种数据单位。其大小(以八位字节为单位)称为符号大小。

FEC Framework Configuration Information: Information that controls the operation of the FEC Framework. Each FEC Framework instance has its own configuration information.

FEC框架配置信息:控制FEC框架操作的信息。每个FEC框架实例都有自己的配置信息。

4.2. Abbreviations
4.2. 缩写

This document uses abbreviations that apply to the FEC Framework in general as defined in [RFC6363]. In addition, this document uses the following abbreviations

本文件使用了[RFC6363]中定义的一般适用于FEC框架的缩写。此外,本文件使用以下缩写

FSSI: FEC-Scheme-Specific Information.

FSSI:FEC方案特定信息。

ADU: Application Data Unit

ADU:应用数据单元

ADUI: Application Data Unit Information.

ADUI:应用程序数据单元信息。

SPI: Source Packet Information.

SPI:源数据包信息。

MSBL: Maximum Source Block Length

MSBL:最大源块长度

5. General Procedures for Raptor FEC Schemes
5. Raptor FEC方案的一般程序

This section specifies general procedures that apply to all Raptor and RaptorQ FEC Schemes, specifically the construction of source symbols from a set of source transport payloads.

本节规定了适用于所有Raptor和RaptorQ FEC方案的一般程序,特别是从一组源传输有效载荷构建源符号。

For any field defined in this document, the octets are ordered in network byte order.

对于本文档中定义的任何字段,八位字节按网络字节顺序排列。

As described in [RFC6363], for each Application Data Unit (ADU) in a source block, the FEC Scheme is provided with:

如[RFC6363]所述,对于源块中的每个应用数据单元(ADU),FEC方案具有:

o A description of the source data flow with which the ADU is associated and an integer identifier associated with that flow.

o 与ADU关联的源数据流的描述以及与该流关联的整数标识符。

o The ADU itself.

o ADU本身。

o The length of the ADU.

o ADU的长度。

For each ADU, we define the Application Data Unit Information (ADUI) as follows:

对于每个ADU,我们将应用程序数据单元信息(ADUI)定义如下:

Let

允许

o n be the number of ADUs in the source block.

o n是源块中的ADU数。

o T be the source symbol size in octets. Note: this information is provided by the FEC Scheme as defined below.

o T是源符号大小(以八位字节为单位)。注:该信息由下文定义的FEC方案提供。

o i the index to the (i+1)-th ADU to be added to the source block, 0 <= i < n.

o i要添加到源块的第(i+1)个ADU的索引,0<=i<n。

o f[i] denote the integer identifier associated with the source data flow from which the i-th ADU was taken.

o f[i]表示与获取第i个ADU的源数据流相关联的整数标识符。

o F[i] denote a single octet representing the value of f[i].

o F[i]表示表示F[i]值的单个八位组。

o l[i] be a length indication associated with the i-th ADU -- the nature of the length indication is defined by the FEC Scheme.

o l[i]是与第i个ADU相关的长度指示——长度指示的性质由FEC方案定义。

o L[i] denote two octets representing the value of l[i] in network byte order (high order octet first) of the i-th ADU.

o L[i]表示两个八位字节,表示第i个ADU的网络字节顺序(高阶八位字节优先)中L[i]的值。

o R[i] denote the number of octets in the (i+1)-th ADU.

o R[i]表示第(i+1)个ADU中的八位字节数。

o s[i] be the smallest integer such that s[i]*T >= (l[i]+3). Note: s[i] is the length of SPI[i] in units of symbols of size T octets.

o s[i]是最小的整数,使得s[i]*T>=(l[i]+3)。注:s[i]是SPI[i]的长度,单位为大小为T八位字节的符号。

o P[i] denote s[i]*T-(l[i]+3) zero octets. Note: P[i] are padding octets to align the start of each UDP packet with the start of a symbol.

o P[i]表示s[i]*T-(l[i]+3)零八位组。注意:P[i]是填充八位字节,以使每个UDP数据包的开头与符号的开头对齐。

o ADUI[i] be the concatenation of F[i], L[i], R[i], and P[i].

o ADUI[i]是F[i]、L[i]、R[i]和P[i]的串联。

Then, a source data block is constructed by concatenating ADUI[i] for i = 0, 1, 2, ... n-1. The source data block size, S, is then given by sum {s[i]*T, i=0, ..., n-1}. Symbols are allocated integer encoding symbol IDs (ESI) consecutively starting from zero within the source block. Each ADU is associated with the ESI of the first symbol containing SPI for that packet. Thus, the encoding symbol ID value associated with the j-th source packet, ESI[j], is given by ESI[j] = 0, for j=0 and ESI[j] = sum{s[i], i=0,...,(j-1)}, for 0 < j < n.

然后,通过将i=0,1,2。。。n-1。然后,源数据块大小S由和{S[i]*T,i=0,…,n-1}给出。符号在源块内从零开始连续分配整数编码符号ID(ESI)。每个ADU与包含该分组的SPI的第一符号的ESI相关联。因此,对于j=0,与第j源分组相关联的编码符号ID值ESI[j]由ESI[j]=0给出,对于0<j<n,由ESI[j]=sum{s[i],i=0,…(j-1)}给出。

Source blocks are identified by integer Source Block Numbers. This specification does not specify how Source Block Numbers are allocated to the source blocks. The Source FEC Packet Identification

源块由整数源块编号标识。本规范未指定如何将源块编号分配给源块。源FEC包标识

Information consists of the identity of the source block and the encoding symbol ID associated with the packet.

信息包括源块的标识和与数据包关联的编码符号ID。

6. Raptor FEC Schemes for Arbitrary Packet Flows
6. 任意分组流的Raptor FEC方案
6.1. Introduction
6.1. 介绍

This section specifies a FEC Scheme for the application of the Raptor and RaptorQ codes to arbitrary packet flows. This scheme is recommended in scenarios where maximal generality is required.

本节规定了将Raptor和RaptorQ代码应用于任意数据包流的FEC方案。在需要最大通用性的情况下,建议使用此方案。

When used with the Raptor codes specified in [RFC5053], this scheme is equivalent to that specified in [MBMSTS].

当与[RFC5053]中规定的猛禽代码一起使用时,该方案与[MBMSTS]中规定的方案等效。

6.2. Formats and Codes
6.2. 格式和代码
6.2.1. FEC Framework Configuration Information
6.2.1. FEC框架配置信息
6.2.1.1. FEC Scheme ID
6.2.1.1. FEC方案ID

The value of the FEC Scheme ID for the Fully-Specified FEC scheme defined in this section is 1 when [RFC5053] is used and 2 when [RFC6330] is used, as assigned by IANA.

当使用[RFC5053]时,本节中定义的完全指定FEC方案的FEC方案ID值为1,当使用[RFC6330]时,该值为2,如IANA所分配。

6.2.1.2. Scheme-Specific Elements
6.2.1.2. 方案特定要素

The scheme-specific elements of the FEC Framework Configuration information for this scheme are as follows:

此方案的FEC框架配置信息的方案特定元素如下:

MSBL: The maximum source block length. A non-negative integer less than 8192 for FEC Scheme 1 and less than 56403 for FEC Scheme 2, in units of symbols. The field type is unsigned integer.

MSBL:最大源块长度。以符号为单位的非负整数,对于FEC方案1小于8192,对于FEC方案2小于56403。字段类型为无符号整数。

T: The encoding symbol size. A non-negative integer less than 65536, in units of octets. The field type is unsigned integer.

T:编码符号大小。小于65536的非负整数,以八位字节为单位。字段类型为无符号整数。

P: The payload ID format indicator. The P bit shall be set to zero to indicate payload ID format A or to one to indicate payload ID format B. The field type is unsigned integer.

P:有效负载ID格式指示器。P位应设置为0以表示有效负载ID格式A,或设置为1以表示有效负载ID格式B。字段类型为无符号整数。

   An encoding format for the encoding symbol size, MSBL and payload ID
   format indicator is defined below.
                           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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |       Symbol Size (T)         |          MSBL                 |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |P|  Reserved   |
      +-+-+-+-+-+-+-+-+
        
   An encoding format for the encoding symbol size, MSBL and payload ID
   format indicator is defined below.
                           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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |       Symbol Size (T)         |          MSBL                 |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |P|  Reserved   |
      +-+-+-+-+-+-+-+-+
        

Figure 1: FEC-Scheme-Specific Information

图1:FEC方案特定信息

The P bit shall be set to zero to indicate Payload ID format A or to one to indicate Payload ID format B. The last octet of FEC-Scheme-Specific Information SHOULD be omitted, indicating that Payload ID format A is in use. The payload ID format indicator defines which of the Source FEC Payload ID and Repair FEC Payload ID formats defined below shall be used. Payload ID format B SHALL NOT be used for FEC Scheme 1. The two formats enable different use cases. Format A is appropriate in case the stream has many typically smaller source blocks, and format B is applicable if the stream has fewer large source blocks, each with many encoding symbols.

P位应设置为0以指示有效负载ID格式A,或设置为1以指示有效负载ID格式B。应省略FEC方案特定信息的最后八位字节,以指示有效负载ID格式A正在使用。有效载荷ID格式指示器定义应使用以下定义的源FEC有效载荷ID和维修FEC有效载荷ID格式。有效载荷ID格式B不得用于FEC方案1。这两种格式支持不同的用例。格式A适用于流具有许多通常较小的源块的情况,而格式B适用于流具有较少的大源块(每个具有许多编码符号)的情况。

6.2.2. Source FEC Payload ID
6.2.2. 源FEC有效负载ID

This scheme makes use of an Explicit Source FEC Payload ID, which is appended to the end of the source packets. Two formats are defined for the Source FEC Payload ID, format A and format B. The format that is used is signaled as part of the FEC Framework Configuration Information.

该方案利用附加到源数据包末尾的显式源FEC有效负载ID。源FEC有效负载ID定义了两种格式:格式A和格式B。所使用的格式作为FEC框架配置信息的一部分发出信号。

The Source FEC Payload ID for format A is provided in Figure 2.

格式A的源FEC有效负载ID如图2所示。

                           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 Block Number (SBN)   |   Encoding Symbol ID (ESI)    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
                           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 Block Number (SBN)   |   Encoding Symbol ID (ESI)    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

Figure 2: Source FEC Payload ID - Format A

图2:源FEC有效负载ID-格式A

Source Block Number (SBN), (16 bits): Identifier for the source block that the source data within the packet relates. The field type is unsigned integer.

源块编号(SBN),(16位):数据包内源数据相关的源块标识符。字段类型为无符号整数。

Encoding Symbol ID (ESI), (16 bits): The starting symbol index of the source packet in the source block. The field type is unsigned integer.

编码符号ID(ESI)(16位):源块中源数据包的起始符号索引。字段类型为无符号整数。

The Source FEC Payload ID for format B is provided in Figure 3.

格式B的源FEC有效负载ID如图3所示。

                           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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      SBN      |            Encoding Symbol ID (ESI)           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
                           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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      SBN      |            Encoding Symbol ID (ESI)           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

Figure 3: Source FEC Payload ID - Format B

图3:源FEC有效负载ID-格式B

Source Block Number (SBN), (8 bits): Identifier for the source block that the source data within the packet relates. The field type is unsigned integer.

源块编号(SBN),(8位):数据包中源数据相关的源块标识符。字段类型为无符号整数。

Encoding Symbol ID (ESI), (24 bits): The starting symbol index of the source packet in the source block. The field type is unsigned integer.

编码符号ID(ESI)(24位):源块中源数据包的起始符号索引。字段类型为无符号整数。

6.2.3. Repair FEC Payload ID
6.2.3. 修复FEC有效负载ID

Two formats for the Repair FEC Payload ID, format A and format B, are defined below.

维修FEC有效负载ID的两种格式,格式A和格式B定义如下。

The Repair FEC Payload ID for format A is provided in Figure 4.

图4提供了格式A的修复FEC有效负载ID。

                           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 Block Number (SBN)   |   Encoding Symbol ID (ESI)    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |   Source Block Length (SBL)   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
                           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 Block Number (SBN)   |   Encoding Symbol ID (ESI)    |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |   Source Block Length (SBL)   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

Figure 4: Repair FEC Payload ID - Format A

图4:修复FEC有效负载ID-格式A

Source Block Number (SBN), (16 bits): Identifier for the source block that the repair symbols within the packet relate. For format A, it is of size 16 bits. The field type is unsigned integer.

源块编号(SBN)(16位):数据包内修复符号相关的源块标识符。对于格式A,其大小为16位。字段类型为无符号整数。

Encoding Symbol ID (ESI), (16 bits): Identifier for the encoding symbols within the packet. The field type is unsigned integer.

编码符号ID(ESI)(16位):数据包内编码符号的标识符。字段类型为无符号整数。

Source Block Length (SBL), (16 bits): The number of source symbols in the source block. The field type is unsigned integer.

源块长度(SBL),(16位):源块中的源符号数。字段类型为无符号整数。

The Repair FEC Payload ID for format B is provided in Figure 5.

图5提供了格式B的修复FEC有效负载ID。

                           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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      SBN      |            Encoding Symbol ID (ESI)           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |   Source Block Length (SBL)   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
                           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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      SBN      |            Encoding Symbol ID (ESI)           |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |   Source Block Length (SBL)   |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

Figure 5: Repair FEC Payload ID - Format B

图5:修复FEC有效负载ID-格式B

Source Block Number (SBN), (8 bits): Identifier for the source block that the repair symbols within the packet relate. For format B, it is of size 8 bits. The field type is unsigned integer.

源块编号(SBN),(8位):数据包内修复符号相关的源块标识符。对于格式B,其大小为8位。字段类型为无符号整数。

Encoding Symbol ID (ESI), (24 bits): Identifier for the encoding symbols within the packet. The field type is unsigned integer.

编码符号ID(ESI)(24位):数据包内编码符号的标识符。字段类型为无符号整数。

Source Block Length (SBL), (16 bits): The number of source symbols in the source block. The field type is unsigned integer.

源块长度(SBL),(16位):源块中的源符号数。字段类型为无符号整数。

The interpretation of the Source Block Number, encoding symbol ID, and Source Block Length is defined by the FEC Code Specification in [RFC5053] for FEC Scheme 1 and [RFC6330] for FEC Scheme 2.

源块编号、编码符号ID和源块长度的解释由FEC方案1的[RFC5053]和FEC方案2的[RFC6330]中的FEC代码规范定义。

6.3. Procedures
6.3. 程序
6.3.1. Source Symbol Construction
6.3.1. 源符号构造

FEC Scheme 1 and FEC Scheme 2 use the procedures defined in Section 5 to construct a set of source symbols to which the FEC Code can be applied. The sender MUST allocate Source Block Numbers to source blocks sequentially, wrapping around to zero after Source Block Number 65535 (format A) or 255 (format B).

FEC方案1和FEC方案2使用第5节中定义的过程来构造一组可应用FEC代码的源符号。发送方必须按顺序将源块编号分配给源块,在源块编号65535(格式A)或255(格式B)后换行为零。

During the construction of the source block:

在源区块施工期间:

o the length indication, l[i], included in the Source Packet Information for each packet shall be the transport payload length, i.e., the length of the ADU.

o 包括在每个分组的源分组信息中的长度指示l[i]应为传输有效载荷长度,即ADU的长度。

o the value of s[i] in the construction of the Source Packet Information for each packet shall be the smallest integer such that s[i]*T >= (l[i]+3).

o 每个分组的源分组信息的构造中的s[i]的值应为最小整数,使得s[i]*T>=(l[i]+3)。

6.3.2. Repair Packet Construction
6.3.2. 修复包构造

For FEC Scheme 1 [RFC5053], the ESI value placed into a repair packet is calculated as specified in Section 5.3.2 of [RFC5053].

对于FEC方案1[RFC5053],按照[RFC5053]第5.3.2节的规定计算放入修复包中的ESI值。

For FEC Scheme 2 [RFC6330], the ESI value placed into a repair packet is calculated as specified in Section 4.4.2 of [RFC6330].

对于FEC方案2[RFC6330],按照[RFC6330]第4.4.2节的规定计算放入修复包中的ESI值。

In both cases, K is identical to SBL.

在这两种情况下,K与SBL相同。

6.4. FEC Code Specification
6.4. FEC代码规范

The FEC encoder defined in [RFC5053] SHALL be used for FEC Scheme 1 and the FEC encoder defined in [RFC6330] SHALL be used for FEC Scheme 2. For both FEC Scheme 1 and FEC Scheme 2, the source symbols passed to the FEC encoder SHALL consist of the source symbols constructed according to Section 6.3.1. Thus, the value of the parameter K used by the FEC encoder (equal to the Source Block Length) may vary amongst the blocks of the stream but SHALL NOT exceed the Maximum Source Block Length signaled in the FEC-Scheme-Specific Information. The symbol size, T, to be used for source block construction and the repair symbol construction is equal to the encoding symbol size signaled in the FEC-Scheme-Specific Information.

[RFC5053]中定义的FEC编码器应用于FEC方案1,[RFC6330]中定义的FEC编码器应用于FEC方案2。对于FEC方案1和FEC方案2,传递给FEC编码器的源符号应包括根据第6.3.1节构造的源符号。因此,FEC编码器使用的参数K的值(等于源块长度)可在流的块之间变化,但不得超过在FEC方案特定信息中发信号的最大源块长度。用于源块构造和修复符号构造的符号大小T等于在FEC方案特定信息中用信号表示的编码符号大小。

7. Optimized Raptor FEC Scheme for Arbitrary Packet Flows
7. 针对任意分组流的优化Raptor FEC方案
7.1. Introduction
7.1. 介绍

This section specifies a slightly modified version of the FEC Scheme specified in Section 6 that is applicable to scenarios in which only relatively small block sizes will be used. These modifications admit substantial optimizations to both sender and receiver implementations.

本节规定了第6节中规定的FEC方案的略微修改版本,该版本适用于仅使用相对较小块大小的场景。这些修改允许对发送方和接收方实现进行重大优化。

In outline, the modifications are:

概括而言,这些修改是:

o All source blocks within a stream are encoded using the same source block size. Code shortening is used to encode blocks of different sizes. This is achieved by padding every block to the required size using zero symbols before encoding. The zero symbols are then discarded after decoding. The source block size to be used for a stream is signaled in the Maximum Source Block Length (MSBL) field of the scheme-specific information. The extended source block is constructed by adding zero or more padding symbols such that the total number of symbols, MSBL, is one of the values listed in Section 7.4. Each padding symbol consists of T octets where the value of each octet is zero. MSBL

o 流中的所有源块都使用相同的源块大小进行编码。代码缩短用于对不同大小的块进行编码。这是通过在编码之前使用零符号将每个块填充到所需大小来实现的。解码后,零符号被丢弃。要用于流的源块大小在方案特定信息的最大源块长度(MSBL)字段中发出信号。扩展源块是通过添加零个或多个填充符号来构造的,这样符号总数MSBL就是第7.4节中列出的值之一。每个填充符号由T个八位字节组成,其中每个八位字节的值为零。MSBL

MUST be selected as the smallest value of the possible values in Section 7.4 that is greater than or equal to K.

必须选择为第7.4节中可能值中大于或等于K的最小值。

o The possible choices of the MSBL for a stream is restricted to a small specified set. This allows explicit operation sequences for encoding and decoding the restricted set of source block lengths to be pre-calculated and embedded in software or hardware.

o 流的MSBL的可能选择仅限于一个小的指定集。这允许用于编码和解码受限源块长度集的显式操作序列被预先计算并嵌入到软件或硬件中。

When used with the Raptor codes specified in [RFC5053], this scheme is equivalent to that specified in [DVBTS] for arbitrary packet flows.

当与[RFC5053]中指定的Raptor代码一起使用时,此方案相当于[DVBTS]中针对任意数据包流指定的方案。

7.2. Formats and Codes
7.2. 格式和代码
7.2.1. FEC Framework Configuration Information
7.2.1. FEC框架配置信息
7.2.1.1. FEC Scheme ID
7.2.1.1. FEC方案ID

The value of the FEC Scheme ID for the Fully-Specified FEC scheme defined in this section is 3 when [RFC5053] is used and 4 when [RFC6330] is used, as assigned by IANA.

当使用[RFC5053]时,本节中定义的完全指定FEC方案的FEC方案ID值为3,当使用[RFC6330]时,该值为4,如IANA所分配。

7.2.1.2. FEC-Scheme-Specific Information
7.2.1.2. FEC方案特定信息

The elements for FEC Scheme 3 are the same as specified for FEC Scheme 1, and the elements specified for FEC Scheme 4 are the same as specified for FEC 2, as specified in Section 6.2.1.2, except that the MSBL value is as defined in Section 7.4.

根据第6.2.1.2节的规定,FEC方案3的元素与FEC方案1的元素相同,FEC方案4的元素与FEC 2的元素相同,但MSBL值如第7.4节所定义。

7.2.2. Source FEC Payload ID
7.2.2. 源FEC有效负载ID

The elements for FEC Scheme 3 are the same as specified for FEC Scheme 1, and the elements specified for FEC Scheme 4 are the same as specified for FEC 2, as specified in Section 6.2.2.

根据第6.2.2节的规定,FEC方案3的元素与FEC方案1的元素相同,FEC方案4的元素与FEC 2的元素相同。

7.2.3. Repair FEC Payload ID
7.2.3. 修复FEC有效负载ID

The elements for FEC Scheme 3 are the same as specified for FEC Scheme 1, and the elements specified for FEC Scheme 4 are the same as specified for FEC 2, as specified in Section 6.2.3.

根据第6.2.3节的规定,FEC方案3的元素与FEC方案1的元素相同,FEC方案4的元素与FEC 2的元素相同。

7.3. Procedures
7.3. 程序
7.3.1. Source Symbol Construction
7.3.1. 源符号构造

See Section 6.3.1.

见第6.3.1节。

7.3.2. Repair Packet Construction
7.3.2. 修复包构造

The number of repair symbols contained within a repair packet is computed from the packet length. The ESI value placed into a repair packet is calculated as X + MSBL - SBL, where X would be the ESI value of the repair packet if the ESI were calculated as specified in Section 5.3.2 of [RFC5053] for FEC Scheme 3 and as specified in Section 4.4.2 of [RFC6330] for FEC Scheme 4, where K=SBL. The value of SBL SHALL be, at most, the value of MSBL.

修复分组中包含的修复符号的数量根据分组长度计算。放入修复包中的ESI值计算为X+MSBL-SBL,其中,如果按照[RFC5053]第5.3.2节中针对FEC方案3的规定以及[RFC6330]第4.4.2节中针对FEC方案4的规定计算ESI,则X将是修复包的ESI值,其中K=SBL。SBL的值最多应为MSBL的值。

7.4. FEC Code Specification
7.4. FEC代码规范

The FEC encoder defined in [RFC5053] SHALL be used for FEC Scheme 3 and the FEC encoder defined in [RFC6330] SHALL be used for FEC Scheme 4. The source symbols passed to the FEC encoder SHALL consist of the source symbols constructed according to Section 6.3.1 extended with zero or more padding symbols. The extension SHALL be such that the total number of symbols in the source block is equal to the MSBL signaled in the FEC-Scheme-Specific Information. Thus, the value of the parameter K used by the FEC encoder is equal to the MSBL for all blocks of the stream. Padding symbols shall consist entirely of octets set to the value zero. The symbol size, T, to be used for the source block construction and the repair symbol construction, is equal to the encoding symbol size signaled in the FEC-Scheme-Specific Information.

[RFC5053]中定义的FEC编码器应用于FEC方案3,[RFC6330]中定义的FEC编码器应用于FEC方案4。传递给FEC编码器的源符号应包括根据第6.3.1节构造的源符号,并用零个或多个填充符号扩展。扩展应确保源块中的符号总数等于FEC方案特定信息中发出信号的MSBL。因此,FEC编码器使用的参数K的值等于流的所有块的MSBL。填充符号应完全由设置为零的八位字节组成。用于源块构造和修复符号构造的符号大小T等于在FEC方案特定信息中用信号表示的编码符号大小。

For FEC Scheme 3, the parameter T SHALL be set such that the number of source symbols in any source block is, at most, 8192. The MSBL parameter, and hence the number of symbols used in the FEC Encoding and Decoding operations, SHALL be set to one of the following values:

对于FEC方案3,参数T的设置应使得任何源块中的源符号的数量最多为8192。MSBL参数以及FEC编码和解码操作中使用的符号数应设置为以下值之一:

101, 120, 148, 164, 212, 237, 297, 371, 450, 560, 680, 842, 1031, 1139, 1281

101, 120, 148, 164, 212, 237, 297, 371, 450, 560, 680, 842, 1031, 1139, 1281

For FEC Scheme 4, the parameter T SHALL be set such that the number of source symbols in any source block is less than 56403. The MSBL parameter SHALL be set to one of the supported values for K' defined in Section 5.6 of [RFC6330].

对于FEC方案4,参数T的设置应使得任何源块中的源符号的数目小于56403。MSBL参数应设置为[RFC6330]第5.6节中定义的K'的支持值之一。

8. Raptor FEC Scheme for a Single Sequenced Flow
8. 单序列流的Raptor FEC方案
8.1. Formats and Codes
8.1. 格式和代码
8.1.1. FEC Framework Configuration Information
8.1.1. FEC框架配置信息
8.1.1.1. FEC Scheme ID
8.1.1.1. FEC方案ID

The value of the FEC Scheme ID for the Fully-Specified FEC scheme defined in this section is 5 when [RFC5053] is used and 6 when [RFC6330] is used, as assigned by IANA.

当使用[RFC5053]时,本节中定义的完全指定FEC方案的FEC方案ID值为5,当使用[RFC6330]时,为6,由IANA分配。

8.1.1.2. Scheme-Specific Elements
8.1.1.2. 方案特定要素

The elements for FEC Scheme 5 are the same as specified for FEC Scheme 1, and the elements specified for FEC Scheme 6 are the same as specified for FEC 2, as specified in Section 6.2.1.2.

根据第6.2.1.2节的规定,FEC方案5的元素与FEC方案1的元素相同,FEC方案6的元素与FEC 2的元素相同。

8.1.2. Source FEC Payload ID
8.1.2. 源FEC有效负载ID

The Source FEC Payload ID field is not used by this FEC Scheme. Source packets are not modified by this FEC Scheme.

此FEC方案未使用源FEC有效负载ID字段。此FEC方案不会修改源数据包。

8.1.3. Repair FEC Payload ID
8.1.3. 修复FEC有效负载ID

Two formats for the Repair FEC Payload ID are defined, format A and format B.

定义了维修FEC有效负载ID的两种格式:格式A和格式B。

                           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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |    Initial Sequence Number    |      Source Block Length      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      Encoding Symbol ID       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
                           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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |    Initial Sequence Number    |      Source Block Length      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |      Encoding Symbol ID       |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

Figure 6: Repair FEC Payload ID - Format A

图6:维修FEC有效负载ID-格式A

Initial Sequence Number (Flow i ISN), (16 bits): This field specifies the lowest 16 bits of the sequence number of the first packet to be included in this sub-block. If the sequence numbers are shorter than 16 bits, then the received Sequence Number SHALL be logically padded with zero bits to become 16 bits in length, respectively. The field type is unsigned integer.

初始序列号(流i ISN),(16位):此字段指定要包含在此子块中的第一个数据包的序列号的最低16位。如果序列号短于16位,则接收序列号应在逻辑上用零位填充,以分别变为16位长度。字段类型为无符号整数。

Source Block Length (SBL), (16 bits): This field specifies the length of the source block in symbols. The field type is unsigned integer.

源块长度(SBL)(16位):此字段以符号形式指定源块的长度。字段类型为无符号整数。

Encoding Symbol ID (ESI), (16 bits): This field indicates which repair symbols are contained within this repair packet. The ESI provided is the ESI of the first repair symbol in the packet. The field type is unsigned integer.

编码符号ID(ESI)(16位):此字段指示此修复数据包中包含哪些修复符号。提供的ESI是分组中第一修复符号的ESI。字段类型为无符号整数。

                           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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |    Initial Sequence Number    |      Source Block Length      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                 Encoding Symbol ID            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        
                           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
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |    Initial Sequence Number    |      Source Block Length      |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
      |                 Encoding Symbol ID            |
      +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

Figure 7: Repair FEC Payload ID - Format B

图7:维修FEC有效负载ID-格式B

Initial Sequence Number (Flow i ISN), (16 bits): This field specifies the lowest 16 bits of the sequence number in the first packet to be included in this sub-block. If the sequence numbers are shorter than 16 bits, then the received Sequence Number SHALL be logically padded with zero bits to become 16 bits in length, respectively. The field type is unsigned integer.

初始序列号(流i ISN),(16位):此字段指定要包含在此子块中的第一个数据包中序列号的最低16位。如果序列号短于16位,则接收序列号应在逻辑上用零位填充,以分别变为16位长度。字段类型为无符号整数。

Source Block Length (SBL), (16 bits): This field specifies the length of the source block in symbols. The field type is unsigned integer.

源块长度(SBL)(16位):此字段以符号形式指定源块的长度。字段类型为无符号整数。

Encoding Symbol ID (ESI); (24 bits): This field indicates which repair symbols are contained within this repair packet. The ESI provided is the ESI of the first repair symbol in the packet. The field type is unsigned integer.

编码符号ID(ESI);(24位):此字段指示此修复数据包中包含哪些修复符号。提供的ESI是分组中第一修复符号的ESI。字段类型为无符号整数。

8.2. Procedures
8.2. 程序
8.2.1. Source Symbol Construction
8.2.1. 源符号构造

FEC Scheme 5 and FEC Scheme 6 use the procedures defined in Section 5 to construct a set of source symbols to which the FEC code can be applied.

FEC方案5和FEC方案6使用第5节中定义的过程来构造FEC代码可应用到的一组源符号。

During the construction of the source block:

在源区块施工期间:

o the length indication, l[i], included in the Source Packet Information for each packet shall be dependent on the protocol carried within the transport payload. Rules for RTP are specified below.

o 每个数据包的源数据包信息中包含的长度指示l[i]应取决于传输有效载荷中承载的协议。RTP的规则规定如下。

o the value of s[i] in the construction of the Source Packet Information for each packet shall be the smallest integer such that s[i]*T >= (l[i]+3)

o 每个分组的源分组信息的构造中的s[i]的值应为最小整数,使得s[i]*T>=(l[i]+3)

8.2.2. Derivation of Source FEC Packet Identification Information
8.2.2. 源FEC分组标识信息的推导

The Source FEC Packet Identification Information for a source packet is derived from the sequence number of the packet and information received in any repair FEC packet belonging to this source block. Source blocks are identified by the sequence number of the first source packet in the block. This information is signaled in all repair FEC packets associated with the source block in the Initial Sequence Number field.

源分组的源FEC分组标识信息来自分组的序列号和在属于该源块的任何修复FEC分组中接收的信息。源块由块中第一个源分组的序列号标识。该信息在与初始序列号字段中的源块相关联的所有修复FEC分组中用信号通知。

The length of the Source Packet Information (in octets) for source packets within a source block is equal to the length of the payload containing encoding symbols of the repair packets (i.e., not including the Repair FEC Payload ID) for that block, which MUST be the same for all repair packets. The Application Data Unit Information Length (ADUIL) in symbols is equal to this length divided by the encoding symbol size (which is signaled in the FEC Framework Configuration Information). The set of source packets included in the source block is determined by the Initial Sequence Number (ISN) and Source Block Length (SBL) as follows:

源块内的源分组的源分组信息的长度(以八位字节为单位)等于包含该块的修复分组的编码符号(即,不包括修复FEC有效载荷ID)的有效载荷的长度,该有效载荷对于所有修复分组必须相同。符号中的应用数据单元信息长度(ADUIL)等于该长度除以编码符号大小(在FEC框架配置信息中用信号表示)。包括在源块中的源分组集由初始序列号(ISN)和源块长度(SBL)确定,如下所示:

Let,

允许

o I be the Initial Sequence Number of the source block

o I是源块的初始序列号

o LP be the Source Packet Information Length in symbols

o LP是以符号表示的源数据包信息长度

o LB be the Source Block Length in symbols

o LB是源块长度(以符号表示)

Then, source packets with sequence numbers from I to I +(LB/LP)-1 inclusive are included in the source block. The Source Block Length, LB, MUST be chosen such that it is at least as large as the largest Source Packet Information Length LP.

然后,序列号从I到I+(LB/LP)-1(包括)的源分组被包括在源块中。必须选择源块长度LB,使其至少与最大源分组信息长度LP一样大。

Note that if no FEC repair packets are received, then no FEC decoding is possible, and it is unnecessary for the receiver to identify the Source FEC Packet Identification Information for the source packets.

注意,如果没有接收到FEC修复分组,则不可能进行FEC解码,并且接收机不需要识别源分组的源FEC分组标识信息。

The encoding symbol ID for a packet is derived from the following information:

数据包的编码符号ID来自以下信息:

o The sequence number, Ns, of the packet

o 数据包的序列号Ns

o The Source Packet Information Length for the source block, LP

o 源块的源数据包信息长度,LP

o The Initial Sequence Number of the source block, I

o 源块的初始序列号,I

Then, the encoding symbol ID for the packet with sequence number Ns is determined by the following formula:

然后,序列号为Ns的分组的编码符号ID由以下公式确定:

      ESI = ( Ns - I ) * LP
        
      ESI = ( Ns - I ) * LP
        

Note that all repair packets associated to a given source block MUST contain the same Source Block Length and Initial Sequence Number.

请注意,与给定源块关联的所有修复数据包必须包含相同的源块长度和初始序列号。

Note also that the source packet flow processed by the FEC encoder MUST have consecutive sequence numbers. In case the incoming source packet flow has a gap in the sequence numbers, then implementors SHOULD insert an ADU in the source block that complies to the format of the source packet flow, but is ignored at the application with high probability. For additional guidelines, refer to [RFC6363], Section 10.2, paragraph 5.

还要注意,由FEC编码器处理的源分组流必须具有连续的序列号。如果传入的源分组流在序列号中有间隙,则实现者应在源块中插入符合源分组流格式的ADU,但在应用程序中很可能被忽略。有关其他指南,请参考[RFC6363],第10.2节,第5段。

8.2.3. Repair Packet Construction
8.2.3. 修复包构造

See Section 7.3.2

见第7.3.2节

8.2.4. Procedures for RTP Source Flows
8.2.4. RTP源流的过程

In the specific case of RTP source packet flows, the RTP Sequence Number field SHALL be used as the sequence number in the procedures described above. The length indication included in the Application Data Unit Information SHALL be the RTP payload length plus the length of the contributing sources (CSRCs), if any, the RTP Header Extension, if present, and the RTP padding octets, if any. Note that this length is always equal to the UDP payload length of the packet minus 12.

在RTP源数据包流的特定情况下,RTP序列号字段应用作上述程序中的序列号。应用数据单元信息中包含的长度指示应为RTP有效负载长度加上贡献源(CSRC)的长度(如有)、RTP报头扩展(如有)和RTP填充八位字节(如有)。请注意,此长度始终等于数据包的UDP有效负载长度减去12。

8.3. FEC Code Specification
8.3. FEC代码规范

The elements for FEC Scheme 5 are the same as specified for FEC Scheme 3, and the elements specified for FEC Scheme 6 are the same as specified for FEC 4, as specified in Section 7.4.

根据第7.4节的规定,FEC方案5的元素与FEC方案3的元素相同,FEC方案6的元素与FEC 4的元素相同。

9. Security Considerations
9. 安全考虑

For the general security considerations related to the use of FEC, refer to [RFC6363]. Also consider relevant security considerations in [RFC5053] and [RFC6330]. No security vulnerabilities specific to this document have been identified.

有关使用FEC的一般安全注意事项,请参阅[RFC6363]。还考虑在[RCF5053]和[RCF6330]中的相关安全考虑。未发现本文件特定的安全漏洞。

10. Session Description Protocol (SDP) Signaling
10. 会话描述协议(SDP)信令

This section provides an SDP [RFC4566] example. The syntax follows the definition in [RFC6364]. Assume we have one source video stream (mid:S1) and one FEC repair stream (mid:R1). We form one FEC group with the "a=group:FEC-FR S1 R1" line. The source and repair streams are sent to the same port on different multicast groups. The repair window is set to 200 ms.

本节提供了一个SDP[RFC4566]示例。语法遵循[RFC6364]中的定义。假设我们有一个源视频流(mid:S1)和一个FEC修复流(mid:R1)。我们用“a=组:FEC-FR S1 R1”行组成一个FEC组。源和修复流被发送到不同多播组上的同一端口。维修窗口设置为200毫秒。

        v=0
        o=ali 1122334455 1122334466 IN IP4 fec.example.com
        s=Raptor FEC Example
        t=0 0
        a=group:FEC-FR S1 R1
        m=video 30000 RTP/AVP 100
        c=IN IP4 233.252.0.1/127
        a=rtpmap:100 MP2T/90000
        a=fec-source-flow: id=0
        a=mid:S1
        m=application 30000 UDP/FEC
        c=IN IP4 233.252.0.2/127
        a=fec-repair-flow: encoding-id=6; fssi=Kmax:8192,T:128,P:A
        a=repair-window:200ms
        a=mid:R1
        
        v=0
        o=ali 1122334455 1122334466 IN IP4 fec.example.com
        s=Raptor FEC Example
        t=0 0
        a=group:FEC-FR S1 R1
        m=video 30000 RTP/AVP 100
        c=IN IP4 233.252.0.1/127
        a=rtpmap:100 MP2T/90000
        a=fec-source-flow: id=0
        a=mid:S1
        m=application 30000 UDP/FEC
        c=IN IP4 233.252.0.2/127
        a=fec-repair-flow: encoding-id=6; fssi=Kmax:8192,T:128,P:A
        a=repair-window:200ms
        a=mid:R1
        
11. Congestion Control Considerations
11. 拥塞控制考虑因素

For the general congestion control considerations related to the use of FEC, refer to [RFC6363].

有关FEC使用的一般拥塞控制注意事项,请参阅[RFC6363]。

12. IANA Considerations
12. IANA考虑
12.1. Registration of FEC Scheme IDs
12.1. FEC方案id的注册

The value of FEC Scheme IDs is subject to IANA registration. For general guidelines on IANA considerations as they apply to this document, refer to [RFC6363].

FEC方案ID的值取决于IANA注册。有关适用于本文件的IANA注意事项的一般指南,请参阅[RFC6363]。

This document registers six values in the "FEC Framework (FECFRAME) FEC Encoding IDs" registry (http://www.iana.org/assignments/ rmt-fec-parameters/) as provided in Table 1. Each value refers to a Fully-Specified FEC scheme.

本文档在“FEC框架(FEC框架)FEC编码ID”注册表中注册了六个值(http://www.iana.org/assignments/ rmt fec参数/),如表1所示。每个值都表示完全指定的FEC方案。

   +----------+---------------------+----------------------------------+
   | FEC      | FEC Scheme          | Reference                        |
   | Encoding | Description         |                                  |
   | ID       |                     |                                  |
   +----------+---------------------+----------------------------------+
   | 1        | Raptor FEC Scheme   | Section 6 in this document using |
   |          | for Arbitrary       | [RFC5053]                        |
   |          | Packet Flows        |                                  |
   +----------+---------------------+----------------------------------+
   | 2        | RaptorQ FEC Scheme  | Section 6 in this document using |
   |          | for Arbitrary       | [RFC6330].                       |
   |          | Packet Flows        |                                  |
   +----------+---------------------+----------------------------------+
   | 3        | Raptor FEC Scheme   | Section 7 in this document using |
   |          | Optimized for       | Raptor [RFC5053].                |
   |          | Arbitrary Packet    |                                  |
   |          | Flows               |                                  |
   +----------+---------------------+----------------------------------+
   | 4        | RaptorQ FEC Scheme  | Section 7 in this document       |
   |          | Optimized for       | using RaptorQ [RFC6330].         |
   |          | Arbitrary Packet    |                                  |
   |          | Flows               |                                  |
   +----------+---------------------+----------------------------------+
   | 5        | Raptor FEC Scheme   | Section 8 in this document using |
   |          | for a Single        | Raptor [RFC5053].                |
   |          | Sequence Flow       |                                  |
   +----------+---------------------+----------------------------------+
   | 6        | RaptorQ FEC Scheme  | Section 8 in this document using |
   |          | for a Single        | RaptorQ [RFC6330].               |
   |          | Sequence Flow       |                                  |
   +----------+---------------------+----------------------------------+
        
   +----------+---------------------+----------------------------------+
   | FEC      | FEC Scheme          | Reference                        |
   | Encoding | Description         |                                  |
   | ID       |                     |                                  |
   +----------+---------------------+----------------------------------+
   | 1        | Raptor FEC Scheme   | Section 6 in this document using |
   |          | for Arbitrary       | [RFC5053]                        |
   |          | Packet Flows        |                                  |
   +----------+---------------------+----------------------------------+
   | 2        | RaptorQ FEC Scheme  | Section 6 in this document using |
   |          | for Arbitrary       | [RFC6330].                       |
   |          | Packet Flows        |                                  |
   +----------+---------------------+----------------------------------+
   | 3        | Raptor FEC Scheme   | Section 7 in this document using |
   |          | Optimized for       | Raptor [RFC5053].                |
   |          | Arbitrary Packet    |                                  |
   |          | Flows               |                                  |
   +----------+---------------------+----------------------------------+
   | 4        | RaptorQ FEC Scheme  | Section 7 in this document       |
   |          | Optimized for       | using RaptorQ [RFC6330].         |
   |          | Arbitrary Packet    |                                  |
   |          | Flows               |                                  |
   +----------+---------------------+----------------------------------+
   | 5        | Raptor FEC Scheme   | Section 8 in this document using |
   |          | for a Single        | Raptor [RFC5053].                |
   |          | Sequence Flow       |                                  |
   +----------+---------------------+----------------------------------+
   | 6        | RaptorQ FEC Scheme  | Section 8 in this document using |
   |          | for a Single        | RaptorQ [RFC6330].               |
   |          | Sequence Flow       |                                  |
   +----------+---------------------+----------------------------------+
        

Table 1: FEC Framework (FECFRAME) FEC Encoding IDs

表1:FEC框架(FECFRAME)FEC编码ID

13. Acknowledgements
13. 致谢

Thanks are due to Ali C. Begen and David Harrington for thorough review of earlier draft versions of this document.

感谢Ali C.Begen和David Harrington对本文件早期版本草案的全面审查。

14. References
14. 工具书类
14.1. Normative References
14.1. 规范性引用文件

[RFC6363] Watson, M., Begen, A., and V. Roca, "Forward Error Correction (FEC) Framework", RFC 6363, October 2011.

[RFC6363]Watson,M.,Begen,A.,和V.Roca,“前向纠错(FEC)框架”,RFC6363,2011年10月。

[RFC5053] Luby, M., Shokrollahi, A., Watson, M., and T. Stockhammer, "Raptor Forward Error Correction Scheme for Object Delivery", RFC 5053, October 2007.

[RFC5053]Luby,M.,Shokrollahi,A.,Watson,M.,和T.Stockhammer,“用于对象交付的猛禽前向纠错方案”,RFC 5053,2007年10月。

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

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

[RFC6330] Luby, M., Shokrollahi, A., Watson, M., Stockhammer, T., and L. Minder, "RaptorQ Forward Error Correction Scheme for Object Delivery", RFC 6330, August 2011.

[RFC6330]Luby,M.,Shokrollahi,A.,Watson,M.,Stockhammer,T.,和L.Minder,“用于对象交付的RaptorQ前向纠错方案”,RFC 6330,2011年8月。

14.2. Informative References
14.2. 资料性引用

[RFC5052] Watson, M., Luby, M., and L. Vicisano, "Forward Error Correction (FEC) Building Block", RFC 5052, August 2007.

[RFC5052]Watson,M.,Luby,M.,和L.Vicisano,“前向纠错(FEC)构建块”,RFC 5052,2007年8月。

[RFC4566] Handley, M., Jacobson, V., and C. Perkins, "SDP: Session Description Protocol", RFC 4566, July 2006.

[RFC4566]Handley,M.,Jacobson,V.,和C.Perkins,“SDP:会话描述协议”,RFC4566,2006年7月。

[RFC6364] Begen, A., "Session Description Protocol Elements for the Forward Error Correction (FEC) Framework", RFC 6364, October 2011.

[RFC6364]Begen,A.,“前向纠错(FEC)框架的会话描述协议元素”,RFC6364,2011年10月。

[DVBTS] ETSI, "Digital Video Broadcasting (DVB); Transport of MPEG-2 Based DVB Services over IP Based Networks", ETSI TS 102 034, March 2009.

[DVBTS]ETSI,“数字视频广播(DVB);基于IP的网络上基于MPEG-2的DVB服务的传输”,ETSI TS 102 0342009年3月。

[MBMSTS] 3GPP, "Multimedia Broadcast/Multicast Service (MBMS); Protocols and codecs", 3GPP TS 26.346, April 2005.

[MBMSTS]3GPP,“多媒体广播/多播服务(MBMS);协议和编解码器”,3GPP TS 26.346,2005年4月。

Authors' Addresses

作者地址

Mark Watson Netflix 100 Winchester Circle Los Gatos, CA 95032 United States

马克·沃森·Netflix 100温彻斯特圈洛斯加托斯,加利福尼亚州,美国95032

   EMail:  watsonm@netflix.com
        
   EMail:  watsonm@netflix.com
        

Thomas Stockhammer Nomor Research Brecherspitzstrasse 8 Munich 81541 Germany

Thomas Stockhammer Nomor Research Brecherspitzstrasse 8慕尼黑81541德国

   EMail:  stockhammer@nomor.de
        
   EMail:  stockhammer@nomor.de
        

Michael Luby Qualcomm Research Berkeley 2030 Addison Street Berkeley, CA 94704 United States

美国加利福尼亚州伯克利艾迪生街2030号伯克利高通研究院迈克尔·鲁比,邮编94704

   EMail:  luby@qualcomm.com
        
   EMail:  luby@qualcomm.com