EngineeringComputer EngineeringComputer ScienceComputer NetworksFault-tolerant ComputingFault-tolerant SystemsCoding TheoryErasure CodingError Control CodingError CorrectionError RecoveryError-correcting CodesEncoding And DecodingErasure CorrectionError ControlError Correction CodesError Detection And CorrectionError Detection CodesError Handling In NetworksForward Error Correction
Forward Error Correction (FEC) is seldom used in computer networks, because of perplexity in doing the necessary encoding/decoding in software. We believe this diffidence to originate from the fact that error control codes (which FEC is usually based upon) are generally designed and presented stressing their ability to correct errors rather than erasures (i.e. missing data in known locations). Handling erasures is a much simpler computational problem, and can be approached and solved with much simpler techniques. This paper has three main objectives. First, to put software FEC in the right perspective by presenting the principle of operation of erasure codes and showing that software FEC is not exceedingly expensive. Second, to provide the research community with a high performance, C implementation of erasure codes capable to run at speeds in excess of 100 Mbit/s. Third, to present a number of applications (some of which have been developed, by the author or other researchers) where s...