Content request routing and load balancing for content distribution networks
First Claim
1. A method of content delivery in a network, the method comprising:
- (A) providing a plurality of Domain Name System (DNS) servers associated with a Content Delivery Network (CDN), said plurality of CDN DNS servers sharing a common anycast address, wherein each CDN DNS server is associated with a respective plurality of content servers;
(B) causing said plurality of CDN DNS servers to be authoritative for a hostname associated with a content provider by causing said common anycast address to be associated with said hostname;
(C) responsive to a request for content associated with the content provider and issued by a client, said request including at least said hostname,(c1) causing said hostname to be resolved to said common anycast address by an Internet Service Provider (ISP) DNS server; and
then(c2) by one of said plurality of CDN DNS servers, resolving said hostname to identify an IP address for use by the client to retrieve the content from a content server.
2 Assignments
0 Petitions
Accused Products
Abstract
A content distribution mechanism that distributes content of a content provider at various sites across a network and selects the site that is nearest a content requestor using an anycast address that resides at each of the sites. The sites are configured as nodes (or clusters) and each node includes a content server and a DNS server. The DNS servers are so associated with the content servers at their respective nodes as to resolve the name of the content provider to the IP address of the content servers at the nodes. The DNS servers each are assigned the anycast address in addition to a unique address, and the anycast address is advertised to the network (in particular, the network routing infrastructure) using Border Gateway Protocol (BGP). Node selection occurs when the network routing infrastructure selects a shortest path to the anycast address during DNS name resolution.
400 Citations
23 Claims
-
1. A method of content delivery in a network, the method comprising:
-
(A) providing a plurality of Domain Name System (DNS) servers associated with a Content Delivery Network (CDN), said plurality of CDN DNS servers sharing a common anycast address, wherein each CDN DNS server is associated with a respective plurality of content servers; (B) causing said plurality of CDN DNS servers to be authoritative for a hostname associated with a content provider by causing said common anycast address to be associated with said hostname; (C) responsive to a request for content associated with the content provider and issued by a client, said request including at least said hostname, (c1) causing said hostname to be resolved to said common anycast address by an Internet Service Provider (ISP) DNS server; and
then(c2) by one of said plurality of CDN DNS servers, resolving said hostname to identify an IP address for use by the client to retrieve the content from a content server. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method of content delivery for delivering content on behalf of a plurality of content providers, the method comprising:
-
(A) providing a plurality of Domain Name System (DNS) servers, said plurality of DNS servers sharing a common anycast address, wherein each DNS server is associated with a respective plurality of content servers; (B) configuring each DNS server and respective plurality of content servers to support content delivery for a plurality of content providers, wherein each of the plurality of content providers has a respective hostname associated therewith; (C1) responsive to a first request for first content associated with a first content provider of said plurality of content providers, said first request including at least a first hostname associated with the first content provider, (c11) by a first DNS server of said plurality of DNS servers, resolving said first hostname to identify a first IP address to be used for retrieval of the first content from a first content server of said content servers associated with said first DNS server; (c12) by a switch associated with said resolving DNS server of step (c11), selecting the first content server from said respective plurality of content servers associated with the DNS server of step (c11); and (c13) attempting to serve said first content from the first content server; and (C2) responsive to a second request for said first content associated with said first content provider of said plurality of content providers, said second request including at least the first hostname associated with the first content provider, (c21) by a second DNS server of said plurality of DNS servers, resolving said first hostname to identify a second IP address for retrieval of the first content from a content server associated with the second DNS server; (c22) by a switch associated with said resolving DNS server of step (c21), selecting the second content server from said respective plurality of content servers associated with the DNS server of step (c21); and (c23) attempting to serve said second content from the second content server. - View Dependent Claims (14, 15, 16, 17)
-
-
18. A content delivery system for delivering content on behalf of a plurality of content providers, each of said plurality of content providers having a hostname associated therewith, the system comprising:
-
(A) a plurality of Domain Name System (DNS) servers, said plurality of DNS servers sharing a common anycast address, said plurality of DNS servers being authoritative for said hostnames associated with said plurality of content providers; (B) a set of content servers associated with each DNS server, each set comprising at least a plurality of content servers; and (C) at least one switch associated with each set of content servers, wherein (D) responsive to a request to resolve a hostname associated with a particular content provider of said plurality of content providers, said request being associated with an end-user request for content of said particular content provider, one of said plurality of DNS servers is operable to resolve said hostname to identify an IP address for use by the end-user to retrieve the content from a content server, (E) the at least one switch associated with the set of content servers of the resolving DNS server is operable to perform load balancing to select the content server from the set of content servers associated with the resolving DNS server, and (F) the content server is operable to serve the content to the end-user.
-
-
19. A method of content delivery, the method comprising:
-
(A) providing a plurality of CDN Domain Name System (DNS) servers, said plurality of DNS servers sharing a common anycast address, each DNS server being associated with a respective plurality of content servers, wherein at least some of said plurality of content servers are located at network Points of Presence (POPs); (B) causing said plurality of DNS servers to be authoritative for a hostname associated with a content provider by causing said common anycast address to be associated with said hostname; (C) responsive to a request for content associated with the content provider by a client, said request including at least said, (c1) by one of said plurality of DNS servers, resolving said hostname to identify an IP address for use by the client to retrieve the content from a content server; and (c2) by at least one switch, selecting the content server from said respective plurality of content servers associated with said resolving DNS server, (D) by the content server, (d1) attempting to serve the content by; (d11) if a valid version of the content is available on the content server, serving the content;
otherwise(d12) obtaining the content from a content source and then serving the content. - View Dependent Claims (20)
-
-
21. A method of content delivery in a network, the method comprising:
-
(A) providing a plurality of Domain Name System (DNS) servers associated with a Content Delivery Network (CDN), the plurality of DNS servers sharing a common anycast address, wherein each DNS server is associated with a set of content servers, each set comprising at least a plurality of content servers; (B) causing the plurality of DNS servers to be authoritative for a hostname associated with a content provider by causing the common anycast address to be associated with the hostname; (C) responsive to a request for content associated with the content provider and issued by a client, the request including at least the hostname, (c1) by one of the plurality of DNS servers, resolving the hostname to identify an IP address for use by the client to retrieve the content from a content server; and (c2) by at least one switch associated with the set of content servers of the resolving DNS server, selecting the content server from the set of content servers associated with the resolving DNS server.
-
-
22. A content delivery system comprising a plurality of nodes, wherein each node comprises:
-
a Domain Name System (DNS) server sharing an anycast address with DNS servers in other nodes of the content delivery system, wherein the DNS server is authoritative for hostnames associated with a plurality of content providers; a plurality of content servers; and at least one switch, wherein responsive to a request by a client for content associated with a particular content provider of the plurality of content providers, the request including at least a hostname associated with the particular content provider, the DNS server is operable to resolve the hostname to identify an IP address for use by the client to retrieve the content from a content server, the at least one switch is operable to select the content server from the plurality of content servers, and the content server is operable to serve the content to the client.
-
-
23. A method comprising:
-
(A) providing a plurality of Domain Name System (DNS) servers, said plurality of DNS servers sharing a common anycast address, wherein each DNS server is associated with a respective plurality of content servers, wherein each DNS server and respective plurality of content servers is configured to support content delivery for a plurality of content providers; (B) responsive to a first request for first content associated with a first content provider of said plurality of content providers, said first request including at least a first hostname associated with the first content provider, by a first DNS server of said plurality of DNS servers, resolving said first hostname to identify a first IP address of a content server of the plurality of content servers associated with said first DNS server; and (C) responsive to a second request for second content associated with a second content provider of said plurality of content providers, said second request including at least said first hostname associated with the first content provider, by a second DNS server of said plurality of DNS servers, resolving said first hostname to identify a second IP address associated with a content server of the plurality of content servers associated with the second DNS server.
-
Specification