IP Library Granted Patent US 9,300,734
Granted Patent B2
US 9,300,734 · App. 13/683,578 · Granted Mar 29, 2016

Multi-CDN digital content streaming

Inventors: Mark Watson (San Francisco, CA); Bin Wang (Fremont, CA); Wei Wei (Fremont, CA)
Assignee: NETFLIX INC.
H04L67/1008H04L65/4084H04L65/80H04L67/1002H04L67/1004
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,300,734
App. No.
13/683,578
Granted
Mar 29, 2016
Kind
B2
Abstract

Techniques for optimizing a plurality of parallel network connections for a digital content stream through a network between a plurality of content servers and a content player. Embodiments determine an indication of network performance for each of the plurality of parallel network connections. Additionally, upon determining that a first one the plurality of parallel network connections is underperforming, based on whether the indication of network performance associated with the first parallel network connection satisfies a threshold level of performance, the first parallel network connection is dropped. Upon determining that a total throughput for the digital content stream is less than a minimum threshold of network performance, embodiments select a content server with which to establish a new parallel network connection, based on historical network performance data associated with the selected content server, and also establishing the new parallel network connection to the selected content server.

Claims (65)

1. A method for transferring a digital content stream via a plurality of parallel network connections between a plurality of content servers and a content player, comprising:

determining, by operation of one or more computer processors, an indication of network performance for each of the plurality of parallel network connections;

upon determining that network performance associated with a first parallel network connection included in the plurality of parallel network connections is below a threshold level of performance, dropping the first parallel network connection and continuing to transfer the digital content stream via remaining parallel network connections of the plurality of parallel network connections; and

upon determining that a total throughput for transferring the digital content stream via the remaining parallel network connections is less than a minimum threshold of network performance:

selecting a content server with which to establish a new parallel network connection based on historical network performance data associated with the selected content server;

adding the new parallel network connection to the plurality of parallel network connections by establishing the new parallel network connection to the selected content server;

assigning a portion of a content buffer of the content player to the new parallel network connection based on the historical network performance data associated with the selected content server; and

transferring the digital content stream to the content buffer via the plurality of parallel network connections.

2. The method of claim 1 , further comprising:

upon dropping the first parallel network connection, requesting content from the digital content stream associated with the first parallel network connection from a second parallel network connection included in the plurality of parallel network connections.

3. The method of claim 1 , wherein the new parallel network connection is a network connection to a new content server not in the plurality of content servers.

4. The method of claim 1 , wherein the new parallel network connection is an additional network connection to one of the plurality of content servers.

5. The method of claim 1 , further comprising:

upon determining that a first deadline for the digital content stream will not be met, adding a new parallel network connection to the plurality of parallel network connections.

6. The method of claim 1 , further comprising:

upon determining that the plurality of parallel network connections contains fewer than a threshold amount of parallel network connections, adding a new parallel network connection to the plurality of parallel network connections.

7. The method of claim 1 , further comprising:

upon adding a new parallel network connection to the plurality of network connections:

retrieving network performance information for the plurality of content servers;

determining a mapping of the plurality of content servers to a plurality of portions of a content buffer on the content player, based on the retrieved network performance information; and

receiving, from each of the plurality of content servers, digital content associated with the corresponding portion of the content buffer.

8. A non-transitory computer-readable medium containing a program that, when executed, transfers a digital content stream via a plurality of parallel network connections between a plurality of content servers and a content player, comprising:

determining an indication of network performance for each of the plurality of parallel network connections;

upon determining that network performance associated with a first parallel network connection included in the plurality of parallel network connections is below a threshold level of performance, dropping the first parallel network connection and continuing to transfer the digital content stream via remaining parallel network connections of the plurality of parallel network connections; and

upon determining that a total throughput for transferring the digital content stream via the remaining parallel network connections is less than a minimum threshold of network performance:

selecting a content server with which to establish a new parallel network connection based on historical network performance data associated with the selected content server;

