IP Library Granted Patent US 10,523,732
Granted Patent B2
US 10,523,732 · App. 14/942,084 · Granted Dec 31, 2019

Multi-CDN digital content streaming

Inventors: Mark Watson (San Francisco, CA); Bin Wang (Fremont, CA); Wei Wei (Fremont, CA)
Assignee: NETFLIX, INC.
H04L65/80H04L65/4084H04L65/60H04L69/14
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 10,523,732
App. No.
14/942,084
Granted
Dec 31, 2019
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 (31)

1. A method, comprising:

retrieving network performance information for each content server included in a plurality of content servers;

assigning a different portion of a content buffer included within a content player to a different content server included in the plurality of content servers based on the network performance information by dividing the content buffer into a plurality of portions, and, for each portion, determining the size of the portion based on the network performance information retrieved for the content server associated with the portion; and

storing digital content received from each content server in the portion of the content buffer associated with the content server.

2. The method of claim 1 , wherein assigning a different portion of the content buffer comprises dividing the content buffer into a plurality of portions, and assigning a first content server with slower network performance, as indicated by the network performance information retrieved for the first content server, to a later portion of the content buffer, and assigning a second content server with faster network performance, as indicated by the network performance information retrieved for the second content server, to an earlier portion of the content buffer.

3. The method of claim 1 , wherein assigning a different portion of the content buffer further comprises assigning a first content server with slower network performance, as indicated by the network performance information retrieved for the first content sever, to a smaller portion of the content buffer, and assigning a second content server with faster network performance, as indicated by the network performance information retrieved for the second content server, to a larger portion of the content buffer.

4. The method of claim 1 , further comprising monitoring the network performance of a first content server while the first content server is transmitting digital content to the content player.

5. 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.

6. The method of claim 1 , wherein each content server included in the plurality of content servers comprises a virtualized computing system.

7. The method of claim 1 , wherein at least one content server included in the plurality of content servers comprises a virtualized computing system.

8. One or more non-transitory computer-readable media including instructions that, when executed by one or more processors, cause the one or more processors to perform the steps of:

retrieving network performance information for each content server included in a plurality of content servers;

assigning a different portion of a content buffer included within a content player to a different content server included in the plurality of content servers, wherein a size of each portion of the content buffer is based on the network performance information retrieved for a content server associated with the portion;

transmitting a different request to each content server included in the plurality of content servers to transmit digital content; and

for each content server included in the plurality of content servers, receiving the digital content associated with the portion of the content buffer associated with the content server.

9. The one or more non-transitory computer-readable media of claim 8 , wherein assigning a different portion of the content buffer comprises dividing the content buffer into a plurality of portions, and assigning a first content server with slower network performance, as indicated by the network performance information retrieved for the first content server, to a later portion of the content buffer, and assigning a second content server with faster network performance, as indicated by the network performance information retrieved for the second content server, to an earlier portion of the content buffer.

10. The one or more non-transitory computer-readable media of claim 8 , wherein assigning a different portion of the content buffer comprises dividing the content buffer into a plurality of portions.

11. The one or more non-transitory computer-readable media of claim 10 , wherein assigning a different portion of the content buffer further comprises assigning a first content server with slower network performance, as indicated by the network performance information retrieved for the first content sever, to a smaller portion of the content buffer, and assigning a second content server with faster network performance, as indicated by the network performance information retrieved for the second content server, to a larger portion of the content buffer.

12. The one or more non-transitory computer-readable media of claim 8 , 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. The one or more non-transitory computer-readable media of claim 8 , wherein each content server included in the plurality of content servers comprises a virtualized computing system.

14. A content player, comprising:

a memory storing a playback application and a content buffer; and

a processor coupled to the memory and, when executing the playback application, is configured to:

retrieve network performance information for each content server included in a plurality of content servers;

assign a different portion of the content buffer to a different content server included in the plurality of content servers based on the network performance information by dividing the content buffer into a plurality of portions, and, for each portion, determining the size of the portion based on the network performance information retrieved for the content server associated with the portion;

transmit a different request to each content server to transmit digital content associated with the portion of the content buffer associated with the content server; and

store the digital content received from each content server in the portion of the content buffer associated with the content server.

15. The content player of claim 14 , wherein each content server included in the plurality of content servers comprises a virtualized computing system.

16. The content player of claim 14 , wherein at least one content server included in the plurality of content servers comprises a virtualized computing system.

17. The content player of claim 14 , wherein the processor assigns a different portion of the content buffer by dividing the content buffer into a plurality of portions, and assigning a first content server with slower network performance, as indicated by the network performance information retrieved for the first content server, to a later portion of the content buffer, and assigning a second content server with faster network performance, as indicated by the network performance information retrieved for the second content server, to an earlier portion of the content buffer.

18. The content player of claim 17 , wherein the processor further assigns a different portion of the content buffer further by assigning a first content server with slower network performance, as indicated by the network performance information retrieved for the first content sever, to a smaller portion of the content buffer, and assigning a second content server with faster network performance, as indicated by the network performance information retrieved for the second content server, to a larger portion of the content buffer.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2016
From: WATSON, MARK; WANG, BIN; WEI, WEI
To: NETFLIX, INC.
Reel/Frame 038398/0349 →
Continuity (2)
Continuation 13683883 · Nov 21, 2012
Related Publication 20160072870A1 · Mar 10, 2016
Cited By (4)
US 12,273,403 US 12,542,955 US 12,581,172 US 12,593,081