[要約] RFC 6865は、FECFRAMEのためのシンプルなReed-Solomon前方誤り訂正(FEC)スキームについての要約と目的を提供しています。このRFCの目的は、FECFRAMEで使用されるエンコーディングスキームの一部として、効率的で信頼性の高い誤り訂正を提供することです。

Internet Engineering Task Force (IETF)                           V. Roca
Request for Comments: 6865                                         INRIA
Category: Standards Track                                      M. Cunche
ISSN: 2070-1721                                          INSA-Lyon/INRIA
                                                                J. Lacan
                                                 ISAE, Univ. of Toulouse
                                                          A. Bouabdallah
                                                                    CDTA
                                                            K. Matsuzono
                                                         Keio University
                                                           February 2013
        

Simple Reed-Solomon Forward Error Correction (FEC) Scheme for FECFRAME

FECFRAME用のシンプルなリードソロモン前方誤り訂正(FEC)スキーム

Abstract

概要

This document describes a fully-specified simple Forward Error Correction (FEC) scheme for Reed-Solomon codes over the finite field (also known as the Galois Field) GF(2^^m), with 2 <= m <= 16, that can be used to protect arbitrary media streams along the lines defined by FECFRAME. The Reed-Solomon codes considered have attractive properties, since they offer optimal protection against packet erasures and the source symbols are part of the encoding symbols, which can greatly simplify decoding. However, the price to pay is a limit on the maximum source block size, on the maximum number of encoding symbols, and a computational complexity higher than that of the Low-Density Parity Check (LDPC) codes, for instance.

このドキュメントでは、2 <= m <= 16である有限フィールド(ガロア体とも呼ばれる)GF(2 ^^ m)上のリードソロモンコードの完全に指定された単純な前方誤り訂正(FEC)スキームについて説明します。 FECFRAMEで定義されたラインに沿って任意のメディアストリームを保護するために使用できます。検討されているリードソロモンコードは、パケット消去に対する最適な保護を提供し、ソースシンボルがエンコードシンボルの一部であり、デコードを大幅に簡略化できるため、魅力的な特性を備えています。ただし、支払う金額は、最大ソースブロックサイズ、エンコードシンボルの最大数、および低密度パリティチェック(LDPC)コードよりも高い計算の複雑さなどの制限です。

Status of This Memo

本文書の状態

This is an Internet Standards Track document.

これはInternet Standards Trackドキュメントです。

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(Internet Engineering Task Force)の製品です。これは、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/rfc6865.

このドキュメントの現在のステータス、エラータ、およびフィードバックの提供方法に関する情報は、http://www.rfc-editor.org/info/rfc6865で入手できます。

Copyright Notice

著作権表示

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

Copyright(c)2013 IETF Trustおよびドキュメントの作成者として識別された人物。全著作権所有。

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)の対象となります。これらのドキュメントは、このドキュメントに関するあなたの権利と制限を説明しているため、注意深く確認してください。このドキュメントから抽出されたコードコンポーネントには、Trust Legal Provisionsのセクション4.eに記載されているSimplified BSD Licenseのテキストが含まれている必要があり、Simplified BSD Licenseに記載されているように保証なしで提供されます。

Table of Contents

目次

   1.  Introduction . . . . . . . . . . . . . . . . . . . . . . . . .  4
   2.  Terminology  . . . . . . . . . . . . . . . . . . . . . . . . .  5
   3.  Definitions Notations and Abbreviations  . . . . . . . . . . .  5
     3.1.  Definitions  . . . . . . . . . . . . . . . . . . . . . . .  5
     3.2.  Notations  . . . . . . . . . . . . . . . . . . . . . . . .  7
     3.3.  Abbreviations  . . . . . . . . . . . . . . . . . . . . . .  8
   4.  Common Procedures Related to the ADU Block and Source
       Block Creation . . . . . . . . . . . . . . . . . . . . . . . .  9
     4.1.  Restrictions . . . . . . . . . . . . . . . . . . . . . . .  9
     4.2.  ADU Block Creation . . . . . . . . . . . . . . . . . . . .  9
     4.3.  Source Block Creation  . . . . . . . . . . . . . . . . . . 10
   5.  Simple Reed-Solomon FEC Scheme over GF(2^^m) for Arbitrary
       ADU Flows  . . . . . . . . . . . . . . . . . . . . . . . . . . 12
     5.1.  Formats and Codes  . . . . . . . . . . . . . . . . . . . . 12
       5.1.1.  FEC Framework Configuration Information  . . . . . . . 12
       5.1.2.  Explicit Source FEC Payload ID . . . . . . . . . . . . 14
       5.1.3.  Repair FEC Payload ID  . . . . . . . . . . . . . . . . 15
     5.2.  Procedures . . . . . . . . . . . . . . . . . . . . . . . . 17
     5.3.  FEC Code Specification . . . . . . . . . . . . . . . . . . 17
   6.  Security Considerations  . . . . . . . . . . . . . . . . . . . 17
     6.1.  Attacks Against the Data Flow  . . . . . . . . . . . . . . 17
       6.1.1.  Access to Confidential Content . . . . . . . . . . . . 17
       6.1.2.  Content Corruption . . . . . . . . . . . . . . . . . . 18
     6.2.  Attacks Against the FEC Parameters . . . . . . . . . . . . 18
     6.3.  When Several Source Flows Are to Be Protected Together . . 19
     6.4.  Baseline Secure FECFRAME Operation . . . . . . . . . . . . 19
   7.  Operations and Management Considerations . . . . . . . . . . . 19
     7.1.  Operational Recommendations: Finite Field Size (m) . . . . 19
   8.  IANA Considerations  . . . . . . . . . . . . . . . . . . . . . 20
   9.  Acknowledgments  . . . . . . . . . . . . . . . . . . . . . . . 20
   10. References . . . . . . . . . . . . . . . . . . . . . . . . . . 21
     10.1. Normative References . . . . . . . . . . . . . . . . . . . 21
     10.2. Informative References . . . . . . . . . . . . . . . . . . 21
        
1. Introduction
1. はじめに

The use of the Forward Error Correction (FEC) codes is a classic solution to improve the reliability of unicast, multicast, and broadcast Content Delivery Protocols (CDP) and applications. [RFC6363] describes a generic framework to use FEC schemes with media delivery applications, and for instance with real-time streaming media applications based on the Real-time Transport Protocol (RTP). Similarly, [RFC5052] describes a generic framework to use FEC schemes with object delivery applications (where the objects are files, for example) based on the Asynchronous Layered Coding (ALC) [RFC5775] and NACK-Oriented Reliable Multicast (NORM) [RFC5740] transport protocols.

Forward Error Correction(FEC)コードの使用は、ユニキャスト、マルチキャスト、およびブロードキャストのコンテンツ配信プロトコル(CDP)とアプリケーションの信頼性を向上させるための古典的なソリューションです。 [RFC6363]は、メディア配信アプリケーションで、たとえばReal-time Transport Protocol(RTP)に基づくリアルタイムストリーミングメディアアプリケーションでFECスキームを使用するための一般的なフレームワークについて説明しています。同様に、[RFC5052]は、非同期レイヤードコーディング(ALC)[RFC5775]およびNACK指向の信頼できるマルチキャスト(NORM)[RFC5740に基づくオブジェクト配信アプリケーション(オブジェクトがファイルなど)でFECスキームを使用するための一般的なフレームワークについて説明]トランスポートプロトコル。

More specifically, the [RFC5053] and [RFC5170] FEC schemes introduce erasure codes based on sparse parity-check matrices for object delivery protocols like ALC and NORM. These codes are efficient in terms of processing but not optimal in terms of erasure recovery capabilities when dealing with "small" objects.

より具体的には、[RFC5053]および[RFC5170] FECスキームは、ALCやNORMなどのオブジェクト配信プロトコル用のスパースパリティチェックマトリックスに基づく消去コードを導入します。これらのコードは、処理の点では効率的ですが、「小さな」オブジェクトを処理する場合の消失回復機能の点では最適ではありません。

The Reed-Solomon FEC codes described in this document belong to the class of Maximum Distance Separable (MDS) codes that are optimal in terms of erasure recovery capability. It means that a receiver can recover the k source symbols from any set of exactly k encoding symbols. These codes are also systematic codes, which means that the k source symbols are part of the encoding symbols. However, they are limited in terms of maximum source block size and number of encoding symbols. Since the real-time constraints of media delivery applications usually limit the maximum source block size, this is not considered to be a major issue in the context of FECFRAME for many (but not necessarily all) use cases. Additionally, if the encoding/ decoding complexity is higher with Reed-Solomon codes than it is with [RFC5053] or [RFC5170] codes, it remains reasonable for most use cases, even in case of a software codec.

