Local preference in anycast CDN routing
AssigneeDisney Enterprises, Inc.
InventorsEric C. Friedrich, Robert G. Colantuoni
Life of this patent
Estimating the term…
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.
Claims22
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.
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.
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.
Dependencies are inferred from the claim text.