# US 2019/0356752 A1 · Content node selection using network performance profiles

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2019/0356752 A1
- Document ID: US20190356752A1
- Status: Published application
- Kind: A1
- Application number: 16/528,009
- Filed: 2019-07-31
- Published: 2019-11-21
- Earliest claimed: 2013-11-06
- Assignees: Fastly, Inc.
- Applicants: Fastly, Inc.
- Inventors: Artur Bergman
- Web page: https://patentgrep.com/patent/US20190356752A1

## CPC

- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- H04L 45/14: {Routing performance; Theoretical aspects}
- H04L 45/70: {Routing based on monitoring results}
- H04L 47/283: in response to processing delays, e.g. caused by jitter or round trip time [RTT]
- H04L 61/4511: using domain name system [DNS]
- H04L 67/51: Discovery or management thereof, e.g. service location protocol [SLP] or web services
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## 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

### Claim 1

A method of operating an edge network comprising:
in one or more cache servers, caching content obtained from one or more content origins served by the edge network;
receiving address requests from end user devices for network addresses with which to request the content;
for at least an address request of the address requests:
identifying a profile to which an end user device belongs based at least on a network address of the end user device;
identifying a network address based at least on the profile identified for the end user device; and
replying to the address request with the network address identified for the end user device;
receiving content requests at the network addresses sent to the end user devices; and
responding to the content requests with the content.

### Claim 2 (depends on 1)

The method of claim 1 wherein identifying the profile to which the end user device belongs comprises selecting the profile from possible profiles corresponding to address ranges of the end user devices.

### Claim 3 (depends on 2)

The method of claim 2 wherein the address ranges correspond to different Internet service providers that provide Internet access to the end user devices.

### Claim 4 (depends on 3)

The method of claim 3 wherein each of the possible profiles identifies a predicted network performance between a given one of the Internet service providers and a given one of the network addresses.

### Claim 5 (depends on 4)

The method of claim 4 wherein the predicted network performance comprises a latency of traffic.

### Claim 6 (depends on 5)

The method of claim 5 further comprising tracking the latency of traffic for each unique pairing of the Internet service providers with the network addresses.

### Claim 7 (depends on 6)

The method of claim 6 further comprising populating each of the possible profiles with the latency of traffic tracked for a given pairing of an Internet service provider with a network address.

### Claim 8 (depends on 1)

The method of claim 1 wherein the address requests comprise domain name system (DNS) lookup requests.

### Claim 9 (depends on 8)

The method of claim 8 wherein the network addresses comprise Internet protocol addresses.

### Claim 10

A system comprising:
a means for caching content obtained from one or more content origins served by an edge network;
a means for receiving address requests from end user devices for network addresses with which to request the content;
for at least an address request of the address requests:
a means for identifying a profile to which an end user device belongs based at least on a network address of the end user device;
a means for identifying a network address based at least on the profile identified for the end user device; and
a means for replying to the address request with the network address identified for the end user device;
a means for receiving content requests at the network addresses sent to the end user devices; and
a means for responding to the content requests with the content.

### Claim 11 (depends on 10)

The system of claim 10 wherein the address requests comprise domain name system (DNS) lookup requests.

### Claim 12 (depends on 11)

The system of claim 11 wherein the network addresses comprise Internet protocol addresses.

### Claim 13

A computing apparatus comprising:
one or more computer readable storage media;
one or more processors operatively coupled with the one or more computer readable storage media; and
program instructions stored on the one or more computer readable storage media that, when executed by the one or more processors, direct the computing apparatus to at least:
receive address requests from end user devices for network addresses with which to request content cached by cache nodes in an edge network on behalf of one or more content origins served by the edge network; and
for at least an address request of the address requests:
identify a profile to which an end user device belongs based at least on a network address of the end user device;
identify a network address based at least on the profile identified for the end user device; and
reply to the address request with the network address identified for the end user device.

### Claim 14 (depends on 13)

The computing apparatus of claim 13 wherein the program instructions further direct the computing apparatus to:
receive content requests at the network addresses sent to the end user devices; and
respond to the content requests with the content.

### Claim 15 (depends on 13)

The computing apparatus of claim 13 wherein to identify the profile to which the end user device belongs, the program instructions direct the computing apparatus to select the profile from possible profiles corresponding to address ranges of the end user devices.

### Claim 16 (depends on 15)

The computing apparatus of claim 15 wherein the address ranges correspond to different Internet service providers that provide Internet access to the end user devices.

### Claim 17 (depends on 16)

The method of claim 16 wherein each of the possible profiles identifies a predicted network performance between a given one of the Internet service providers and a given one of the network addresses.

### Claim 18 (depends on 17)

The computing apparatus of claim 17 wherein the predicted network performance comprises a latency of traffic.

### Claim 19 (depends on 18)

The computing apparatus of claim 18 wherein the program instructions further direct the computing apparatus to:
track the latency of traffic for each unique pairing of the Internet service providers with the network addresses; and
populate each of the possible profiles with the latency of traffic tracked for a given pairing of an Internet service provider with a network address.

### Claim 20 (depends on 13)

The computing apparatus of claim 13 wherein the address requests comprise domain name system (DNS) lookup requests and wherein the network addresses comprise Internet protocol addresses.
