A method for a transmitting node of feedback-based real-time network coding to multiple receivers, the method comprising: a. receiving notifications of the receivers that one or more packets were missed; b. keeping a list of packets decoded by each receiver c. determining for each packet in a transmit queue if the packet is considered a critical packet, the determining being made as a function of a given threshold, a number of transmissions available until the deadline of each packet, and a number of transmitted packets since the last notification from each receiver, said transmitted packets being linear combinations of packets in the transmit queue; d. determining a linear combination of packets to transmit from the transmit queue when a critical packet is present in the transmit queue, said linear combination including said critical packet in the transmit queue, and producing and transmitting said linear combination of packets when a critical packet is present in the transmit queue; e. determining for each packet in the transmit queue if the packet is a new packet when a critical packet is not present in the transmit queue, a packet being considered new if it has never been transmitted before, and transmitting said new packet, said transmitted new packet being the oldest in the transmit queue; and f. determining a linear combination of packets to transmit from the transmit queue when a critical packet is not present in the transmit queue and a new packet is not present in the transmit queue, said linear combination being immediately decodable by one or more receivers, wherein a linear combination is immediately decodable by a receiver if it is linearly independent from all linear combinations available at said receiver and said receiver can decode a new packet from said linear combination; and producing and transmitting said linear combination of packets, wherein transmission of the linear combination only occurs if said linear combination is immediately decodable by at least a specified number of receivers. a. receiving notifications of the receivers that one or more packets were missed; b. keeping a list of packets decoded by each receiver c. determining for each packet in a transmit queue if the packet is considered a critical packet, the determining being made as a function of a given threshold, a number of transmissions available until the deadline of each packet, and a number of transmitted packets since the last notification from each receiver, said transmitted packets being linear combinations of packets in the transmit queue; d. determining a linear combination of packets to transmit from the transmit queue when a critical packet is present in the transmit queue, said linear combination including said critical packet in the transmit queue, and producing and transmitting said linear combination of packets when a critical packet is present in the transmit queue; e. determining for each packet in the transmit queue if the packet is a new packet when a critical packet is not present in the transmit queue, a packet being considered new if it has never been transmitted before, and transmitting said new packet, said transmitted new packet being the oldest in the transmit queue; and f. determining a linear combination of packets to transmit from the transmit queue when a critical packet is not present in the transmit queue and a new packet is not present in the transmit queue, said linear combination being immediately decodable by one or more receivers, wherein a linear combination is immediately decodable by a receiver if it is linearly independent from all linear combinations available at said receiver and said receiver can decode a new packet from said linear combination; and producing and transmitting said linear combination of packets, wherein transmission of the linear combination only occurs if said linear combination is immediately decodable by at least a specified number of receivers.