draft-ietf-rmt-fec-bb-revised-03.txt   draft-ietf-rmt-fec-bb-revised-04.txt 
Reliable Multicast M. Watson Reliable Multicast M. Watson
Internet-Draft M. Luby Internet-Draft M. Luby
Expires: July 24, 2006 Digital Fountain Intended status: Informational Digital Fountain
L. Vicisano Expires: March 8, 2007 L. Vicisano
Cisco Systems, Inc. Cisco Systems, Inc.
January 20, 2006 September 4, 2006
Forward Error Correction (FEC) Building Block Forward Error Correction (FEC) Building Block
draft-ietf-rmt-fec-bb-revised-03 draft-ietf-rmt-fec-bb-revised-04
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 July 24, 2006. This Internet-Draft will expire on March 8, 2007.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2006). Copyright (C) The Internet Society (2006).
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 17 skipping to change at page 3, line 7
defining the information communication requirements associated with defining the information communication requirements associated with
those codes and registering them with the Internet Assigned Numbers those codes and registering them with the Internet Assigned Numbers
Authority (IANA) are also described. The requirements on Content Authority (IANA) are also described. The requirements on Content
Delivery Protocols which wish to use FEC codes defined within this Delivery Protocols which wish to use FEC codes defined within this
framework are also defined. The companion document titled, "The Use framework are also defined. The companion document titled, "The Use
of Forward Error Correction (FEC) in Reliable Multicast" describes of Forward Error Correction (FEC) in Reliable Multicast" describes
some applications of FEC codes for delivering content. some applications of FEC codes for delivering content.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Definitions/Abbreviations . . . . . . . . . . . . . . . . . . 4 2. Definitions/Abbreviations . . . . . . . . . . . . . . . . . . 5
3. Requirements notation . . . . . . . . . . . . . . . . . . . . 5 3. Requirements notation . . . . . . . . . . . . . . . . . . . . 6
4. Rationale . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4. Rationale . . . . . . . . . . . . . . . . . . . . . . . . . . 7
5. Applicability Statement . . . . . . . . . . . . . . . . . . . 8 5. Applicability Statement . . . . . . . . . . . . . . . . . . . 9
6. Functionality . . . . . . . . . . . . . . . . . . . . . . . . 9 6. Functionality . . . . . . . . . . . . . . . . . . . . . . . . 10
6.1. FEC Schemes . . . . . . . . . . . . . . . . . . . . . . . 10 6.1. FEC Schemes . . . . . . . . . . . . . . . . . . . . . . . 11
6.2. FEC Object Transmission Information . . . . . . . . . . . 12 6.2. FEC Object Transmission Information . . . . . . . . . . . 13
6.2.1. Transport of FEC Object Transmission Information . . . 13 6.2.1. Transport of FEC Object Transmission Information . . . 14
6.2.2. Opacity of FEC Object Transmission Information . . . . 14 6.2.2. Opacity of FEC Object Transmission Information . . . . 15
6.2.3. Mandatory FEC Object Transmission Information 6.2.3. Mandatory FEC Object Transmission Information
elements . . . . . . . . . . . . . . . . . . . . . . . 14 elements . . . . . . . . . . . . . . . . . . . . . . . 15
6.2.4. Common FEC Object Transmission Information elements . 15 6.2.4. Common FEC Object Transmission Information elements . 16
6.2.5. Scheme-specific FEC Object Transmission 6.2.5. Scheme-specific FEC Object Transmission
Information element . . . . . . . . . . . . . . . . . 15 Information element . . . . . . . . . . . . . . . . . 16
6.3. FEC Payload ID . . . . . . . . . . . . . . . . . . . . . . 16 6.3. FEC Payload ID . . . . . . . . . . . . . . . . . . . . . . 17
7. FEC scheme specifications . . . . . . . . . . . . . . . . . . 17 7. FEC scheme specifications . . . . . . . . . . . . . . . . . . 18
8. CDP specifications . . . . . . . . . . . . . . . . . . . . . . 20 8. CDP specifications . . . . . . . . . . . . . . . . . . . . . . 21
9. Common algorithms . . . . . . . . . . . . . . . . . . . . . . 21 9. Common algorithms . . . . . . . . . . . . . . . . . . . . . . 22
9.1. Block partitioning algorithm . . . . . . . . . . . . . . . 21 9.1. Block partitioning algorithm . . . . . . . . . . . . . . . 22
9.1.1. First Step . . . . . . . . . . . . . . . . . . . . . . 21 9.1.1. First Step . . . . . . . . . . . . . . . . . . . . . . 22
9.1.2. Second step . . . . . . . . . . . . . . . . . . . . . 22 9.1.2. Second step . . . . . . . . . . . . . . . . . . . . . 23
10. Requirements from other building blocks . . . . . . . . . . . 23 10. Requirements from other building blocks . . . . . . . . . . . 24
11. Security Considerations . . . . . . . . . . . . . . . . . . . 24 11. Security Considerations . . . . . . . . . . . . . . . . . . . 25
12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 25 12. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 26
12.1. Explicit IANA Assignment Guidelines . . . . . . . . . . . 25 12.1. Explicit IANA Assignment Guidelines . . . . . . . . . . . 26
13. Changes from RFC3452 . . . . . . . . . . . . . . . . . . . . . 27 13. Changes from RFC3452 . . . . . . . . . . . . . . . . . . . . . 28
14. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 28 14. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 29
15. References . . . . . . . . . . . . . . . . . . . . . . . . . . 29 15. References . . . . . . . . . . . . . . . . . . . . . . . . . . 30
15.1. Normative References . . . . . . . . . . . . . . . . . . . 29 15.1. Normative References . . . . . . . . . . . . . . . . . . . 30
15.2. Informative References . . . . . . . . . . . . . . . . . . 29 15.2. Informative References . . . . . . . . . . . . . . . . . . 30
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 30 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . . 31
Intellectual Property and Copyright Statements . . . . . . . . . . 31 Intellectual Property and Copyright Statements . . . . . . . . . . 32
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].
skipping to change at page 14, line 47 skipping to change at page 15, line 47
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 element is: 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
specific FEC scheme (Fully-Specified or Under-Specified.) a specific FEC scheme (Fully-Specified or Under-Specified.)
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 with the exception of the FEC Instance ID, this below. Note that with the exception of the FEC Instance ID, this
specification does not provide complete definitions of these fields. specification does not provide complete definitions of these fields.
Instead only aspects of the abstract type are defined. The precise Instead only aspects of the abstract type are defined. The precise
type and semantics are defined for each FEC scheme in the FEC scheme type and semantics are defined for each FEC scheme in the FEC scheme
specification. specification.
FEC Instance ID: an integer between 0 and 65535 inclusive identifying FEC Instance ID: an integer between 0 and 65535 inclusive
an instance of an Under-specifed FEC scheme 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
maximum number of encoding symbols (i.e. source plus repair the 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 The FEC Instance ID MUST be used by all Under-specified FEC schemes
and MUST NOT be used by Fully-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 the subset element. FEC Schemes also define an encoding format for the subset
of the above elements that they use. CDPs may also provide an of the above elements that they use. CDPs may also provide an
encoding format for each element in which case this encoding format encoding format for each element in which case this encoding format
skipping to change at page 19, line 22 skipping to change at page 20, line 22
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
fields in the FEC Payload ID and FEC Object Transmission fields in the FEC Payload ID and FEC Object Transmission
Information.> Information.>
4. FEC code specification (for Fully-Specified FEC schemes 4. FEC code specification (for Fully-Specified FEC schemes only)
only) <provide a complete specification of the FEC Code> <provide a complete specification of the FEC Code>
Specifications MAY include additional sections, for example, Specifications MAY include additional sections, for example,
examples. examples.
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
skipping to change at page 22, line 31 skipping to change at page 23, line 31
T -- the number of source symbols in the object. T -- the number of source symbols in the object.
N -- The number of source blocks into which the object is N -- The number of source blocks into which the object is
partitioned. partitioned.
Output: Output:
I -- the number of larger source blocks. I -- the number of larger source blocks.
A_large -- the length of each of the larger source blocks in symbols. A_large -- the length of each of the larger source blocks in
symbols.
A_small -- the length of each of the smaller source blocks in A_small -- the length of each of the smaller source blocks in
symbols. symbols.
Algorithm: Algorithm:
1. A_large = ceil[T/N] 1. A_large = ceil[T/N]
2. A_small = floor[T/N] 2. A_small = floor[T/N]
skipping to change at page 31, line 5 skipping to change at page 32, line 5
Email: luby@digitalfountain.com Email: luby@digitalfountain.com
Lorenzo Vicisano Lorenzo Vicisano
Cisco Systems, Inc. Cisco Systems, Inc.
170 West Tasman Dr. 170 West Tasman Dr.
San Jose, CA 95134 San Jose, CA 95134
U.S.A. U.S.A.
Email: lorenzo@cisco.com Email: lorenzo@cisco.com
Intellectual Property Statement Full Copyright Statement
Copyright (C) The Internet Society (2006).
This document is subject to the rights, licenses and restrictions
contained in BCP 78, and except as set forth therein, the authors
retain all their rights.
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Intellectual Property
The IETF takes no position regarding the validity or scope of any The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79. found in BCP 78 and BCP 79.
skipping to change at page 31, line 29 skipping to change at page 32, line 45
such proprietary rights by implementers or users of this such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr. http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at this standard. Please address the information to the IETF at
ietf-ipr@ietf.org. ietf-ipr@ietf.org.
Disclaimer of Validity
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Copyright Statement
Copyright (C) The Internet Society (2006). This document is subject
to the rights, licenses and restrictions contained in BCP 78, and
except as set forth therein, the authors retain all their rights.
Acknowledgment Acknowledgment
Funding for the RFC Editor function is currently provided by the Funding for the RFC Editor function is provided by the IETF
Internet Society. Administrative Support Activity (IASA).
 End of changes. 15 change blocks. 
62 lines changed or deleted 63 lines changed or added

This html diff was produced by rfcdiff 1.32. The latest version is available from http://www.levkowetz.com/ietf/tools/rfcdiff/