IP Library Granted Patent US 9,614,907
Granted Patent B2
US 9,614,907 · App. 14/147,356 · Granted Apr 4, 2017

Expediting content retrieval using peer-to-peer networks

Inventor: Arthur W. Yerkes (San Francisco, CA)
Assignee: BitTorrent, Inc.
H04L67/1046H04L67/06H04L67/104
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,614,907
App. No.
14/147,356
Granted
Apr 4, 2017
Kind
B2
Abstract

A download manger running on a computer system identifies an in-progress download of content by the computer system directly from a content system. The download manager causes the computer system to join a peer-to-peer network in which the content is being shared. The computer system starts to receive data blocks of the content from peer-to-peer network, as it continues the download from the content system. Based on the receipt of the content from the peer-to-peer network and from the content system, the download manager determines whether the computer system should rely primarily on the peer-to-peer network instead of the content system for receiving the content. If a determination is made to rely on the peer-to-peer network instead of the content system, the download manager terminates the download from the content system and continues receiving data blocks of the content from the peer-to-peer network.

Claims (51)

1. A computer-implemented method for managing the receiving of digital content, the method comprising:

identifying an in-progress download of content by a computer system from a content system in response to a size of the content being greater than a set size and the content being downloaded from the content system via a non-secure connection;

joining, by the computer system during the download of the content from the content system, a peer-to-peer network in which the content is being shared by at least one peer in the peer-to-peer network;

determining, by the computer system, whether to rely on the peer-to-peer network instead of the content system for receiving the content;

responsive to a determination to rely on the peer-to-peer network, terminating, by the computer system, the in-progress download from the content system; and

receiving, by the computer system, at least a portion of the content through the peer-to-peer network.

2. The method of claim 1 , wherein determining whether to rely on the peer-to-peer network comprises:

responsive to joining the peer-to-peer network, simultaneously downloading data blocks of the content from the content system and from the peer-to-peer network; and

determining, based on the simultaneous downloading, whether to rely on the peer-to-peer network for receiving the content.

3. The method of claim 2 , further comprising:

responsive to a difference between an amount of the content received from the peer-to-peer network and an amount of the content received from the content system since joining the peer-to-peer network being greater than a threshold, determining not rely on the peer-to-peer network.

4. The method of claim 2 , further comprising:

responsive to determining not to rely on the peer-to-peer network, terminating downloading of data blocks from the peer-to-peer network.

5. The method of claim 2 , further comprising:

responsive to receiving a data block from to peer-to-peer network before receiving the data block from the content system, determining to rely on the peer-to-peer network for receiving the content.

6. The method of claim 2 , further comprising:

responsive to downloading of data blocks of the content from the peer-to-peer network being faster than downloading of data blocks of the content from the content system, determining to rely on the peer-to-peer network for receiving the content.

7. The method of claim 1 , further comprising:

responsive to determining to rely on the peer-to-peer network and not receiving a data block of the content from the peer-to-peer networking within a threshold period, requesting the data block from the content system.

8. A computer program product stored on a non-transitory computer-readable storage medium having computer-executable instructions which cause one or more processors to performs steps comprising:

identifying an in-progress download of content by a computer system from a content system in response to a size of the content being greater than a set size and the content being downloaded from the content system via a non-secure connection;

joining, by the computer system during the download of the content from the content system, a peer-to-peer network in which the content is being shared by at least one peer in the peer-to-peer network;

determining, by the computer system, whether to rely on the peer-to-peer network instead of the content system for receiving the content;

responsive to a determination to rely on the peer-to-peer network, terminating, by the computer system, the in-progress download from the content system; and

receiving, by the computer system, at least a portion of the content through the peer-to-peer network.

9. The computer program product of claim 8 , wherein determining whether to rely on the peer-to-peer network comprises:

responsive to joining the peer-to-peer network, simultaneously downloading data blocks of the content from the content system and from the peer-to-peer network; and

determining, based on the simultaneous downloading, whether to rely on the peer-to-peer network for receiving the content.

10. The computer program product of claim 9 , wherein the computer-executable instructions further cause the one or more processors to performs steps comprising:

responsive to a difference between an amount of the content received from the peer-to-peer network and an amount of the content received from the content system since joining the peer-to-peer network being greater than a threshold, determining not rely on the peer-to-peer network.

11. The computer program product of claim 9 , wherein the computer-executable instructions further cause the one or more processors to performs steps comprising:

responsive to determining not to rely on the peer-to-peer network, terminating downloading of data blocks from the peer-to-peer network.

12. The computer program product of claim 9 , wherein the computer-executable instructions further cause the one or more processors to performs steps comprising:

responsive to receiving a data block from to peer-to-peer network before receiving the data block from the content system, determining to rely on the peer-to-peer network for receiving the content.

13. The computer program product of claim 9 , wherein the computer-executable instructions further cause the one or more processors to performs steps comprising:

responsive to downloading of data blocks of the content from the peer-to-peer network being faster than downloading of data blocks of the content from the content system, determining to rely on the peer-to-peer network for receiving the content.

14. The computer program product of claim 8 , wherein the management module is further configured to:

responsive to determining to rely on the peer-to-peer network and not receiving a data block of the content from the peer-to-peer networking within a threshold period, request the data block from the content system.

15. A computer system for managing the receiving of digital content, the system comprising:

one or more computer processors; and

a non-transitory computer-readable storage medium storing computer-executable instructions which when executed by the one or more computer processors cause the one or more computer processors to perform steps comprising:

identifying an in-progress download of content by the computer system from a content system in response to a size of the content being greater than a set size and the content being downloaded from the content system via a non-secure connection;

joining, during the download of the content from the content system, a peer-to-peer network in which the content is being shared by at least one peer in the peer-to-peer network;

determining whether to rely on the peer-to-peer network instead of the content system for receiving the content;

responsive to a determination to rely on the peer-to-peer network, terminating the in-progress download from the content system; and

receiving at least a portion of the content through the peer-to-peer network.

16. The system of claim 15 , wherein determining whether to rely on the peer-to-peer network comprises:

responsive to joining the peer-to-peer network, simultaneously downloading data blocks of the content from the content system and from the peer-to-peer network; and

determining, based on the simultaneous downloading, whether to rely on the peer-to-peer network for receiving the content.

17. The system of claim 16 , wherein the computer-executable instructions further cause the one or more processors to performs steps comprising:

responsive to a difference between an amount of the content received from the peer-to-peer network and an amount of the content received from the content system since joining the peer-to-peer network being greater than a threshold, determining not rely on the peer-to-peer network.

Assignments (2)
CHANGE OF NAME Recorded Jul 27, 2021
From: BITTORRENT, INC.
To: RAINBERRY, INC.
Reel/Frame 056995/0889 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 3, 2014
From: YERKES, ARTHUR W.
To: BITTORRENT, INC.
Reel/Frame 033022/0985 →
Continuity (2)
Provisional Application 61748885 · Jan 4, 2013
Related Publication 20140195652A1 · Jul 10, 2014