IP Library Granted Patent US 10,375,195
Granted Patent B2
US 10,375,195 · App. 14/485,174 · Granted Aug 6, 2019

Content node selection using network performance profiles

Inventor: Artur Bergman (San Francisco, CA)
Assignee: Fastly, Inc.
H04L67/2842H04L45/14H04L61/1511H04L67/16
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,375,195
App. No.
14/485,174
Granted
Aug 6, 2019
Kind
B2
Abstract

A communication system exchanges communications between end user devices, content delivery nodes (CDN) of a content delivery system, and a control system that selects CDNs of the content delivery system. The control system receives a domain name lookup request issued by an end user device for retrieving content cached by one or more CDNs of the content delivery system. The control system associates the end user device with a network performance profile to select a CDN of the content delivery system. The control system transfers a network address associated with the selected CDN for receipt by the end user device responsive to the domain name lookup request.

Claims (42)

1. A method of operating a control system to select a content delivery node in a content delivery system, the method comprising:

caching content from a plurality of origin servers on a plurality of content delivery nodes of the content delivery system;

retrieving first content from an origin server if the first content is not cached in the content delivery system;

obtaining, from at least a first end user device, performance measurements for data exchanged between the first end user device and the plurality of content delivery nodes, wherein the performance measurements comprise transfer latency measurements of data transferred between the plurality of content delivery nodes and the first end user device;

receiving a domain name lookup request sent by a second end user device for retrieving the first content cached by the content delivery system on a subset of content delivery nodes within the plurality of content delivery nodes;

responsive to the domain name lookup request:

determining predicted network performance for the second end user device to reach the first content from the plurality of content delivery nodes by identifying the predicted network performance based on:

the performance measurements for the first end user device,

an internet service provider shared by both the first end user device and the second end user device, and

data associated with the first content;

selecting a target content delivery node among the content delivery nodes for the second end user device to reach the first content based on the predicted network performance; and

transferring a network address associated with the target content delivery node for receipt by the second end user device.

2. The method of claim 1 , wherein the performance measurements further comprise packet transit time measurements of the first content or a second content transferred between the subset of content delivery nodes and the first end user device.

3. The method of claim 1 , further comprising: responsive to the domain name lookup request, correlating a network characteristic of the second end user device with a network characteristic of the first end user device by identifying a network address range associated with the first end user device and determining if a network address of the second end user device corresponds to the network address range associated with the first end user device.

4. The method of claim 1 , wherein the performance measurements are made using ICMP pings.

5. A content delivery system, comprising:

a plurality of content delivery nodes each with a processing system configured to cache content from an origin server, the content nodes retrieve a first content from origin servers if the first content is not cached and transfer the first content for delivery to a plurality of end user devices;

a control system communicatively coupled to the plurality of content delivery nodes and with a processing system configured to obtain from a first end user device, performance measurements for data exchanged between the first end user device and the plurality of content delivery nodes of the content delivery system, wherein the performance measurements comprise transfer latency measurements of the data transferred between the first end user device and the plurality of content delivery nodes;

the control system configured to:

receive a domain name lookup request issued by a second end user device for retrieving the first content cached by the content delivery system on a subset of content delivery nodes within the plurality of content delivery nodes;

responsive to the domain name lookup request:

determine predicted network performance for the second end user device to reach the first content from the subset of content delivery nodes by identifying the predicted network performance based on:

the performance measurements for the first end user device;

a common internet service provider shared by both the first end user device and the second end user device share, and

data associated with the first content;

select a target content delivery node among the subset of content delivery nodes for the second end user device to reach the first content based on at least the predicted network performance; and

transfer a network address associated with the target content delivery node for receipt by the second end user device.

6. The content delivery system of claim 5 , wherein the performance measurements further comprise packet transit time measurements of the first content or a second content transferred between the subset of content delivery nodes and the first end user device.

7. The content delivery system of claim 5 , wherein responsive to the domain name lookup request, the control system is further configured to correlate a network characteristic of the second end user device with a network characteristic of the first end user device by identifying a network address range associated with the first end user device and determining if a network address of the second end user device corresponds to the network address range associated with the first end user device.

8. The content delivery system of claim 5 , wherein the performance measurements are made using ICMP pings.

9. A content delivery system, comprising:

a first content delivery node in a plurality of content delivery nodes with a processing system configured to cache content from an origin server, the content nodes retrieve a first content from origin servers if the first content is not cached and transfer the first content for delivery to a plurality of end user devices;

a selected content delivery node in a plurality of content delivery nodes;

a control system communicatively coupled to the first content delivery node and with a processing system configured to obtain first performance measurements made by the first content delivery node related to data exchanged between a first end user device and the first content delivery node, and second performance measurements made by the first end user device related to the data exchanged between the first end user device and the first content delivery node;

the control system configured to receive a domain name lookup request issued by a second end user device for retrieving the first content cached by the content delivery system;

responsive to the domain name lookup request, the control system configured to:

identify the selected content delivery node based at least on the first performance measurements and the second performance measurements; and

transfer a network address associated with the selected content delivery node for receipt by the second end user device.

10. The content delivery system of claim 9 , wherein the first performance measurements comprise latency.

11. The content delivery system of claim 9 , wherein the second performance measurements comprise price.

12. The content delivery system of claim 9 , wherein the first performance measurements are made using content requests.

13. The content delivery system of claim 9 , wherein the second performance measurements are made using content requests.

Assignments (2)
SECURITY INTEREST Recorded Feb 17, 2021
From: FASTLY, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AND COLLATERAL AGENT
Reel/Frame 055316/0616 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 12, 2014
From: BERGMAN, ARTUR
To: FASTLY, INC.
Reel/Frame 033733/0206 →
Continuity (2)
Provisional Application 61900481 · Nov 6, 2013
Related Publication 20150127765A1 · May 7, 2015