Content request routing and load balancing for content distribution networks

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.
Description
BACKGROUND

Embodiments of the invention relate generally to information retrieval in a network and, more particularly, to hosting and distributing content on a content delivery network such as the Internet.


The World Wide Web is the Internet's content retrieval system. In the Web environment, client systems effect transactions to Web servers using the Hypertext Transfer Protocol (HTTP), which provides clients with access to files (e.g., text, graphics, images, sound, video, etc.) using a standard page description language, for example, Hypertext Markup Language (HTML). A network path to a server is identified by a so-called Uniform Resource Locator (URL) having a special syntax for defining a network connection. Use of a Web browser at a client (end user) system involves specification of a link via the URL. In response, the client system makes a request to the server (sometimes referred to as a “Web site”) identified in the link and, in return, receives content from the Web server. The Web server can return different content data object types, such as .gif and jpeg files (graphics), .mpeg files (video), .wav files (audio) and the like.


As the Web server content provided by World Wide Web has continued to grow over time, so too has the number of users demanding access to such content. Unfortunately, the ever-increasing number of end users requesting Web content from Web sites has resulted in serious bandwidth and latency issues, which manifest themselves in delay to the end user.


To address these problems, many networking product and service providers have developed solutions that distribute Web site content across the network in some manner. One class of solutions involves replicating Web servers at multiple locations and directing traffic (by modifying the URL and forwarding, or using HTTP re-direct) to the “best” server based on a predefined selection policy, e.g., load balancing, network topology. Another class of solutions distributes content strategically and/or geographically, and often uses some type of centralized or hierarchical Domain Name System (DNS)-based site selection. The distributed sites include servers that perform reverse proxy with (or without) caching. One such technique routes traffic to a content distribution site nearest the requestor by modifying URLs in the top-level Web page. Other DNS techniques use a round robin traffic distribution to distribute load to the content sites, but do not take into account the location of the requester relative to those content sites.


SUMMARY

In one aspect, embodiments of the invention provide a method of content delivery in a network. The method includes associating devices in a Domain Name System (DNS) with content server systems located in the network, the content server systems maintaining and serving content of a content provider, each DNS device configured to resolve the name of the content provider to an address for the content server system with which such DNS device is associated. The method further includes assigning to the DNS devices a common address, the common address being usable to resolve the name of the content provider such that a request for content of the content provider by a content requestor is sent to the content server system nearest the content requestor.


Particular implementations of the invention may provide one or more of the following advantages.


A performance benefit is gained because a content requestor can generally retrieve content from a content site closer than the origin server of the content provider. In addition, because there are multiple sites serving the content, the load from many end users is distributed among multiple systems and across different parts of the network. Also, an end user's DNS request can be routed to a content site nearest the requestor using pre-existing routing infrastructure. Because DNS uses a stateless protocol (UDP) for routing, the solution can handle anycast addressable caching without the problems associated with anycast service, namely, the potential packet-by packet load balancing site effects of protocols like TCP which maintain state information.


Other features and advantages of the invention will be apparent from the following detailed description and from the claims.





BRIEF DESCRIPTION OF DRAWINGS


FIG. 1 is a depiction of a prior Web transaction.



FIG. 2 is a depiction of a prior Web transaction using reverse-proxy caching.



FIG. 3 is a block diagram of an exemplary content distribution network which includes content distribution nodes that support reverse-proxy caching and anycast address service to achieve distributed content delivery and load balancing.



FIG. 4 is a simplified block diagram of routing configuration software and associated table(s) (provided in the routing infrastructure of the content distribution network of FIG. 3) used to perform distributed content site selection based on anycast address routing and Border Gateway Protocol (BGP).



FIG. 5 is a depiction of an exemplary Web transaction using the content distribution network shown in FIG. 3.





Like reference numbers will be used to represent like elements.


DETAILED DESCRIPTION

Embodiments of the present invention feature a content distribution mechanism for routing a content request to the nearest content distribution site in a content distribution network. It also provides for load sharing across multiple content distribution sites in a content distribution network. The content distribution mechanism has particular utility in and is therefore described within the context of an Internet-based, World Wide Web (“Web”) network infrastructure.


Hereinafter, the following terminology is used:


“Content provider” refers to an entity having a Web site on a network. Generally, the entity produces the content for the Web site. The entity may operate a Web server system or may use the services of a hosting provider.


“End user” refers to a person who wishes to view the Web content. Typically, an end user uses a Web browser, such as Netscape Navigator or Internet Explorer, executing on a computer system, e.g., a personal computer.


“Domain Name System” (DNS) refers to a collection of systems available on the public Internet that can resolve a domain name to a specific Internet Protocol (IP) address, as is known in the art.


It will be understood that reference to distance on the network, such as one server being “closer” to an end user than another server, refers to a network distance. Thus, a shorter distance implies a better path based on network criteria, and not necessarily a shorter geographic distance.


In the description to follow, a fictitious company “ABCD” is used as an example of a content provider having a Web site on a network.



FIG. 1 shows a conventional content delivery Web transaction 10. The transaction 10 involves a Web server 12 (also referred to as an “origin server”), an authoritative DNS system 14, an end-user system 16 and an end-user DNS system 18, all of which are coupled to a network 20, for example, the public Internet. The Web server 12 is a computer system containing content (e.g., Web pages) for a content provider, with the ability to provide this content in response to a Web request via the HTTP protocol. The authoritative DNS system 14 is a DNS system that can resolve domain names within the content provider's namespace.


For example, the DNS system 14 for the company “ABCD” would have information for host names ending in “.abcd.com” (such as “www.abcd.com”). Typically, the end-user system 16 is a computer being operated by an end user to perform Web “browsing” (that is, view Web pages). The end-user DNS system 18 is a DNS server that the end-user system 16 uses to resolve domain names to IP addresses.


When the end user wishes to view a Web page or object (such as “www.abcd.com/PriceList”), the transaction 10 occurs as follows. First, the end user using the end user system 16 enters the name of a Web page into a browser (not shown) executing on the end user system 16. The end-user system 16 requests a DNS resolution for the host name (“www.abcd.com”) from the end-user DNS system 18 (“DNS Req 22”). The end-user DNS system 18 determines which of the DNS systems that make up the DNS for the network 20 can resolve this host name by sending a DNS request to the authoritative DNS system 14 (“DNS Req 24”). The authoritative DNS system 14 resolves the name to an IP address and returns a response containing the IP address to the end-user 16 system via the end-user DNS system 18 (“DNS Resp 26”). The end-user DNS system 18, in turn, communicates the IP address to the end-user station 16 in a DNS response to the end-user system 16 (“DNS Resp 27”). The end-user system 16 contacts the Web server 12 at the specified IP address and requests the Web object (“www.abcd.comlPriceList”) (“HTTP Req 28”). The Web server 12 returns the Web page corresponding to the requested Web object to the end-user system 16 (“HTTP Resp” 30). The browser running on the end-user station 16 displays the returned Web page on the end-user system 16 for viewing by the end user.



FIG. 2 illustrates a Web transaction with reverse proxy caching 40. That is, the transaction 40 is the same basic Web transaction as shown in FIG. 1, but now employs a reverse proxy content server (shown as a cache server) 42 acting on behalf of the Web server 12. During reverse-proxy caching, the cache server 42 assumes the identity of the Web server 12 so that a Web request directed to the Web server 12 (in the example, “www.abcd.com”) is instead directed to the cache server 42. This re-direction is accomplished by changing the entry for the Web site (“www.abcd.com”) in the authoritative DNS system 14 so that the host name resolves to the address of the cache server 42 instead of the address of the original Web server 12. A new name is assigned to the address of the original Web server 12 (e.g., “origin.abcd.com”). Thus, 22, 24, 26 and 27 are the same as in FIG. 1. However, the IP address returned by the authoritative DNS system 14 is that of the cache server 42, not the Web server itself, as was previously described with reference to FIG. 1. Consequently, instead of sending the subsequent content request to and receiving a response from the Web server 12 (as was shown in steps 28 and 30 of FIG. 1), the end-user system 16 sends the content request to the cache server 22 (“HTTP Req 44”) and the cache server 22 fetches the requested content from the Web server (“HTTP Req 46”). The Web server 12 returns the requested content to the cache server 42 (“HTTP Resp 48”). The cache server 42 completes the transaction by serving the requested content to the end-user system 16 (“HTTP Resp 50”) and caching the content so the content will be readily available to support future requests for the same content (“store”52).



