# US 2014/0195652 A1 · Expediting content retrieval using peer-to-peer networks

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0195652 A1
- Document ID: US20140195652A1
- Status: Published application
- Kind: A1
- Application number: 14/147,356
- Filed: 2014-01-03
- Published: 2014-07-10
- Earliest claimed: 2013-01-04
- Assignees: BitTorrent, Inc.
- Applicants: BitTorrent, Inc.
- Inventors: Arthur W. Yerkes
- Web page: https://patentgrep.com/patent/US20140195652A1

## CPC

- H04L 67/06: specially adapted for file transfer, e.g. file transfer protocol [FTP]
- H04L 67/104: Peer-to-peer [P2P] networks
- H04L 67/1046: {Joining mechanisms}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## 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

### Claim 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;
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.

### Claim 2 (depends on 1)

The method of claim 1, wherein the download is identified responsive to one or more of the following: a size of the content being greater that a certain size and the content being downloaded from the content system via a non-secure connection.

### Claim 3 (depends on 1)

The method of claim 1, further comprising:
responsive to joining the peer-to-peer network, receiving data blocks of the content from the peer-to-peer network.

### Claim 4 (depends on 3)

The method of claim 3, 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.

### Claim 5 (depends on 3)

The method of claim 3, further comprising:
responsive to determining not to rely on the peer-to-peer network, terminating the receipt of data blocks from the peer-to-peer network.

### Claim 6 (depends on 3)

The method of claim 3, further comprising:
responsive to receiving a data block from to peer-to-peer network before receiving the data block via the download from the content system, determining to rely on the peer-to-peer network instead of the content system for receiving the content.

### Claim 7 (depends on 3)

The method of claim 3, further comprising:
responsive to the receipt of the content from the peer-to-peer network being faster than via the download from the content system, determining to rely on the peer-to-peer network instead of the content system for receiving the content.

### Claim 8 (depends on 3)

The method of claim 3, 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.

### Claim 9

A computer program product stored on a non-transitory computer-readable storage medium having computer-executable instructions for managing the receiving of digital content, the computer program product comprising:
a monitoring module configured to identify an in-progress download of content by a computer system from a content system;
a swarm module configured to cause during the download of the content from the content system the computer system to join a peer-to-peer network in which the content is being shared by at least one peer in the peer-to-peer network; and
a management module configured to:
determine 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, terminate the in-progress download from the content system; and
receive at least a portion of the content through the peer-to-peer network.

### Claim 10 (depends on 9)

The computer program product of claim 9, wherein the download is identified responsive to one or more of the following: a size of the content being greater that a certain size and the content being downloaded from the content system via a non-secure connection.

### Claim 11 (depends on 9)

The computer program product of claim 9, wherein the swarm module is further configured to:
receive data blocks of the content from the peer-to-peer network in response to the computer system joining the peer-to-peer network,.

### Claim 12 (depends on 9)

The computer program product of claim 9, wherein the management module is further configured to:
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, determine not rely on the peer-to-peer network.

### Claim 13 (depends on 9)

The computer program product of claim 9, wherein the management module is further configured to:
responsive to determining not to rely on the peer-to-peer network, terminate the receipt of data blocks from the peer-to-peer network.

### Claim 14 (depends on 9)

The computer program product of claim 9, wherein the management module is further configured to:
responsive to receiving a data block from to peer-to-peer network before receiving the data block via the download from the content system, determine to rely on the peer-to-peer network instead of the content system for receiving the content.

### Claim 15 (depends on 9)

The computer program product of claim 9, wherein the management module is further configured to:
responsive to the receipt of the content from the peer-to-peer network being faster than via the download from the content system, determine to rely on the peer-to-peer network instead of the content system for receiving the content.

### Claim 16 (depends on 9)

The computer program product of claim 9, 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.

### Claim 17

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 program modules adapted to execute on the one or more computer processors, the program modules comprising:
a monitoring module configured to identify an in-progress download of content by the computer system from a content system;
a swarm module configured to cause during the download of the content from the content system the computer system to join a peer-to-peer network in which the content is being shared by at least one peer in the peer-to-peer network; and
a management module configured to:
determine 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, terminate the in-progress download from the content system; and
receive at least a portion of the content through the peer-to-peer network.

### Claim 18 (depends on 17)

The system of claim 17, wherein the download is identified responsive to one or more of the following: a size of the content being greater that a certain size and the content being downloaded from the content system via a non-secure connection.

### Claim 19 (depends on 17)

The system of claim 17, wherein the swarm module is further configured to:
receive data blocks of the content from the peer-to-peer network in response to the computer system joining the peer-to-peer network.

### Claim 20 (depends on 17)

The system of claim 17, wherein the management module is further configured to:
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, determine not rely on the peer-to-peer network.