このドキュメントで説明されているリードソロモンFECコードは、消失回復能力の点で最適な最大距離分離可能(MDS)コードのクラスに属しています。これは、受信機が正確にk個のエンコーディングシンボルの任意のセットからk個のソースシンボルを復元できることを意味します。これらのコードも体系的なコードです。つまり、k個のソースシンボルがエンコードシンボルの一部です。ただし、最大ソースブロックサイズとエンコードシンボルの数に関しては制限があります。メディア配信アプリケーションのリアルタイム制約は通常、最大ソースブロックサイズを制限するため、これは多くの(必ずしもすべてではない)ユースケースのFECFRAMEのコンテキストでは主要な問題とは見なされません。さらに、[RFC5053]または[RFC5170]コードよりもリードソロモンコードの方がエンコード/デコードの複雑さが高い場合、ソフトウェアコーデックの場合でも、ほとんどのユースケースで妥当です。

Many applications dealing with reliable content transmission or content storage already rely on packet-based Reed-Solomon erasure recovery codes. In particular, many of them use the Reed-Solomon codec of Luigi Rizzo [RS-codec] [Rizzo97]. The goal of the present document is to specify a simple Reed-Solomon scheme that is compatible with this codec.

信頼性の高いコンテンツ送信またはコンテンツストレージを扱う多くのアプリケーションは、すでにパケットベースのリードソロモン消去リカバリコードに依存しています。特に、それらの多くはルイージ・リッツォのリードソロモンコーデック[RS-コーデック] [Rizzo97]を使用しています。このドキュメントの目的は、このコーデックと互換性のある単純なリードソロモン方式を指定することです。

More specifically, [RFC5510] introduced such Reed-Solomon codes and several associated FEC schemes that are compatible with the [RFC5052] framework. The present document inherits from Section 8 of [RFC5510], "Reed-Solomon Codes Specification for the Erasure Channel", the specifications of the core Reed-Solomon codes based on Vandermonde matrices and specifies a simple FEC scheme that is compatible with FECFRAME [RFC6363]:

より具体的には、[RFC5510]は、そのようなリードソロモンコードと、[RFC5052]フレームワークと互換性のあるいくつかの関連するFECスキームを導入しました。このドキュメントは、[RFC5510]のセクション8、「イレージャーチャネルのリードソロモンコード仕様」、Vandermondeマトリックスに基づくコアリードソロモンコードの仕様を継承し、FECFRAME [RFC6363 ]:

The Fully-Specified FEC Scheme with FEC Encoding ID 8 specifies a simple way of using of Reed-Solomon codes over GF(2^^m), with 2 <= m <= 16, in order to protect arbitrary Application Data Unit (ADU) flows.

FECエンコーディングID 8の完全指定FECスキームは、任意のアプリケーションデータユニット(ADUを保護するために、2 <= m <= 16のGF(2 ^^ m)でリードソロモンコードを使用する簡単な方法を指定します) 流れ。

Therefore, Sections 4, 5, 6, and 7 of [RFC5510] that define [RFC5052]-specific Formats and Procedures are not considered and are replaced by FECFRAME-specific Formats and Procedures.

したがって、[RFC5052]固有の形式と手順を定義する[RFC5510]のセクション4、5、6、7は考慮されず、FECFRAME固有の形式と手順に置き換えられます。

For instance, with this scheme, a set of Application Data Units (ADUs) coming from one or several media delivery applications (e.g., a set of RTP packets), are grouped in an ADU block and FEC encoded as a whole. With Reed-Solomon codes over GF(2^^8), there is a strict limit over the number of ADUs that can be protected together, since the number of encoded symbols, n, must be inferior or equal to 255. This constraint is relaxed when using a higher finite field size (m > 8), at the price of an increased computational complexity.

たとえば、このスキームでは、1つまたは複数のメディア配信アプリケーション(RTPパケットのセットなど)からのアプリケーションデータユニット(ADU)のセットがADUブロックにグループ化され、全体としてFECエンコードされます。 GF(2 ^^ 8)上のリードソロモンコードでは、エンコードされたシンボルの数nが255以下でなければならないため、一緒に保護できるADUの数には厳密な制限があります。この制約はより大きな有限フィールドサイズ(m> 8)を使用する場合は緩和されますが、計算が複雑になります。

2. Terminology
2. 用語

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC 2119 [RFC2119].

このドキュメントのキーワード「MUST」、「MUST NOT」、「REQUIRED」、「SHALL」、「SHALL NOT」、「SHOULD」、「SHOULD NOT」、「RECOMMENDED」、「MAY」、および「OPTIONAL」は、 RFC 2119 [RFC2119]で説明されているように解釈されます。

3. Definitions Notations and Abbreviations
3. 定義表記法と略語
3.1. Definitions
3.1. 定義

This document uses the following terms and definitions. Some of these terms and definitions are FEC scheme specific and are in line with [RFC5052]:

このドキュメントでは、次の用語と定義を使用しています。これらの用語と定義の一部はFECスキーム固有であり、[RFC5052]に準拠しています。

Source symbol: unit of data used during the encoding process. In this specification, there is always one source symbol per ADU.

ソースシンボル:エンコードプロセス中に使用されるデータの単位。この仕様では、ADUごとに常に1つのソースシンボルがあります。

Encoding symbol: unit of data generated by the encoding process. With systematic codes, source symbols are part of the encoding symbols.

エンコーディングシンボル:エンコーディングプロセスによって生成されるデータの単位。体系的なコードでは、ソースシンボルはエンコードシンボルの一部です。

Repair symbol: encoding symbol that is not a source symbol.

シンボルの修復:ソースシンボルではないエンコードシンボル。

Code rate: the k/n ratio, i.e., the ratio between the number of source symbols and the number of encoding symbols. 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.

コードレート:k / n比、つまりソースシンボルの数とエンコードシンボルの数の比率。定義により、コードレートは次のようになります。0 <コードレート<=1。1に近いコードレートは、エンコードプロセス中に少数の修復シンボルが生成されたことを示します。

Systematic code: FEC code in which the source symbols are part of the encoding symbols. The Reed-Solomon codes introduced in this document are systematic.

系統的コード:ソースシンボルがエンコードシンボルの一部であるFECコード。このドキュメントで紹介されているリードソロモンコードは体系的です。

Source Block: a block of k source symbols that are considered together for the encoding.

ソースブロック:エンコーディングで一緒に考慮されるk個のソースシンボルのブロック。

Packet erasure channel: a communication path where packets are either dropped (e.g., by a congested router, or because the number of transmission errors exceeds the correction capabilities of the physical layer codes) or received. When a packet is received, it is assumed that this packet is not corrupted.

パケット消去チャネル:パケットが(たとえば、輻輳したルーターによって、または伝送エラーの数が物理層コードの訂正能力を超えているために)ドロップされるか、受信される通信パス。パケットを受信すると、このパケットは破損していないと見なされます。

Some of these terms and definitions are FECFRAME specific and are in line with [RFC6363]:

これらの用語と定義の一部はFECFRAME固有であり、[RFC6363]に準拠しています。

Application Data Unit (ADU): The unit of source data provided as payload to the transport layer. Depending on the use case, an ADU may use an RTP encapsulation.

アプリケーションデータユニット(ADU):トランスポート層にペイロードとして提供されるソースデータの単位。使用例に応じて、ADUはRTPカプセル化を使用する場合があります。

(Source) ADU Flow: A sequence of ADUs associated with a transport-layer flow identifier (such as the standard 5-tuple {Source IP address, source port, destination IP address, destination port, transport protocol}). Depending on the use case, several ADU flows may be protected together by FECFRAME.

(ソース)ADUフロー:トランスポート層フロー識別子に関連付けられた一連のADU(標準の5タプル{ソースIPアドレス、ソースポート、宛先IPアドレス、宛先ポート、トランスポートプロトコル}など)。ユースケースによっては、いくつかのADUフローがFECFRAMEによって一緒に保護される場合があります。

ADU Block: a set of ADUs that are considered together by the FECFRAME instance for the purpose of the FEC scheme. Along with the flow ID (F[]), length (L[]), and padding (Pad[]) fields, they form the set of source symbols over which FEC encoding will be performed.

ADUブロック:FECスキームの目的でFECFRAMEインスタンスによって一緒に考慮されるADUのセット。フローID(F [])、長さ(L [])、パディング(Pad [])フィールドとともに、これらはFECエンコーディングが実行されるソースシンボルのセットを形成します。

ADU Information (ADUI): a unit of data constituted by the ADU and the associated Flow ID, Length and Padding fields (Section 4.3). This is the unit of data that is used as source symbol.

