Distributed file sharing system
First Claim
1. A distributed file sharing system for fast download of data from multiple computer data storage mediums connected by peer-to-peer connections through a computer network comprising, in combination:
- a plurality of client computers connected to the computer network;
a plurality of computer data storage mediums connected to a corresponding one of said client computers;
a plurality of client databases, each said client database stored on a corresponding one of said computer data storage mediums, and containing files or parts of files;
a file retrieval software application operational with each one of said client computers, said file retrieval software application comprising a module that establishes communication links with other ones of said client computers;
a module that measures an instantaneous speed of data flow through each one of said communication links and dynamically selects a communication link that yields a highest measured speed of data flow;
a module which communicates with said computer data storage medium and which can retrieve a complete file or file part; and
a module that reassembles parts of a file into a complete file and that performs a predetermined authentication procedure which computes an authentication code of the file;
a server computer connected to the computer network and connectable to each of said client computers;
a server computer storage medium connected to said server computer;
a server database stored on said server computer storage medium, said server database containing said list of files and said lists of locations of client computers associated with each one of said files; and
a file sharing software application operational with said server computer which maintains a list of files that are stored on client databases and a list of locations of client computers that store said files, which also computes an authentication code of a file, and which sends said authentication code and said locations of client computers to a client computer that requests the file.
1 Assignment
0 Petitions
Accused Products
Abstract
A distributed file sharing system and a method for providing fast download of data from multiple data storage mediums. The system combines a network of peer client computers which provide data through optimized peer-to-peer communication links, and a server computer which provides an authentication code for checking the completeness and integrity of the downloaded data. The method involves sending a request for a file to the server computer; receiving back from the server an authentication code and a list of peer client computers that have the requested file or part of it; sending a request for the file to a subset of peer clients that yield the fastest download rate; receiving file data back from this subset of peer clients; reassembling the requested file using data sent by the peer clients; and checking the integrity and completeness of the reconstructed file by comparing a computed checksum of said reconstructed file with the authentication code.
402 Citations
50 Claims
-
1. A distributed file sharing system for fast download of data from multiple computer data storage mediums connected by peer-to-peer connections through a computer network comprising, in combination:
-
a plurality of client computers connected to the computer network;
a plurality of computer data storage mediums connected to a corresponding one of said client computers;
a plurality of client databases, each said client database stored on a corresponding one of said computer data storage mediums, and containing files or parts of files;
a file retrieval software application operational with each one of said client computers, said file retrieval software application comprising a module that establishes communication links with other ones of said client computers;
a module that measures an instantaneous speed of data flow through each one of said communication links and dynamically selects a communication link that yields a highest measured speed of data flow;
a module which communicates with said computer data storage medium and which can retrieve a complete file or file part; and
a module that reassembles parts of a file into a complete file and that performs a predetermined authentication procedure which computes an authentication code of the file;
a server computer connected to the computer network and connectable to each of said client computers;
a server computer storage medium connected to said server computer;
a server database stored on said server computer storage medium, said server database containing said list of files and said lists of locations of client computers associated with each one of said files; and
a file sharing software application operational with said server computer which maintains a list of files that are stored on client databases and a list of locations of client computers that store said files, which also computes an authentication code of a file, and which sends said authentication code and said locations of client computers to a client computer that requests the file. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
-
37. A method of using a distributed file sharing system for fast download of data from multiple computer data storage mediums connected by peer-to-peer connections through a computer network, said method comprising the steps of:
-
sending a request for a file from a client computer connected to the computer network to a server computer connected to the computer network;
receiving a response from the server computer through the computer network, said response comprising a list of locations of other client computers that presumably have said file, or a part of said file, and an authentication code corresponding to said file;
sending a query for the file to a pre-selected set of other client computers;
receiving a response from a subset of other client computers that actually have the file or a part of the file;
sending a formal request for the file to the subset of other client computers that actually have the file or a part of the file;
receiving data pertaining to the file or a part of the file from the subset of other client computers that actually have the file or a part of the file;
reassembling the file using the data received from said subset of other client computers;
computing a checksum of a reassembled file and performing a comparison between said checksum and the authentication code received from the server computer;
sending a status report comprising the comparison between the checksum and the authentication code back to the server computer. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48)
-
-
49. A method of providing a distributed file sharing system for fast download of data from multiple computer data storage mediums connected by peer-to-peer connections through a computer network, said method comprising the steps of:
-
receiving a request for a file from a requesting client computer connected to the computer network using a server computer;
sending a query for said file to a database connected to the server computer;
retrieving a list of locations of client computers that have the file or a part of the file and an authentication code from said database;
sending said list of locations of client computers and said authentication code back to the requesting client computer through the computer network.
-
-
50. A method of contributing with a serving client computer to a distributed file sharing system for fast download of data from multiple computer data storage mediums connected by peer-to-peer connections through a computer network, said method comprising the steps of:
-
receiving a request for a file from a requesting peer client computer connected to the computer network;
sending a query for said file to a database connected to the serving client computer;
retrieving information about the file from said database;
sending said information about the file back to the requesting peer client computer;
receiving a formal request from the requesting peer client computer for data from the file;
sending data from the file back to the requesting peer client computer.
-
Specification