Peercasting, multicasting a data stream using peer-to-peer technology
Forward error correction and timing information is applied to these substreams such that the original stream can be reformed using at least all but one of the substreams (fountain codes are an efficient way to make and combine the substreams).