ADU情報(ADUI):ADUおよび関連するフローID、長さ、パディングフィールド(セクション4.3)で構成されるデータの単位。これは、ソースシンボルとして使用されるデータの単位です。

FEC Framework Configuration Information (FFCI): Information that controls the operation of FECFRAME. The FFCI enables the synchronization of the FECFRAME sender and receiver instances.

FECフレームワーク構成情報(FFCI):FECFRAMEの操作を制御する情報。 FFCIは、FECFRAME送信側および受信側インスタンスの同期を可能にします。

FEC Source Packet: At a sender (respectively, at a receiver) a payload submitted to (respectively, received from) the transport protocol containing an ADU along with an Explicit Source FEC Payload ID (that must be present in the FEC scheme defined by the present document, see Section 5.1.2).

FECソースパケット:送信側(それぞれ、受信側)で、ADUと明示的なソースFECペイロードID(によって定義されたFECスキームに存在する必要がある)を含むトランスポートプロトコルに送信された(それぞれ受信された)ペイロード現在の文書、セクション5.1.2を参照)。

FEC Repair Packet: At a sender (respectively, at a receiver) a payload submitted to (respectively, received from) the transport protocol containing one repair symbol along with a Repair FEC Payload ID and possibly an RTP header.

FEC修復パケット:送信側(それぞれ受信側)で、トランスポートプロトコルに送信された(それぞれから受信された)ペイロード。1つの修復シンボルと、修復FECペイロードID、および場合によってはRTPヘッダーが含まれています。

The above terminology is illustrated in Figure 1 (sender's point of view):

上記の用語を図1に示します(送信者の視点)。

   +----------------------+
   |     Application      |
   +----------------------+
              |
              | (1) Application Data Units (ADUs)
              |
              v
   +----------------------+                           +----------------+
   |       FECFRAME       |                           |                |
   |                      |-------------------------->|   FEC Scheme   |
   |(2) Construct source  |(3) Source Block           |                |
   |    blocks            |                           |(4) FEC Encoding|
   |(6) Construct FEC     |<--------------------------|                |
   |    source and repair |                           |                |
   |    packets           |(5) Explicit Source FEC    |                |
   +----------------------+    Payload IDs            +----------------+
              |                Repair FEC Payload IDs
              |                Repair symbols
              |
              |(7) FEC source and repair packets
              v
   +----------------------+
   |   Transport Layer    |
   |     (e.g., UDP)      |
   +----------------------+
        

Figure 1: Terminology used in this document (sender).

図1:このドキュメントで使用されている用語(送信者)。

3.2. Notations
3.2. 記法

This document uses the following notations. Some of them are FEC scheme specific.

このドキュメントでは、次の表記法を使用しています。それらのいくつかはFECスキーム固有です。

k denotes the number of source symbols in a source block.

kは、ソースブロック内のソースシンボルの数を示します。

max_k denotes the maximum number of source symbols for any source block.

max_kは、任意のソースブロックのソースシンボルの最大数を示します。

n denotes the number of encoding symbols generated for a source block.

nは、ソースブロックに対して生成されたエンコードシンボルの数を示します。

E denotes the encoding symbol length in bytes.

Eは、エンコーディングシンボルの長さをバイト単位で示します。

GF(q) denotes a finite field (also known as the Galois Field) with q elements. We assume that q = 2^^m in this document.

GF(q)は、q要素の有限体(ガロア体とも呼ばれる)を表します。このドキュメントでは、q = 2 ^^ mと想定しています。

m defines the length of the elements in the finite field, in bits. In this document, m is such that 2 <= m <= 16.

mは、有限フィールドの要素の長さをビット単位で定義します。このドキュメントでは、mは2 <= m <= 16のようなものです。

q defines the number of elements in the finite field. We have: q = 2^^m in this specification.

qは、有限体の要素数を定義します。この仕様では、q = 2 ^^ mです。

CR denotes the "code rate", i.e., the k/n ratio.

CRは「コードレート」、つまりk / n比を示します。

a^^b denotes a raised to the power b.

a ^^ bは、bの累乗を示します。

Some of them are FECFRAME specific:

それらのいくつかはFECFRAME固有です。

B denotes the number of ADUs per ADU block.

Bは、ADUブロックあたりのADUの数を示します。

max_B denotes the maximum number of ADUs for any ADU block.

max_Bは、任意のADUブロックのADUの最大数を示します。

3.3. Abbreviations
3.3. 略語

This document uses the following abbreviations:

このドキュメントでは、次の略語を使用しています。

ADU stands for Application Data Unit.

ADUはApplication Data Unitの略です。

ADUI stands for Application Data Unit Information.

ADUIはApplication Data Unit Informationの略です。

ESI stands for Encoding Symbol ID.

ESIは、Encoding Symbol IDの略です。

FEC stands for Forward Error (or Erasure) Correction code.

FECはForward Error(or Erasure)Correctionコードの略です。

FFCI stands for FEC Framework Configuration Information.

FFCIはFECフレームワーク構成情報の略です。

FSSI stands for FEC Scheme-Specific Information.

FSSIはFECスキーム固有の情報の略です。

MDS stands for Maximum Distance Separable code.

MDSは、最大距離分離可能コードの略です。

SBN stands for Source Block Number.

SBNは、Source Block Numberの略です。

SDP stands for Session Description Protocol.

SDPは、Session Description Protocolの略です。

4. ADUブロックとソースブロックの作成に関連する一般的な手順

This section introduces the procedures that are used during the ADU block and the related source block creation for the FEC scheme considered.

このセクションでは、考慮されるFECスキームのADUブロックおよび関連するソースブロックの作成中に使用される手順を紹介します。

4.1. Restrictions
4.1. 制限事項

This specification has the following restrictions:

この仕様には次の制限があります。

o there MUST be exactly one source symbol per ADUI, and therefore per ADU;

o ADUIごとに、したがってADUごとに正確に1つのソースシンボルが存在する必要があります。

o there MUST be exactly one repair symbol per FEC Repair Packet;

o FEC修理パケットごとに正確に1つの修理シンボルが必要です。

o there MUST be exactly one source block per ADU block.

o ADUブロックごとに正確に1つのソースブロックが必要です。

4.2. ADU Block Creation
4.2. ADUブロックの作成

Two kinds of limitations exist that impact the ADU block creation:

ADUブロックの作成に影響を与える2種類の制限があります。

o at the FEC Scheme level: the finite field size (m parameter) directly impacts the maximum source block size and the maximum number of encoding symbols;

o FECスキームレベル:有限フィールドサイズ(mパラメーター)は、最大ソースブロックサイズとエンコードシンボルの最大数に直接影響します。

o at the FECFRAME instance level: the target use case can have real-time constraints that can/will define a maximum ADU block size.

o FECFRAMEインスタンスレベル:ターゲットユースケースには、最大ADUブロックサイズを定義できる/定義するリアルタイム制約がある場合があります。

Note that terms "maximum source block size" and "maximum ADU block size" depend on the point of view that is adopted (FEC Scheme versus FECFRAME instance). However, in this document, both refer to the same value since Section 4.1 requires there is exactly one source symbol per ADU. We now detail each of these aspects.

「最大ソースブロックサイズ」および「最大ADUブロックサイズ」という用語は、採用されている観点(FECスキームとFECFRAMEインスタンス)に依存することに注意してください。ただし、このドキュメントでは、セクション4.1ではADUごとにソースシンボルが1つだけ必要であるため、両方とも同じ値を参照しています。次に、これらの各側面について詳しく説明します。

The finite field size parameter m defines the number of non-zero elements in this field, which is equal to: q - 1 = 2^^m - 1. This q - 1 value is also the theoretical maximum number of encoding symbols that can be produced for a source block. For instance, when m = 8 (default) there is a maximum of 2^^8 - 1 = 255 encoding symbols. So: k < n <= 255. Given the target FEC code rate (e.g., provided by the end-user or upper application when starting the FECFRAME instance, and taking into account the known or estimated packet loss rate), the sender calculates:

有限フィールドサイズパラメーターmは、このフィールドの非ゼロ要素の数を定義します。これは、q-1 = 2 ^^ m-1に等しくなります。このq-1値は、次のことができるエンコードシンボルの理論的な最大数でもあります。ソースブロック用に生成されます。たとえば、m = 8(デフォルト)の場合、最大2 ^^ 8-1 = 255のエンコードシンボルがあります。つまり、k <n <= 255です。ターゲットFECコードレート(たとえば、FECFRAMEインスタンスを開始するときにエンドユーザーまたは上位アプリケーションによって提供され、既知または推定されたパケット損失率を考慮に入れる)が与えられると、送信者は次を計算します。

      max_k = floor((2^^m - 1) * CR)
        

This max_k value leaves enough room for the sender to produce the desired number of repair symbols. Since there is one source symbol per ADU, max_k is also an upper bound to the maximum number of ADUs per ADU block.

このmax_k値は、送信者が必要な数の修復シンボルを生成するための十分な余地を残します。 ADUごとに1つのソースシンボルがあるため、max_kはADUブロックごとのADUの最大数の上限でもあります。

The source ADU flows can have real-time constraints. When there are multiple flows, with different real-time constraints, let us consider the most stringent constraints (see [RFC6363], Section 10.2, item 6 for recommendations when several flows are globally protected). In that case, the maximum number of ADUs of an ADU block must not exceed a certain threshold since it directly impacts the decoding delay. The larger the ADU block size, the longer a decoder may have to wait until it has received a sufficient number of encoding symbols for decoding to succeed, and therefore the larger the decoding delay. When the target use case is known, these real-time constraints result in an upper bound to the ADU block size, max_rt.

ソースADUフローには、リアルタイム制約があります。リアルタイム制約が異なる複数のフローがある場合、最も厳しい制約を検討してみましょう(複数のフローがグローバルに保護されている場合の推奨事項については、[RFC6363]、セクション10.2、アイテム6を参照してください)。その場合、ADUブロックのADUの最大数は、デコード遅延に直接影響するため、特定のしきい値を超えてはなりません。 ADUブロックサイズが大きいほど、デコードが成功するために十分な数のエンコードシンボルを受信するまでデコーダが待機する時間が長くなるため、デコード遅延が大きくなります。ターゲットのユースケースがわかっている場合、これらのリアルタイム制約により、ADUブロックサイズの上限max_rtが発生します。

For instance, if the use case specifies a maximum decoding latency l, and if each source ADU covers a duration d of a continuous media (we assume here the simple case of a constant bit-rate ADU flow), then the ADU block size must not exceed:

たとえば、ユースケースで最大デコードレイテンシlを指定し、各ソースADUが連続メディアの継続時間dをカバーする場合(ここでは、一定のビットレートのADUフローの単純なケースを想定しています)、ADUブロックサイズは超えない:

      max_rt = floor(l / d)
        

After encoding, this block will produce a set of at most n = max_rt / CR encoding symbols. These n encoding symbols will have to be sent at a rate of n / l packets per second. For instance, with d = 10 ms, l = 1 s, max_rt = 100 ADUs.

エンコード後、このブロックは最大でn = max_rt / CRエンコードシンボルのセットを生成します。これらのn個のエンコードシンボルは、毎秒n / lパケットの速度で送信する必要があります。たとえば、d = 10 ms、l = 1 s、max_rt = 100 ADU。

If we take into account all these constraints, we find:

これらすべての制約を考慮すると、次のことがわかります。

max_B = min(max_k, max_rt)

max_B = min(max_k、max_rt)

This max_B parameter is an upper bound to the number of ADUs that can constitute an ADU block.

このmax_Bパラメータは、ADUブロックを構成できるADUの数の上限です。

4.3. Source Block Creation
4.3. ソースブロックの作成

In their most general form, FECFRAME and the Reed-Solomon FEC scheme are meant to protect a set of independent flows. Since the flows have no relationship to one another, the ADU size of each flow can potentially vary significantly. Even in the special case of a single flow, the ADU sizes can largely vary (e.g., the various frames of a "Group of Pictures" (GOP) of an H.264 flow will have different sizes). This diversity must be addressed since the Reed-Solomon FEC scheme requires a constant encoding symbol size (E parameter) per source block. Since this specification requires that there is only one source symbol per ADU, E must be large enough to contain all the ADUs of an ADU block along with their prepended 3 bytes (see below).

最も一般的な形式では、FECFRAMEとリードソロモンFECスキームは、一連の独立したフローを保護することを目的としています。フローには相互の関係がないため、各フローのADUサイズは大きく異なる可能性があります。単一のフローの特別な場合でも、ADUのサイズは大きく異なる可能性があります(たとえば、H.264フローの「Group of Pictures」(GOP)のさまざまなフレームのサイズは異なります)。リードソロモンFECスキームでは、ソースブロックごとに一定のエンコードシンボルサイズ(Eパラメーター)が必要であるため、この多様性に対処する必要があります。この仕様では、ADUごとに1つのソースシンボルのみが必要であるため、Eは、ADUブロックのすべてのADUとそれらの先頭に追加された3バイトを含めるのに十分な大きさでなければなりません(以下を参照)。

In situations where E is determined per source block (default, specified by the FFCI/FSSI with S = 0, Section 5.1.1.2), E is equal to the size of the largest ADU of this source block plus 3 (for the prepended 3 bytes; see below). In this case, upon receiving the first FEC Repair Packet for this source block, since this packet MUST contain a single repair symbol (Section 5.1.3), a receiver determines the E parameter used for this source block.

Eがソースブロックごとに決定される状況(デフォルト、FFCI / FSSIでS = 0、セクション5.1.1.2で指定)では、Eはこのソースブロックの最大ADUのサイズに3を加えたもの(先頭に3バイト。下記参照)。この場合、このソースブロックの最初のFEC修復パケットを受信すると、このパケットには単一の修復シンボルが含まれている必要があるため(セクション5.1.3)、受信者はこのソースブロックに使用するEパラメータを決定します。

In situations where E is fixed (specified by the FFCI/FSSI with S = 1, Section 5.1.1.2), then E must be greater or equal to the size of the largest ADU of this source block plus 3 (for the prepended 3 bytes; see below). If this is not the case, an error is returned. How to handle this error is use-case specific (e.g., a larger E parameter may be communicated to the receivers in an updated FFCI message using an appropriate mechanism) and is not considered by this specification.

Eが固定されている状況(S = 1のFFCI / FSSIで指定、セクション5.1.1.2)では、Eは、このソースブロックの最大ADUのサイズに3を加えた値以上にする必要があります(先頭に3バイトを追加) ; 下記参照)。そうでない場合は、エラーが返されます。このエラーの処理方法はユースケース固有であり(たとえば、適切なメカニズムを使用して、更新されたFFCIメッセージでより大きいEパラメーターが受信者に通知される場合があります)、この仕様では考慮されません。

