- Number
- 11706292
- Published
- 2023-07-18
- Filed
- 2022-03-15
- Assignee
- Disney Enterprises, Inc.
- Inventors
- Friedrich; Eric C. et al.
- CPC
- H04L65/612; H04L67/1036; H04L61/4511; H04L67/02; H04L67/10; H04L67/1004; H04L67/101; H04L67/1014; H04L67/1021; H04L67/56; H04L67/563; H04L67/568; H04L67/63
- Verdict
- Set aside CDN routing, plumbing
- Source
- Google Patents · FreePatentsOnline
Abstract
Embodiments herein describe a CDN where anycast routing is used to identify a load balancer for selecting a cache in the CDN to use to deliver a requested object to a user. In one embodiment, the user performs a DNS lookup to identify an anycast IP address for a plurality of load balancers in the CDN. The user can then initiate anycast routing using the anycast IP address to automatically identify the closest load balancer. Once the identified balancer selects the cache, the load balancer can close the anycast connection with the user device and use an HTTP redirect to provide the user device with a unicast path to the selected cache. The user device can then establish a unicast connection with the cache to retrieve (e.g., stream) the object.
Background
BACKGROUND (1) Content Distribution/Delivery Networks (CDNs) are large, geographically spread networks of caches. These caches deliver video and other web content (referred to generally as “objects”) to viewers. Selecting the best cache to use to deliver the object to the user is a difficult task. Most CDNs generally use two techniques to identify the optimal cache to use to deliver the object. First, domain name system (DNS) load balancing can be used to select the optimal cache. Once a DNS server chooses the best cache, the CDN responds to a DNS lookup from the user with the IP address of the cache (or cache cluster). However, DNS load balancing has several challenges. First, the true client IP address (used for geolocation/mapping) is often not visible to the CDN's DNS servers. Instead, the DNS server sees the IP address of the resolver of the internet service provider (ISP) used by the user (or worse a cloud-based public DNS resolver). Without an accurate client IP address, cache localization is more difficult. Additionally, DNS lookups do not contain information about the content being requested. CDNs are therefore unable to use asset level load balancing policies during cache localization. For example, asset level policies may allow for targeting specific caches or clusters that are known to have the content already in cache. Finally, even with a very low time to live (TTL), there is some amount of caching of the load balancer responses. This can be good, in times of hi
Claims
1. A method, comprising: establishing an anycast connection between a load balancer associated with a content delivery network (CDN) and a user device requesting an object from the CDN, wherein the anycast connection is established using an anycast address identified via a lookup; receiving, at the load balancer via the anycast connection, one or more identifiers that are not transmitted via the lookup; selecting, at the load balancer and from a plurality of caches in the CDN, a first cache based on proximity to the user device, wherein the first cache is selected to fulfill the request for the object, wherein the first cache is selected based on one or more load balancing criteria and the one or more identifiers; and transmitting a Hypertext Transfer Protocol (HTTP) redirect from the load balancer to the user device to close the anycast connection, wherein the HTTP redirect comprises information for establishing a unicast connection between the user device and the first cache to retrieve the object from the first cache. ||
302. ||
9. A non-transitory computer-readable medium containing computer program code that, when executed by operation of one or more computer processors, performs an operation comprising: establishing an anycast connection between a load balancer associated with a content delivery network (CDN) and a user device requesting an object from the CDN, wherein the anycast connection is established using an anycast address identified via a lookup; receiving, at the load balancer via the anycast connection, one or more identifiers that are not transmitted via the lookup; selecting, at the load balancer and from a plurality of caches in the CDN, a first cache based on proximity to the user device, wherein the first cache is selected to fulfill the request for the object, wherein the first cache is selected based on one or more load balancing criteria and the one or more identifiers; and transmitting a Hypertext Transfer Protocol (HTTP) redirect from the load balancer to the user device to close the anycast connection, wherein the HTTP redirect comprises information for establishing a unicast connection between the user device and the first cache to retrieve the object from the first cache. ||
302. ||
15. A server, comprising: a processor; memory storing computer program code that, when executed by operation of the processor, performs an operation comprising: establishing an anycast connection between the server and a user device requesting an object from a content delivery network (CDN), wherein the anycast connection is established using an anycast address identified via a lookup; receiving, via the anycast connection, one or more identifiers that are not transmitted via the lookup; selecting, from a plurality of caches in the CDN, a first cache based on proximity to the user device, wherein the first cache is selected to fulfill the request for the object, wherein the first cache is selected based on one or more load balancing criteria and the one or more identifiers; and transmitting a Hypertext Transfer Protocol (HTTP) redirect to the user device to close the anycast connection, wherein the HTTP redirect comprises information for establishing a unicast connection between the user device and the first cache to retrieve the object from the first cache. || 302.