Application recovery from network-induced data corruption
First Claim
1. A method of transferring a set of padded data blocks, comprising:
- assembling, by a source computer, the set of padded data blocks, each of the padded data blocks in the set including;
a data block, a data block identifier, and a data block source checksum, wherein the data block source checksum is generated by the source computer;
transmitting, from the source computer to a destination computer, the set of padded data blocks over a communications network;
upon receiving, by the destination computer, all of the set of padded data blocks from the communications network;
generating, by the destination computer, a data block destination checksum for each padded data block in the set of padded data blocks;
extracting, by the destination computer, the data block source checksum from each padded data block generated at the source computer;
comparing, by the destination computer, each data block source checksum with a corresponding data block destination checksum generated at the destination computer;
determining based on the comparing by the destination computer, a data block in the set of received padded data blocks is corrupt;
requesting the source computer to retransmit a subset of the set of padded data blocks containing the corrupt data block identified by the data block identifier after the destination computer has received all of the set of padded data blocks from the source computer; and
retransmitting by the source computer, to the destination computer, the subset of the set of padded data blocks containing the corrupt data block in response to the requesting.
0 Assignments
0 Petitions
Accused Products
Abstract
A source application reads a body of data in data block sized units and calculates a checksum value for each data block before sending the data block, the calculated checksum value and the identifier. Upon receipt, a destination application independently calculates a checksum value for each received data block and compares the two checksums. Non-matching checksums indicate a network-induced error in the data block. Identifiers for the erroneous data blocks are transmitted to the source application after all of the data blocks have been initially transmitted. The source application thereafter resends only those data blocks identified. The destination application repeats the process of comparing checksums and transmitting identifiers to the source application until all of the data blocks of the body of data have been correctly received, and then uses the data blocks to recreate the body of data.
16 Citations
20 Claims
-
1. A method of transferring a set of padded data blocks, comprising:
-
assembling, by a source computer, the set of padded data blocks, each of the padded data blocks in the set including;
a data block, a data block identifier, and a data block source checksum, wherein the data block source checksum is generated by the source computer;transmitting, from the source computer to a destination computer, the set of padded data blocks over a communications network; upon receiving, by the destination computer, all of the set of padded data blocks from the communications network; generating, by the destination computer, a data block destination checksum for each padded data block in the set of padded data blocks; extracting, by the destination computer, the data block source checksum from each padded data block generated at the source computer; comparing, by the destination computer, each data block source checksum with a corresponding data block destination checksum generated at the destination computer; determining based on the comparing by the destination computer, a data block in the set of received padded data blocks is corrupt; requesting the source computer to retransmit a subset of the set of padded data blocks containing the corrupt data block identified by the data block identifier after the destination computer has received all of the set of padded data blocks from the source computer; and retransmitting by the source computer, to the destination computer, the subset of the set of padded data blocks containing the corrupt data block in response to the requesting. - View Dependent Claims (2, 3, 4)
-
-
5. A method of transferring a body of data from a source computer to a destination computer over a communications network, comprising:
-
dividing the body of data into a plurality of padded data blocks, each of the plurality of padded data blocks including a data block, a data block identifier and a data block source error detection information; generating, by the source computer, the data block source error detection information for each padded data block of the plurality of padded data blocks; sending, by the source computer, the body of data as a plurality of padded data blocks to the destination computer over the communications network; upon receiving, by the destination computer, the body of data sent by the source computer; generating, by the destination computer, a data block destination error detection information for each padded data block; comparing, by the destination computer, the data block source error detection information with the corresponding data block destination error detection information; determining based on the comparing by the destination computer, a padded data block in the set of received padded data blocks is corrupt; requesting the source computer resend each padded data block of the body of data determined to have a corrupt data block identified by the data block identifier; and resending each data block requested to be resent by the source computer to the destination computer over the communications network in response to receiving the request to resend from the destination computer. - View Dependent Claims (6, 7, 8, 9, 10)
-
-
11. A computer system for transferring a set of padded data blocks from a source computer to a destination computer, comprising:
-
a source computer having a source storage medium upon which a body of data stored; a destination computer having a destination storage medium; a communications network communicating data between the source computer and the destination computer; a set of executable instructions on the source computer operative to cause the source computer to; divide the body of data into the set of padded data blocks, each of the set of padded data blocks including a data block, a data block identifier and a data block source error detection information for a data block, wherein the data block source error detection information is generated by the source computer; send the set of padded data blocks to the destination computer over the communications network; a set of executable instructions on the destination computer operative to cause the destination computer to, upon receipt of all of the set of padded data blocks; receive the generated data block source error detection information from the source computer; compare the data block source error detection information with the corresponding data block destination error detection information; determine based on the comparing by the destination computer, a data block in the set of received padded data blocks is corrupt; request the source computer to resend each padded data block having a corrupt data block identified by the data block identifier after all of the plurality of padded data blocks have been received; and the set of executable instructions on the source computer further operative to cause the source computer to; resend each data block requested to be resent to the destination computer over the communications network in response to receiving the request to resend. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18, 19, 20)
-
Specification