The ADU block is always encoded as a single source block. There are a total of B <= max_B ADUs in this ADU block. For the ADU i, with 0 <= i <= B-1, 3 bytes are prepended (Figure 2):

ADUブロックは常に単一のソースブロックとしてエンコードされます。このADUブロックには、合計B <= max_B ADUがあります。 ADU iの場合、0 <= i <= B-1の場合、3バイトが付加されます(図2)。

o The first byte, F[i] (Flow ID), contains the integer identifier associated to the source ADU flow to which this ADU belongs to. It is assumed that a single byte is sufficient, or said differently, that no more than 256 flows will be protected by a single instance of FECFRAME.

o 最初のバイトF [i](フローID)には、このADUが属するソースADUフローに関連付けられた整数の識別子が含まれます。単一のバイトで十分である、または別の言い方をすると、FECFRAMEの単一のインスタンスによって保護されるフローは256以下であると想定されています。

o The following 2 bytes, L[i] (Length), contain the length of this ADU, in network byte order (i.e., big endian). This length is for the ADU itself and does not include the F[i], L[i], or Pad[i] fields.

o 次の2バイトL [i](長さ)には、このADUの長さがネットワークバイトオーダー(ビッグエンディアン)で含まれています。この長さはADU自体の長さであり、F [i]、L [i]、またはPad [i]フィールドは含まれません。

Then zero padding is added to ADU i (if needed), in field Pad[i], for alignment purposes up to a size of exactly E bytes. The data unit resulting from the ADU i and the F[i], L[i], and Pad[i] fields, is called ADU Information (or ADUI). Each ADUI contributes to exactly one source symbol of the source block.

次に、フィールドPad [i]のADU iにゼロパディングが追加され(必要な場合)、正確にEバイトのサイズになるように調整されます。 ADU iとF [i]、L [i]、およびPad [i]フィールドから得られるデータ単位は、ADU情報(またはADUI)と呼ばれます。各ADUIは、ソースブロックのソースシンボルを1つだけ提供します。

                        Encoding Symbol Length (E)
   < ----------------------------------------------------------------- >
   +----+--------+-----------------------+-----------------------------+
   |F[0]|  L[0]  |        ADU[0]         |            Pad[0]           |
   +----+--------+----------+------------+-----------------------------+
   |F[1]|  L[1]  | ADU[1]   |                         Pad[1]           |
   +----+--------+----------+------------------------------------------+
   |F[2]|  L[2]  |                    ADU[2]                           |
   +----+--------+------+----------------------------------------------+
   |F[3]|  L[3]  |ADU[3]|                             Pad[3]           |
   +----+--------+------+----------------------------------------------+
   \_________________________________  ________________________________/
                                     \/
                            simple FEC encoding
        
   +-------------------------------------------------------------------+
   |                              Repair 4                             |
   +-------------------------------------------------------------------+
   .                                                                   .
   .                                                                   .
   +-------------------------------------------------------------------+
   |                              Repair 7                             |
   +-------------------------------------------------------------------+
        

