Peer-to-peer (P2P) downloading
AssigneeJFrog Ltd.
InventorYoav Landman
Life of this patent
Estimating the term…
Abstract
The present disclosure provides a method, system, and device for peer-to-peer downloading across a network. To illustrate, a server may receive a request from a peer device for at least a portion of a file. The server may send, to the peer device, download information including a checksum corresponding to the portion of the file, a token corresponding to authorization for the peer device to perform P2P communication, an indicator that identifies at least one device that includes the portion of the file, or a combination thereof. The server may update tracking information to indicate that the peer device received the portion of the file.
Claims29
A method for managing peer-to-peer (P2P) downloading across a network, the method comprising:
- registering, by a server, a peer device, the registering comprising:
- receiving, by the server, a public key of the peer device;
- signing, by the server, the public key of the peer device to generate a server-signed public key of the peer device;
- and
- sending, by the server to the peer device, the server-signed public key of the peer device, wherein the server-signed public key of the peer device enables the peer device to receive one or more files from one or more other peer devices via encrypted P2P communications using the server-signed public key of the peer device;
- receiving, by the server, a request from the peer device for at least a portion of a file;
- sending, by the server, download information to the peer device, the download information including a checksum corresponding to the portion of the file;
- sending, by the server to the peer device, a token corresponding to authorization for the peer device to perform P2P communication;
- sending, by the server to the peer device, an indicator that identifies at least one peer device that stores the portion of the file;
- receiving, by the server, downloaded file information from the peer device;
- and
- updating, by the server, tracking information to indicate that the peer device received the portion of the file in response to receiving the downloaded file information from the peer device, the downloaded file information indicating the peer device received the portion of the file, the portion of the file included in a first window for requesting portions of the file that has a window size selected by the peer device based on a peer group size of a group of peer devices that store one or more portions of the file.
A system for managing peer-to-peer (P2P) downloading across a network, the system comprising:
- at least one memory storing instructions;
- and
- one or more processors coupled to the at least one memory, the one or more processors configured to execute the instructions to cause the one or more processors to:
- register a peer device, the registering causing the one or more processors to:
- receive a public key of the peer device;
- sign the public key of the peer device to generate a server-signed public key of the peer device;
- and
- send, to the peer device, the server-signed public key of the peer device, wherein the server-signed public key of the peer device enables the peer device to receive one or more files from one or more other peer devices via encrypted P2P communications using the server-signed public key of the peer device;
- receive a request from the peer device for at least a portion of a file;
- send download information to the peer device, the download information including a checksum corresponding to the portion of the file;
- send, to the peer device, a token corresponding to authorization for the peer device to perform P2P communication;
- send, to the peer device, an indicator that identifies at least one peer device that stores the portion of the file;
- receive downloaded file information from the peer device;
- and
- update tracking information to indicate that the peer device received the portion of the file in response to receipt of the downloaded file information from the peer device, the downloaded file information indicating the peer device received the portion of the file, the portion of the file included in a first window for requesting portions of the file that has a window size selected by the peer device based on a peer group size of a group of peer devices that store one or more portions of the file.
A method for peer-to-peer (P2P) downloading across a network, the method comprising:
- registering, by a peer device, with a server, the registering comprising:
- sending, by the peer device to the server, a public key of the peer device;
- and
- receiving, by the peer device from the server, a signed public key of the peer device, the signed public key of the peer device signed by the server;
- sending, from the peer device to the server, a download request based on a download command for a file;
- receiving, at the peer device from the server, download information including a checksum corresponding to at least a portion of the file;
- receiving, at the peer device from the server, an indicator that identifies at least one device that stores the portion of the file;
- selecting, at the peer device, a window size for requesting portions of the file based on a peer group size of a group of peer devices that store one or more portions of the file, wherein a first window having the window size includes the portion of the file;
- receiving, at the peer device from the at least one device, the portion of the file via encrypted communication with the at least one device using the signed public key of the peer device;
- and
- sending, from the peer device to the server, downloaded file information indicating that the peer device verified, based on the checksum, receipt of the portion of the file from the at least one device.
A system for peer-to-peer (P2P) downloading across a network, the system comprising:
- at least one memory storing instructions and a public key;
- and
- one or more processors coupled to the at least one memory, the one or more processors configured to execute the instructions to cause the processor to:
- register with a server, the registering causing the one or more processors to:
- send, to the server, the public key;
- and
- receive, from the server, a signed public key, the signed public key signed by the server;
- send, to the server, a download request based on a download command for a file;
- receive, from the server, download information including a checksum corresponding to at least a portion of the file;
- receive, from the server, an indicator that identifies at least one device that stores the portion of the file;
- select a window size for requesting portions of the file based on a peer group size of a group of peer devices that store one or more portions of the file, wherein a first window having the window size includes the portion of the file;
- receive, from the at least one device, the portion of the file via encrypted communication with the at least one device using the signed public key;
- and
- send, to the server, downloaded file information indicating verification, based on the checksum, of receipt of the portion of the file from the at least one device.
Dependencies are inferred from the claim text.