adding the new parallel network connection to the plurality of parallel network connections by establishing the new parallel network connection to the selected content server;

assigning a portion of a content buffer of the content player to the new parallel network connection based on the historical network performance data associated with the selected content server; and

transferring the digital content stream to the content buffer via the plurality of parallel network connections.

9. The non-transitory computer-readable medium of claim 8 , the operation further comprising:

upon dropping the first parallel network connection, requesting content from the digital content stream associated with the first parallel network connection from a second parallel network connection included in the plurality of parallel network connections.

10. The non-transitory computer-readable medium of claim 8 , wherein the new parallel network connection is a network connection to a new content server not in the plurality of content servers.

11. The non-transitory computer-readable medium of claim 8 , wherein the new parallel network connection is an additional network connection to one of the plurality of content servers.

12. The non-transitory computer-readable medium of claim 8 , the operation further comprising:

upon determining that a first deadline for the digital content stream will not be met, adding a new parallel network connection to the plurality of parallel network connections.

13. The non-transitory computer-readable medium of claim 8 , the operation further comprising:

upon determining that the plurality of parallel network connections contains fewer than a threshold amount of parallel network connections, adding a new parallel network connection to the plurality of parallel network connections.

14. The non-transitory computer-readable medium of claim 8 , the operation further comprising:

upon adding a new parallel network connection to the plurality of network connections:

retrieving network performance information for the plurality of content servers;

determining a mapping of the plurality of content servers to a plurality of portions of a content buffer on the content player, based on the retrieved network performance information; and

receiving, from each of the plurality of content servers, digital content associated with the corresponding portion of the content buffer.

15. A system for transferring a digital content stream via a plurality of parallel network connections between a plurality of content servers and a content player, the system comprising:

a memory; and

a processor coupled to the memory and configured to:

determine an indication of network performance for each of the plurality of parallel network connections;

upon determining that network performance associated with a first parallel network connection included in the plurality of parallel network connections is below a threshold level of performance, drop the first parallel network connection and continue to transfer the digital content stream via remaining parallel network connections of the plurality of parallel network connections; and

upon determining that a total throughput for transferring the digital content stream via the remaining parallel network connections is less than a minimum threshold of network performance:

select a content server with which to establish a new parallel network connection based on historical network performance data associated with the selected content server;

add the new parallel network connection to the plurality of parallel network connections by establishing the new parallel network connection to the selected content server;

assigning a portion of a content buffer of the content player to the new parallel network connection based on the historical network performance data associated with the selected content server; and

transferring the digital content stream to the content buffer via the plurality of parallel network connections.

16. The system of claim 15 , the operation further comprising:

upon dropping the first parallel network connection, requesting content from the digital content stream associated with the first parallel network connection from a second parallel network connection included in the plurality of parallel network connections.

17. The system of claim 15 , wherein the new parallel network connection is a network connection to a new content server not in the plurality of content servers.

18. The system of claim 15 , wherein the new parallel network connection is an additional network connection to one of the plurality of content servers.

19. The system of claim 15 , the operation further comprising:

upon determining that a first deadline for the digital content stream will not be met, adding a new parallel network connection to the plurality of parallel network connections.

20. The system of claim 15 , the operation further comprising:

upon determining that the plurality of parallel network connections contains fewer than a threshold amount of parallel network connections, adding a new parallel network connection to the plurality of parallel network connections.

21. The system of claim 15 , the operation further comprising:

upon adding a new parallel network connection to the plurality of network connections:

retrieving network performance information for the plurality of content servers;

determining a mapping of the plurality of content servers to a plurality of portions of a content buffer on the content player, based on the retrieved network performance information; and

receiving, from each of the plurality of content servers, digital content associated with the corresponding portion of the content buffer.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 21, 2012
From: WATSON, MARK; WANG, BIN; WEI, WEI
To: NETFLIX, INC.
Reel/Frame 029338/0052 →
Continuity (1)
Related Publication 20140143431A1 · May 22, 2014