A method and apparatus to provide communications over a packet channel,
including applying a forward error correction (FEC) code to a first group
of data packets to create a coded group of packets by supplementing a set
of parity packets to the first group of data packets; and transmitting
the first group of data packets, and transmitting the set of
corresponding parity packets after the first group of data packets have
been transmitted. In response to receiving a positive acknowledgement
corresponding to the first group of packets, ceasing to send parity
packets corresponding to the first group of packets and sending a second
group of data packets dependent on the first group of data packets. In
response to not receiving the acknowledgment, not sending the second
group of data packets and continuing to transmit the parity packets
corresponding to the first group of data packets.