From 4bfd864f10b68b71482b35c818559068ef8d5797 Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Wed, 27 Nov 2024 20:54:24 +0100 Subject: doc: Add RFC documents --- doc/rfc/rfc3695.txt | 731 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 731 insertions(+) create mode 100644 doc/rfc/rfc3695.txt (limited to 'doc/rfc/rfc3695.txt') diff --git a/doc/rfc/rfc3695.txt b/doc/rfc/rfc3695.txt new file mode 100644 index 0000000..1388148 --- /dev/null +++ b/doc/rfc/rfc3695.txt @@ -0,0 +1,731 @@ + + + + + + +Network Working Group M. Luby +Request for Comments: 3695 Digital Fountain +Category: Experimental L. Vicisano + Cisco + February 2004 + + + Compact Forward Error Correction (FEC) Schemes + +Status of this Memo + + This memo defines an Experimental Protocol for the Internet + community. It does not specify an Internet standard of any kind. + Discussion and suggestions for improvement are requested. + Distribution of this memo is unlimited. + +Copyright Notice + + Copyright (C) The Internet Society (2004). All Rights Reserved. + +Abstract + + This document introduces some Forward Error Correction (FEC) schemes + that supplement the FEC schemes described in RFC 3452. The primary + benefits of these additional FEC schemes are that they are designed + for reliable bulk delivery of large objects using a more compact FEC + Payload ID, and they can be used to sequentially deliver blocks of an + object of indeterminate length. Thus, they more flexibly support + different delivery models with less packet header overhead. + + This document also describes the Fully-Specified FEC scheme + corresponding to FEC Encoding ID 0. This Fully-Specified FEC scheme + requires no FEC coding and is introduced primarily to allow simple + interoperability testing between different implementations of + protocol instantiations that use the FEC building block. + +Table of Contents + + 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 2 + 2. Packet Header Fields . . . . . . . . . . . . . . . . . . . . . 3 + 2.1. FEC Payload ID for FEC Encoding IDs 0 and 130. . . . . . 4 + 2.2. Compact No-Code FEC scheme . . . . . . . . . . . . . . . 5 + 2.3. Compact FEC scheme . . . . . . . . . . . . . . . . . . . 5 + 3. Compact No-Code FEC scheme . . . . . . . . . . . . . . . . . . 6 + 3.1. Source Block Logistics . . . . . . . . . . . . . . . . . 7 + 3.2. Sending and Receiving a Source Block . . . . . . . . . . 8 + 4. Usage Examples . . . . . . . . . . . . . . . . . . . . . . . . 9 + 4.1. Reliable Bulk Data Delivery. . . . . . . . . . . . . . . 9 + + + +Luby & Vicisano Experimental [Page 1] + +RFC 3695 FEC Schemes February 2004 + + + 4.2. Block-Stream Delivery. . . . . . . . . . . . . . . . . . 10 + 5. Security Considerations. . . . . . . . . . . . . . . . . . . . 10 + 6. IANA Considerations. . . . . . . . . . . . . . . . . . . . . . 10 + 7. References . . . . . . . . . . . . . . . . . . . . . . . . . . 11 + 7.1. Normative References . . . . . . . . . . . . . . . . . . 11 + 7.2. Informative References . . . . . . . . . . . . . . . . . 12 + 8. Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 12 + 9. Full Copyright Statement . . . . . . . . . . . . . . . . . . . 13 + +1. Introduction + + This document describes two new Forward Error Correction (FEC) + schemes corresponding to FEC Encoding IDs 0 and 130 which supplement + the FEC schemes corresponding to FEC Encoding IDs 128 and 129 + described in the FEC Building Block [4]. + + The new FEC schemes are particularly applicable when an object is + partitioned into equal-length source blocks. In this case, the + source block length common to all source blocks can be communicated + out-of-band, thus saving the additional overhead of carrying the + source block length within the FEC Payload ID of each packet. The + new FEC schemes are similar to the FEC schemes with FEC Encoding ID + 128 defined in RFC 3452 [4], except that the FEC Payload ID is half + as long. This is the reason that these new FEC schemes are called + Compact FEC schemes. + + The primary focus of FEC Encoding IDs 128 and 129 is to reliably + deliver bulk objects of known length. The FEC schemes described in + this document are designed to be used for both reliable delivery of + bulk objects of known length, and for the delivery of a stream of + source blocks for an object of indeterminate length. Within the + block-stream delivery model, reliability guarantees can range from + acknowledged reliable delivery of each block to unacknowledged + enhanced-reliability delivery of time-sensitive blocks, depending on + the properties of the protocol instantiation in which the FEC scheme + is used. Acknowledged reliable block-stream delivery is similar in + spirit to the byte-stream delivery that TCP offers, except that the + unit of delivery is a block of data instead of a byte of data. In + the spirit of a building block (see RFC 3048 [6]), the FEC schemes + described in this document can be used to provide reliability for + other service models as well. + + The two new FEC Encoding IDs 0 and 130 are described in Section 2, + and this supplements Section 5 of the FEC building block [4]. + Section 3 of this document describes the Fully-Specified FEC scheme + corresponding to the FEC Encoding ID 0. This Fully-Specified FEC + + + + + +Luby & Vicisano Experimental [Page 2] + +RFC 3695 FEC Schemes February 2004 + + + scheme requires no FEC coding and is specified primarily to allow + simple interoperability testing between different implementations of + protocol instantiations that use the FEC building block. + + This document inherits the context, language, declarations and + restrictions of the FEC building block [4]. This document also uses + the terminology of the companion document [7] which describes the use + of FEC codes within the context of reliable IP multicast transport + and provides an introduction to some commonly used FEC codes. + + Building blocks are defined in RFC 3048 [6]. This document is a + product of the IETF RMT WG and follows the general guidelines + provided in RFC 3269 [3]. + + The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", + "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this + document are to be interpreted as described in RFC 2119 [2]. + +Statement of Intent + + This memo contains part of the definitions necessary to fully specify + a Reliable Multicast Transport (RMT) protocol in accordance with RFC + 2357 [5]. As per RFC 2357, the use of any reliable multicast + protocol in the Internet requires an adequate congestion control + scheme. + + While waiting for such a scheme to be available, or for an existing + scheme to be proven adequate, the RMT working group publishes this + Request for Comments in the "Experimental" category. + + It is the intent of RMT to re-submit this specification as an IETF + Proposed Standard as soon as the above condition is met. + +2. Packet Header Fields + + This section specifies FEC Encoding IDs 0 and 130 and the associated + FEC Payload ID formats and the specific information in the + corresponding FEC Object Transmission Information. The FEC scheme + associated with FEC Encoding ID 0 is Fully-Specified whereas the FEC + schemes associated with FEC Encoding ID 130 are Under-Specified. + + FEC Encoding IDs 0 and 130 have the same FEC Payload ID format, which + is described in the following subsection. The FEC Object + Transmission Information for FEC Encoding IDs 0 and 130 is different, + and is described in the subsequent two subsections. + + + + + + +Luby & Vicisano Experimental [Page 3] + +RFC 3695 FEC Schemes February 2004 + + +2.1. FEC Payload ID for FEC Encoding IDs 0 and 130 + + The FEC Payload ID for FEC Encoding IDs 0 and 130 is composed of a + Source Block Number and an Encoding Symbol ID structured as follows: + + 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 | Encoding Symbol ID | + +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ + + The 16-bit Source Block Number is used to identify from which source + block of the object the encoding symbol in the payload of the packet + is generated. There are two possible modes: In the unique SBN mode + each source block within the object has a unique Source Block Number + associated with it, and in the non-unique SBN mode the same Source + Block Number may be used for more than one source block within the + object. Which mode is being used for an object is outside the scope + of this document and MUST be communicated, either explicitly or + implicitly, out-of-band to receivers. + + If the unique SBN mode is used then successive Source Block Numbers + are associated with consecutive source blocks of the object starting + with Source Block Number 0 for the first source block of the object. + In this case, there are at most 2^16 source blocks in the object. + + If the non-unique SBN mode is used then the mapping from source + blocks to Source Block Numbers MUST be communicated out-of-band to + receivers, and how this is done is outside the scope of this + document. This mapping could be implicit, for example determined by + the transmission order of the source blocks. In non-unique SBN + mode, packets for two different source blocks mapped to the same + Source Block Number SHOULD NOT be sent within an interval of time + that is shorter than the transport time of a source block. The + transport time of a source block includes the amount of time the + source block is processed at the transport layer by the sender, the + network transit time for packets, and the amount of time the source + block is processed at the transport layer by a receiver. This allows + the receiver to clearly decide which packets belong to which source + block. + + The 16-bit Encoding Symbol ID identifies which specific encoding + symbol generated from the source block is carried in the packet + payload. The exact details of the correspondence between Encoding + Symbol IDs and the encoding symbols in the packet payload for FEC + Encoding ID 0 are specified in Section 3. The exact details of the + correspondence between Encoding Symbol IDs and the encoding symbol(s) + in the packet payload for FEC Encoding ID 130 are dependent on the + + + +Luby & Vicisano Experimental [Page 4] + +RFC 3695 FEC Schemes February 2004 + + + particular encoding algorithm used as identified by the FEC Encoding + ID and by the FEC Instance ID. + +2.2. Compact No-Code FEC scheme + + This subsection reserves FEC Encoding ID 0 for the Compact No-Code + FEC scheme described in this subsection and in Section 3. This is a + Fully-Specified FEC scheme that is primarily intended to be used for + simple interoperability testing between different implementations of + protocol instantiations that use the FEC building block. The value + of this FEC scheme is that no FEC encoding or decoding is required to + implement it and therefore it is easy to test interoperability + between protocols that may use different proprietary FEC schemes in + production in their first implementations. + + The FEC Payload ID format for FEC Encoding ID 0 is described in + Subsection 2.1. The FEC Object Transmission Information has the + following specific information: + + o The FEC Encoding ID 0. + + o For each source block of the object, the length in bytes of the + encoding symbol carried in the packet payload. This length MUST be + the same for all packets sent for the same source block, but MAY be + different for different source blocks in the same object. + + o For each source block of the object, the length of the source block + in bytes. Typically, each source block for the object has the same + length and thus only one length common to all source blocks need be + communicated, but this is not a requirement. For convenience, the + source block length MAY be a multiple of the length of the encoding + symbol carried in one packet payload. + + How this out-of-band information is communicated is outside the scope + of this document. + + Other information, such as the object length and the number of source + blocks of the object for an object of known length may be needed by a + receiver to support some delivery models, i.e., reliable bulk data + delivery. + +2.3. Compact FEC scheme + + This subsection reserves FEC Encoding ID 130 for the Compact FEC + scheme that is described in this subsection. This is an + Under-Specified FEC scheme. This FEC scheme is similar in spirit to + the Compact No-Code FEC scheme, except that a non-trivial FEC + encoding (that is Under-Specified) may be used to generate encoding + + + +Luby & Vicisano Experimental [Page 5] + +RFC 3695 FEC Schemes February 2004 + + + symbol(s) placed in the payload of each packet and a corresponding + FEC decoder may be used to produce the source block from received + packets. + + The FEC Payload ID format for FEC Encoding ID 0 is described in + Subsection 2.1. The FEC Object Transmission Information has the + following specific information: + + o The FEC Encoding ID 130. + + o The FEC Instance ID associated with the FEC Encoding ID 130 to be + used. + + o For each source block of the object, the aggregate length of the + encoding symbol(s) carried in one packet payload. This length MUST + be the same for all packets sent for the same source block, but MAY + be different for different source blocks in the same object. + + o For each source block of the object, the length of the source block + in bytes. Typically, each source block for the object has the same + length and thus only one length common to all source blocks need to + be communicated, but this is not a requirement. For convenience, + the source block length MAY be a multiple of the aggregate length + of the encoding symbol(s) carried in one packet payload. + + How this out-of-band information is communicated is outside the scope + of this document. + + Other information, such as the object length and the number of source + blocks of the object for an object of known length may be needed by a + receiver to support some delivery models, i.e., reliable bulk data + delivery. + +3. Compact No-Code FEC scheme + + In this section we describe a Fully-Specified FEC scheme + corresponding to FEC Encoding ID 0. The primary purpose for + introducing these FEC schemes is to allow simple interoperability + testing between different implementations of the same protocol + instantiation that uses the FEC building block. + + The Compact No-Code FEC scheme does not require FEC encoding or + decoding. Instead, each encoding symbol consists of consecutive + bytes of a source block of the object. The FEC Payload ID consists + of two fields, the 16-bit Source Block Number and the 16-bit Encoding + Symbol ID, as described in Subsection 2.1. The relative lengths of + these fields were chosen for their similarity with the corresponding + fields of the FEC Payload ID associated with FEC Encoding ID 130, and + + + +Luby & Vicisano Experimental [Page 6] + +RFC 3695 FEC Schemes February 2004 + + + because of this testing interoperability of the FEC scheme associated + with FEC Encoding ID 0 provides a first basic step to testing + interoperability of an FEC scheme associated with FEC Encoding ID + 130. + + Subsection 2.1. describes mapping between source blocks of an object + and Source Block Numbers. The next two subsections describe the + details of how the Compact No-Code FEC scheme operates for each + source block of an object. These subsections are not meant to + suggest a particular implementation, but just to illustrate the + general algorithm through the description of a simple, non-optimized + implementation. + +3.1. Source Block Logistics + + Let X > 0 be the length of a source block in bytes. The value of X + is part of the FEC Object Transmission Information, and how this + information is communicated to a receiver is outside the scope of + this document. + + Let L > 0 be the length of the encoding symbol contained in the + payload of each packet. There are several possible ways the length + of the encoding symbol L can be communicated to the receiver, and how + this is done is outside the scope of this document. As an example, a + sender could fix the packet payload length to be L in order to place + the encoding symbol of length L into the packet, and then a receiver + could infer the value of L from the length of the received packet + payload. It is REQUIRED that L be the same for all packets sent for + the same source block but MAY be different for different source + blocks within the same object. + + For a given source block X bytes in length with Source Block Number + I, let N = X/L rounded up to the nearest integer. The encoding + symbol carried in the payload of a packet consists of a consecutive + portion of the source block. The source block is logically + partitioned into N encoding symbols, each L bytes in length, and the + corresponding Encoding Symbol IDs range from 0 through N-1 starting + at the beginning of the source block and proceeding to the end. + Thus, the encoding symbol with Encoding Symbol ID Y consists of bytes + L*Y through L*(Y+1)-1 of the source block, where the bytes of the + source block are numbered from 0 through X-1. If X/L is not integral + then the last encoding symbol with Encoding Symbol ID = N-1 consists + of bytes L*(N-1) through the last byte X-1 of the source block, and + the remaining L*N - X bytes of the encoding symbol can by padded out + with zeroes. + + + + + + +Luby & Vicisano Experimental [Page 7] + +RFC 3695 FEC Schemes February 2004 + + + As an example, suppose that the source block length X = 20,400 and + encoding symbol length L = 1,000. The encoding symbol with Encoding + Symbol ID = 10 contains bytes 10,000 through 10,999 of the source + block, and the encoding symbol with Encoding Symbol ID = 20 contains + bytes 20,000 through the last byte 20,399 of the source block and the + remaining 600 bytes of the encoding symbol can be padded with zeroes. + + There are no restrictions beyond the rules stated above on how a + sender generates encoding symbols to send from a source block. + However, it is recommended that an implementor of refer to the + companion document [7] for general advice. + + In the next subsection a procedure is recommended for sending and + receiving source blocks. + +3.2. Sending and Receiving a Source Block + + The following carousel procedure is RECOMMENDED for a sender to + generate packets containing FEC Payload IDs and corresponding + encoding symbols for a source block with Source Block Number I. Set + the length in bytes of an encoding symbol to a fixed value L which is + reasonable for a packet payload (e.g., ensure that the total packet + size does not exceed the MTU) and that is smaller than the source + block length X, e.g., L = 1,000 for X >= 1,000. Initialize Y to a + value randomly chosen in the interval [0..N-1]. Repeat the following + for each packet of the source block to be sent. + + o If Y < N-1 then generate the encoding symbol consisting of the L + bytes of the source block numbered L*Y through L*(Y+1)-1. + + o If Y = N-1 then generate the encoding symbol consisting of the last + X - L*(N-1) bytes of the source block numbered L*(N-1) through X-1 + followed by L*N - X padding bytes of zeroes. + + o Set the Source Block Length to X, set the Source Block Number = I, + set the Encoding Symbol ID = Y, place the FEC Payload ID and the + encoding symbol into the packet to send. + + o In preparation for the generation of the next packet: if Y < N-1 + then increment Y by one else if Y = N-1 then reset Y to zero. + + The following procedure is RECOMMENDED for a receiver to recover the + source block based on receiving packets for the source block from a + sender that is using the carousel procedure describe above. The + receiver can determine from which source block a received packet was + generated by the Source Block Number carried in the FEC Payload ID. + Upon receipt of the first FEC Payload ID for a source block, the + receiver uses the source block length received out-of-band as part of + + + +Luby & Vicisano Experimental [Page 8] + +RFC 3695 FEC Schemes February 2004 + + + the FEC Object Transmission Information to determine the length X in + bytes of the source block, and allocates space for the X bytes that + the source block requires. The receiver also computes the length L + of the encoding symbol in the payload of the packet by substracting + the packet header length from the total length of the received packet + (and the receiver checks that this length is the same in each + subsequent received packet from the same source block). After + calculating N = X/L rounded up to the nearest integer, the receiver + allocates a boolean array RECEIVED[0..N-1] with all N entries + initialized to false to track received encoding symbols. The + receiver keeps receiving packets for the source block as long as + there is at least one entry in RECEIVED still set to false or until + the application decides to give up on this source block and move on + to other source blocks. For each received packet for the source + block (including the first packet) the steps to be taken to help + recover the source block are as follows. Let Y be the value of the + Encoding Symbol ID within FEC Payload ID of the packet. If Y < N-1 + then the receiver copies the L bytes of the encoding symbol into + bytes numbered L*Y through L*(Y+1)-1 of the space reserved for the + source block. If Y = N-1 then the receiver copies the first + X - L*(N-1) bytes of the encoding symbol into bytes numbered L*(N-1) + through X-1 of the space reserved for the source block. In either + case, the receiver sets RECEIVED[Y] = true. At each point in time, + the receiver has successfully recovered bytes L*Y through L*(Y+1)-1 + of the source block for all Y in the interval [0..N-1] for which + RECEIVED[Y] is true. If all N entries of RECEIVED are true then the + receiver has recovered the entire source block. + +4. Usage Examples + + The following subsections outline some usage examples for FEC + Encoding IDs 0 and 130. + +4.1. Reliable Bulk Data Delivery + + One possible delivery model that can be supported using any FEC + scheme described in this document is reliable bulk data delivery. In + this model, one or more potentially large objects are delivered + reliably to potentially multiple receivers using multicast. For this + delivery model the unique SBN mode is often used. Using this mode + the maximum length of an object that can be delivered is at most the + number of possible source blocks times the maximum length of a source + block. If the aggregate length of encoding symbols carried in a + packet payload is L bytes then the maximum length of a source block + is the number of distinct Encoding Symbol IDs times L, or 2^16 * L + for FEC Encoding IDs 0 and 130. If for example L = 1 KB then the + length of a source block can be up to around 65 MB. However, in + practice the length of the source block is usually shorter than the + + + +Luby & Vicisano Experimental [Page 9] + +RFC 3695 FEC Schemes February 2004 + + + number of distinct Encoding Symbol IDs times L, and thus generally + the length of a source block is a fraction of 65 MB. Since the + number of distinct Source Block Numbers is 2^16, for this example an + object can be more than a terabyte. + + The non-unique SBN mode of delivery can also be effectively used for + reliably delivering large object. In this case, the length of the + object delivered could be arbitrarily large, depending on the + out-of-band mapping between source blocks and Source Block Numbers. + +4.2. Block-Stream Delivery + + Another possible delivery model that can be supported using FEC + Encoding ID 0 or 130 is block-stream delivery of an object. In this + model, the source blocks of a potentially indeterminate length object + are to be reliably delivered in sequence to one or multiple + receivers. Thus, the object could be partitioned into source blocks + on-the-fly at the sender as the data arrives, and all packets + generated for one source block are sent before any packets are sent + for the subsequent source block. In this example, all source blocks + could be of the same length and this length could be communicated + out-of-band to a receiver before the receiver joins the session. For + this delivery model it is not required that the Source Block Numbers + for all source blocks are unique. However, a suggested usage is to + use all 2^16 Source Block Numbers for consecutive source blocks of + the object, and thus the time between reuse of a Source Block Number + is the time it takes to send the packets for 2^16 source blocks. + + This delivery model can be used to reliably deliver an object to one + or multiple receivers, using either an ACK or NACK based + acknowledgement based scheme for each source block. As another + example the sender could send a fixed number of packets for each + source block without any acknowledgements from receivers, for example + in a live streaming without feedback application. + +5. Security Considerations + + The security considerations for this document are the same as they + are for RFC 3452 [4]. + +6. IANA Considerations + + Values of FEC Encoding IDs and FEC Instance IDs are subject to IANA + registration. For general guidelines on IANA considerations as they + apply to this document, see RFC 3452 [4]. This document assigns the + Fully-Specified FEC Encoding ID 0 under the ietf:rmt:fec:encoding + name-space to "Compact No-Code". The FEC Payload ID format and + corresponding FEC Object Transmission Information associated with FEC + + + +Luby & Vicisano Experimental [Page 10] + +RFC 3695 FEC Schemes February 2004 + + + Encoding ID 0 is described in Subsections 2.1 and 2.2, and the + corresponding FEC scheme is described in Section 3. + + This document assigns the Under-Specified FEC Encoding ID 130 under + the ietf:rmt:fec:encoding name-space to "Compact FEC". The FEC + Payload ID format and corresponding FEC Object Transmission + Information associated with FEC Encoding ID 130 are described in + Subsections 2.1 and 2.3. + + As FEC Encoding ID 130 is Under-Specified, a new "FEC Instance ID" + sub-name-space must be established, in accordance to RFC 3452. Hence + this document also establishes a new "FEC Instance ID" registry named + + ietf:rmt:fec:encoding:instance:130 + + and scoped by + + ietf:rmt:fec:encoding = 130 (Compact FEC) + + As per RFC 3452, the values that can be assigned within + ietf:rmt:fec:encoding:instance:130 are non-negative numeric indices. + Assignment requests are granted on a "First Come First Served" basis. + RFC 3452 specifies additional criteria that MUST be met for the + assignment within the generic ietf:rmt:fec:encoding:instance name- + space. These criteria also apply to + ietf:rmt:fec:encoding:instance:130. + +7. References + +7.1. Normative References + + [1] Bradner, S., "The Internet Standards Process -- Revision 3", BCP + 9, RFC 2026, October 1996. + + [2] Bradner, S., "Key words for use in RFCs to Indicate Requirement + Levels", BCP 14, RFC 2119, March 1997. + + [3] Kermode, R. and L. Vicisano, "Author Guidelines for Reliable + Multicast Transport (RMT) Building Blocks and Protocol + Instantiation Documents", RFC 3269, April 2002. + + [4] Luby, M., Vicisano, L., Gemmell, J., Rizzo, L., Handley, M. and + J. Crowcroft, "Forward Error Correction (FEC) Building Block", + RFC 3452, December 2002. + + + + + + + +Luby & Vicisano Experimental [Page 11] + +RFC 3695 FEC Schemes February 2004 + + + [5] Mankin, A., Romanow, A., Bradner, S. and V. Paxson, "IETF + Criteria for Evaluating Reliable Multicast Transport and + Application Protocols", RFC 2357, June 1998. + + [6] Whetten, B., Vicisano, L., Kermode, R., Handley, M., Floyd, S. + and M. Luby, "Reliable Multicast Transport Building Blocks for + One-to-Many Bulk-Data Transfer", RFC 3048, January 2001. + +7.2. Informative References + + [7] Luby, M., Vicisano, L., Gemmell, J., Rizzo, L., Handley, M. and + J. Crowcroft, "The Use of Forward Error Correction (FEC) in + Reliable Multicast", RFC 3453, December 2002. + +8. Authors' Addresses + + Michael Luby + Digital Fountain, Inc. + 39141 Civic Center Drive + Suite 300 + Fremont, CA 94538 + + EMail: luby@digitalfountain.com + + + Lorenzo Vicisano + cisco Systems, Inc. + 170 West Tasman Dr., + San Jose, CA, USA, 95134 + + EMail: lorenzo@cisco.com + + + + + + + + + + + + + + + + + + + + +Luby & Vicisano Experimental [Page 12] + +RFC 3695 FEC Schemes February 2004 + + +9. Full Copyright Statement + + Copyright (C) The Internet Society (2004). 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 + Intellectual Property Rights or other rights that might be claimed to + pertain to the implementation or use of the technology described in + 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 + made any independent effort to identify any such rights. Information + on the procedures with respect to rights in RFC documents can be + found in BCP 78 and BCP 79. + + Copies of IPR disclosures made to the IETF Secretariat and any + assurances of licenses to be made available, or the result of an + attempt made to obtain a general license or permission for the use of + such proprietary rights by implementers or users of this + specification can be obtained from the IETF on-line IPR repository at + http://www.ietf.org/ipr. + + The IETF invites any interested party to bring to its attention any + copyrights, patents or patent applications, or other proprietary + rights that may cover technology that may be required to implement + this standard. Please address the information to the IETF at ietf- + ipr@ietf.org. + +Acknowledgement + + Funding for the RFC Editor function is currently provided by the + Internet Society. + + + + + + + + + +Luby & Vicisano Experimental [Page 13] + -- cgit v1.2.3