Figure 2: Source block creation, for code rate 1/2 (equal number of source and repair symbols; 4 in this example), and S = 0.

図2:ソースブロックの作成、コードレート1/2(ソースと修復シンボルの数は同じ、この例では4)、S = 0。

Note that neither the initial 3 bytes nor the optional padding are sent over the network. However, they are considered during FEC encoding. It means that a receiver who lost a certain FEC source packet (e.g., the UDP datagram containing this FEC source packet) will be able to recover the ADUI if FEC decoding succeeds. Thanks to the initial 3 bytes, this receiver will get rid of the padding (if any) and identify the corresponding ADU flow.

最初の3バイトもオプションのパディングもネットワーク経由で送信されないことに注意してください。ただし、それらはFECエンコード中に考慮されます。つまり、特定のFECソースパケット(このFECソースパケットを含むUDPデータグラムなど)を失った受信者は、FECデコードが成功した場合にADUIを回復できます。最初の3バイトのおかげで、このレシーバーはパディング(ある場合)を取り除き、対応するADUフローを識別します。

5. Simple Reed-Solomon FEC Scheme over GF(2^^m) for Arbitrary ADU Flows
5. 任意のADUフローのためのGF(2 ^^ m)上の単純なリードソロモンFECスキーム

This Fully-Specified FEC Scheme specifies the use of Reed-Solomon codes over GF(2^^m), with 2 <= m <= 16, with a simple FEC encoding for arbitrary packet flows.

この完全に指定されたFECスキームは、GF(2 ^^ m)上のリードソロモンコードの使用を指定します。2<= m <= 16で、任意のパケットフローに対して単純なFECエンコーディングを使用します。

5.1. Formats and Codes
5.1. フォーマットとコード
5.1.1. FEC Framework Configuration Information
5.1.1. FECフレームワーク構成情報

The FEC Framework Configuration Information (or FFCI) includes information that must be communicated between the sender and receiver(s) [RFC6363]. More specifically, it enables the synchronization of the FECFRAME sender and receiver instances. It includes both mandatory elements and scheme-specific elements, as detailed below.

FECフレームワーク構成情報(またはFFCI)には、送信者と受信者の間で通信する必要がある情報が含まれています[RFC6363]。具体的には、FECFRAMEの送信側インスタンスと受信側インスタンスの同期を可能にします。以下に詳細を示すように、必須要素とスキーム固有の要素の両方が含まれています。

5.1.1.1. Mandatory Information
5.1.1.1. 表示義務のある情報

o FEC Encoding ID: the value assigned to this Fully-Specified FEC scheme MUST be 8, as assigned by IANA (Section 8).

o FECエンコーディングID:この完全指定FECスキームに割り当てられる値は、IANAによって割り当てられるように8でなければなりません(セクション8)。

When SDP is used to communicate the FFCI, this FEC Encoding ID MUST be carried in the 'encoding-id' parameter of the 'fec-repair-flow' attribute specified in RFC 6364 [RFC6364].

SDPを使用してFFCIを通信する場合、このFECエンコーディングIDは、RFC 6364 [RFC6364]で指定されている「fec-repair-flow」属性の「encoding-id」パラメータで伝達する必要があります。

5.1.1.2. FEC Scheme-Specific Information
5.1.1.2. FECスキーム固有の情報

The FEC Scheme-Specific Information (FSSI) includes elements that are specific to the present FEC scheme. More precisely:

FECスキーム固有情報(FSSI)には、現在のFECスキームに固有の要素が含まれています。より正確に:

o Encoding Symbol Length (E): a non-negative integer, inferior to 2^^16, that indicates either the length of each encoding symbol in bytes ("strict" mode, i.e., if S = 1), or the maximum length of any encoding symbol (i.e., if S = 0).

o エンコーディングシンボルの長さ(E):2 ^^ 16よりも小さい負でない整数。バイト単位の各エンコーディングシンボルの長さ( "strict"モード、つまりS = 1の場合)、または最大長任意のエンコーディングシンボル(S = 0の場合)。

o Strict (S) flag: when set to 1, this flag indicates that the E parameter is the actual encoding symbol length value for each block of the session (unless otherwise notified by an updated FFCI if this possibility is considered by the use case or CDP). When set to 0, this flag indicates that the E parameter is the maximum encoding symbol length value for each block of the session (unless otherwise notified by an updated FFCI if this possibility is considered by the use case or CDP).

o 厳格(S)フラグ:1に設定されている場合、このフラグは、Eパラメーターがセッションの各ブロックの実際のエンコードシンボル長の値であることを示します(この可能性がユースケースまたはCDPで考慮されている場合、更新されたFFCIによって通知されない限り) )。 0に設定されている場合、このフラグは、Eパラメーターがセッションの各ブロックの最大エンコードシンボル長の値であることを示します(この可能性がユースケースまたはCDPで考慮されている場合、更新されたFFCIによって通知されない限り)。

o m parameter (m): an integer that defines the length of the elements in the finite field, in bits. We have: 2 <= m <= 16.

o mパラメータ(m):有限体の要素の長さをビット単位で定義する整数。 2 <= m <= 16。

These elements are required both by the sender (Reed-Solomon encoder) and the receiver(s) (Reed-Solomon decoder).

これらの要素は、送信者(リードソロモンエンコーダー)と受信者(リードソロモンデコーダー)の両方で必要です。

When SDP is used to communicate the FFCI, this FEC scheme-specific information MUST be carried in the 'fssi' parameter of the 'fec-repair-flow' attribute, in textual representation as specified in RFC 6364 [RFC6364]. For instance:

SDPを使用してFFCIを通信する場合、このFECスキーム固有の情報は、RFC 6364 [RFC6364]で指定されているテキスト表現で、「fec-repair-flow」属性の「fssi」パラメーターで伝達する必要があります。例えば:

   a=fec-repair-flow: encoding-id=8; fssi=E:1400,S:0,m:8
        

If another mechanism requires the FSSI to be carried as an opaque octet string (for instance after a Base64 encoding), the encoding format consists of the following 3 octets of Figure 3: o Encoding symbol length (E): 16-bit field.

別のメカニズムでFSSIを不透明なオクテット文字列として伝送する必要がある場合(たとえば、Base64エンコーディングの後)、エンコーディング形式は図3の次の3オクテットで構成されます。oエンコーディングシンボル長(E):16ビットフィールド。

o Strict (S) flag: 1-bit field.

o 厳格(S)フラグ:1ビットフィールド。

o m parameter (m): 7-bit field.

o mパラメータ(m):7ビットフィールド。

    0                   1                   2
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Encoding Symbol Length (E)  |S|     m       |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

Figure 3: FSSI encoding format.

図3:FSSIエンコード形式。

5.1.2. Explicit Source FEC Payload ID
5.1.2. 明示的なソースFECペイロードID

A FEC source packet MUST contain an Explicit Source FEC Payload ID that is appended to the end of the packet as illustrated in Figure 4.

図4に示すように、FECソースパケットには、パケットの末尾に追加される明示的なソースFECペイロードIDが含まれている必要があります。

   +--------------------------------+
   |           IP Header            |
   +--------------------------------+
   |        Transport Header        |
   +--------------------------------+
   |              ADU               |
   +--------------------------------+
   | Explicit Source FEC Payload ID |
   +--------------------------------+
        

Figure 4: Structure of a FEC Source Packet with the Explicit Source FEC Payload ID.

図4:明示的なソースFECペイロードIDを含むFECソースパケットの構造。

More precisely, the Explicit Source FEC Payload ID is composed of the Source Block Number, the Encoding Symbol ID, and the Source Block Length. The length of the first 2 fields depends on the m parameter (transmitted separately in the FFCI, Section 5.1.1.2):

より正確には、Explicit Source FEC Payload IDは、Source Block Number、Encoding Symbol ID、およびSource Block Lengthで構成されています。最初の2つのフィールドの長さは、mパラメーターによって異なります(FFCI、セクション5.1.1.2で個別に送信されます)。

o Source Block Number (SBN) ((32-m)-bit field): this field identifies the source block to which this FEC source packet belongs.

o ソースブロック番号(SBN)((32-m)ビットフィールド):このフィールドは、このFECソースパケットが属するソースブロックを識別します。

