RFC 3453 (rfc3453) - Page 2 of 18
The Use of Forward Error Correction (FEC) in Reliable Multicast
Alternative Format: Original Text Document
RFC 3453 FEC in Reliable Multicast December 2002
Table of Contents
1. Rationale and Overview . . . . . . . . . . . . . . . . . . . . 2
1.1. Application of FEC codes . . . . . . . . . . . . . . . . . 5
2. FEC Codes. . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.1. Simple codes . . . . . . . . . . . . . . . . . . . . . . . 6
2.2. Small block FEC codes. . . . . . . . . . . . . . . . . . . 8
2.3. Large block FEC codes. . . . . . . . . . . . . . . . . . . 10
2.4. Expandable FEC codes . . . . . . . . . . . . . . . . . . . 11
2.5. Source blocks with variable length source symbols. . . . . 13
3. Security Considerations. . . . . . . . . . . . . . . . . . . . 14
4. Intellectual Property Disclosure . . . . . . . . . . . . . . . 14
5. Acknowledgments. . . . . . . . . . . . . . . . . . . . . . . . 15
6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 15
7. Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 17
8. Full Copyright Statement . . . . . . . . . . . . . . . . . . . 18
1. Rationale and Overview
There are many ways to provide reliability for transmission
protocols. A common method is to use ARQ, automatic request for
retransmission. With ARQ, receivers use a back channel to the sender
to send requests for retransmission of lost packets. ARQ works well
for one-to-one reliable protocols, as evidenced by the pervasive
success of TCP/IP. ARQ has also been an effective reliability tool
for one-to-many reliability protocols, and in particular for some
reliable IP multicast protocols. However, for one-to-very-many
reliability protocols, ARQ has limitations, including the feedback
implosion problem because many receivers are transmitting back to the
sender, and the need for a back channel to send these requests from
the receiver. Another limitation is that receivers may experience
different loss patterns of packets, and thus receivers may be delayed
by retransmission of packets that other receivers have lost that but
they have already received. This may also cause wasteful use of
bandwidth used to retransmit packets that have already been received
by many of the receivers.
In environments where ARQ is either costly or impossible because
there is either a very limited capacity back channel or no back
channel at all, such as satellite transmission, a Data Carousel
approach to reliability is sometimes used [1]. With a Data Carousel,
the sender partitions the object into equal length pieces of data,
which we hereafter call source symbols, places them into packets, and
then continually cycles through and sends these packets. Receivers
continually receive packets until they have received a copy of each
packet. Data Carousel has the advantage that it requires no back
channel because there is no data that flows from receivers to the
sender. However, Data Carousel also has limitations. For example,
Luby, et. al. Informational