FIG. 3 shows a content distribution network (“CDN”) 60. The CDN 60 includes at least one Web server, shown as a Web server 62, a DNS system 64 for Web server 62, and end-user stations 66a and 66b, all connected to a network 72. The network 72 is implemented as the public Internet. The end-user stations execute Web browsers 68a and 68b, respectively. Each end-user station 66 has an associated end user DNS, however, only an end user DNS 70a for the end-user station 66a is shown. Of course, additional end-user stations may be connected to the network 72. Also connected to the network 72 are multiple content distribution nodes 76a, 76b and 76c, which support distributed content delivery services for one or more Web sites on the network 72. The CDN nodes 76 interact with the origin server 62 containing the original Web content, the various DNS systems 64, 70 and, of course, the end-user systems 66.


Each of the CDN nodes 76 includes a DNS system 78 coupled to and associated with a Web content server system or site 80. In one embodiment, as described herein, each content server system 80 is implemented as a cache server system. The techniques described herein could also apply to other types of content servers, such as mirrored Web content servers, or Web content servers having different content (e.g., customized for geographic area). Each DNS system 78 in each node holds a table that includes an address entry which the DNS system 78 uses to map the domain name of the content provider to the IP address of the cache server in that same node. Although only one such Web site (Web site 62) is shown, it will be appreciated that other Web sites may be connected to the network 72 and use the DNS and content caching services of the nodes 76, as will be described. The nodes 76 are deployed at different locations in the network 72. Preferably, the nodes 76 are geographically distributed across the network 72.


Optionally, the CDN 60 may include a CDN manager 82 that can be used by a network administrator (for example, a CDN node hardware and/or CDN node service provider) to configure the CDN to use the CDN nodes.


The network 72 is intended to represent a simplified view of the Internet. In the simplified depiction of FIG. 3, the network 72 includes a plurality of interconnected routers or routing networks, e.g., routers 74a. 74b, . . . , 74g, for routing packets from one domain to another within network 60. In actuality, the Internet is made up of many private “routing networks” (networks including one or more routers, and possibly other types of networking components as well), e.g., local, regional and centralized Internet Service Providers (ISPs), some of which are connected to Network Access Points (NAPs) or exchanges, or each other at public or private peering points. In the simplified Internet configuration shown in FIG. 3, routers 74a, 74b, 74c 74d and 74e are located at network entry points. The end user station 66a and end user DNS system 70a connect to the network 72 via the router 74a. The end user station 66b is coupled to another router 74i, which connects to the router 74d. The Web Server 62 and associated DNS system 64 are connected to the network 72 via the router 74b. Preferably, to the extent possible, and for reasons which will be discussed below, the end user DNS systems such as system 70a are located near the end user systems with which they are associated.


Also, preferably, the geographically dispersed nodes 76 are located so as to be as close as possible to various network entry points, exchanges or both. The network entry points each may correspond to an ISP Point of Presence (POP). In FIG. 3, for illustrative purposes, the nodes 76a, 76b and 76c are shown as being connected to entry point routers 74c, 74b and 74d, respectively, but need not be directly connected to network access routers in this manner.


The caching servers 80 have unique IP addresses. The DNS systems 78 share a common IP address as well as have unique IP addresses. The end-user DNS systems, e.g., end user DNS system 70a, resolve to the common address. That is, the end-user DNS system 70a knows which DNS system (in this example, the DNS system 64) has an address for a high level domain server, e.g., .com, org, and maintains tables of all domain names and knows which server (authoritative DNS server) to consult for the address of the domain server. Thus, the address lookup table in the DNS system 64 is configured to indicate that a server corresponding to the common address can resolve the domain name of the content provider to an IP address.


One way to implement this content distribution configuration is to use an anycast address as the common address. An anycast address is a unicast address that is used in multiple places. Various Internet Engineering Task Force (IETF) Internet Requests for Comments (RFCs) describe implementations of anycast addresses in IP networks. The IETF is a large open international community of network designers, operators, vendors, and researchers concerned with the evolution of the Internet architecture and the smooth operation of the Internet. The following anycast-related RFCs are hereby incorporated by reference in their entirety for all purposes: RFC 1546 (November 1993); RFC 2372 (July 1998); RFC 2373 (August 1998); and RFC 2526 (March 1999).


As described in RFC 1546, an anycast address may include a subnet prefix identifier and an anycast identifier. The subnet prefix may be used to specify the network providing the anycast addresses. The anycast identifier is used to specify one of many possible anycast addresses on a particular subnet. A unicast address, or conventional IP address, specifies a single interface on a computer network. In contrast, an anycast address may specify more than one interface. For example, anycast addresses may be used to specify a group of one or more servers on a computer network. These servers may provide a redundant service. Routers forward packets destined to anycast addresses to the closest anycast destination for a particular address. Thus, anycast addresses provide a way to distribute load across one or more servers.


The anycast address is advertised to the network 72 from each node 76 using a dynamic routing protocol, the Border Gateway Protocol (BGP). The BGP is a routing protocol used to exchange network reachability information between Internet border routers. It enables those routers to make intelligent routing decisions as to the best path. The BGP is used by such routers as their exterior routing protocol in order to advertise routes to other border routers. BGP uses TCP as its transport protocol for exchanging routing information. Adjacent routers running BGP set up a TCP connection to exchange entire routing tables. Each router has enough information to determine an optimal next hop to a destination. The BGP is also described in various RFCs, including RFC 1267 (October 1991) and RFC 1654 (July 1994), incorporated herein by reference.


Referring to FIG. 4, routing configuration support 90 in a router such as router 74b includes a routing algorithm (software) 94 and a routing table 92. The router 74b receives address path information from the nodes 76 in accordance with the BGP route information exchanges and updates 96, including the anycast address 98 and associated paths 100 for each of the nodes, and stores them in the routing table 92. As a result of the BGP table information exchanges and updates, routers in the network 72 maintain pointers (that is, the paths or routes) that allow it to determine the next hop to every unique address in the network, as well as multiple pointers to the anycast address. The routing algorithm 94, in response to receipt of a DNS request packet 102 from an end-user system 66 for resolution of a DNS name for the content provider, uses the path information 100 stored in the routing table 92 to a select a path to the nearest CDN node. Thus, a router may see multiple connections to the anycast address, but selects the path that represents the shortest network distance (e.g., the topologically shortest path). More specifically, as this routing occurs as part of a DNS resolution, the router selects a route to the closest DNS system 78. Because the selected DNS system resolves to the address of the cache server in the DNS system's node, the DNS anycast routing, in essence, serves to select the local content site (cache) from which content will be served.


Referring now to FIG. 5, a Web transaction 90 occurring over a CDN (such as the CDN 60 shown in FIG. 3) is illustrated for the running example of the “ABCD” Web site. To provide content distribution service for this site, the following configurations are implemented. The original Web server 62 is renamed in the DNS system 64 to reflect a change in its role from being the primary Web server to becoming the original content source for the cache servers 80. The domain “www.abcd.com” is renamed “origin.abcd.com”. In the end-user DNS system 70a, an entry is made to indicate that the CDN DNS system 78 is the authoritative server for the end user web domain. For example, in the dns.abcd.com system, the entry for “www.abcd.com” no longer resolves to a specific address but instead refers the content requestor to the CDN DNS server 78 at the anycast address of 4.2.2.19. The CDN DNS server entry resolves to the address of the associated node's caching server 80. As a result, each node 76 resolves the Web site name to a different address. In the above example, DNS server 78a in node 76a (node 1) resolves the name “www.abcd.com” to 10.3.15.1, whereas in node 76b (node 2), the DNS server 78b resolves the same address to 10.3.15.2. In this manner, therefore, the entry made in the CDN DNS server 78 in each node enables distribution of the Web site among the cache servers 80 in their respective nodes and locations, as will be described in further detail below.