o Encoding Symbol ID (ESI) (m-bit field): this field identifies the source symbol contained in this FEC source packet. This value is such that 0 <= ESI <= k - 1 for source symbols.

o エンコーディングシンボルID(ESI)(mビットフィールド):このフィールドは、このFECソースパケットに含まれるソースシンボルを識別します。この値は、ソースシンボルに対して0 <= ESI <= k-1になるような値です。

o Source Block Length (k) (16-bit field): this field provides the number of source symbols for this source block, i.e., the k parameter. If 16 bits are too much when m <= 8, it is needed when 8 < m <= 16. Therefore, we provide a single common format regardless of m.

o ソースブロック長(k)(16ビットフィールド):このフィールドは、このソースブロックのソースシンボルの数、つまりkパラメーターを提供します。 m <= 8のときに16ビットが多すぎる場合は、8 <m <= 16のときに必要です。したがって、mに関係なく単一の共通フォーマットを提供します。

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Source Block Number (24 bits)       | Enc. Symb. ID |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Source Block Length (k)    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

Figure 5: Source FEC Payload ID encoding format for m = 8 (default).

図5:m = 8のソースFECペイロードIDエンコード形式(デフォルト)。

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Source Block Nb (16 bits)   |   Enc. Symbol ID (16 bits)    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Source Block Length (k)    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

Figure 6: Source FEC Payload ID encoding format for m = 16.

図6:m = 16のソースFECペイロードIDエンコード形式

The format of the Source FEC Payload ID for m = 8 and m = 16 are illustrated in Figures 5 and 6, respectively.

m = 8およびm = 16のソースFECペイロードIDのフォーマットを、それぞれ図5および6に示します。

5.1.3. Repair FEC Payload ID
5.1.3. FECペイロードIDを修復する

A FEC repair packet MUST contain a Repair FEC Payload ID that is prepended to the repair symbol(s) as illustrated in Figure 7. There MUST be a single repair symbol per FEC repair packet.

FEC修復パケットには、図7に示すように修復シンボルの前に付加される修復FECペイロードIDが含まれている必要があります。FEC修復パケットごとに1つの修復シンボルが存在する必要があります。

   +--------------------------------+
   |           IP Header            |
   +--------------------------------+
   |        Transport Header        |
   +--------------------------------+
   |      Repair FEC Payload ID     |
   +--------------------------------+
   |         Repair Symbol          |
   +--------------------------------+
        

Figure 7: Structure of a FEC Repair Packet with the Repair FEC Payload ID.

図7:修理FECペイロードIDを含むFEC修理パケットの構造。

More precisely, the Repair FEC Payload ID is composed of the Source Block Number, the Encoding Symbol ID, and the Source Block Length. The length of the first 2 fields depends on the m parameter (transmitted separately in the FFCI, Section 5.1.1.2):

より正確には、Repair FEC Payload IDは、Source Block Number、Encoding Symbol ID、およびSource Block Lengthで構成されています。最初の2つのフィールドの長さは、mパラメーターによって異なります(FFCI、セクション5.1.1.2で個別に送信されます)。

o Source Block Number (SBN) ((32-m)-bit field): this field identifies the source block to which the FEC repair packet belongs.

o ソースブロック番号(SBN)((32-m)ビットフィールド):このフィールドは、FEC修復パケットが属するソースブロックを識別します。

o Encoding Symbol ID (ESI) (m-bit field): this field identifies the repair symbol contained in this FEC repair packet. This value is such that k <= ESI <= n - 1 for repair symbols.

o エンコーディングシンボルID(ESI)(mビットフィールド):このフィールドは、このFEC修復パケットに含まれる修復シンボルを識別します。この値は、修復シンボルに対してk <= ESI <= n-1になるような値です。

o Source Block Length (k) (16-bit field): this field provides the number of source symbols for this source block, i.e., the k parameter. If 16 bits are too much when m <= 8, it is needed when 8 < m <= 16. Therefore, we provide a single common format regardless of m.

o ソースブロック長(k)(16ビットフィールド):このフィールドは、このソースブロックのソースシンボルの数、つまりkパラメーターを提供します。 m <= 8のときに16ビットが多すぎる場合は、8 <m <= 16のときに必要です。したがって、mに関係なく単一の共通フォーマットを提供します。

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |           Source Block Number (24 bits)       | Enc. Symb. ID |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Source Block Length (k)    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

Figure 8: Repair FEC Payload ID encoding format for m = 8 (default).

図8:m = 8(デフォルト)のFECペイロードIDエンコード形式を修復します。

    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |   Source Block Nb (16 bits)   |   Enc. Symbol ID (16 bits)    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |    Source Block Length (k)    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
        

Figure 9: Repair FEC Payload ID encoding format for m = 16.

図9:m = 16の修復FECペイロードIDエンコード形式

The format of the Repair FEC Payload ID for m = 8 and m = 16 are illustrated in Figures 8 and 9, respectively.

m = 8およびm = 16のRepair FEC Payload IDのフォーマットを、それぞれ図8および9に示します。

5.2. Procedures
5.2. 手続き

The following procedures apply:

次の手順が適用されます。

o The source block creation MUST follow the procedures specified in Section 4.3.

o ソースブロックの作成は、セクション4.3で指定された手順に従う必要があります。

o The SBN value MUST start with value 0 for the first block of the ADU flow and MUST be incremented by 1 for each new source block. Wrapping to zero will happen for long sessions, after value 2^^(32-m) - 1.

o SBN値は、ADUフローの最初のブロックでは値0で始まり、新しいソースブロックごとに1ずつ増加する必要があります。値が2 ^^(32-m)-1になると、長いセッションではゼロへの折り返しが発生します。

o The ESI of encoding symbols MUST start with value 0 for the first symbol and MUST be managed sequentially. The first k values (0 <= ESI <= k - 1) identify source symbols, whereas the last n-k values (k <= ESI <= n - 1) identify repair symbols.

o エンコーディングシンボルのESIは、最初のシンボルの値0で始まり、連続して管理する必要があります。最初のk値(0 <= ESI <= k-1)はソースシンボルを識別し、最後のn-k値(k <= ESI <= n-1)は修復シンボルを識別します。

o The FEC repair packet creation MUST follow the procedures specified in Section 5.1.3.

o FEC修復パケットの作成は、セクション5.1.3で指定された手順に従う必要があります。

5.3. FEC Code Specification
5.3. FECコード仕様

The present document inherits from Section 8 of [RFC5510], "Reed-Solomon Codes Specification for the Erasure Channel", the specifications of the core Reed-Solomon codes based on Vandermonde matrices.

このドキュメントは、[RFC5510]のセクション8、「イレージャーチャネルのリードソロモンコード仕様」、Vandermonde行列に基づくコアリードソロモンコードの仕様を継承しています。

6. Security Considerations
6. セキュリティに関する考慮事項

The FECFRAME document [RFC6363] provides a comprehensive analysis of security considerations applicable to FEC schemes. Therefore, the present section follows the security considerations section of [RFC6363] and only discusses topics that are specific to the use of Reed-Solomon codes.

FECFRAMEドキュメント[RFC6363]は、FECスキームに適用可能なセキュリティの考慮事項の包括的な分析を提供します。したがって、このセクションは[RFC6363]のセキュリティに関する考慮事項セクションに続き、リードソロモンコードの使用に固有のトピックについてのみ説明します。

6.1. Attacks Against the Data Flow
6.1. データフローに対する攻撃
6.1.1. Access to Confidential Content
6.1.1. 機密コンテンツへのアクセス

The Reed-Solomon FEC Scheme specified in this document does not change the recommendations of [RFC6363]. To summarize, if confidentiality is a concern, it is RECOMMENDED that one of the solutions mentioned in [RFC6363] is used with special considerations to the way this solution is applied (e.g., is encryption applied before or after FEC protection, within the end-system or in a middlebox) to the operational constraints (e.g., performing FEC decoding in a protected environment may be complicated or even impossible) and to the threat model.

このドキュメントで指定されているリードソロモンFECスキームは、[RFC6363]の推奨事項を変更しません。要約すると、機密性が懸念される場合、[RFC6363]で言及されているソリューションの1つは、このソリューションが適用される方法(たとえば、FEC保護の前または後に暗号化が適用される)システムまたはミドルボックス)を運用上の制約(たとえば、保護された環境でFECデコードを実行することは複雑であるか、不可能でさえある)と脅威モデルに対して。

6.1.2. Content Corruption
6.1.2. コンテンツの破損

The Reed-Solomon FEC Scheme specified in this document does not change the recommendations of [RFC6363]. To summarize, it is RECOMMENDED that one of the solutions mentioned in [RFC6363] is used on both the FEC Source and Repair Packets.

