System and method for transparent electronic data transfer using error correction to facilitate bandwidth-efficient data recovery
First Claim
1. A method for transferring pieces of discrete data electronically between a transmission unit and a reception unit, comprising:
- requesting the discrete data from the transmission unit using the reception unit;
determining that a first number of discrete data pieces were received and that a second number of discrete date pieces are missing;
obtaining pieces of discrete error correction data from the transmission unit, the number of discrete error correction data pieces equal to the second number of missing discrete data pieces plus a safety value; and
recovering the missing discrete data pieces from the discrete error correction data pieces and the discrete data pieces received.
2 Assignments
0 Petitions
Accused Products
Abstract
The invention disclosed herein includes a system and method for electronically transferring data through a communications connection in a transparent manner such that the data transfer does not interfere with other traffic sharing the connection. The invention transfers data using bandwidth of the connection that other traffic are not using. If other traffic desires to use the bandwidth currently being used by the invention, the invention relinquishes the bandwidth to the other traffic and retreats to avoid bandwidth contention. Although a retreat may cause gaps in the data transferred, a key aspect of the invention is that any missing data due to these gaps is recovered easily and in a bandwidth-efficient way using novel error correction and recovery.
37 Citations
25 Claims
-
1. A method for transferring pieces of discrete data electronically between a transmission unit and a reception unit, comprising:
-
requesting the discrete data from the transmission unit using the reception unit;
determining that a first number of discrete data pieces were received and that a second number of discrete date pieces are missing;
obtaining pieces of discrete error correction data from the transmission unit, the number of discrete error correction data pieces equal to the second number of missing discrete data pieces plus a safety value; and
recovering the missing discrete data pieces from the discrete error correction data pieces and the discrete data pieces received. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for error correction and recovery in a computer network having a server and a client, comprising:
-
transmitting a file in the form of N number of data packets from the server to the client in response to a request by the client;
determining that the client did not receive k number of the data packets and did received (N−
k) number of the data packets;
obtaining (k+a safety value) number of error correction packets from the server and recovering the k number data packets not received from the (k+safety value) number of error correction packets obtained and the (N−
k) number of data packets received. - View Dependent Claims (7)
-
-
8. A method for electronically transferring data between a client and a server over a fixed bandwidth connection having a plurality of channels, comprising:
-
providing a policy manager residing on the client to control to which channels the client subscribes;
subscribing to at least one of the plurality of channels to receive discrete data;
determining that not all of the discrete data was received and that there is missing discrete data;
subscribing to at least one of the plurality of channels to receive discrete error correction data, each one of the discrete error correction data containing a unique weighted combination of the discrete data; and
recovering the missing discrete data from the discrete error correction data received. - View Dependent Claims (9, 10, 11)
-
-
12. A computer-readable medium having computer-executable instructions for transferring a data file having discrete data packets to a client computing device through a connection having a bandwidth, comprising:
-
receiving a multicast of discrete data packets in response to a request from the client computing device;
determining that a number of discrete data packets were not received and defining these discrete data packets not received as missing discrete data packets;
obtaining a multicast of discrete error correction packets, a number of discrete error correction packets obtained being equal to the number of missing discrete data packets plus a safety value; and
recovering each of the missing discrete data packets from the discrete error correction packets obtained;
whereby each of the discrete error correction packets contain a weighted combination of each of the discrete data packets. - View Dependent Claims (13, 14, 15, 16, 17)
-
-
18. A method for transferring a data file to a client computing device using plurality of channels contained within a fixed bandwidth network connection, comprising:
-
subscribing to at least a portion of the plurality of channels to receive discrete data packets of the data file;
determining a congestion status within the fixed bandwidth network connection, wherein determining a congestion status further comprises having an application on the client computing device send a notification of the applications intent to use at least a portion of the fixed bandwidth network connection;
unsubscribing from at least one of the plurality of channels if the congestion status detects congestion;
subscribing to additional ones of the plurality of channels if the congestion status detects little or no congestion; and
recovering any discrete data packets of the data file lost during data transfer using discrete error correction data packets.
-
-
19. A method for transferring a data file to a client computing device using a plurality of channels contained within a fixed bandwidth network connection, comprising:
-
subscribing to at least a portion of the plurality of channels to receive discrete data packets of the data file;
determining a congestion status within the fixed bandwidth network connection;
unsubscribing from at least one of the plurality of channels if the congestion status detects congestion;
subscribing to additional ones of the plurality of channels if the congestion status detects little or no congestion; and
recovering any discrete data packets of the data file lost during data transfer using discrete error correction data packets;
wherein the discrete error correction data packets are a weighted combination of the discrete data packets.
-
-
20. An electronic data transfer system, comprising:
-
a transmission unit for transmitting over a connection having a fixed bandwidth a data signal containing discrete data and an error correction signal containing discrete error correction data;
a reception unit capable of receiving the data signal and error correction signal; and
an error correction module located on the transmission unit for generating the discrete error correction data, each of the discrete error correction data being a weighted combination of the discrete data. - View Dependent Claims (21, 22, 23, 24)
-
-
25. A data transfer system for transferring a data file over a computer network through a fixed bandwidth network connection, comprising:
-
a data socket on a server computing device for multicasting discrete data packets of the data file;
discrete error correction data packets containing a weighted combination of the discrete data packets;
an error correction socket on the server computing device for multicasting the discrete error correction data packets; and
a transparent download module on a client computing device in communication with the server computing device over the fixed bandwidth network connection, the transparent download module capable of downloading the discrete data packets and the discrete error correction data packets.
-
Specification