The invention relates to a method for transmitting a plurality of data packets to a
receiver in a data communication
system. The method comprises the steps of transmitting one or more data packets from a
list of data packets to be transmitted (300); determining whether an acknowledgment is received for each transmitted data packet (301), and further comprises the following steps executed when it is determined at the determining step that an
acknowledgement has not been received for at least one data packet, referred to as an unacknowledged data packet: selecting one or more additional data packets from the
list of data packets to be transmitted (302); generating one or more parity packets by encoding a block of data containing a combination of the selected one or more additional data packets and at least one unacknowledged data packet using a
forward error correction scheme (304); and transmitting at least one of the generated parity packets (305).The invention also relates to
software applications for transmitting a plurality of data packets and for receiving them. Furthermore, the invention relates to a transmitting device and a receiving device implementing respectively the
software application for transmitting the plurality of data packets and the
software application for receiving those data packets, and to a memory medium for storing the code of such software applications.