IP Library Granted Patent US 11,336,614
Granted Patent B2
US 11,336,614 · App. 16/894,106 · Granted May 17, 2022

Content node network address selection for content delivery

Inventor: Artur Bergman (San Francisco, CA)
Assignee: Fastly, Inc.
H04L61/1511H04L67/101H04L67/2842H04L43/0829H04L43/0852H04L43/0888H04L43/10
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 11,336,614
App. No.
16/894,106
Granted
May 17, 2022
Kind
B2
Abstract

Systems, methods, apparatuses, and software that select network addresses of a content node of a content delivery network are provided herein. In one example, a method of operating a control node to perform network address selection that selects between different communication service providers according to network characteristics is presented. The control node receives a domain name lookup request from an end user device to reach a content node. The control node processes network characteristics and the domain name lookup request to select a network address that corresponds to one of the communication service providers. The end user device can use the selected network address to reach the content node over the selected communication service provider.

Claims (79)

1. An apparatus comprising:

a domain name system (DNS) server configured to:

receive a lookup request from an endpoint for access to content hosted by a content delivery network and stored by a cache server, wherein multiple internet protocol (IP) addresses are assigned to the cache server;

identify a source IP address from which the lookup request originates;

determine relative performance of a plurality of paths from the source IP address to the multiple IP addresses based on dynamic communication status data;

in response to the lookup request, select which of the multiple IP addresses to use based on the relative performance of the plurality of paths; and

direct the endpoint to connect to the cache server via the selected IP address from the multiple IP addresses.

2. The apparatus of claim 1 comprising the DNS server further configured to:

identify the source IP address as part of a range of source IP addresses, from a plurality of ranges of source IP addresses; and

determine the plurality of paths based on the range of source IP addresses associated with the lookup request and the multiple IP addresses assigned to the cache server.

3. The apparatus of claim 2 comprising the DNS server further configured to:

receive network performance reports from a plurality of devices from the range of source IP addresses; and

determine the dynamic communication status data based on the network performance reports.

4. The apparatus of claim 1 comprising the DNS server further configured to receive the lookup request from the endpoint via another DNS server.

5. The apparatus of claim 1 comprising the DNS server further configured to:

receive a second lookup request from the endpoint for access to content stored at the cache server;

in response to the second lookup request, select a different IP address from the multiple IP addressed to use based on the relative performance of the plurality of paths and new dynamic communication data; and

direct the endpoint to connect to the cache server via the different IP address.

6. The apparatus of claim 1 , wherein:

each path of the plurality of paths includes a different communications service provider; and

the relative performance of the plurality of paths is determined based on network status details for a corresponding communications service provider.

7. The apparatus of claim 6 comprising the DNS server further configured to:

receive network performance reports from communication service providers comprising the plurality of paths; and

determine the dynamic communication status data based on the network performance reports.

8. The apparatus of claim 1 comprising the DNS server further configured to:

receive a network performance measurement from the endpoint; and

determine the dynamic communication status data based on the network performance measurement.

9. The apparatus of claim 1 comprising the DNS server further configured to:

receive one or more network performance reports from the cache server based on network performance measurements associated with the multiple IP addresses; and

determine the dynamic communication status data based on the one or more network performance reports.

10. A method comprising:

in a domain name system (DNS) server:

receiving a lookup request from an endpoint for access to content hosted by a content delivery network and stored by a cache server, wherein multiple internet protocol (IP) addresses are assigned to the cache server;

identifying a source IP address from which the lookup request originates;

determining relative performance of a plurality of paths from the source IP address to the multiple IP addresses based on dynamic communication status data;

in response to the lookup request, identifying a selected IP address from the multiple IP addresses to use based on the relative performance of the plurality of paths; and

directing the endpoint to connect to the cache server via the selected IP address from the multiple IP addresses.

11. The method of claim 10 further comprising:

in the cache server:

receiving a content request from the endpoint via the selected IP address;

in response to the content request, providing the content to the endpoint;

providing a network performance measurement to the DNS server; and

in the DNS server, updating the dynamic communication status data based on the network performance measurement.

12. The method of claim 10 further comprising, in the DNS server:

identifying the source IP address as part of a range of source IP addresses, from a plurality of ranges of source IP addresses;

determining the plurality of paths based on the range of source IP addresses associated with the lookup request and the multiple IP addresses assigned to the cache server; and

identifying the selected IP address further based on the range of source IP addresses and a lookup table.

13. The method of claim 10 further comprising, in the DNS server:

receiving a second lookup request from the endpoint for access to content stored at the cache server;

in response to the second lookup request, selecting a different IP address from the multiple IP addressed to use based on changes to the relative performance of the plurality of paths based on new dynamic communication data; and

directing the endpoint to connect to the cache server via the different IP address.

14. The method of claim 10 , wherein:

each path of the plurality of paths includes a different communications service provider;

the method further comprising, in the DNS server:

determining the relative performance of the plurality of paths based on network status details for a corresponding communications service provider, including:

receiving network performance reports from communication service providers comprising the plurality of paths; and

determining the dynamic communication status data based on the network performance reports.

15. The method of claim 10 further comprising, in the DNS server:

receiving a network performance measurement from the endpoint; and

determining the dynamic communication status data based on the network performance measurement.

16. The method of claim 10 further comprising, in the DNS server:

receiving a network performance report from the cache server based on network performance measurements associated with the multiple IP addresses; and

determining the dynamic communication status data based on the network performance report.

17. A memory device storing instructions that, when executed, cause a processor to perform a method comprising:

receiving, at a domain name system (DNS) server, a lookup request from an endpoint for access to content hosted by a content delivery network and stored by a cache server, wherein multiple internet protocol (IP) addresses are assigned to the cache server;

identifying a source IP address from which the lookup request originates;

determining relative performance of a plurality of paths from the source IP address to the multiple IP addresses based on dynamic communication status data;

in response to the lookup request, identifying a selected IP address from the multiple IP addresses to use based on the relative performance of the plurality of paths; and

directing the endpoint to connect to the cache server via the selected IP address from the multiple IP addresses.

18. The memory device of claim 17 storing instructions that, when executed, cause the processor to perform the method further comprising:

determining the relative performance of the plurality of paths based on network status details for a corresponding communications service provider, wherein each path of the plurality of paths includes a different communications service provider, including:

receiving network performance reports from communication service providers comprising the plurality of paths; and

determining the dynamic communication status data based on the network performance reports.

19. The memory device of claim 18 storing instructions that, when executed, cause the processor to perform the method further comprising:

receiving a network performance measurement from the endpoint; and

determining the dynamic communication status data further based on the network performance measurement.

20. The memory device of claim 19 storing instructions that, when executed, cause the processor to perform the method further comprising:

receiving additional network performance measurements from the cache server based on network performance measurements associated with the multiple IP addresses; and

determining the dynamic communication status data further based on the additional network performance measurements.

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 Jun 16, 2020
From: BERGMAN, ARTUR
To: FASTLY, INC.
Reel/Frame 052951/0642 →
Continuity (4)
Continuation 16121937 · Sep 5, 2018
Continuation 14483358 · Sep 11, 2014
Provisional Application 61883866 · Sep 27, 2013
Related Publication 20200344199A1 · Oct 29, 2020