Once the appropriate configurations have been completed, it is assumed that the Web site www.abcd.com is being handled by the CDN nodes 76. Each node 76 advertises the anycast address of its own DNS server 78 to the network 72 using the BPG protocol, as discussed above. The address of the DNS server at each node is identical. That is, from a network point of view, the network “thinks” it is connected to a single host at multiple points.


Referring to FIGS. 3 and 5, the Web transaction operation 90 is as follows. When an end user of the end-user station 66a requests an object from the now “accelerated” Web site, the end-user system 66a first resolves the content provider name via DNS. That is, the end-user station (acting as a content requestor) sends a request to the local DNS server 70a (“DNS Req 92”). That server 70a resolves the name, ultimately by sending a request to the CDN DNS anycast address. The DNS server 70a sends a request to the ABCD DNS server 64 (“DNS Req 94”), which returns the anycast address of the CDN nodes 76 to the requesting DNS server 70a (DNS Resp 96). The DNS server 70a then transmits a DNS name resolution request addressed to the anycast address and that request is generally routed (by various ones of the network routers 74a-74h) to the CDN node nearest the user's DNS system (“DNS Req 96”). In this instance, because the request enters the network via the router 74b, the router 74b determines that the shortest path to the anycast address is the path to the node 76b (node 2). At that node, the DNS server 78b resolves the name to the cache server address for that node, that is, IP address 10.3.15.2 assigned to the cache server 80b, and returns the cache server address to the end-user DNS server 70a (“DNS Resp 98”). The end-user DNS server 70a forwards the address to the end-user system 66a (“DNS Resp 100). From this point on, the remaining steps of the transaction are much the same as steps 44 through 52, shown in FIG. 2. That is, the end-user system 70a requests the Web object from the cache server in the nearby node where the DNS name was resolved, i.e., node 76b, and that node's cache server 80b, in turn, checks for a cached version of the object (if cached content already resides on the cache server). If no content has yet been cached in the server, or the cached copy is stale or otherwise invalid, the cache server 80b retrieves the Web object from the origin server 62, and serves the object to the end-user system that requested it.


Typically, as is known in the art, Web content can be marked with certain caching attributes, for example, whether or not the content is at all cacheable, how long the content may be held in cache. In the case of the former attribute, if the content is marked as uncacheable (e.g., dynamic or content containing sensitive information), the cache server discards the content after serving it to the requestor. Otherwise, if the content is cacheable, the cache server will store the content in local storage and maintain the cached content according to any other cache attributes. Content can be localized, for example, using ad insertions with local content. Content in the caches can be pre-loaded (all the cache servers receiving the same content). That is, the content can be replicated on all cache servers so that even the first request will have a fast response time. Preferably, the caches are not preloaded with content but instead build their cached content based on user requests/usage over time. Content is retrieved from the origin server 12 when a first user request is received, and then stored locally. If subsequent requests are received for the same content, the cached copy is used if it is still valid, as was mentioned earlier. Thus, the cache server need not retrieve the content from the origin server again. Each cache server contains a translation table so that it knows where to retrieve any particular Web page from the origin server. For example, the cache server 80b would know that the page “www.abcd.com/PriceList” can be retrieved from “origin.abcd.com/PriceList”.


Preferably, the CDN node contains software to monitor the load in various parts of the node cache system (disk, CPU, I/O, et cetera) by determining at least one load metric value (based on metrics such as utilization, latency, etc.) and comparing each such metric value to a predefined overload threshold. Upon reaching a predefined overload threshold, the monitoring software informs the routing software in the CDN DNS server to withdraw its BGP routing advertisement.


Thus, under normal conditions, all CDN nodes are advertising the address of their DNS servers to the network, and so a DNS request will be directed to the nearest CDN node. If a node becomes heavily loaded and detects an overload condition through its internal monitoring, the node stops advertising its DNS address to the network so that no further requests will be directed to that node. Consequently, DNS requests that normally would have been routed to that node as a first choice are routed to the next closest active node.


This overload detection and load balancing mechanism has the advantage that Web transactions already in progress are not interrupted by a shift in resources. Any system that has already resolved a DNS name to the now inactive node will continue using that node until the DNS name expires. The load in that node will slowly decrease until such time as the node can start accepting new clients, at which time it will start advertising its DNS system address to the network again.


Other embodiments are contemplated. For example, it is possible to use an anycast scheme with the cache servers themselves. With reference to the system shown in FIG. 3, the network routing directs the DNS request from the end user's DNS system, such as system 70a, to the closest of the CDN nodes 76. Although the node is the node closest to the end user's DNS system, it may not necessarily be the closest to the end-user system. In those cases where the end user's DNS system is a substantial distance from the end user, it is possible that the end user system will use a CDN node that is not the closest one to the end user system. Allowing the cache servers to use a common address would ensure that the end user's Web request is indeed routed to the nearest CDN node. There is a significant drawback associated with using the anycast-addressable cache server approach, however. The client/server portion of the transaction uses the TCP protocol, thus requiring multiple exchanges between the end user and the cache server to complete a transaction. With anycasting, there is no guarantee that subsequent packets in a transaction will be routed to the same server. In cases where the packets are split between two or more cache servers, a successful transaction cannot occur. In contrast, although requiring that the end user DNS system be located in close proximity to the end user system for optimal CDN performance, the anycast-based DNS resolution is completed using a single packet exchange with the stateless UDP protocol, thus eliminating the packet-by-packet load distribution problem seen with TCP.


In addition, the Web caches, i.e., the cache systems 80 each can be implemented to include multiple caches servers connected, for example, in a cluster configuration. There may be multiple servers available to support one customer (origin server) or, alternatively, one or more cache servers available to support multiple customers' content cached at one node (site). In yet another alternative, the cache server clusters can include a switch to select from among the cache servers in a given node/cluster based on a predetermined selection policy, for example, content-aware selection (which enables the clustered servers store different content, and maps requested objects to the appropriate servers), load balancing, and so forth, using known techniques.


Other embodiments are within the scope of the following claims.

