Method for validating communicated packets of data and for locating erroneous packets
First Claim
Patent Images
1. A method for validating that K packets of a file have been successfully received by a receiver out of N packets transmitted thereto by a transmitter, wherein the receiver deems each received packet as “
- good”
or “
bad”
, said method comprising the steps of;
determining whether at least (K+1) packets have been deemed “
good”
by the receiver;
if so, selecting a (K+1)th packet out of the at least (K+1) “
good”
packets;
reconstructing K original packets and a (K+1)th′
packet from K of the non-selected “
good”
packets, the (K+1)th′
packet corresponding to the selected (K+1)th packet; and
determining whether the selected (K+1)th packet and the reconstructed (K+1)th′
packet are identical, whereby the K non-selected “
good”
packets, and thus the reconstructed K original packets, are validated if so.
4 Assignments
0 Petitions
Accused Products
Abstract
A method is provided that verifies whether K original packets have been correctly reconstructed, and if not, locates an erroneously marked packet so that it may be removed from the reconstruction process. The reconstruction, verification and location process may then be repeated, if there are enough remaining packets, until the reconstructed original packets are deemed correct.
71 Citations
10 Claims
-
1. A method for validating that K packets of a file have been successfully received by a receiver out of N packets transmitted thereto by a transmitter, wherein the receiver deems each received packet as “
- good”
or “
bad”
, said method comprising the steps of;determining whether at least (K+1) packets have been deemed “
good”
by the receiver;
if so, selecting a (K+1)th packet out of the at least (K+1) “
good”
packets;
reconstructing K original packets and a (K+1)th′
packet from K of the non-selected “
good”
packets, the (K+1)th′
packet corresponding to the selected (K+1)th packet; and
determining whether the selected (K+1)th packet and the reconstructed (K+1)th′
packet are identical, whereby the K non-selected “
good”
packets, and thus the reconstructed K original packets, are validated if so.- View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
selecting a (K+2)th packet out of the at least (K+2) “
good”
packets, the (K+2)th packet being neither one of the K “
good”
packets used to reconstruct the K original packets nor the selected (K+1)th packet;
reconstructing a (K+2)th′
packet corresponding to the selected (K+2)th packet; and
computing a second error vector between the selected (K+2)th packet and the reconstructed (K+2)th′
packet, whereby the K non-selected “
good”
packets, and thus the reconstructed K original packets, are validated if the second error vector is the zero vector.
- good”
-
6. A method according to claim 5, wherein the second error vector is the exclusive OR of the bytes of the selected (K+2)th packet and the bytes of the reconstructed (K+2)th′
- packet.
-
7. A method according to claim 6, wherein DIFFA is the first non-zero byte of the first error vector and DIFFB is the first non-zero byte of the second error vector, DIFFB being at the same vector position as DIFFA, further comprising the steps of:
-
forming a K×
2 matrix [C1 C2] by concatenating K×
1 column vectors C1 and C2 used in reconstructing the (K+1)th′ and
(K+2)th′
packets respectively;
determining the location “
n”
of an erroneous packet by searching the K×
2 matrix [C1 C2] for a multiple of [DIFFA DIFFB] and determining the row “
n”
at which that multiple occurs.
-
-
8. A method according to claim 7, wherein if more than one row of the K×
- 2 matrix [C1 C2] is a multiple of [DIFFA DIFFB], then the file is marked bad.
-
9. A method according to claim 7, wherein if no row “
- n”
is found, and if at least (K+3) packets have been determined to be deemed “
good”
by the receiver, the location process is repeated using a (K+3)th packet selected out of the at least (K+3) “
good”
packets, the (K+3)th packet being neither one of the K “
good”
packets used to reconstruct the K original packets, nor the selected (K+1)th and (K+2)th packets.
- n”
-
10. A method according to claim 1, wherein the file comprises a plurality of shares of packets, and the K packets are the packets in any one of those shares.
Specification