IP Library Granted Patent US 9,191,465
Granted Patent B2
US 9,191,465 · App. 13/683,883 · Granted Nov 17, 2015

Multi-CDN digital content streaming

Inventors: Mark Watson (San Francisco, CA); Bin Wang (Fremont, CA); Wei Wei (Fremont, CA)
Assignee: NETFLIX INC.
H04L69/14H04L65/4084H04L65/80
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,191,465
App. No.
13/683,883
Granted
Nov 17, 2015
Kind
B2
Abstract

Techniques for transmitting a digital content stream through a network between a plurality of content servers and a content player. Network performance information for the plurality of content servers is retrieved. Embodiments then determine 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. A request is transmitted to each of the plurality of content servers to transmit digital content associated with the corresponding portion of the content buffer.

Claims (47)

1. A method of receiving a digital content stream from a plurality of content servers via a content player, comprising:

retrieving network performance information for each of the plurality of content servers;

dividing a content buffer on the content player into a plurality of portions;

mapping, by operation of one or more processors, each of the plurality of content servers to one of the plurality of portions of the content buffer;

for each of the plurality of portions of the content buffer, determining a size of the portion based on the network performance information associated with the content server corresponding to the portion;

transmitting a request to each of the plurality of content servers to transmit digital content; and

storing digital content received from each of the plurality of content servers in the portion of the content buffer corresponding to the content server.

2. The method of claim 1 , wherein content servers with a slower network performance, as indicated by the network performance information, are mapped to later portions of the content buffer, and wherein content servers with a faster network performance, as indicated by the network performance information, are mapped to earlier portions of the content buffer.

3. The method of claim 1 ,

wherein content servers with a slower network performance, as indicated by the network performance information, are mapped to smaller portions of the content buffer, and wherein content servers with a faster network performance, as indicated by the network performance information, are mapped to larger portions of the content buffer.

4. The method of claim 1 , further comprising communicating with the plurality of content servers to set up a plurality of parallel network connections on the network between the plurality of content servers and the content player to transmit the digital content stream.

5. The method of claim 1 , further comprising:

monitoring network performance of a first one of the plurality of content servers while the first content server is transmitting digital content to the content player; and

updating the network performance information for the first content server.

6. The method of claim 1 , wherein the network performance information specifies at least one of network throughput for a content server, network bandwidth for the content server, network throughput variance for the content server, average latency of the content server, historical availability of the content server and services supported by the content server.

7. A non-transitory computer-readable medium containing a program that, when executed, performs an operation for receiving a digital content stream from a plurality of content servers via a content player, comprising:

retrieving network performance information for each of the plurality of content servers;

dividing a content buffer on the content player into a plurality of portions;

mapping, by operation of one or more processors, each of the plurality of content servers to one of the plurality of portions of the content buffer;

for each of the plurality of portions of the content buffer, determining a size of the portion based on the network performance information associated with the content server corresponding to the portion;

transmitting a request to each of the plurality of content servers to transmit digital content; and

storing digital content received from each of the plurality of content servers in the portion of the content buffer corresponding to the content server.

8. The non-transitory computer-readable medium of claim 7 , wherein content servers with a slower network performance, as indicated by the network performance information, are mapped to later portions of the content buffer, and wherein content servers with a faster network performance, as indicated by the network performance information, are mapped to earlier portions of the content buffer.

9. The non-transitory computer-readable medium of claim 7 ,

wherein content servers with a slower network performance, as indicated by the network performance information, are mapped to smaller portions of the content buffer, and wherein content servers with a faster network performance, as indicated by the network performance information, are mapped to larger portions of the content buffer.

10. The non-transitory computer-readable medium of claim 7 , the operation further comprising communicating with the plurality of content servers to set up a plurality of parallel network connections on the network between the plurality of content servers and the content player to transmit the digital content stream.

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

monitoring network performance of a first one of the plurality of content servers while the first content server is transmitting digital content to the content player; and

updating the network performance information for the first content server.

12. The non-transitory computer-readable medium of claim 7 , wherein the network performance information specifies at least one of network throughput for a content server, network bandwidth for the content server, network throughput variance for the content server, average latency of the content server, historical availability of the content server and services supported by the content server.

13. A content player, comprising:

a memory storing a playback application; and

a processor coupled to the memory, wherein, when executed by the processor, the playback application configures the processor to:

retrieve network performance information for each of the plurality of content servers;

divide a content buffer on the content player into a plurality of portions;

map, by operation of one or more processors, each of the plurality of content servers to one of the plurality of portions of the content buffer;

for each of the plurality of portions of the content buffer, determine a size of the portion based on the network performance information associated with the content server corresponding to the portion;

transmit a request to each of the plurality of content servers to transmit digital content; and

store digital content received from each of the plurality of content servers in the portion of the content buffer corresponding to the content server.

14. The content player of claim 13 , wherein content servers with a slower network performance, as indicated by the network performance information, are mapped to later portions of the content buffer, and wherein content servers with a faster network performance, as indicated by the network performance information, are mapped to earlier portions of the content buffer.

15. The content player of claim 13 ,

wherein content servers with a slower network performance, as indicated by the network performance information, are mapped to smaller portions of the content buffer, and wherein content servers with a faster network performance, as indicated by the network performance information, are mapped to larger portions of the content buffer.

16. The content player of claim 13 , the operation further comprising communicating with the plurality of content servers to set up a plurality of parallel network connections on the network between the plurality of content servers and the content player to transmit the digital content stream.

17. The content player of claim 13 , the operation further comprising:

monitoring network performance of a first one of the plurality of content servers while the first content server is transmitting digital content to the content player; and

updating the network performance information for the first content server.

18. The content player of claim 13 , wherein the network performance information specifies at least one of network throughput for a content server, network bandwidth for the content server, network throughput variance for the content server, average latency of the content server, historical availability of the content server and services supported by the content server.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 20, 2013
From: WATSON, MARK; WANG, BIN; WEI, WEI
To: NETFLIX, INC.
Reel/Frame 030050/0205 →
Continuity (1)
Related Publication 20140143301A1 · May 22, 2014