このドキュメントで指定されているリードソロモンFECスキームは、[RFC6363]の推奨事項を変更しません。要約すると、[RFC6363]で言及されているソリューションの1つがFECソースと修復パケットの両方で使用されることが推奨されます。

6.2. Attacks Against the FEC Parameters
6.2. FECパラメータに対する攻撃

The FEC Scheme specified in this document defines parameters that can be the basis of several attacks. More specifically, the following parameters of the FFCI may be modified by an attacker (Section 5.1.1.2):

このドキュメントで指定されているFECスキームは、いくつかの攻撃の基礎となるパラメータを定義しています。より具体的には、FFCIの以下のパラメーターが攻撃者によって変更される可能性があります(セクション5.1.1.2)。

o FEC Encoding ID: changing this parameter leads the receiver to consider a different FEC Scheme, which enables an attacker to create a Denial of Service (DoS).

o FECエンコーディングID:このパラメーターを変更すると、受信者は別のFECスキームを検討するようになり、攻撃者はサービス拒否(DoS)を作成できます。

o Encoding symbol length (E): setting this E parameter to a value smaller than the valid one enables an attacker to create a DoS since the repair symbols and certain source symbols will be larger than E, which is an incoherency for the receiver. Setting this E parameter to a value larger than the valid one has similar impacts when S = 1 since the received repair symbol size will be smaller than expected. On the opposite, it will not lead to any incoherency when S = 0 since the actual symbol length value for the block is determined by the size of any received repair symbol, as long as this value is smaller than E. However, setting this E parameter to a larger value may have impacts on receivers that pre-allocate memory space in advance to store incoming symbols.

o エンコードシンボル長(E):このEパラメーターを有効な値よりも小さい値に設定すると、修復シンボルと特定のソースシンボルがEよりも大きくなるため、攻撃者はDoSを作成できます。このEパラメータを有効な値よりも大きい値に設定すると、S = 1の場合に同様の影響があります。これは、受信した修復シンボルのサイズが予想よりも小さくなるためです。反対に、S = 0の場合、ブロックの実際のシンボル長の値は、受信した修復シンボルのサイズによって決定されるため、この値がEより小さい限り、インコヒーレンシーにはなりません。ただし、このEパラメータをより大きな値に設定すると、受信シンボルを格納するために事前にメモリ空間を事前に割り当てるレシーバに影響を与える可能性があります。

o Strict (S) flag: flipping this S flag from 0 to 1 (i.e., E is now considered as a strict value) enables an attacker to mislead the receiver if the actual symbol size varies over different source blocks. Flipping this S flag from 1 to 0 has no major consequences unless the receiver requires to have a fixed E value (e.g., because the receiver pre-allocates memory space).

o 厳格(S)フラグ:このSフラグを0から1に反転させると(つまり、Eは厳密な値と見なされます)、実際のシンボルサイズが異なるソースブロックで異なる場合、攻撃者は受信機を誤解させることができます。このSフラグを1から0に反転しても、レシーバーが固定のE値を必要としない限り、大きな影響はありません(たとえば、レシーバーがメモリ空間を事前に割り当てるため)。

o m parameter: changing this parameter triggers a DoS since the receiver and sender will consider different codes, and the receiver will interpret the Explicit Source FEC Payload ID and Repair FEC Payload ID differently. Additionally, by increasing this m parameter to a larger value (typically m = 16 rather than 8, when both values are possible in the target use case) will create additional processing load at a receiver if decoding is attempted.

o mパラメーター:受信者と送信者は異なるコードを考慮し、受信者は明示的なソースFECペイロードIDと修復FECペイロードIDを異なる方法で解釈するため、このパラメーターを変更するとDoSがトリガーされます。さらに、このmパラメーターをより大きな値(ターゲットのユースケースで両方の値が可能である場合、通常は8ではなくm = 16)に増やすことで、デコードが試行された場合にレシーバーで追加の処理負荷が生じます。

It is therefore RECOMMENDED that security measures are taken to guarantee the FFCI integrity, as specified in [RFC6363]. How to achieve this depends on the way the FFCI is communicated from the sender to the receiver, which is not specified in this document.

したがって、[RFC6363]で指定されているように、FFCIの完全性を保証するためにセキュリティ対策を講じることをお勧めします。これを実現する方法は、FFCIが送信者から受信者に通信される方法に依存しますが、これはこのドキュメントでは指定されていません。

Similarly, attacks are possible against the Explicit Source FEC Payload ID and Repair FEC Payload ID: by modifying the Source Block Number (SBN), or the Encoding Symbol ID (ESI), or the Source Block Length (k), an attacker can easily corrupt the block identified by the SBN. Other consequences, that are use case and/or CDP dependent, may also happen. It is therefore RECOMMENDED that security measures are taken to guarantee the FEC Source and Repair Packets as stated in [RFC6363].

同様に、明示的なソースFECペイロードIDおよび修復FECペイロードIDに対して攻撃が可能です。ソースブロック番号(SBN)、またはエンコードシンボルID(ESI)、またはソースブロック長(k)を変更することにより、攻撃者は簡単に行うことができます。 SBNによって識別されたブロックを破壊します。ユースケースやCDPに依存するその他の結果も発生する可能性があります。したがって、[RFC6363]で述べられているように、FEC送信元と修復パケットを保証するためにセキュリティ対策を講じることをお勧めします。

6.3. When Several Source Flows Are to Be Protected Together
6.3. 複数のソースフローを一緒に保護する必要がある場合

The Reed-Solomon FEC Scheme specified in this document does not change the recommendations of [RFC6363].

このドキュメントで指定されているリードソロモンFECスキームは、[RFC6363]の推奨事項を変更しません。

6.4. Baseline Secure FECFRAME Operation
6.4. ベースラインの安全なFECFRAME操作

The Reed-Solomon FEC Scheme specified in this document does not change the recommendations of [RFC6363] concerning the use of the IPsec/ESP security protocol as a mandatory to implement (but not mandatory to use) security scheme. This is well suited to situations where the only insecure domain is the one over which FECFRAME operates.

このドキュメントで指定されているリードソロモンFECスキームは、IPsec / ESPセキュリティプロトコルをセキュリティスキームの実装に必須(ただし必須ではない)として使用することに関する[RFC6363]の推奨事項を変更しません。これは、安全でないドメインがFECFRAMEが動作するドメインだけである状況に適しています。

7. Operations and Management Considerations
7. 運用と管理に関する考慮事項

The FECFRAME document [RFC6363] provides a comprehensive analysis of operations and management considerations applicable to FEC schemes. Therefore, the present section only discusses topics that are specific to the use of Reed-Solomon codes as specified in this document.

FECFRAMEドキュメント[RFC6363]は、FECスキームに適用可能な運用と管理の考慮事項の包括的な分析を提供します。したがって、このセクションでは、このドキュメントで指定されているリードソロモンコードの使用に固有のトピックについてのみ説明します。

7.1. Operational Recommendations: Finite Field Size (m)
7.1. 運用上の推奨事項:有限フィールドサイズ(m)

The present document requires that m, the length of the elements in the finite field in bits, is such that 2 <= m <= 16. However, all possibilities are not equally interesting from a practical point of view. It is expected that m = 8, the default value, will be mostly used since it offers the possibility to have small to medium sized source blocks and/or a significant number of repair symbols (i.e., k < n <= 255). Additionally, elements in the finite field are 8 bits long, which makes read/write memory operations aligned on bytes during encoding and decoding.

現在の文書では、有限フィールド内の要素の長さであるmが2 <= m <= 16である必要があります。しかし、すべての可能性が実用的な観点から等しく興味深いわけではありません。小さなサイズから中程度のサイズのソースブロックやかなりの数の修復シンボル(つまり、k <n <= 255)が存在する可能性があるため、デフォルト値であるm = 8が主に使用されます。さらに、有限フィールドの要素は8ビット長であり、これにより、エンコードおよびデコード中に読み取り/書き込みメモリ操作がバイト単位で整列されます。

An alternative when it is known that only very small source blocks will be used is m = 4 (i.e., k < n <= 15). Elements in the finite field are 4 bits long, so if 2 elements are accessed at a time, read/ write memory operations are aligned on bytes during encoding and decoding.

非常に小さなソースブロックのみが使用されることがわかっている場合の代替案は、m = 4(つまり、k <n <= 15)です。有限フィールドの要素は4ビット長であるため、一度に2つの要素にアクセスした場合、メモリの読み取り/書き込み操作は、エンコードおよびデコード中にバイトで整列されます。

