Patent ID: 6851084

Claim:
A method of correcting errors in a packet based communications system, wherein a source station transmits data packets to a destination station via network media, comprising: compiling a serial data stream into a sequence of data packets for transmission to the destination station via the network media; generating a first parity packet as a bit-wise exclusive-or of a first data packet and a second data packet from the sequence of data packets; generating a second parity packet as a bit-wise exclusive-or of a third data packet and a fourth data packet from the sequence of data packets; generating a third parity packet as a bit-wise exclusive-or of the first data packet and the third data packet from the sequence of data packets; and, generating a fourth parity packet as a bit-wise exclusive-or of the second data packet and the fourth data packet from the sequence of data packets; forming a code word from the first, second, third, and fourth parity packets, and the first, second, third, and fourth data packets; associating a sequence number with each packet representative of a relative position of the packet in the code word; transmitting the eight packet code word to the destination station via the network media; receiving the eight packet code word at the destination station, and examining the sequence number associated with each packet to determine if one or more packets from the eight packet code word is missing, and identifying the one or more missing packets if any are missing; processing the data packets and the parity packets within the associated code word at the destination station, according to the combinations of data packets used to generate the parity packets, so as to recover one or more missing packets, wherein processing the data packets includes: first, correcting a single error, if it exists, in a parity group consisting of the first parity packet, the first data packet and the second data packet, and correcting a single error, if it exists, in a parity group consisting of the second parity packet, the third data packet and the fourth data packet; and second, correcting a single error, if it exists, in a parity group consisting of the third parity packet, the first data packet and the third data packet, and correcting a single error, if it exists, in a parity group consisting of the fourth parity packet, the second data packet and the fourth data packet.