Claims
  • 1. A method of content delivery in a network, comprising: assigning a common address to a first Domain Name System (DNS) device and a second DNS device, the first DNS device associated with a first cache server system having a first unique address, the second DNS device associated with a second cache server system having a second unique address different from the first unique address;advertising, by the first DNS device and the second DNS device, the common address to a plurality of routers within the network, wherein the common address is transmitted to the plurality of routers within the network in association with Border Gateway Patrol (BGP) messages;monitoring one or more load characteristics of the first cache server system in the network, the one or more load characteristics including a utilization or a latency of the first cache server system, wherein the first cache server system and the second cache server system are geographically distributed across the network;determining if the one or more load characteristics of the first cache server system exceed a predefined overload metric; anddiscontinuing, by the first DNS device, advertising of the common address to the plurality of routers, in response to determining that the one or more load characteristics of the first cache server system exceed the predefined overload metric.
  • 2. The method as recited in claim 1, wherein the common address is an anycast address.
  • 3. The method as recited in claim 1, wherein the first cache server system and the second cache server system are located in different Internet Service Provider Point of Presences.
  • 4. The method as recited in claim 1, wherein the first cache server system and the second cache server system are located at or near entry points of the network.
  • 5. The method as recited in claim 1, wherein the first cache server system or the second cache server system comprises at least two cache servers connected in a cluster, and wherein the at least two cache servers are coupled to a switch usable to select from among the at least two cache servers based on a selection policy.
  • 6. The method as recited in claim 1, further comprising restarting, by the first DNS device, advertising of the common address to the plurality of routers after the one or more load characteristics satisfy the predefined overload metric.
  • 7. The method as recited in claim 1, further comprising storing, by each of the plurality of routers, multiple routes in association with the common address in a routing table.
  • 8. The method as recited in claim 7, further comprising: receiving a DNS resolution request at one of the plurality of routers, wherein the DNS resolution request specifies the common address and requests resolution of a DNS name;determining that the first DNS device has a shorter network distance than the second DNS device; andresolving the DNS name to the first unique address of the first cache server system associated with the, first DNS device, in response to determining that the first DNS device has the shorter network distance than the second DNS device.
  • 9. The method as recited in claim 1, wherein the advertising, by the first DNS device and the second DNS device, comprises indicating that content is available for retrieval by an end user system.
  • 10. The method as recited in claim 9, wherein the second cache server system associated with the second DNS device is configured to provide the content to the end user system, while the first DNS device discontinues advertising the common address to the plurality of routers, the end user system configured to recognize the first DNS device and the second DNS device as a single DNS device.
  • 11. The method as recited in claim 1, wherein the first cache server system comprises a single cache server.
  • 12. A computerized device comprising: a processor;a memory unit that stores instructions associated with an application executed by the processor; andan interconnect coupling the processor and the memory unit, enabling the computerized device to execute the application and perform operations of: advertising, by a first Domain Name System (DNS) device, a common address to a plurality of routers within a network, the common address assigned to the first DNS device and a second DNS device, the first DNS device associated with a first cache server system having a first unique address, the second DNS device associated with a second cache server system having a second unique address, wherein the common address is transmitted to the plurality of routers within the network in association with Border Gateway Patrol messages;monitoring one or more load characteristics of the first cache server system in the network, wherein the first cache server system and the second cache server system are geographically distributed across the network;determining if the one or more load characteristics of the first cache server system exceed a predefined overload metric;discontinuing, by the first DNS device, advertising of the common address to the plurality of routers, in response to determining that the one or more load characteristics of the first cache server system exceed the predefined overload metric;determining, after the discontinuing the advertising of the common address to the plurality of routers, whether the one or more load characteristics satisfy the predefined overload metric; andrestarting, by the first DNS, advertising of the common address to the plurality of routers in the network, in response to determining that the one or more of the load characteristics satisfy the predefined overload metric.
  • 13. The computerized device as recited in claim 12, wherein the common address is an anycast address.
  • 14. The computerized device as recited in claim 12, wherein the second cache server system associated with the second DNS device is configured to provide content to an end user system, while the first DNS device discontinues advertising the common address to the plurality of routers, the end user system configured to recognize the first DNS device and the second DNS device as a single DNS device.
  • 15. A system for content delivery in a network comprising: a plurality of nodes;wherein each node comprises a Domain Name System (DNS) device, each DNS device associated with a corresponding cache server system having a unique address;wherein the DNS devices are assigned a common address, and wherein each DNS device is operable to advertise the common address to a plurality of routers within the network, the common address being transmitted to the plurality of routers within the network in association with Border Gateway Patrol (BGP) messages;wherein each node is operable to monitor one or more load characteristics of the associated cache server system in the node, each associated cache server system being geographically distributed across the network;wherein each DNS device is operable to discontinue advertising of the common address to the plurality of routers within the network, if the associated cache server system has a load characteristic that exceeds a predefined overload metric; andwherein a DNS device associated with a cache server system determined to have the load characteristic that exceeds the predefined overload metric is operable to restart advertising of the common address to the plurality of routers within the network in response to the load characteristic satisfying the predefined overload metric.
  • 16. The system as recited in claim 15, wherein the common address is an anycast address.
  • 17. The system as recited in claim 15, wherein the common address is advertised by the DNS devices to the plurality of routers within the network to indicate that content is available for retrieval by an end user system.
  • 18. The system as recited in claim 17, wherein another cache server system associated with another DNS device of the DNS devices is configured to provide the content to the end user system, while the DNS device discontinues advertising the common address to the plurality of routers, the end user system configured to recognize the DNS devices as a single DNS device.
  • 19. The system as recited in claim 15, wherein the cache server system comprises a single cache server.
  • 20. The system as recited in claim 15, wherein the cache server system comprises a plurality of cache servers.
CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of and claims the benefit of priority to U.S. patent application Ser. No. 09/982,721, entitled “CONTENT REQUEST ROUTING AND LOAD BALANCING FOR CONTENT DISTRIBUTION NETWORKS,” filed Oct. 18, 2001, the entire contents of which are incorporated by reference herein for all purposes.

