draft-ietf-rmt-fec-bb-revised-01.txt | draft-ietf-rmt-fec-bb-revised-02.txt | |||
---|---|---|---|---|
Reliable Multicast M. Watson | Reliable Multicast M. Watson | |||
Internet-Draft M. Luby | Internet-Draft M. Luby | |||
Expires: March 5, 2006 Digital Fountain | Expires: April 21, 2006 Digital Fountain | |||
L. Vicisano | L. Vicisano | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
September 1, 2005 | October 18, 2005 | |||
Forward Error Correction (FEC) Building Block | Forward Error Correction (FEC) Building Block | |||
draft-ietf-rmt-fec-bb-revised-01 | draft-ietf-rmt-fec-bb-revised-02 | |||
Status of this Memo | Status of this Memo | |||
By submitting this Internet-Draft, each author represents that any | By submitting this Internet-Draft, each author represents that any | |||
applicable patent or other IPR claims of which he or she is aware | applicable patent or other IPR claims of which he or she is aware | |||
have been or will be disclosed, and any of which he or she becomes | have been or will be disclosed, and any of which he or she becomes | |||
aware will be disclosed, in accordance with Section 6 of BCP 79. | aware will be disclosed, in accordance with Section 6 of BCP 79. | |||
Internet-Drafts are working documents of the Internet Engineering | Internet-Drafts are working documents of the Internet Engineering | |||
Task Force (IETF), its areas, and its working groups. Note that | Task Force (IETF), its areas, and its working groups. Note that | |||
skipping to change at page 1, line 36 | skipping to change at page 1, line 36 | |||
and may be updated, replaced, or obsoleted by other documents at any | and may be updated, replaced, or obsoleted by other documents at any | |||
time. It is inappropriate to use Internet-Drafts as reference | time. It is inappropriate to use Internet-Drafts as reference | |||
material or to cite them other than as "work in progress." | material or to cite them other than as "work in progress." | |||
The list of current Internet-Drafts can be accessed at | The list of current Internet-Drafts can be accessed at | |||
http://www.ietf.org/ietf/1id-abstracts.txt. | http://www.ietf.org/ietf/1id-abstracts.txt. | |||
The list of Internet-Draft Shadow Directories can be accessed at | The list of Internet-Draft Shadow Directories can be accessed at | |||
http://www.ietf.org/shadow.html. | http://www.ietf.org/shadow.html. | |||
This Internet-Draft will expire on March 5, 2006. | This Internet-Draft will expire on April 21, 2006. | |||
Copyright Notice | Copyright Notice | |||
Copyright (C) The Internet Society (2005). | Copyright (C) The Internet Society (2005). | |||
Abstract | Abstract | |||
This document describes how to use Forward Error Correction (FEC) | This document describes how to use Forward Error Correction (FEC) | |||
codes to efficiently provide and/or augment reliability for data | codes to efficiently provide and/or augment reliability for data | |||
transport. This document defines a framework for the definition of | transport. This document defines a framework for the definition of | |||
skipping to change at page 2, line 39 | skipping to change at page 2, line 39 | |||
6.2.4. Common FEC Object Transmission Information elements . 15 | 6.2.4. Common FEC Object Transmission Information elements . 15 | |||
6.2.5. Scheme-specific FEC Object Transmission | 6.2.5. Scheme-specific FEC Object Transmission | |||
Information element . . . . . . . . . . . . . . . . . 15 | Information element . . . . . . . . . . . . . . . . . 15 | |||
6.3. FEC Payload ID . . . . . . . . . . . . . . . . . . . . . . 16 | 6.3. FEC Payload ID . . . . . . . . . . . . . . . . . . . . . . 16 | |||
7. FEC scheme specifications . . . . . . . . . . . . . . . . . . 17 | 7. FEC scheme specifications . . . . . . . . . . . . . . . . . . 17 | |||
8. CDP specifications . . . . . . . . . . . . . . . . . . . . . . 20 | 8. CDP specifications . . . . . . . . . . . . . . . . . . . . . . 20 | |||
9. Common algorithms . . . . . . . . . . . . . . . . . . . . . . 21 | 9. Common algorithms . . . . . . . . . . . . . . . . . . . . . . 21 | |||
9.1. Block partitioning algorithm . . . . . . . . . . . . . . . 21 | 9.1. Block partitioning algorithm . . . . . . . . . . . . . . . 21 | |||
9.1.1. First Step . . . . . . . . . . . . . . . . . . . . . . 21 | 9.1.1. First Step . . . . . . . . . . . . . . . . . . . . . . 21 | |||
9.1.2. Second step . . . . . . . . . . . . . . . . . . . . . 22 | 9.1.2. Second step . . . . . . . . . . . . . . . . . . . . . 22 | |||
10. Requirements from other building blocks . . . . . . . . . . . 24 | 10. Requirements from other building blocks . . . . . . . . . . . 23 | |||
11. Security Considerations . . . . . . . . . . . . . . . . . . . 25 | 11. Security Considerations . . . . . . . . . . . . . . . . . . . 24 | |||
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 26 | 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25 | |||
12.1. Explicit IANA Assignment Guidelines . . . . . . . . . . . 26 | 12.1. Explicit IANA Assignment Guidelines . . . . . . . . . . . 25 | |||
13. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 28 | 13. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 27 | |||
14. References . . . . . . . . . . . . . . . . . . . . . . . . . . 29 | 14. References . . . . . . . . . . . . . . . . . . . . . . . . . . 28 | |||
14.1. Normative References . . . . . . . . . . . . . . . . . . . 29 | 14.1. Normative References . . . . . . . . . . . . . . . . . . . 28 | |||
14.2. Informative References . . . . . . . . . . . . . . . . . . 29 | 14.2. Informative References . . . . . . . . . . . . . . . . . . 28 | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 30 | Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 29 | |||
Intellectual Property and Copyright Statements . . . . . . . . . . 31 | Intellectual Property and Copyright Statements . . . . . . . . . . 30 | |||
1. Introduction | 1. Introduction | |||
This document describes how to use Forward Error Correction (FEC) | This document describes how to use Forward Error Correction (FEC) | |||
codes to provide support for reliable delivery of content within the | codes to provide support for reliable delivery of content within the | |||
context of a Content Delivery Protocol (CDP). This document | context of a Content Delivery Protocol (CDP). This document | |||
describes a building block as defined in [10]. This document is a | describes a building block as defined in [10]. This document is a | |||
product of the IETF RMT WG and follows the general guidelines | product of the IETF RMT WG and follows the general guidelines | |||
provided in [8]. | provided in [8]. | |||
The purpose of this building block is to define a framework for | The purpose of this building block is to define a framework for | |||
forward error correction such that: | forward error correction such that: | |||
1. CDPs can be designed to operate with a range of different FEC | 1. CDPs can be designed to operate with a range of different FEC | |||
codes/scheme, without needing to know details of the specific FEC | codes/schemes, without needing to know details of the specific | |||
code/scheme that may be used | FEC code/scheme that may be used | |||
2. FEC schemes can be designed to operate with a range of different | 2. FEC schemes can be designed to operate with a range of different | |||
CDPs, without needing to know details of the specific CDPs | CDPs, without needing to know details of the specific CDPs | |||
Note that a 'CDP' in the context of this document may consist of | Note that a 'CDP' in the context of this document may consist of | |||
several distinct protocol mechanisms. | several distinct protocol mechanisms and may support any kind of | |||
application requiring reliable transport - for example object | ||||
delivery and streaming applications. | ||||
This document also provides detailed guidelines on how to write an | This document also provides detailed guidelines on how to write an | |||
RFC for an FEC scheme corresponding to a new FEC Encoding ID (for | RFC for an FEC scheme corresponding to a new FEC Encoding ID (for | |||
both Fully-Specified and Under-Specified FEC Schemes). | both Fully-Specified and Under-Specified FEC Schemes). | |||
2. Definitions/Abbreviations | 2. Definitions/Abbreviations | |||
Object: An ordered sequence of bytes to be transferred by the | Object: An ordered sequence of bytes to be transferred by the | |||
transport protocol. For example, a file or stream. | transport protocol. For example, a file or stream. | |||
skipping to change at page 6, line 7 | skipping to change at page 6, line 7 | |||
FEC: Forward Error Correction | FEC: Forward Error Correction | |||
3. Requirements notation | 3. Requirements notation | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this | |||
document are to be interpreted as described in [1]. | document are to be interpreted as described in [1]. | |||
4. Rationale | 4. Rationale | |||
FEC codes are a valuable basic component of any CDP that is to | An FEC code is a valuable basic component of any CDP that is to | |||
provide reliable delivery of an object. Using FEC codes is effective | provide reliable delivery of an object. Using FEC codes is effective | |||
in the context of IP multicast and reliable delivery because FEC | in the context of IP multicast and reliable delivery because FEC | |||
encoding symbols can be useful to all receivers for reconstructing an | encoding symbols can be useful to all receivers for reconstructing an | |||
object even when the receivers have received different encoding | object even when the receivers have received different encoding | |||
symbols. Furthermore, FEC codes can ameliorate or even eliminate the | symbols. Furthermore, FEC codes can ameliorate or even eliminate the | |||
need for feedback from receivers to senders to request retransmission | need for feedback from receivers to senders to request retransmission | |||
of lost packets. | of lost packets. | |||
Central to this document is the concept of an 'FEC Scheme'. An FEC | Central to this document is the concept of an 'FEC Scheme'. An FEC | |||
scheme defines ancilliary information and procedures which, combined | scheme defines ancilliary information and procedures which, combined | |||
skipping to change at page 11, line 34 | skipping to change at page 11, line 34 | |||
the FEC Object Transmission Information. | the FEC Object Transmission Information. | |||
The following requirements apply to all FEC schemes, whether Fully- | The following requirements apply to all FEC schemes, whether Fully- | |||
Specified or Under-Specified: | Specified or Under-Specified: | |||
o The type, semantics and an encoding format for the FEC Payload ID | o The type, semantics and an encoding format for the FEC Payload ID | |||
and the FEC Object Transmission Information MUST be defined. | and the FEC Object Transmission Information MUST be defined. | |||
o A value for the FEC Encoding ID MUST be reserved and associated | o A value for the FEC Encoding ID MUST be reserved and associated | |||
with the types, semantics and encoding format of the FEC Payload | with the types, semantics and encoding format of the FEC Payload | |||
ID and the the FEC Object Transmission Information. | ID and the FEC Object Transmission Information. | |||
The specification for an Under-Specified FEC Scheme MAY allocate a | The specification for an Under-Specified FEC Scheme MAY allocate a | |||
sub-field within the Scheme-specific FEC Object Transmission | sub-field within the Scheme-specific FEC Object Transmission | |||
Information element which is for instance-specific information. Each | Information element which is for instance-specific information. Each | |||
specific instance of the Under-Specified FEC Scheme may then use this | specific instance of the Under-Specified FEC Scheme may then use this | |||
field in an instance-specific way. The FEC scheme should define the | field in an instance-specific way. The FEC scheme should define the | |||
scheme-specific FEC Object Transmission Information element in such a | scheme-specific FEC Object Transmission Information element in such a | |||
way that receivers that do not support the received FEC Instance ID | way that receivers that do not support the received FEC Instance ID | |||
can still parse and interpret the scheme-specific FEC Object | can still parse and interpret the scheme-specific FEC Object | |||
Transmission Information element with the exception of the instance- | Transmission Information element with the exception of the instance- | |||
skipping to change at page 12, line 9 | skipping to change at page 12, line 9 | |||
An already defined Under-Specified FEC Scheme (i.e. FEC Encoding ID | An already defined Under-Specified FEC Scheme (i.e. FEC Encoding ID | |||
value) MUST be reused if the associated FEC Payload ID and FEC Object | value) MUST be reused if the associated FEC Payload ID and FEC Object | |||
Transmission Information have the required fields and encoding | Transmission Information have the required fields and encoding | |||
formats for a new Under-Specified FEC scheme instance. | formats for a new Under-Specified FEC scheme instance. | |||
An instance of an Under-Specified FEC scheme is fully identified by | An instance of an Under-Specified FEC scheme is fully identified by | |||
the tuple (FEC Encoding ID, FEC Instance ID). The tuple MUST | the tuple (FEC Encoding ID, FEC Instance ID). The tuple MUST | |||
identify a single scheme instance that has at least one | identify a single scheme instance that has at least one | |||
implementation. The party that owns this tuple MUST be able to | implementation. The party that owns this tuple MUST be able to | |||
provide information on how to obtain the the Under-Specified FEC | provide information on how to obtain the Under-Specified FEC scheme | |||
scheme instance identified by the tuple, e.g., a pointer to a | instance identified by the tuple, e.g., a pointer to a publicly | |||
publicly available reference-implementation or the name and contacts | available reference-implementation or the name and contacts of a | |||
of a company that sells it, either separately or embedded in another | company that sells it, either separately or embedded in another | |||
product. | product. | |||
This specification reserves the range 0-127 for the values of FEC | This specification reserves the range 0-127 for the values of FEC | |||
Encoding IDs for Fully-Specified FEC schemes and the range 128-255 | Encoding IDs for Fully-Specified FEC schemes and the range 128-255 | |||
for the values of Under-Specified FEC schemes. | for the values of Under-Specified FEC schemes. | |||
6.2. FEC Object Transmission Information | 6.2. FEC Object Transmission Information | |||
The FEC Object Transmission Information contains information which is | The FEC Object Transmission Information contains information which is | |||
essential to the decoder in order to decode the encoded object. It | essential to the decoder in order to decode the encoded object. It | |||
skipping to change at page 12, line 44 | skipping to change at page 12, line 44 | |||
Object Transmission Information elements are determined and each | Object Transmission Information elements are determined and each | |||
CDP specifies how this information is encoded and reliably | CDP specifies how this information is encoded and reliably | |||
communicated to the receiver(s). The Mandatory FEC Object | communicated to the receiver(s). The Mandatory FEC Object | |||
Transmission Information includes the identification of the FEC | Transmission Information includes the identification of the FEC | |||
Scheme, which is needed by the receiver to determine whether it | Scheme, which is needed by the receiver to determine whether it | |||
supports the FEC Scheme. | supports the FEC Scheme. | |||
Common: These elements are defined in this specification and are | Common: These elements are defined in this specification and are | |||
optional to be used by an FEC scheme. Each FEC scheme specifies | optional to be used by an FEC scheme. Each FEC scheme specifies | |||
which of the Common FEC Object Transmission Information elements | which of the Common FEC Object Transmission Information elements | |||
it uses and how the values of these elements are determined. Each | it uses and how the values of these elements are determined. | |||
FEC scheme also specifies an encoding format for the information. | ||||
Each CDP must specify at least one of the following: | ||||
1. A means to reliably communicated the Common FEC Object | Scheme-specific: An FEC scheme may specify a single Scheme-specific | |||
FEC Object Transmission Information element. The FEC scheme | ||||
specifies the type, semantics and encoding format of the Scheme- | ||||
specific FEC Object Transmission Information element. The | ||||
resulting byte-string is known as the "encoded Scheme-specific FEC | ||||
Object Transmission Information". Each CDP specifies how the | ||||
encoded Scheme-specific FEC Object Transmission is communicated | ||||
reliably to the receiver(s) i.e. exactly where it shall be carried | ||||
within packets of the CDP. Note that although from the point of | ||||
view of this specification and of CDPs there is only a single | ||||
Scheme-specific FEC Object Transmission Information element, the | ||||
FEC scheme may specify this element to contain multiple distinct | ||||
pieces of information. | ||||
Each FEC scheme specifies an encoding format for the Common and | ||||
Scheme-specific FEC Object Transmission Information. Each CDP must | ||||
specify at least one of the following: | ||||
1. A means to reliably communicate the Common FEC Object | ||||
Transmission Information elements to the receiver(s) using the | Transmission Information elements to the receiver(s) using the | |||
encoding format defined by the FEC scheme. | encoding format defined by the FEC scheme. | |||
2. An alternative, CDP specific, encoding format for each of the | 2. An alternative, CDP specific, encoding format for each of the | |||
Common FEC Object Transmission Information elements. | Common FEC Object Transmission Information elements. | |||
Scheme-specific: An FEC scheme may specify a single Scheme-specific | ||||
FEC Object Transmission Information element. The FEC scheme | ||||
specifies the type, semantics and encoding format of the Scheme- | ||||
specific FEC Object Transmission Information element. The | ||||
encoding format may assume that the receiver can determine the | ||||
length of the Scheme-specific FEC Object Transmission Information | ||||
element from information communicated outside that element. Each | ||||
CDP specifies how the Scheme-specific FEC Object Transmission | ||||
Element is communicated reliably to the receiver(s) i.e. exactly | ||||
where it shall be carried within packets of the CDP. CDPs also | ||||
specify how the length of the Scheme-specific FEC Object | ||||
Transmission Information can be determined by the receiver. Note | ||||
that although from the point of view of this specification and of | ||||
CDPs there is only a single Scheme-specific FEC Object | ||||
Transmission Information element, the FEC scheme may specify this | ||||
element to contain multiple distinct pieces of information. | ||||
The Mandatory and Common FEC Object Transmission Information elements | The Mandatory and Common FEC Object Transmission Information elements | |||
are defined in the sections below. | are defined in the sections below. | |||
6.2.1. Transport of FEC Object Transmission Information | 6.2.1. Transport of FEC Object Transmission Information | |||
It is the responsibility of the CDP to reliably transport the FEC | It is the responsibility of the CDP to reliably transport the FEC | |||
Object Transmission Information to the receiver(s). | Object Transmission Information to the receiver(s). | |||
It is important to note that the encoding format of the Mandatory FEC | It is important to note that the encoding format of the Mandatory FEC | |||
Object Transmission Information elements (The FEC Encoding ID and FEC | Object Transmission Information elements (The FEC Encoding ID) is | |||
Instance ID) is defined by the CDP. This is so that the receiver can | defined by the CDP. This is so that the receiver can identify the | |||
identify the FEC Scheme to be used for interpreting the remaining FEC | FEC Scheme to be used for interpreting the remaining FEC Object | |||
Object Transmission Information elements. All CDPs must define | Transmission Information elements. All CDPs must define encoding | |||
encoding formats for all the Mandatory FEC Object Transmission | formats for the Mandatory FEC Object Transmission Information | |||
Information elements. | element. | |||
Common FEC Object Transmission Information elements can be | Common FEC Object Transmission Information elements can be | |||
transported in two different ways: (a) the FEC Scheme defines an | transported in two different ways: (a) the FEC Scheme defines an | |||
encoding format for each Common FEC Object Transmission Information | encoding format for the Common FEC Object Transmission Information | |||
element that it uses and the CDP transports it, or (b) the CDP | elements that it uses and the CDP transports this encoded data block, | |||
defines an encoding format and transports the information in this | or (b) the CDP defines an encoding format for each Common FEC Object | |||
format. | Transmission Information element and transports the information in | |||
this format. | ||||
An FEC Scheme MUST define encoding formats for the Common FEC Object | ||||
Transmission Information elements that it uses. A CDP MAY define | ||||
encoding formats for the Common FEC Object Transmission Information | ||||
elements. The CDP determines which way the Common FEC Object | ||||
Transmission Information elements shall be transported, (a) or (b). | ||||
Note that a CDP may provide support for one or both options. | An FEC Scheme MUST define an encoding format for the Common FEC | |||
Object Transmission Information elements that it uses. The resulting | ||||
byte string is known as the "encoded Common FEC Object Transmission | ||||
Information". A CDP MAY define individual encoding formats for each | ||||
of the Common FEC Object Transmission Information elements. The CDP | ||||
determines which way the Common FEC Object Transmission Information | ||||
elements shall be transported, (a) or (b). Note that a CDP may | ||||
provide support for one or both options. | ||||
In the case that the CDP uses the encoding formats specified by the | In the case that the CDP uses the encoding format specified by the | |||
FEC scheme then it may simply concatenate the encoding formats | FEC scheme then it may simply concatenate the encoded Common FEC | |||
defined by the FEC scheme or it may carry each element in a seperate | Object Transmission Information and the encoded Scheme-specific FEC | |||
field or wrapper within the CDP. The FEC scheme must define the | Object Transmission Information or it may carry each in a seperate | |||
encoding formats of the Common FEC Object Transmission Information | field or wrapper within the CDP. In the former case, the | |||
elements that it uses in such a way that the length of each element | concatenated byte-string is known as the encoded FEC Object | |||
is either fixed or can be determined from the encoded data itself. | Transmission Information. The FEC scheme must define the encoding | |||
format for the Common FEC Object Transmission Information elements | ||||
that it uses in such a way that the length of each element is either | ||||
fixed or can be determined from the encoded data itself. | ||||
The encoding format of the Scheme-specific FEC Object Transmission | The encoding format of the Scheme-specific FEC Object Transmission | |||
Information element is defined by the FEC scheme. CDPs specify only | Information element is defined by the FEC scheme. CDPs specify only | |||
how the resulting byte sequence is communicated. As with encoding | how the resulting byte sequence is communicated. As with the | |||
formats for the Common FEC Oject Transmission Information elements | encoding format for the Common FEC Oject Transmission Information | |||
the length of the Scheme-specific FEC Object Transmission Information | elements the length of the Scheme-specific FEC Object Transmission | |||
must either be fixed or it must be possible to determine the length | Information must either be fixed or it must be possible to determine | |||
from the encoded data itself. | the length from the encoded data itself. | |||
6.2.2. Opacity of FEC Object Transmission Information | 6.2.2. Opacity of FEC Object Transmission Information | |||
The Scheme-specific FEC Object Transmission Information element is | The Scheme-specific FEC Object Transmission Information element is | |||
opaque to the CDP in the sense that inspecting the contents of this | opaque to the CDP in the sense that inspecting the contents of this | |||
element can only be done if FEC scheme-specific logic is included in | element can only be done if FEC scheme-specific logic is included in | |||
the CDP. | the CDP. | |||
The encoding formats defined by the FEC scheme for the Common FEC | The encoding formats defined by the FEC scheme for the Common FEC | |||
Object Transmission Information elements are also opaque to the CDP | Object Transmission Information elements are also opaque to the CDP | |||
in the same sense. | in the same sense. | |||
The encoding formats defined by the CDP for the Common FEC Object | The encoding formats defined by the CDP for the Common FEC Object | |||
Transmission Information elements are not opaque in this sense, | Transmission Information elements are not opaque in this sense, | |||
although it must be considered that different FEC Schemes may use | although it must be considered that different FEC Schemes may use | |||
different combinations of the Common FEC Object Transmission | different combinations of the Common FEC Object Transmission | |||
Information elements. | Information elements. | |||
6.2.3. Mandatory FEC Object Transmission Information elements | 6.2.3. Mandatory FEC Object Transmission Information elements | |||
The Mandatory FEC Object Transmission Information elements are: | The Mandatory FEC Object Transmission Information element is: | |||
FEC Encoding ID: an integer between 0 and 255 inclusive identifying a | FEC Encoding ID: an integer between 0 and 255 inclusive identifying a | |||
specific FEC scheme (Fully-Specified or Under-Specified.) | specific FEC scheme (Fully-Specified or Under-Specified.) | |||
FEC Instance ID (if the FEC Encoding ID identifies an Under-Specified | ||||
FEC scheme): an integer between 0 and 65535 inclusive identifying an | ||||
instance of an Under-specifed FEC scheme | ||||
6.2.4. Common FEC Object Transmission Information elements | 6.2.4. Common FEC Object Transmission Information elements | |||
The Common FEC Object Transmission Information elements are described | The Common FEC Object Transmission Information elements are described | |||
below. Note that this specification does not provide complete | below. Note that with the exception of the FEC Instance ID, this | |||
definitions of these fields. Instead only aspects of the abstract | specification does not provide complete definitions of these fields. | |||
type are defined. The precise type and semantics are defined for | Instead only aspects of the abstract type are defined. The precise | |||
each FEC scheme in the FEC scheme specification. | type and semantics are defined for each FEC scheme in the FEC scheme | |||
specification. | ||||
FEC Instance ID: an integer between 0 and 65535 inclusive identifying | ||||
an instance of an Under-specifed FEC scheme | ||||
Transfer-Length: a non-negative integer indicating the length of the | Transfer-Length: a non-negative integer indicating the length of the | |||
object in bytes | object in bytes | |||
Encoding-Symbol-Length: a non-negative integer indicating the length | Encoding-Symbol-Length: a non-negative integer indicating the length | |||
of each encoding symbol in bytes | of each encoding symbol in bytes | |||
Maximum-Source-Block-Length: a non-negative integer indicating the | Maximum-Source-Block-Length: a non-negative integer indicating the | |||
maximum number of source symbols in a source block | maximum number of source symbols in a source block | |||
Max-Number-of-Encoding-Symbols: a non-negative integer indicating the | Max-Number-of-Encoding-Symbols: a non-negative integer indicating the | |||
maximum number of encoding symbols (i.e. source plus repair | maximum number of encoding symbols (i.e. source plus repair | |||
symbols in the case of a systematic code) | symbols in the case of a systematic code) | |||
The FEC Instance ID MUST be used by all Under-specified FEC schemes | ||||
and MUST NOT be used by Fully-specified FEC Schemes. | ||||
FEC Schemes define the precise type of those of the above elements | FEC Schemes define the precise type of those of the above elements | |||
that they use and in particular may restrict the value range of each | that they use and in particular may restrict the value range of each | |||
element. FEC Schemes also define an encoding format for each of the | element. FEC Schemes also define an encoding format for the subset | |||
above elements that they use. CDPs may also provide an encoding | of the above elements that they use. CDPs may also provide an | |||
format for each element in which case this encoding format MUST be | encoding format for each element in which case this encoding format | |||
capable of representing values up to (2^^48)-1 in the case of the | MUST be capable of representing values up to (2^^16)-1 in the case of | |||
Transfer-Length and up to (2^^32)-1 for the other elements. CDPs may | the FEC Instance ID, (2^^48)-1 in the case of the Transfer-Length and | |||
additionally or alternatively provide a mechanism to transport these | up to (2^^32)-1 for the other elements. CDPs may additionally or | |||
elements encoded according to the encoding format defined by the FEC | alternatively provide a mechanism to transport the encoded Common FEC | |||
scheme. For example, FLUTE [8] specifies an XML-based encoding | Object Transmission information defined by the FEC scheme. For | |||
format for these elements, but can also transport FEC scheme-specific | example, FLUTE [8] specifies an XML-based encoding format for these | |||
encoding formats within the EXT-FTI header extension. | elements, but can also transport FEC scheme-specific encoding formats | |||
within the EXT-FTI LCT header extension. | ||||
6.2.5. Scheme-specific FEC Object Transmission Information element | 6.2.5. Scheme-specific FEC Object Transmission Information element | |||
The Scheme-specific FEC Object Transmission Information element may | The Scheme-specific FEC Object Transmission Information element may | |||
be used by an FEC Scheme to communicate information which is | be used by an FEC Scheme to communicate information which is | |||
essential to the decoder which cannot adequately be represented | essential to the decoder which cannot adequately be represented | |||
within the Mandatory or Common FEC Object Transmission Information | within the Mandatory or Common FEC Object Transmission Information | |||
elements. | elements. | |||
From the point of view of a CDP, the Scheme-specific FEC Object | From the point of view of a CDP, the Scheme-specific FEC Object | |||
Transmission Information element is an opaque, variable length, | Transmission Information element is an opaque, variable length, byte | |||
bitstring. The FEC Scheme defines the structure of this bitstring, | string. The FEC Scheme defines the structure of this byte string, | |||
which may contain multiple distinct elements. | which may contain multiple distinct elements. | |||
6.3. FEC Payload ID | 6.3. FEC Payload ID | |||
The FEC Payload ID contains information which indicates to the FEC | The FEC Payload ID contains information which indicates to the FEC | |||
decoder the relationships between the encoding symbols carried by a | decoder the relationships between the encoding symbols carried by a | |||
particular packet and the FEC encoding transformation. For example | particular packet and the FEC encoding transformation. For example | |||
if the packet carries source symbols then the FEC Payload ID | if the packet carries source symbols then the FEC Payload ID | |||
indicates which source symbols of the object are carried by the | indicates which source symbols of the object are carried by the | |||
packet. If the packet carries repair symbols, then the FEC Payload | packet. If the packet carries repair symbols, then the FEC Payload | |||
skipping to change at page 19, line 9 | skipping to change at page 19, line 9 | |||
2. Formats and Codes | 2. Formats and Codes | |||
2.1 FEC Payload ID(s) <define the type and format of one or two | 2.1 FEC Payload ID(s) <define the type and format of one or two | |||
FEC Payload IDs> | FEC Payload IDs> | |||
2.2 FEC Object Transmission Information | 2.2 FEC Object Transmission Information | |||
2.2.1 Mandatory <define the value of the FEC Encoding ID for | 2.2.1 Mandatory <define the value of the FEC Encoding ID for | |||
this FEC scheme> | this FEC scheme> | |||
<in the case of Under-Specified FEC schemes, state the | ||||
requirement for the FEC Instance ID to be part of the FEC | ||||
Object Transmission Information> | ||||
2.2.2 Common <describe which Common FEC Object Transmission | 2.2.2 Common <describe which Common FEC Object Transmission | |||
Information elements are used by this FEC scheme, define | Information elements are used by this FEC scheme, define | |||
their value ranges and define an encoding format for them> | their value ranges and define an encoding format for them> | |||
2.2.3 Scheme-Specific <define the Scheme-specific FEC Object | 2.2.3 Scheme-Specific <define the Scheme-specific FEC Object | |||
Transmission Information, including an encoding format, if | Transmission Information, including an encoding format, if | |||
required> | required> | |||
3. Procedures <describe any procedures which are specific to this | 3. Procedures <describe any procedures which are specific to this | |||
FEC scheme, in particular derivation and interpretation of the | FEC scheme, in particular derivation and interpretation of the | |||
skipping to change at page 20, line 10 | skipping to change at page 20, line 10 | |||
Each FEC scheme MUST be specified independently of all other FEC | Each FEC scheme MUST be specified independently of all other FEC | |||
schemes; for example, in a separate specification or a completely | schemes; for example, in a separate specification or a completely | |||
independent section of larger specification. | independent section of larger specification. | |||
8. CDP specifications | 8. CDP specifications | |||
A specification for a CDP that uses this building block MUST include | A specification for a CDP that uses this building block MUST include | |||
the following things: | the following things: | |||
1. Definitions of encoding formats for the Mandatory FEC Object | 1. Definitions of an encoding formats for the Mandatory FEC Object | |||
Transmission Information elements. | Transmission Information element. | |||
2. A means to reliably communicate the Mandatory FEC Object | 2. A means to reliably communicate the Mandatory FEC Object | |||
Transmission Information elements from sender to receiver(s) | Transmission Information element from sender to receiver(s) using | |||
using the encoding format defined in (1). | the encoding format defined in (1). | |||
3. Means to reliably communicate the Common FEC Object Transmission | 3. Means to reliably communicate the Common FEC Object Transmission | |||
Information element from sender to receiver(s) using either or | Information element from sender to receiver(s) using either or | |||
both of (a) encoding formats defined by the FEC Scheme or (b) | both of (a) the encoding format defined by the FEC Scheme or (b) | |||
encoding formats defined by the CDP | encoding formats defined by the CDP | |||
4. A means to reliably communicate the Scheme-specific FEC Object | 4. A means to reliably communicate the Scheme-specific FEC Object | |||
Transmission Information element from sender to receiver(s) using | Transmission Information element from sender to receiver(s) using | |||
the encoding format of the Scheme-specific FEC Object | the encoding format of the Scheme-specific FEC Object | |||
Transmission Information element defined by the FEC scheme. | Transmission Information element defined by the FEC scheme. | |||
5. A means to communicate the FEC Payload ID in association with a | 5. A means to communicate the FEC Payload ID in association with a | |||
data packet. Note that the encoding format of the FEC Payload ID | data packet. Note that the encoding format of the FEC Payload ID | |||
is defined by the FEC Scheme. | is defined by the FEC Scheme. | |||
skipping to change at page 21, line 33 | skipping to change at page 21, line 33 | |||
blocks (N) are derived from the Object transfer length (L), Maximum | blocks (N) are derived from the Object transfer length (L), Maximum | |||
Source Block Length (B) and Symbol Length (E). | Source Block Length (B) and Symbol Length (E). | |||
In the second step, the partitioning of the object is derived from | In the second step, the partitioning of the object is derived from | |||
the number of source symbols (T) and the number of source blocks (N). | the number of source symbols (T) and the number of source blocks (N). | |||
The partitioning is defined in terms of a first number of source | The partitioning is defined in terms of a first number of source | |||
blocks (I), a second number of source blocks (N-I), the length of | blocks (I), a second number of source blocks (N-I), the length of | |||
each of the first source blocks (A_large) and the length of each of | each of the first source blocks (A_large) and the length of each of | |||
the second source blocks (A_small). | the second source blocks (A_small). | |||
This algorithm is identical to the one specified in Section 5.1.2.3 | ||||
of FLUTE [8] | ||||
The following notation is used in the description below: | The following notation is used in the description below: | |||
ceil[x] denotes x rounded up to the nearest integer. | ceil[x] denotes x rounded up to the nearest integer. | |||
floor[x] denotes x rounded down to the nearest integer. | floor[x] denotes x rounded down to the nearest integer. | |||
9.1.1. First Step | 9.1.1. First Step | |||
Input: | Input: | |||
skipping to change at page 22, line 51 | skipping to change at page 22, line 48 | |||
1. A_large = ceil[T/N] | 1. A_large = ceil[T/N] | |||
2. A_small = floor[T/N] | 2. A_small = floor[T/N] | |||
3. I = T - A_small * N | 3. I = T - A_small * N | |||
Each of the first I source blocks then consists of A_large source | Each of the first I source blocks then consists of A_large source | |||
symbols, each source symbol is E bytes in length. Each of the | symbols, each source symbol is E bytes in length. Each of the | |||
remaining N-I source blocks consist of A_small source symbols, each | remaining N-I source blocks consist of A_small source symbols, each | |||
source symbol is E bytes in length except that the last source symbol | source symbol is E bytes in length except that the last source symbol | |||
of the last source block is L-(((L-1)/E) rounded down to the nearest | of the last source block is L-((L-1)/E) rounded down to the nearest | |||
integer)*E bytes in length. | integer)*E bytes in length. | |||
10. Requirements from other building blocks | 10. Requirements from other building blocks | |||
The FEC building block does not provide any support for congestion | The FEC building block does not provide any support for congestion | |||
control. Any complete CDP MUST provide congestion control that | control. Any complete CDP MUST provide congestion control that | |||
conforms to [6], and thus this MUST be provided by another building | conforms to [6], and thus this MUST be provided by another building | |||
block when the FEC building block is used in a CDP. | block when the FEC building block is used in a CDP. | |||
There are no other specific requirements from other building blocks | There are no other specific requirements from other building blocks | |||
End of changes. 30 change blocks. | ||||
107 lines changed or deleted | 110 lines changed or added | |||
This html diff was produced by rfcdiff 1.27, available from http://www.levkowetz.com/ietf/tools/rfcdiff/ |