An alternative when very large source blocks are needed is m = 16 (i.e., k < n<= 65535). However, this choice has significant impact on the processing load. For instance, using pre-calculated tables to speed up operations over the finite field (as done with smaller finite fields) may require a prohibitive amount of memory to be used on embedded platforms. Alternative lightweight solutions (e.g., LDPC FEC [RFC5170]) may be preferred in situations where the processing load is an issue and the source block length is large enough [Matsuzono10].

非常に大きなソースブロックが必要な場合の代替方法は、m = 16(つまり、k <n <= 65535)です。ただし、この選択は処理負荷に大きな影響を与えます。たとえば、事前に計算されたテーブルを使用して、有限フィールドでの演算を高速化する(小さい有限フィールドで行われるように)場合、組み込みプラットフォームで使用できるメモリ量が非常に多くなる可能性があります。処理負荷が問題であり、ソースブロックの長さが十分に長い[Matsuzono10]状況では、代替の軽量ソリューション(LDPC FEC [RFC5170]など)が推奨される場合があります。

Since several values for the m parameter are possible, the use case SHOULD define which value or values need to be supported. In situations where this is not specified, the default m = 8 value MUST be used.

mパラメータには複数の値が考えられるため、サポートする必要のある値をユースケースで定義する必要があります(SHOULD)。これが指定されていない状況では、デフォルトのm = 8値を使用する必要があります。

In any case, any compliant implementation MUST support at least the default m = 8 value.

いずれの場合も、準拠する実装は少なくともデフォルトのm = 8値をサポートする必要があります。

8. IANA Considerations
8. IANAに関する考慮事項

Values of FEC Encoding IDs are subject to IANA registration. [RFC6363] defines general guidelines on IANA considerations. In particular, it defines the "FEC Framework (FECFRAME) FEC Encoding IDs" subregistry of the "Reliable Multicast Transport (RMT) FEC Encoding IDs and FEC Instance IDs" registry, whose registration procedure is IETF Review.

FECエンコーディングIDの値は、IANA登録の対象です。 [RFC6363]は、IANAの考慮事項に関する一般的なガイドラインを定義しています。特に、登録手順がIETF Reviewである「Reliable Multicast Transport(RMT)FEC Encoding IDs and FEC Instance IDs」レジストリの「FEC Framework(FECFRAME)FEC Encoding IDs」サブレジストリを定義しています。

This document registers one value in the "FEC Framework (FECFRAME) FEC Encoding IDs" subregistry as follows:

このドキュメントでは、「FECフレームワーク(FECFRAME)FECエンコーディングID」サブレジストリに次のように1つの値を登録しています。

8 refers to the Simple Reed-Solomon [RFC5510] FEC Scheme over GF(2^^m) for Arbitrary Packet Flows.

8は、任意のパケットフローのGF(2 ^^ m)を介したシンプルリードソロモン[RFC5510] FECスキームを指します。

9. Acknowledgments
9. 謝辞

The authors want to thank Hitoshi Asaeda and Ali Begen for their valuable comments.

著者は貴重なコメントをしてくれた浅田仁史とアリ・ベーゲンに感謝したい。

10. References
10. 参考文献
10.1. Normative References
10.1. 引用文献

[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月。

[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、「Forward Error Correction(FEC)Building Block」、RFC 5052、2007年8月。

[RFC5510] Lacan, J., Roca, V., Peltotalo, J., and S. Peltotalo, "Reed-Solomon Forward Error Correction (FEC) Schemes", RFC 5510, April 2009.

[RFC5510] Lacan、J.、Roca、V.、Peltotalo、J。、およびS. Peltotalo、「Reed-Solomon Forward Error Correction(FEC)Schemes」、RFC 5510、2009年4月。

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

[RFC6363] Watson、M.、Begen、A。、およびV. Roca、「Forward Error Correction(FEC)Framework」、RFC 6363、2011年10月。

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

[RFC6364] Begen、A。、「Forward Error Correction(FEC)フレームワークのセッション記述プロトコル要素」、RFC 6364、2011年10月。

10.2. Informative References
10.2. 参考引用

[Matsuzono10] Matsuzono, K., Detchart, J., Cunche, M., Roca, V., and H. Asaeda, "Performance Analysis of a High-Performance Real-Time Application with Several AL-FEC Schemes", 35th Annual IEEE Conference on Local Computer Networks (LCN 2010), October 2010.

[Matsuzono10]松園健一、デッチャートJ.、クンチェM.、ロカV.、および浅江宏、「AL-FECスキームをいくつか使用した高性能リアルタイムアプリケーションのパフォーマンス分析」、35回目ローカルコンピュータネットワークに関するIEEE会議(LCN 2010)、2010年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、「Raptor Forward Error Correction Scheme for Object Delivery」、RFC 5053、2007年10月。

[RFC5170] Roca, V., Neumann, C., and D. Furodet, "Low Density Parity Check (LDPC) Staircase and Triangle Forward Error Correction (FEC) Schemes", RFC 5170, June 2008.

[RFC5170] Roca、V.、Neumann、C。、およびD. Furodet、「低密度パリティチェック(LDPC)階段および三角形前方誤り訂正(FEC)スキーム」、RFC 5170、2008年6月。

[RFC5740] Adamson, B., Bormann, C., Handley, M., and J. Macker, "NACK-Oriented Reliable Multicast (NORM) Transport Protocol", RFC 5740, November 2009.

[RFC5740] Adamson、B.、Bormann、C.、Handley、M。、およびJ. Macker、「NACK-Oriented Reliable Multicast(NORM)Transport Protocol」、RFC 5740、2009年11月。

[RFC5775] Luby, M., Watson, M., and L. Vicisano, "Asynchronous Layered Coding (ALC) Protocol Instantiation", RFC 5775, April 2010.

[RFC5775] Luby、M.、Watson、M。、およびL. Vicisano、「Asynchronous Layered Coding(ALC)Protocol Instantiation」、RFC 5775、2010年4月。

[Rizzo97] Rizzo, L., "Effective Erasure Codes for Reliable Computer Communication Protocols", ACM SIGCOMM Computer Communication Review, Vol.27, No.2, pp.24-36, April 1997.

[Rizzo97]リッツォL.、「信頼性の高いコンピューター通信プロトコルの効果的な消去コード」、ACM SIGCOMMコンピューター通信レビュー、Vol.27、No.2、pp.24-36、1997年4月。

[RS-codec] Rizzo, L., "Reed-Solomon FEC codec (C language)", original codec: http://info.iet.unipi.it/~luigi/vdm98/ vdm980702.tgz, improved codec: http://openfec.org/, July 1998.

[RS-codec] Rizzo、L。、「Reed-Solomon FEC codec(C language)」、元のコーデック:http://info.iet.unipi.it/~luigi/vdm98/ vdm980702.tgz、改良されたコーデック:http ://openfec.org/、1998年7月。

Authors' Addresses

著者のアドレス

Vincent Roca INRIA 655, av. de l'Europe Inovallee; Montbonnot ST ISMIER cedex 38334 France

ヴィンセントロカINRIA 655、av。イノヴァリーヨーロッパの; Montbonnot ST ISMIER cedex 38334フランス

   EMail: vincent.roca@inria.fr
   URI:   http://planete.inrialpes.fr/people/roca/
        

Mathieu Cunche INSA-Lyon/INRIA Laboratoire CITI 6 av. des Arts Villeurbanne cedex 69621 France

マシュー・クンシェINSA-リヨン/ INRIA CITIラボ6 av。 des Arts Villeurbanne cedex 69621フランス

   EMail: mathieu.cunche@inria.fr
   URI:   http://mathieu.cunche.free.fr/
        

Jerome Lacan ISAE, Univ. of Toulouse 10 av. Edouard Belin; BP 54032 Toulouse cedex 4 31055 France

ジェローム・ラカンISAE、大学トゥールーズ10のAV。エドワール・ベリン; BP 54032 Toulouse cedex 4 31055フランス

   EMail: jerome.lacan@isae.fr
   URI:   http://personnel.isae.fr/jerome-lacan/
        

Amine Bouabdallah CDTA Center for Development of Advanced Technologies Cite 20 aout 1956, Baba Hassen Algiers Algeria

Amine Bouabdallah CDTA Center for Development for Advanced Technologies Cite 20 aout 1956、Baba Hassen Algiers Algeria

   EMail: abouabdallah@cdta.dz
        

Kazuhisa Matsuzono Keio University Graduate School of Media and Governance 5322 Endo Fujisawa, Kanagawa 252-8520 Japan

かずひさ まつぞの けいお うにゔぇrしty Gらづあて Sちょおl おf めぢあ あんd ごゔぇrなんせ 5322 えんど ふじさわ、 かながわ 252ー8520 じゃぱん

   EMail: kazuhisa@sfc.wide.ad.jp