US Referenced Citations (398)
Number Name Date Kind
4495570 Kitajima et al. Jan 1985 A
4591983 Bennett et al. May 1986 A
4594704 Ollivier Jun 1986 A
4726017 Krum et al. Feb 1988 A
4803641 Hardy et al. Feb 1989 A
4839798 Eguchi et al. Jun 1989 A
4847784 Clancey Jul 1989 A
4920432 Eggers et al. Apr 1990 A
4922417 Churm et al. May 1990 A
4943932 Lark et al. Jul 1990 A
4949187 Cohen Aug 1990 A
4949248 Caro Aug 1990 A
5029232 Nall Jul 1991 A
5130792 Tindell et al. Jul 1992 A
5132992 Yurt et al. Jul 1992 A
5136716 Harvey et al. Aug 1992 A
5172413 Bradley et al. Dec 1992 A
5191573 Hair Mar 1993 A
5253275 Yurt et al. Oct 1993 A
5253341 Rozmanith et al. Oct 1993 A
5287499 Nemes Feb 1994 A
5287537 Newmark et al. Feb 1994 A
5291554 Morales Mar 1994 A
5341477 Pitkin et al. Aug 1994 A
5371532 Gelman et al. Dec 1994 A
5410343 Coddington et al. Apr 1995 A
5414455 Hooper et al. May 1995 A
5442389 Blahut et al. Aug 1995 A
5442390 Hooper et al. Aug 1995 A
5442749 Northcutt et al. Aug 1995 A
5471622 Eadline Nov 1995 A
5475615 Lin Dec 1995 A
5508732 Bottomley et al. Apr 1996 A
5515511 Nguyen et al. May 1996 A
5519435 Anderson May 1996 A
5528281 Grady et al. Jun 1996 A
5539261 Roth Jul 1996 A
5542087 Neimat et al. Jul 1996 A
5544313 Shachnai et al. Aug 1996 A
5544327 Dan et al. Aug 1996 A
5550577 Verbiest et al. Aug 1996 A
5550863 Yurt et al. Aug 1996 A
5550982 Long et al. Aug 1996 A
5557317 Nishio et al. Sep 1996 A
5572643 Judson Nov 1996 A
5590288 Castor et al. Dec 1996 A
5592611 Midgely et al. Jan 1997 A
5594910 Filepp et al. Jan 1997 A
5603026 Demers et al. Feb 1997 A
5619648 Canale et al. Apr 1997 A
5623656 Lyons Apr 1997 A
5625781 Cline et al. Apr 1997 A
5627829 Gleeson et al. May 1997 A
5630067 Kindell et al. May 1997 A
5633999 Clowes et al. May 1997 A
5634006 Baugher et al. May 1997 A
5638443 Stefik et al. Jun 1997 A
5644714 Kikinis Jul 1997 A
5646676 Dewkett et al. Jul 1997 A
5649186 Ferguson Jul 1997 A
5659729 Nielsen Aug 1997 A
5666362 Chen et al. Sep 1997 A
5671279 Elgamal Sep 1997 A
5675734 Hair Oct 1997 A
5682512 Tetrick Oct 1997 A
5699513 Feigen et al. Dec 1997 A
5712979 Graber et al. Jan 1998 A
5715453 Stewart Feb 1998 A
5721914 DeVries Feb 1998 A
5734831 Sanders Mar 1998 A
5740423 Logan et al. Apr 1998 A
5742762 Scholl et al. Apr 1998 A
5751961 Smyk May 1998 A
5761507 Govett Jun 1998 A
5761663 Lagarde et al. Jun 1998 A
5764906 Edelstein et al. Jun 1998 A
5774660 Brendel et al. Jun 1998 A
5774668 Choquier et al. Jun 1998 A
5777989 McGarvey Jul 1998 A
5784058 LaStrange et al. Jul 1998 A
5796952 Davis et al. Aug 1998 A
5799141 Galipeau et al. Aug 1998 A
5802106 Packer Sep 1998 A
5802291 Balick et al. Sep 1998 A
5812769 Graber et al. Sep 1998 A
5815664 Asano Sep 1998 A
5828847 Gehr et al. Oct 1998 A
5832506 Kuzma Nov 1998 A
5832514 Norin et al. Nov 1998 A
5835718 Blewett Nov 1998 A
5845303 Templeman Dec 1998 A
5856974 Gervais et al. Jan 1999 A
5862339 Bonnaure et al. Jan 1999 A
5867706 Martin et al. Feb 1999 A
5867799 Lang et al. Feb 1999 A
5870546 Kirsch Feb 1999 A
5870559 Leshem et al. Feb 1999 A
5878212 Civanlar et al. Mar 1999 A
5884038 Kapoor Mar 1999 A
5890171 Blumer et al. Mar 1999 A
5893116 Simmonds et al. Apr 1999 A
5894554 Lowery et al. Apr 1999 A
5896533 Ramos et al. Apr 1999 A
5903723 Beck et al. May 1999 A
5907704 Gudmundson et al. May 1999 A
5913028 Wang et al. Jun 1999 A
5913033 Grout Jun 1999 A
5918010 Appleman et al. Jun 1999 A
5919247 Van Hoff et al. Jul 1999 A
5920701 Miller et al. Jul 1999 A
5933832 Suzuoka et al. Aug 1999 A
5935207 Logue et al. Aug 1999 A
5945989 Freishtat et al. Aug 1999 A
5956489 San Andres et al. Sep 1999 A
5956716 Kenner et al. Sep 1999 A
5958008 Pogrebisky et al. Sep 1999 A
5961596 Takubo et al. Oct 1999 A
5966440 Hair Oct 1999 A
5968121 Logan et al. Oct 1999 A
5978791 Farber et al. Nov 1999 A
5983214 Lang et al. Nov 1999 A
5983227 Nazem et al. Nov 1999 A
5987606 Cirasole et al. Nov 1999 A
5991809 Kriegsman et al. Nov 1999 A
6002720 Yurt et al. Dec 1999 A
6003030 Kenner et al. Dec 1999 A
6006264 Colby et al. Dec 1999 A
6012090 Chung et al. Jan 2000 A
6014686 Elnozahy et al. Jan 2000 A
6014698 Griffiths Jan 2000 A
6018516 Packer Jan 2000 A
6026440 Shrader et al. Feb 2000 A
6029175 Chow et al. Feb 2000 A
6029176 Cannon Feb 2000 A
6035332 Ingrassia et al. Mar 2000 A
6038216 Packer Mar 2000 A
6038310 Hollywood et al. Mar 2000 A
6038610 Belfiore et al. Mar 2000 A
6041324 Earl et al. Mar 2000 A
6044405 Driscoll et al. Mar 2000 A
6046980 Packer Apr 2000 A
6049831 Gardell et al. Apr 2000 A
6052718 Gifford Apr 2000 A
6052730 Felciano et al. Apr 2000 A
6065051 Steele et al. May 2000 A
6065062 Periasamy et al. May 2000 A
6070191 Narendran et al. May 2000 A
6081829 Sidana Jun 2000 A
6092112 Fukushige Jul 2000 A
6092204 Baker et al. Jul 2000 A
6105028 Sullivan et al. Aug 2000 A
6108673 Brandt et al. Aug 2000 A
6108703 Leighton et al. Aug 2000 A
6112231 DeSimone et al. Aug 2000 A
6112239 Kenner et al. Aug 2000 A
6112240 Pogue et al. Aug 2000 A
6115357 Packer et al. Sep 2000 A
6115752 Chauhan Sep 2000 A
6119143 Dias et al. Sep 2000 A
6125388 Reisman Sep 2000 A
6128601 Van Horne et al. Oct 2000 A
6128660 Grimm et al. Oct 2000 A
6130890 Leinwand et al. Oct 2000 A
6134583 Herriot Oct 2000 A
6144375 Jain et al. Nov 2000 A
6144702 Yurt et al. Nov 2000 A
6144996 Starnes et al. Nov 2000 A
6148410 Baskey Nov 2000 A
6151624 Teare et al. Nov 2000 A
6154738 Call Nov 2000 A
6154744 Kenner et al. Nov 2000 A
6154753 McFarland Nov 2000 A
6154777 Ebrahim Nov 2000 A
6163779 Mantha et al. Dec 2000 A
6167427 Rabinovich et al. Dec 2000 A
6167438 Yates et al. Dec 2000 A
6173311 Hassett et al. Jan 2001 B1
6173322 Hu Jan 2001 B1
6175869 Ahuja et al. Jan 2001 B1
6178160 Bolton et al. Jan 2001 B1
6181867 Kenner et al. Jan 2001 B1
6185598 Farber et al. Feb 2001 B1
6185619 Joffe et al. Feb 2001 B1
6189030 Kirsch et al. Feb 2001 B1
6189039 Harvey et al. Feb 2001 B1
6195680 Goldszmidt et al. Feb 2001 B1
6205120 Packer et al. Mar 2001 B1
6226642 Beranek et al. May 2001 B1
6226684 Sung May 2001 B1
6230196 Guenthner et al. May 2001 B1
6240461 Cieslak May 2001 B1
6243760 Armbruster et al. Jun 2001 B1
6249810 Kiraly Jun 2001 B1
6256675 Rabinovich Jul 2001 B1
6266339 Donahue Jul 2001 B1
6266699 Sevcik Jul 2001 B1
6269394 Kenner et al. Jul 2001 B1
6275470 Ricciulli Aug 2001 B1
6282569 Wallis et al. Aug 2001 B1
6282574 Voit Aug 2001 B1
6286045 Griffith et al. Sep 2001 B1
6298041 Packer Oct 2001 B1
6311214 Rhoads Oct 2001 B1
6314465 Paul et al. Nov 2001 B1
6314565 Kenner et al. Nov 2001 B1
6330605 Christensen et al. Dec 2001 B1
6332195 Green et al. Dec 2001 B1
6338044 Cook et al. Jan 2002 B1
6347085 Kelly et al. Feb 2002 B2
6360256 Lim Mar 2002 B1
6370571 Medin Apr 2002 B1
6370580 Kriegsman Apr 2002 B2
6374299 Ford et al. Apr 2002 B1
6405252 Gupta Jun 2002 B1
6405256 Lin Jun 2002 B1
6405257 Gersht et al. Jun 2002 B1
6412000 Riddle et al. Jun 2002 B1
6412002 Denman et al. Jun 2002 B1
6415280 Farber et al. Jul 2002 B1
6415323 McCanne Jul 2002 B1
6421726 Kenner et al. Jul 2002 B1
6424992 Devarakonda et al. Jul 2002 B2
6430618 Karger et al. Aug 2002 B1
6434608 Desai Aug 2002 B1
6438652 Jordan et al. Aug 2002 B1
6442549 Schneider Aug 2002 B1
6456630 Packer et al. Sep 2002 B1
6460082 Lumelsky et al. Oct 2002 B1
6460085 Toporek et al. Oct 2002 B1
6463454 Lumelsky et al. Oct 2002 B1
6470389 Chung Oct 2002 B1
6473405 Ricciulli Oct 2002 B2
6480893 Kriegsman Nov 2002 B2
6484143 Swildens et al. Nov 2002 B1
6484204 Rabinovich Nov 2002 B1
6490580 Dey et al. Dec 2002 B1
6490615 Dias Dec 2002 B1
6493707 Dey et al. Dec 2002 B1
6496856 Kenner et al. Dec 2002 B1
6502125 Kenner et al. Dec 2002 B1
6502215 Raad et al. Dec 2002 B2
6505248 Casper et al. Jan 2003 B1
6529477 Toporek et al. Mar 2003 B1
6553413 Leighton et al. Apr 2003 B1
6553420 Karger et al. Apr 2003 B1
6557054 Reisman Apr 2003 B2
6564251 Katariya et al. May 2003 B2
6574612 Baratti et al. Jun 2003 B1
6577595 Counterman Jun 2003 B1
6581090 Lindbo et al. Jun 2003 B1
6584083 Toporek et al. Jun 2003 B1
6591299 Riddle et al. Jul 2003 B2
6601084 Bhaskaran et al. Jul 2003 B1
6611862 Reisman Aug 2003 B2
6614757 Rochberger Sep 2003 B1
6625643 Colby et al. Sep 2003 B1
6636499 Dowling Oct 2003 B1
6654344 Toporek et al. Nov 2003 B1
6654807 Farber et al. Nov 2003 B2
6658464 Reisman Dec 2003 B2
6665706 Kenner et al. Dec 2003 B2
6665726 Leighton et al. Dec 2003 B1
6687731 Kavak Feb 2004 B1
6691148 Zinky et al. Feb 2004 B1
6694358 Swildens et al. Feb 2004 B1
6699418 Okada et al. Mar 2004 B2
6708137 Carley Mar 2004 B2
6711152 Kalmanek, Jr. Mar 2004 B1
6718328 Norris Apr 2004 B1
6722211 Ciobanu et al. Apr 2004 B1
6741563 Packer May 2004 B2
6751673 Shaw Jun 2004 B2
6754699 Swildens et al. Jun 2004 B2
6754706 Swildens et al. Jun 2004 B1
6763388 Tsimelzon Jul 2004 B1
6778502 Ricciulli Aug 2004 B2
6779017 Lamberton et al. Aug 2004 B1
6785704 McCanne Aug 2004 B1
6795858 Jain et al. Sep 2004 B1
6799221 Kenner et al. Sep 2004 B1
6801576 Haldeman et al. Oct 2004 B1
6823362 Eshghi Nov 2004 B2
6834306 Tsimelzon Dec 2004 B1
6842604 Cook et al. Jan 2005 B1
6870851 Leinwand et al. Mar 2005 B1
6874032 Gersht et al. Mar 2005 B2
6901604 Kiraly May 2005 B1
6915329 Kriegsman Jul 2005 B2
6928442 Farber et al. Aug 2005 B2
6934255 Toporek et al. Aug 2005 B1
6938095 Basturk et al. Aug 2005 B2
6950623 Brown et al. Sep 2005 B2
6963980 Mattsson Nov 2005 B1
6963981 Bailey et al. Nov 2005 B1
6965890 Dey et al. Nov 2005 B1
6970432 Hankins et al. Nov 2005 B1
6973485 Ebata et al. Dec 2005 B2
6973490 Robertson et al. Dec 2005 B1
6981050 Tobias et al. Dec 2005 B1
6981180 Bailey et al. Dec 2005 B1
6996616 Leighton et al. Feb 2006 B1
7003572 Lownsbrough et al. Feb 2006 B1
7007089 Freedman Feb 2006 B2
7010578 Lewin et al. Mar 2006 B1
7012900 Riddle Mar 2006 B1
7039633 Dey et al. May 2006 B1
7047300 Oehrke et al. May 2006 B1
7054935 Farber et al. May 2006 B2
7058706 Iyer et al. Jun 2006 B1
7069177 Carley Jun 2006 B2
7075897 Uematsu Jul 2006 B2
7096266 Lewin et al. Aug 2006 B2
7103645 Leighton et al. Sep 2006 B2
7103647 Aziz Sep 2006 B2
7136374 Kompella Nov 2006 B1
7181523 Sim Feb 2007 B2
7209959 Campbell et al. Apr 2007 B1
7286479 Bragg et al. Oct 2007 B2
7343422 Garcia-Luna-Aceves et al. Mar 2008 B2
7574499 Swildens Aug 2009 B1
7653700 Bahl Jan 2010 B1
7693959 Leighton et al. Apr 2010 B2
7734730 Mccanne Jun 2010 B2
7808968 Kalmanek, Jr. Oct 2010 B1
9021112 Slocombe Apr 2015 B2
9537824 Jungck Jan 2017 B2
20010029525 Lahr Oct 2001 A1
20010042139 Jeffords et al. Nov 2001 A1
20010052016 Skene et al. Dec 2001 A1
20010056500 Farber et al. Dec 2001 A1
20020018449 Ricciulli Feb 2002 A1
20020021675 Feldmann Feb 2002 A1
20020023164 Lahr Feb 2002 A1
20020023165 Lahr Feb 2002 A1
20020032777 Kawata et al. Mar 2002 A1
20020040404 Lahr Apr 2002 A1
20020042817 Lahr Apr 2002 A1
20020046273 Lahr et al. Apr 2002 A1
20020046405 Lahr Apr 2002 A1
20020049857 Farber et al. Apr 2002 A1
20020059592 Kiraly May 2002 A1
20020066038 Mattsson et al. May 2002 A1
20020069278 Forslow Jun 2002 A1
20020073199 Levine et al. Jun 2002 A1
20020075836 Uematsu Jun 2002 A1
20020078263 Darling et al. Jun 2002 A1
20020082999 Lee et al. Jun 2002 A1
20020083124 Knox et al. Jun 2002 A1
20020099850 Farber et al. Jul 2002 A1
20020116481 Lee Aug 2002 A1
20020124080 Leighton et al. Sep 2002 A1
20020129134 Leighton et al. Sep 2002 A1
20020131645 Hamilton Sep 2002 A1
20020133570 Michel Sep 2002 A1
20020143798 Lisiecki et al. Oct 2002 A1
20020143888 Lisiecki et al. Oct 2002 A1
20020143946 Crosson Oct 2002 A1
20020147774 Lisiecki et al. Oct 2002 A1
20020152309 Gupta Oct 2002 A1
20020163882 Bornstein et al. Nov 2002 A1
20020166117 Abrams et al. Nov 2002 A1
20020184368 Wang Dec 2002 A1
20020199016 Freedman Dec 2002 A1
20030009444 Eidler et al. Jan 2003 A1
20030018966 Cook et al. Jan 2003 A1
20030028623 Hennessey et al. Feb 2003 A1
20030028626 Hennessey et al. Feb 2003 A1
20030028777 Hennessey et al. Feb 2003 A1
20030041238 French et al. Feb 2003 A1
20030055972 Fuller et al. Mar 2003 A1
20030061263 Riddle et al. Mar 2003 A1
20030061280 Bulson et al. Mar 2003 A1
20030065761 Cereja et al. Apr 2003 A1
20030078888 Lee et al. Apr 2003 A1
20030078889 Lee et al. Apr 2003 A1
20030079005 Myers et al. Apr 2003 A1
20030079027 Slocombe Apr 2003 A1
20030105604 Ash et al. Jun 2003 A1
20040022194 Ricciulli Feb 2004 A1
20040039798 Hotz Feb 2004 A1
20040107234 Rajahalme Jun 2004 A1
20040139097 Farber et al. Jul 2004 A1
20040143662 Poyhonen Jul 2004 A1
20040177148 Tsimelzon, Jr. Sep 2004 A1
20040249960 Hardy Dec 2004 A1
20050010653 McCanne Jan 2005 A1
20050033858 Swildens et al. Feb 2005 A1
20050038851 Kriegsman Feb 2005 A1
20050100027 Leinwand et al. May 2005 A1
20050114296 Farber et al. May 2005 A1
20050262104 Robertson et al. Nov 2005 A1
20060112176 Liu May 2006 A1
20060143293 Freedman Jun 2006 A1
20060271705 Garcia-Luna-Aceves Nov 2006 A1
20080235400 Slocombe Sep 2008 A1
20080279222 Fuller Nov 2008 A1
20100103837 Jungck Apr 2010 A1
20170163755 Slocombe Jun 2017 A1
Foreign Referenced Citations (27)
Number Date Country
2202572 Oct 1998 CA
0800143 Oct 1997 EP
0801487 Oct 1997 EP
0817444 Jan 1998 EP
0824236 Feb 1998 EP
0865180 Sep 1998 EP
2281793 Mar 1995 GB
07066829 Mar 1995 JP
10-027148 Jan 1998 JP
10027148 Jan 1998 JP
10-093552 Apr 1998 JP
10093552 Apr 1998 JP
10-126445 May 1998 JP
10126445 May 1998 JP
10-171727 Jun 1998 JP
10171727 Jun 1998 JP
01053793 Feb 2001 JP
WO-1996042041 Dec 1996 WO
WO-1997011429 Mar 1997 WO
WO-1997029423 Aug 1997 WO
WO-1998004985 Feb 1998 WO
WO-1998006033 Feb 1998 WO
WO-1999040514 Aug 1998 WO
WO-1999009726 Feb 1999 WO
WO-1999029083 Jun 1999 WO
WO-2000052594 Sep 2000 WO
WO-2002071720 Sep 2002 WO
Non-Patent Literature Citations (78)
Entry
“A Border Gateway Protocol 4 (BGP-4)”, http://info.internet.isi.edu/in-notes/rfc/files/rfc1771.txt; Network Working Group, Requests for Comments: 1771, Obsoletes: 1654, Category: Standards Track; Editors: Y. Rekhter, T.J. Watson; Research Center, IBM Corp., T. Li, Cisco Systems, [retrieved on Mar. 27, 2000] Mar. 1995 , 1-50.
“Application of the Border Gateway Protocol in the Internet”, http://info.internet.isi.edu/in-notes/rfc/files/rfc177.txt; Network Working Group, Requests for Comments: 1772, Obsoletes: 1655, Category: Standards Track; Editors: Y. Rekhter, TJ. Watson; Research Center, IBM Corp., P. Gross, MCI [retrieved on Mar. 27, 2000] Mar. 1995 , 1-17.
“Cisco Distributed Director”, http://wyvw.Gj‘§’90.cQmj˜vafQLQuQltc[751/distdir/dd_wp.htm 1997 , 16 pages.
“Content Management TechnologyIIndustry News”, Content Technologies Trends and Advice, Gilbane Report News for Jun. 1999 Jun. 1999 , 21 pages.
“Exporting Web Server Final Report”, http://www.cs.technion.ac.il/Labs/Lccn/projects/spring97/project4/final_report.html (downloaded Jul. 7, 2007). Spring 1997.
Final Office Action, dated Oct. 22, 2013, U.S. Appl. No. 09/982,721, filed Oct. 18, 2001; 14 pgs.
“IBM Technical Disclosure Bulletin; Local Area Network Server Replacement Procedure”, vol. 38, No. 1 (Jan. 1995) , 235-236.
“Overview of the Cisco DistributedDirector 2500 Series”, downloaded Apr. 2007: http://www.cisco.com/univercd/cc/td/doc/productliaabu/distrdir/dd250_1t. Cisco DistributedDirector 2500 Series Installation and Configuration Guide, Pub Date unknown, pp. xix-xxii; 1-1 to 1-12; 6-1 to 6-18; 7-1 to 7-18; 8-1 to 8-24.
“Overview of the Cisco DistributedDirector 4700-M”, downloaded Apr. 2007: from http://www.cisco.com/univercd/cc/td/doc/product/iaabu/distrdir/dd4700m Cisco DistributedDirector 4700-M Installation and Configuration Guide pp. Xix-xxii; 1-1 to 1-14; 7-1 to 7-18, 8-1 to 8-20; pub. Date unknown.
Adler, R. M. , “Distributed Coordination Models for Client/Server Computing”, Computer 28, Apr. 4, 1995 , 14-22.
Andresen, D. et al., “Multiprocessor scheduling with client resources to improve the response time of WWW applications”, ACM Press, NY, Proc. 11th Inti Conf. on Supercomputing (Austria, ICS '97) Jul. 1997 , 92-99.
Andresen, et al., “SWEB: Towards a Scalable World Wide Web Server on Multicomputers”, Proc. IPPS Apr. 15, 1996 , 850-856.
Basturk, E. et al., “Using network layer anycast for load distribution in the Internet”, Tech. Rep., IBM TJ. Watson Research Center Jul. 1997 , 21 pgs.
Berners-Lee, et al., “Uniform Resource Locators (URL)”, RFC 1738 University of Minnesota Dec. 1994 , 1-25.
Bestavros, et al., “Server-Initiated Document Dissemination for the WWW”, IEEE Data Engineering Bulletin Sep. 1996 , 19(3): 3-11.
Bestavros, A. , “Speculative Data Dissermination and Service to Reduce Server Load Network Traffic and Service Time in Distributed Information Systems”, In Proc. ICDE '96: The 1996 Int'l Conf. on Data Engineering (Mar. 1996) , 4 Pages.
Bhattacharjee, et al., “Application-layer anycasting”, In Proc. IEEE INFOCOM '97, 1997 , 1-9.
Braun, H. et al., “Web traffic characterization: an assessment of the impact of caching documents from NCSA's web server”, Comput. Netw. ISDN Syst. 28, Dec. 1-2, 1995 , 37-51.
Brisco, T. P. , “T. P. RFC 1794: DNS support for load balancing”, Apr. 1995 , 1-7.
Carter, et al., “Dynamic server selection using bandwidth probing in wide-area networks”, Tech. Rep. BU-CS-96-007, Compo Sci. Dept., Boston University Mar. 1996 , 1-20.
Carter, et al., “Server selection using dynamic path characterization in Wide-Area Networks”, IEEE INFOCOM '97 1997 , pp. 1014-1021.
Carter, J. L. et al., “Universal Classes of Hash Functions”, Journal of Computer and System Sciences vol. 18, No. 2, Apr. 1979 , 106-112.
Chankhunthod, A. et al., “A Hierarchical Internet Object Cache”, Proc. of the 1996 USENIX Technical Conf. Jan. 1996 , 153-163.
Cohen, J. et al., “Cache Array Routing Protocol v1.1”, http://tools.ietf.org/id/draft-vinod-carp-v1-01.txt (Last-Modified: Wed, Oct. 1, 1997) Sep. 29, 1997 , 8 pages.
Colajanni, et al., “Adaptive TTL schemes for load balancing of distributed Web servers”, SIGMETRICS Perform. Eval. Rev. 25, Sep. 2, 1997 , 36-42.
Cormen, T. H. et al., “Introduction to Algorithms. Hash Tables. Bibliography”, The MIT Press , Cambridge, Massachusetts,(1990) 219-243, 951-993.
Crovella, et al., “Dynamic server selection in the Internet”, 3rd IEEE Workshop on the Arch. and Implementation of High Performance Computer Sys. '95 Aug. 1995 , pp. 158-162.
Danzig, P. B. et al., “An analysis of wide-area name server traffic: a study of the Internet Domain Name System”, Conf. Proc. Communications Architectures & Protocols; D. Oran, Ed. SIGCOMM '92; ACM Press, New York, NY Aug. 1992 , 281-292.
De Bra, P.M.E. et al., “Information Retrieval in the World Wide Web: Making Client-Based Searching Feasible”, Computer Networks and ISDN System, NL, North Holland Publishing, Amsterdam, vol. 27, No. 2, ISSN: 0169-7552 Nov. 1, 1994 , 183-192.
Deering, S. E. et al., “Multicast routing in datagram internetworks and extended LANs”, ACM Trans.Comput. Syst. 8,May 2, 1990 , 85-110.
Devine, R. , “Design and Implementation of DDH: A Distributed Dynamic Hashing Algorithm”, In Proc. 4th Int'l Conf. on Foundations of Data Organizations and Algorithms Oct. 1993 , 101-114.
Doi, K. , “Super Proxy Script—How to make distributed proxy servers by URL hashing”, Sharp Corp., http://naragw.sharp.co.jp/sps/; download Jul. 7, 2007. dates unknown (1996-2000).
Feeley, M. et al., “Implementing Global Memory Management in a Workstation Cluster”, In Proc. 15th ACM Symp. on Operating Systems Principles Dec. 1995 , 201-212.
Fielding, R. , “Hypertext Transfer Protocol”, HTIP/1.1, RFC 2068, Fielding, Section 14.44.
Floyd, S. et al., “A Reliable Multicast Framework for Light-Weight Sessions and Application Level Framing”, In Proc. of ACM SIGCOMM '95, Aug. 1995 , 342-356.
Fox, A. et al., “A Framework for Separating Server Scalability and Availability from Internet Application Functionality”, PhD thesis, University of California, Berkeley, 1998 , 163 pgs.
Fox, A. et al., “Cluster-based scalable network services”, Proc. 16th ACM Symp. on Operating Systems Principles (Saint Malo, France, Oct. 5-8, 1997), W. M. Waite, Ed. SOSP '97. ACM Press, New York, NY , 78-91.
Fredman, M. et al., “Storing a Sparse Table with 0(1) Worst Case Access Time”, J. ACM, vol. 31, No. 3 (Jul. 1984) , 538-544.
Goldszmidt, M. et al., “Load Distribution for Scalable Web Servers: Summer Olympics 1996—A Case Study”, In Proc. 8th IFIPIIEEE Int'l Workshop on Distributed Systems: Operations and Management , Sydney, Australia. Oct. 1997 , 10 pgs.
Grigni, M. et al., “Tight Bounds on Minimum Broadcasts Networks”, SIAM J. Disc. Math. 4 (May 1991) , 207-222.
Gulbrandsen, A. et al., “A DNS RR for specifying the location of services”, (DNS SRV), Network Working Group, RFC 2052, Oct. 1996 , 1-10.
Guyton, et al., “Locating nearby copies of replicated Internet servers”, Proc. ACM SIGCOMM '95; pp. 288-298 Oct. 1995.
Gwertzman, J. et al., “The Case for Geographical Push-Caching”, Proc. Workshop on Hot OS '95 (May 4, 1995) , 51-55.
Gwertzman, J. et al., “World-Wide Web Cache Consistency”, Proc. 1996 USENIX Tech. Conf., pp. 141-151, San Diego, CA Jan. 1996.
Jeffrey, et al., “Proxy-Sharing Proxy Servers”, IEEE pp. 116-119 1996 , 1-4.
Karger, D. et al., “Consistent Hashing and Random Trees: Distributed Caching Protocols for Relieving Hot Spots on the World Wide Web”, In Proc. 29th Annual ACM Symp. on Theory of Computing May 1997 , 654-663.
Kwan, et al., “NCSA's World Wide Web Server: Design and Performance”, IEEE Nov. 1995 , pp. 68-74.
Litwin, W. et al., “LH*—A Scalable, Distributed Data Structure”, ACM Trans. on Database Systems, vol. 21, No. 4, pp. 480-525, Dec. 1996 , 1-43.
Luotonen, et al., “World-Wide Web Proxies”, CERN modified May 24, 1994 Apr. 1994 , 1-8.
Malpani, R. et al., “Making World Wide Web Caching Servers Cooperate”, In Proc. 4th Int'l World Wide Web Conf. (downloaded from http://www.w3.org/ConferencesIWWW4/Papers/59/ on Jul. 7, 2007) Dec. 1995 , 10 pages.
Mockapetris, et al., “Development of the Domain Name System”, Proc. SIGCOMM '88 Computer Communications Review, vol. 18, No. 4, Aug. 1988 , 112-122.
Mockapetris, P. , “Domain Names—Concepts and Facilities”, RFC 1034 Nov. 1987 , 1-55.
Mockapetris, P. , “Domain Names—Implementation and Specification”, RFC 1035 Nov. 1987 , 1-55.
Mourad, et al., “Scalable Web Server Architectures”, iscc, 2nd IEEE Symposium on Computers and Communications (ISCC '97) Jul. 1997 , pp. 12-16.
Narten, T. , “Neighbor Discovery for IP Version 6”, RFC 2461 IBM Dec. 1998.
Nisan, N. , “Pseudorandom generators for space-bounded computations”, In Proc. 22nd Annual ACM Symp. on theory of Computing (Baltimore, MD, U.S.) H. Ortiz, Ed. STOC '90. ACM Press, New York, NY, May 13-17, 1990 , 204-212.
Oguchi, et al., “A Study of Caching Proxy Mechanisms Realized on Wide Area Distributed Networks”, High Performance Distributed Computing, 5th Int'l Symposium Aug. 1996 , pp. 443-449.
Palmer, M. et al., “Fido: A Cache that Learns to Fetch”, In Proc. the 17th Int'l Conf. on Very Large Data Bases Sep. 1991 , 255-264.
Panigrahy, R. , “Relieving Hot Spots on the World Wide Web”, Master's thesis, MIT EECS Jun. 1997 , pp. 1-66.
Peleg, D. et al., “The Availability of Quorum Systems”, Information and Computation, 123 ; 210-223 (1995) , 31 pages.
Peterson, E. , “Cisco Takes Global Route”, PC Week News, (Feb. 17, 1997) Feb. 17, 1997 , p. 23.
Petri, S. et al., “Load Balancing and Fault Tolerance in Workstation Clusters. Migrating Groups of Communicating Processes”, Operating Systems Review, vol. 29, No. Oct. 4, 1995 , 25-36.
Plaxton, G. C. et al., “Fast Fault-Tolerant Concurrent Access to Shared Objects”, In Proc. 37th IEEE Symp. of Foundations of Computer Science Oct. 1996 , pp. 570-579.
Postel, J. , “Domain Name System Structure and Delegation”, RFC 1591 Mar. 1994 , 1-7.
Rabin, M. O. , “Efficient dispersal of information for security, load balancing, and fault tolerance”, J.ACM 36, 2 (Apr. 1989) , pp. 335-348.
Rekhter, Y. et al., “BGP-4 Application”, (RFC 1772) Mar. 1995 , p. 10.
Ross, K. W. , “Hash-Routing for Collections of Shared Web Caches”, IEEE Network Magazine 11, 7:37-44 Nov.-Dec. 1997 , pp. 1-21.
Schemers, R. et al., “Ibnamed—A load balancing name server written in Perl”, LISA IX; Monterey, CA Sep. 17-22, 1995 , 1-12.
Schuba, C. , “Addressing Weaknesses in the Domain Name System Protocol”, COAST Laboratory, Dept. of Computer Sciences, Purdue University; West Layfayette, IN Aug. 1993 , 1-87.
Smith, Neil , “What can Archives offer the World Wide Web?”, Technical Report 11, University of Kent, Computing Laboratory, University of Kent, Canterbury, UK Mar. 1994 , 1-12.
Tarjan, R. E. et al., “Storing a Sparse Table”, Commun.ACM, 22,11, (Nov. 1979) , 606-611.
Thaler, D. G. et al., “Using name-based mappings to increase hit rates”, IEEE/ACM Trans. Netw. 6,1 Feb. 1998 , 1-14.
Vitter, J. S. et al., “Optimal Prefetching via Data Compression”, Proc. 32nd Annual IEEE Symposium on Foundations of Computer Science Oct. 1991 , 21 pages.
Vixie, P. , “Name Server Operations Guide for BIND”, Internet Software Consortium; La Honda, CA; p. SMM:10-2-SMM:10-30 undated, 1996 , 1-30.
Walsh, Jeff , “GlobalIP/PX Service Should Keep Network Delays Down”, Infoworld (Jan. 20, 1997) , 1-2.
Wessels, Duane , “Intelligent Caching for World-Wide Web Objects”, Masters Thesis, University of Colorado (also presented at INET '95 in Jun. '95) Jan. 1995 , 1-85.
Yao, A. C. , “Should Tables Be Sorted”, J. ACM 28, 3 (Jul. 1981) , 615-628.
Zegura, et al., “Application Layer Anycasting: A Server Selection Architecture and Use in a Replicafed Web service”, IEEE, vol. 8, No. 4 Aug. 2000 , 455-466 Pgs.
Related Publications (1)
Number Date Country
20170163755 A1 Jun 2017 US
Continuations (1)
Number Date Country
Parent 09982721 Oct 2001 US
Child 15433942 US