Patent ID: 7889654

Claim:
A method of transmitting a data block containing a data window of a number of packets, the method comprising: setting a loss estimate value; setting the number of packets in the data window to a first number of packets corresponding to a window granularity, wherein each packet contains a first number of bytes; setting a block size of the data block to a window size, wherein the number of packets in the block is N; splitting the N packets in the data block into a first group of data packets and a second group of proactive forward error control (FEC) packets based on the loss estimate value; transmitting the data block, wherein the data block contains the first group of data packets and the second group of proactive FEC packets; searching a state table to obtain information on a state of the data block; updating the loss estimate value and recalculating the number of data packets and a number of proactive FEC packets based on the updated loss estimate value and the window size; and transmitting a second data block comprising the recalculated number of data packets and the recalculated number of proactive FEC packets; wherein the number of proactive FEC packets for the data window is based on an estimated packet loss rate.