Bandwidth efficient FEC scheme supporting uneven levels of protection
AssigneeCisco Technology, Inc.
InventorMarcello Caramma
Life of this patent
Estimating the term…
Abstract
In one embodiment, a device in a network splits each of a plurality of packets of two or more data streams into an equal number of fragments. The number of fragments for packets of a particular one of the streams controls the level of error correction for that stream. The device generates recovery symbols for the fragments for each of the plurality of packets. Each of the plurality of packets has an equal sum of fragments plus recovery symbols. The device multiplexes the fragments and recovery symbols for each of the packets, to form a set of new packets. The device sends the set of new packets to one or more recipients in the network.
Claims20
A method comprising:
- splitting, by a device in a network, each of a plurality of packets of two or more data streams into fragments, wherein a number of fragments for packets of a particular one of the streams controls a level of error correction for that stream;
- generating, by the device, recovery symbols from the fragments, wherein each of the plurality of packets has an equal sum of fragments plus recovery symbols;
- multiplexing, by the device, the fragments and recovery symbols for each of the packets, to form new packets;
- and
- sending, by the device, the new packets to one or more recipients in the network,
- wherein a number of the recovery symbols generated for a particular packet of the plurality of packets is equal to a number of the new packets minus a number of the fragments into which the particular packet is split,
- wherein the packets of the data stream with the highest level of error correction are split into the lowest number of fragments and have the highest number of generated recovery symbols, and
- wherein the one or more recipients in the network decode the new packets to obtain the plurality of packets of the two or more data streams by:
- subdividing each of the new packets to obtain the recovery symbols and fragments for the plurality of packets of the two or more data streams;
- and
- applying a decoding to the recovery symbols and fragments subdivided from the new packets, to obtain the plurality of packets of the two or more data streams.
A method comprising:
- receiving, at a device in a network, new packets that encode a plurality of packets of two or more data streams;
- determining, by the device, a fragment length of fragments of the plurality of packets of the two or more data streams used to form the new packets, wherein each of the plurality of packets has an equal sum of fragments plus recovery symbols for a particular one of the streams, and wherein a number of fragments for packets of the particular one of the streams controls a level of error correction for that stream;
- subdividing each of the new packets to obtain recovery symbols and the fragments for the plurality of packets of the two or more data streams;
- and
- applying a decoding to the recovery symbols and fragments subdivided from the new packets, to obtain the plurality of packets of the two or more data streams,
- wherein a number of the recovery symbols generated for a particular packet of the plurality of packets is equal to a number of the new packets minus a number of the fragments into which the particular packet is split, and
- wherein the packets of the data stream with the highest level of error correction are split into the lowest number of fragments and have the highest number of generated recovery symbols.
An apparatus comprising:
- one or more network interfaces to communicate with a network;
- a processor coupled to the network interfaces and configured to execute one or more processes;
- and
- a memory configured to store a process executable by the processor, the process when executed configured to:
- split each of a plurality of packets of two or more data streams into an equal number of fragments, wherein a number of fragments for packets of a particular one of the streams controls a level of error correction for that stream;
- generate recovery symbols for the fragments for each of the plurality of packets, wherein each of the plurality of packets has an equal sum of fragments plus recovery symbols;
- multiplex the fragments and recovery symbols for each of the packets, to form of new packets;
- and
- send the new packets to one or more recipients in the network,
- wherein a number of the recovery symbols generated for a particular packet of the plurality of packets is equal to a number of the new packets minus a number of the fragments into which the particular packet is split,
- wherein the packets of the data stream with the highest level of error correction are split into the lowest number of fragments and have the highest number of generated recovery symbols, and
- wherein the one or more recipients in the network decode the new packets to obtain the plurality of packets of the two or more data streams by:
- subdividing each of the new packets to obtain the recovery symbols and fragments for the plurality of packets of the two or more data streams;
- and
- applying a decoding to the recovery symbols and fragments subdivided from the new packets, to obtain the plurality of packets of the two or more data streams.
Dependencies are inferred from the claim text.