|Publication number||US7860964 B2|
|Application number||US 11/976,648|
|Publication date||28 Dec 2010|
|Filing date||26 Oct 2007|
|Priority date||28 Sep 2001|
|Also published as||US8645517, US20080215718, US20110145386|
|Publication number||11976648, 976648, US 7860964 B2, US 7860964B2, US-B2-7860964, US7860964 B2, US7860964B2|
|Inventors||Mark Brady, Maksim Yevmenkin, Paul E. Stolorz, John K. Salmon, Michael S. Warren, Jeffrey Koller, Aric Hagberg, David Pfitzner, Ted Middleton|
|Original Assignee||Level 3 Communications, Llc|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (389), Non-Patent Citations (109), Referenced by (99), Classifications (52), Legal Events (5)|
|External Links: USPTO, USPTO Assignment, Espacenet|
This application is a continuation-in-part (CIP) of U.S. application Ser. No. 10/259,497, titled “Configurable adaptive global traffic control and management,” filed Sep. 30, 2002, the entire contents of which are hereby incorporated herein by reference. Application Ser. No. 10/259,497 is related to and claims priority from provisional U.S. Patent Application No. 60/325,177, titled “Configurable Adaptive Global Traffic Control and Management,” filed Sep. 28, 2001, the entire contents of which are incorporated herein by reference.
1. Reservation of Copyright
This patent document contains information subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent, as it appears in the U.S. Patent and Trademark Office files or records but otherwise reserves all copyright rights whatsoever.
2. Field of the Invention
Aspects of the present invention relate to network traffic management. Other aspects of the present invention relate to configurable, adaptive, global traffic control and management in networks such as the Internet.
As the volume of Internet traffic grows, providers of web content and applications increasingly need to deliver content from multiple servers at widely-separated locations in order to sustain a good end-user experience under high traffic loads. This need generates several difficult challenges, including, among others:
This invention solves these and other problems by providing a means to distribute network (e.g., Internet) traffic according to a configurable set of rules. The rules can be configured to take into account key factors such as:
These rules together provide an extremely fine-grained level of network Internet traffic control to providers of Internet content and applications, enabling them to dramatically improve the end-user experience (measured by speed of request resolution, associated download time, and the availability of servers) over that provided by conventional web servers and mirrored server farms.
There are many potential uses for the invention. One use is to provide a stand-alone service directing traffic exclusively to a set of designated servers managed by a single organization. The invention may also be used in more general ways—for example, one or more of the designated destinations can refer to servers (or server collections) outside the organization's control. The latter case includes, for example, Content Delivery Networks (CDNs), as well as local load-balancing servers, as potential destinations. The invention can also be used, e.g., to provide the DNS (Domain Name Service) component of a Content Delivery Network itself. It can be deployed as a service on behalf of subscribers, or it can be deployed as software to be used directly by subscribers themselves.
The present invention is further described in terms of exemplary embodiments, which will be described in detail with reference to the drawings. These embodiments are non-limiting exemplary embodiments, in which like reference numerals represent similar parts throughout the several views of the drawings, and wherein:
The invention is described below, with reference to detailed illustrative embodiments. It will be apparent that the invention can be embodied in a wide variety of forms, some of which may be quite different from those of the disclosed embodiments. Consequently, the specific structural and functional details disclosed herein are merely representative and do not limit the scope of the invention.
Although there are a number of different scenarios in which the invention might be deployed, this description will focus, for clarity and example only, on a scenario in which DNS service is provided by a third party on behalf of a content or applications provider.
As used in this description, the framework according to embodiments of this invention contemplates three groups of users:
An end-user who wishes to access content and/or applications over the Internet.
An operator who offers and supports the service on a managed network of computers.
A subscriber (typically a content or applications provider) who subscribes to the operator's service to help to support the needs of the end user.
The terminology end-user, operator and subscriber is used throughout this description to distinguish these three roles, although there are many scenarios in which more than one role can be taken by a single entity. Such scenarios are contemplated by this invention.
Each server group 106 may correspond to a server hierarchy which includes one or more tiers of servers. For example, the first tier of a server hierarchy may comprise one or more primary servers and the second tier of the server hierarchy may comprise possibly one or more overflow servers that are used when the primary servers in the first tier fail to function properly. In general, for the j-th server group, the primary servers at the first tier of server group 106-j are denoted 108-j, and the overflow servers at the second tier of server group 106-j are denoted 110-j.
Each server in a server group is any process or collection of processes that provide resources in response to requests, e.g., from a client. A server can be any off-the-shelf Web server. In some embodiments, servers are typically a Web server such as the Apache server or Netscape Communications Corporation's Enterprise™ server.
Client 112 accesses the subscriber server network 104 in order to obtain content from the subscriber. Content includes any kind of data, including, without limitation, video and audio data and the like. To achieve this access, a user at client 112 enters a resource locator, e.g., a Universal Resource Locator (“URL”), into a browser 114 on client 112. URLs specify the location of resources (information, data files, etc.) on the network. URLs are defined in detail in T. Berners-Lee et al, Uniform Resource Locators (URL), Network Working Group, Request for Comments: 1738, Category: Standards Track, December 1994, located at “http://ds.internic.net/rfc/rfc1738.txt”, which is hereby incorporated herein by reference. URLs generally have the following form:
The framework or system 100 includes at least one Domain Name Service (DNS) name server 118-1. In preferred embodiments, the system 100 also includes DNS name servers 118-1, 118-2, . . . , 118-n, (collectively referred to as name servers 118) all operated by a single particular entity. In the embodiment shown in
When the client's browser 114 obtains a request (e.g., in the form of a URL), the browser queries its resolver 116 for an address for the hostname specified in the requested URL. The resolver 116 eventually queries a particular name server (e.g., name server 118-1). The name server 118-1 returns (provides or attempts to provide) the IP (Internet Protocol) address (or addresses) of a server (or servers) in the subscriber server network or a CNAME (a domain name). Other DNS answer types (e.g., MX record, NS record, etc.) are also possible, as described below. The determination of the particular IP address returned to the resolver 116 may be based on a number of factors, including the resolver's location (e.g., as determined from the resolver's IP address) and various policies (e.g., subscriber policies 120, other policies 122) in a policy database 124. The client's browser 114 is then able to communicate with the selected server in the subscriber server network in order to obtain the desired resource.
Name servers 118-1, 118-2, . . . , 118-n, according to embodiments of the present invention, include an adaptive traffic control (ATC) mechanism 126 which provides domain name service to a client based on policies in the policy database 124. Each name server 118 includes or has access to a location determination mechanism 128 for associating the client's request with the client's location. Any program that can determine a requestor's location may be used.
The subscriber server network 104 represents a network of servers that provides, on behalf of an underlying subscriber, Internet content or services. For example, a subscriber may be a content provider, which has its own network of servers that deliver content to end users' browsers via the Internet. The subscriber server network 104 may be configured in such a way that the processing of the service requests may be reasonably distributed among all the servers in the server network 104, according to some criteria. To achieve that distribution, the subscriber server network 104 may be organized, for example, to have one or more server groups (e.g., server group 1 106-1, . . . , server group k 106-k), each of which may be responsible for processing a portion of the service requests. For example, service requests coming from Finland may be routed to a server group that is physically located in Europe.
Each server group 106 in the subscriber server network 104 may comprise a plurality of servers to further share the load. For example, a service request from Finland may be subsequently routed to a server located in Scandinavia. Routing service requests to different server groups and subsequently to different servers may be based on various criteria. For example, such routing may be based on the distance between the origin of the request and the location of the server. For example, for a service request originated from Finland, it may be more effective and efficient to direct the request to a server located in Norway instead of directing it to a server located in the U.S. Server load may also be used to determine where to route a service request. For example, a service request originated from the U.S. may be routed to a server group in Mexico if the server group in the U.S. is overloaded while the server group in Mexico is relatively idle.
Servers in a server group may be organized into a hierarchy with one or more tiers of servers. Servers at different tiers may have different designated purposes. For instance, servers at the first tier of a server hierarchy may include servers that are primary functioning servers, servers at the second tier may include servers that are used as overflow servers which become active only when the primary servers at the first tier become unavailable or overloaded, and servers at the third tier that are used as second layer overflow servers that become active only when the primary servers and the overflow (or first layer overflow) servers at the second tier become unavailable or overloaded, etc.
The first tier of a server group hierarchy may include one or more primary servers. When multiple primary servers are present, they may be configured in such a way that they share the load. For example, if there are five primary servers at the first tier, they may be configured so that each takes 20% of the total service requests routed to the server group. For each of such primary servers, it may be further configured so that when a particular server is overloaded or fails, the load share originally designated to this server may be shed or directed to other server(s). The load shed may also be configured when the server is not overloaded. The portion to be shed to other server(s) may be governed by certain pre-defined policies.
As discussed above, servers in a server group 106 may be classified into different categories based on specific functionality of the underlying servers. For example, a server in a server group 106 may be a primary server, a first layer overflow server, or a second layer overflow server, etc. A server may also be classified in terms of whether and how a server is to be dynamically monitored. For instance, in some embodiments, a server can be classified as either a monitored server or a managed server.
A classification of a monitored server indicates that the underlying server is to be monitored dynamically for its availability. In this case, the server may be probed for its availability according to some pre-determined schedule. Such a probe may be sent to the underlying server from different locations of the network so that the availability can be detected accurately. That is, if the underlying server failed to respond to one probe sent from one location, it does not necessarily indicate that the server is no longer available (could be due to that only part of the network is congested).
A probe can be realized in different fashion. It can be simply a signal sent to the server to request an acknowledgement. It can also be a poll operation in which a file stored at a designated location on the underlying server is polled. If the file can be successfully polled, the underlying server is considered to be available. The detected availability may be used to adjust or update policies associated with the server so that the network traffic management will respond to the dynamics related to the server.
A server that is classified as a managed server may be actively participating the adaptive policy-based management scheme. Similar to a monitored server, a managed server may be regularly probed for its availability. In addition, a managed server may dynamically provide information related to its load share or load shed. A managed server may update its load share or load shed fraction according to its changed capacity or its current load. For example, when a managed server is upgraded, its capacity may be increased so that it may increase its load share or decrease its load shed fraction. On the other hand, when a managed server is overloaded, it may revise its load share to a lower level or increase its load shed fraction to prevent failure. A managed server may revise its load share or load shed by updating the corresponding load share or load shed information in a designated file stored on the server and this file may be polled by a name server so that the dynamically changed load share and load shed information can be used to direct traffic accordingly.
The distribution of service requests (from a client 112) within the subscriber server network 104 may be controlled through a set of ATC policies (120, 122) stored in the policy database 124. Various authorities may influence the ATC policies and may create policies in the policy database 124. For example, the subscriber may set up policies to direct traffic with respect to considerations such as the geographical locations and the capacities of the underlying servers in the subscriber's network 104. Other policy entities 138, including, for example, the operator of the name servers 118 or various geo-political entities may also have policies regarding how the network traffic should be managed and directed. For example, governmental or some organizational agencies may regulate some aspects of network traffic policies. Such regulation policies may be required to be incorporated so that a service request from the client 112 can be routed in a manner that satisfies regulatory policies.
Thus, the ATC policies in the policy database 124 may be a combination of subscriber policies 120 and other policies 122 from different sources such as subscriber 102 and policy entity 138. Policies from different sources may be accessed by the ATC mechanism 126 from the policy database 124. From the point of view of the ATC mechanism 126, the source of a policy may not be relevant or even determinable. For example, policies may be defined in a textual file stored at a designated location, which may be downloaded to an ATC policy management mechanism 152 in an ATC administrative framework 142 and then broadcast to the database manager 132 located in each of the name servers in the ATC name server network 140. The download may be via either a graphical user interface (GUI), a file transfer protocol (FTP), or some other mechanism. Policy makers may also enter policies directly via a web-based GUI. For example, the subscriber 102 may enter subscriber policies 120 via a browser interface 156 connected with the ATC administrative framework via, preferably a secure interface (e.g., implemented using the “https” protocol).
The policies from the policy database 124 used by the ATC mechanism 126 are collectively referred to as ATC policies, which may include, not is not limited to, the subscriber policies 120 as well as other policies 122. The ATC policies may be organized in a manner that is appropriate to govern and/or control the traffic at different levels of the subscriber server network 104.
The ATC policies (200) may be classified into different types such as geo-political policies 215, load share policies 240, failover policies 245, tiered failover policies 250, shedding policies 255, regulatory policies 260, and Classless Inter-Domain Routing (CIDR) block policies 210.
These exemplary policies in the policy database 124 are described in greater detail below:
Geographic Policy (215): Decisions are based on location of the end-user or an approximate thereof, e.g., using the IP address of an end-user's resolver. For example, if the IP address is within the U.S., the request may be directed to a “domestic” group of servers in the subscriber server network 104, otherwise it may be directed to “international” servers in the network. The request may be directed to a proprietary Content Delivery Network (CDN) or to another service specified by the subscriber.
Load Share Policy (240): The subscriber can explicitly specify the amount of traffic (load share) to be directed to each of their servers within a defined server set in the subscriber server network 104. Typically the load may be specified according to the capacity of each server. Based on such specification, the load share of each server may be derived as a percentage of the total load.
Failover policy (245): The subscriber may specify policies regarding a failover situation where some of the primary servers fail to function. To take care of such a scenario, a failover policy may instruct the ATC mechanism in terms of, for example, how often to monitor the availability of the servers and what strategy to adopt when a partial set of the primary servers are detected to be unavailable. For instance, a failover policy may specify to distribute the load of a failing server to other primary servers. It may also alternatively instruct the ATC framework to direct traffic to servers other than the primary servers.
Tiered Failover Policy (250): The subscriber may specify a strategy through tiered failover policies by which the load should be re-directed to servers at a next tier when one or more subscriber servers in a previous tier fail to function. For example, in defining the subscriber server network, each server group may be configured as a hierarchy, having the first tier of primary servers, the second tier of first layer overflow servers, and the third tier of second layer overflow servers, etc. In this case, a tiered failover policy may be defined to indicate when the load should be re-directed from the primary servers to the overflow servers. For instance, a tiered failover policy may indicate that when all the primary servers fail, the load should be directed to the second tier, and when servers at both the first tier and the second tier fail, the load should be directed to the overflow servers at the third tier. The traffic may also be re-directed to some other servers. For example, when a content delivery network (CDN) is available, the traffic may be re-directed to the entire CDN.
Shedding Policy (255): In some circumstances, a fraction of the “load” originally designated to a server may be shed or re-directed to one or more different servers. This may occur when the amount of traffic directed to the subscriber server exceeds a prescribed level. In these cases, a subscriber-specified fraction of traffic (shed fraction) that would otherwise be directed to the server may be shed to one or more other different servers. Such strategy may be adopted to prevent catastrophic failure due to overload. The servers that take the shed load may be an overflow server or some other servers such as a content delivery network. An overload situation may be detected according to the response time of the server. For example, if the response time from a server becomes long, it may indicate that the server is overloaded. In this case, shedding policies 255 may be invoked to re-direct the traffic elsewhere. For instance, if there are a total of 3 primary servers in a server group with load share of (0.3, 0.3, 0.4) and the primary server that is designated to take 40% of the total load is completely overloaded, a shedding policy may specify to shed the load of this server by re-directing 50% of its original load to, for example, the servers located in the CDN 105. A shedding policy may also specify a condition upon which the traffic will be directed again to the shedding server. Such a condition may relate to a desirable level of performance of the shedding server.
CIDR Policy (210): Policy decisions are supported based upon CIDR blocks of IP address space. CIDR denotes Classless Inter-Domain Routing, an IP addressing scheme that replaces the system based on classes A, B, and C. With CIDR, a single IP address can be used to designate many unique IP addresses.
Regulatory policy (260): Certain policies may be specified by some policy entities to control network traffic. Such policies may be enforced in system 100.
A policy may be static or dynamic. Selection of a server from the subscriber server network 104 may be based on an adaptive, regularly updated map of the state of the Internet as well as adaptively updated policies. The map may cluster IP addresses together according to their network latency to a selected set of network agents. This enables the subscriber servers to be selected according to their “network proximity” to an end user's browser, optimizing resulted download time. The policies may be defined in such an adaptive manner that they reflect the dynamic status of the servers such as the availability and load.
Geo-political policies 215 may govern the selection of a server according to where the client is located. As shown in
Geo-political policies differ from load based policies (described above). The former is designed to guide selections based on geographical criteria or time criteria. The latter concerns the selection process with respect to the dynamic capacity and load of the underlying servers. The load share policies 240 govern the selection according to the capacities of the servers. Partial failover or tiered failover policies (245 and 250) govern the traffic re-direction process when functioning servers in a server group are overloaded or failed.
The ATC policies 200 may be hierarchically constructed to form a decision tree.
As noted, a policy may be created by generating a decision tree representing the ATC rules that the user (content provider/subscriber) wants to apply. At the leaves of this tree (referred to as resource nodes) a user specifies the answers (IP addresses or CNAMEs) that the user wants ATC to provide in response to a DNS request. At the branches of this tree (referred to as branch nodes) the user specifies the various decision criteria that the user wants to apply. Those skilled in the art will realize and understand that, in this discussion about policy setting and control of the ATC, the term “user” (as opposed to “end user”) generally refers to the content provider/subscriber whose content is being delivered.
Branches within a policy decision tree enable ATC decisions based, e.g., upon the IP address of the requesting resolver. Branches can be selected based upon different criteria. In a presently preferred exemplary embodiment, branches can be selected based on five different criteria:
Those skilled in the art will understand, upon reading this description, that different and/or other criteria may be use to make branch selections. Examples of such criteria include, without limitation, time of day, day of week, etc.
Resources are selected to occupy the leaves of a policy decision tree. Resources are used to specify the ATC answers to DNS queries. ATC offers substantial decision making power during the resource selection process. It is here, for example, that traffic can be distributed according to load share and shed fraction criteria. In a presently preferred exemplary implementation there are five types of resource nodes that can be selected in the policy decision tree:
Those skilled in the art will understand, upon reading this description, that different and/or other resource nodes may be used.
IP address(es) are used when the current decision tree leaf points to one or more fixed IP addresses. CNAME records are used when the current decision tree leaf points to a destination whose CNAME is known.
MX Records are is used when the current decision tree leaf points to one or more Mx (Mail Exchange) records. MX records may be combined with IP address or Load Sharing Server Set resources. To select this option, the user firsts enters the Exchange, Pref, and TTL (Time To Live) details for the mail exchange. The Exchange field holds the domain name of the host which will receive mail. If the Exchange name lies under the Domain Name Origin, then the policy must specify an IP address for the name by means of another node label and appropriate resource (IP address or Load Sharing Server Set). A Pref field holds the preference order of the host; lower numbers are preferred (used first) over large numbers.
NS Records are used when the current decision tree leaf points to one or more NS (Name Server) records. NS records are used to specify a delegation from the ATC name servers to another set of name servers.
Load Sharing Server Set (LSSS) option is used when the current decision tree leaf points to a number of destinations among which the user wants to share load (including failover) according to arbitrary criteria. In presently preferred exemplary implementations, this decision takes place only after any decisions that the user wants to make via branch nodes based on the IP address of the requesting resolver. There are presently four different types of load sharing server resources, namely static servers, managed servers, dynamic servers, and overflow servers.
In a present implementation, managed Servers are preferred over the other server types.
Load sharing server sets (LSSS) are necessary to utilize the load share, tiered/overflow and failover rules. When an ATC name server encounters a server set, one or more answers are chosen based on several criteria, including, e.g., the load share of each server, the tier in which each server sits, the shed fraction of each server, and the monitoring results of each server.
Static, dynamic and managed servers have load share, shed fraction and, when in a set, tier parameters. An overflow server is, by definition, at the lowest tier and cannot shed; thus it has only the load share parameter. Dynamic and managed servers each may have the load share and shed fraction values updated continuously and may be deemed on or off-line due to monitoring.
When answering a DNS query from a LSSS, ATC preferably selects answers (IP addresses or a CNAME) from servers included in the set. ATC examines servers in tier order (tier 1 first, tier 2 next, and so on, with overflow servers last), selecting servers based on load share, shed fraction and monitoring results. Online servers are selected within a tier according to their load share values relative to other servers in the same tier. If a candidate server is shedding, e.g., 10% (i.e., has a shed fraction of 0.1), ATC will keep that server in the DNS reply nine tenths of the time, and look in the next tier for a server one tenth of the time. If there is only one tier, the shed traffic returns to the same tier and another server is selected. If the LSSS specifies that multiple answers should be returned, ATC will look for each answer starting from the first tier. If any server selection falls to the overflow servers, one of these is selected as the sole answer to the DNS reply. Typically, the overflow server is a CNAME, and DNS answers of this type should not be combined with any other record type.
In a presently preferred implementation, the number of answers chosen from Load Sharing Server Sets depends on two more user-settable parameters, the “number of answers desired” (NAD) and the “number of answers required” (NAR). These parameters control how many answers are picked from non-overflow servers.
The user sets the NAD parameter to the typical number of answers to be selected by ATC and returned in DNS queries. The NAR parameter, which must be less than or equal to the NAD, comes into play when the normal ATC decision making process cannot select the desired number of servers specified in NAD. This server count shortfall situation can arise when one or more servers are shedding or offline. Setting NAD to one (1) or more guarantees that ATC will never reply to a DNS query with no servers. When NAD is greater than one, ATC may deviate from the desired load share ratios, e.g., if there are three servers and NAD is three then DNS replies will typically have all three servers, irrespective of their load share values.
If the number of servers selected is less than NAD, but greater than or equal to NAR, then server selection is finished. However, if the number of servers selected is less than NAD and less than NAR, then ATC progressively ignores shed fraction and load share values until it is able to select NAR servers. As a special case, if ATC cannot select any servers because they are all offline, all servers are returned in the DNS reply (subject to size constraints of the DNS packet).
As an example, consider a LSSS with two servers in tier 1, two servers in tier 2, and two answers desired and required (i.e., NAD=2, NAR=2). If both servers in tier 1 are online and not shedding, those servers will be returned. If one of the tier 1 servers has 10% shed, then 10% of the answers contain one server from tier 1 and one server from tier 2. If both servers from tier 1 are offline, the two servers from tier 2 are returned. If all four servers are offline, then all four are returned (the special case).
In some implementations, the LSSS may also have a Style parameter which may be used to control where traffic goes when it is directed away from a shedding server, or from an offline server, according to the following table.
Constant Tier Load Ratio
Constant Server Load
Maximal Tier Load
Consider, e.g., a LSSS which contains a few servers in Tier 1 and an overflow server sending traffic to a CDN. The three styles above relate to three underlying motivations for how to split traffic between the Tier 1 servers and the CDN.
If the Tier 1 servers should always take a specified percentage of traffic, as a whole, then the Constant Tier Load Ratio style is best. For example, for the CDN to always take 50% of the traffic, each of the Tier 1 servers would have their shed fraction set to 0.5. This way, even if servers are added or removed from Tier 1, that tier and the CDN will always get 50% of the traffic. This, of course, means that the load on the Tier 1 servers will vary as servers are added or removed.
If, instead, it is not acceptable for the Tier 1 servers to increase their load upon the failure of another Tier 1 server, the Constant Server Load Ratio style is best. With this style, both shed traffic and traffic that would have gone to an off-line Tier 1 server are directed to the next tier (in the example above, the CDN). This is a preferable scenario if the Tier 1 servers are generally under high load. Lastly, if the Tier 1 servers are generally under low load and the CDN is to be considered a last resort, the Maximal Tier Load style should be used. With this style, both shed traffic and traffic that would have gone to an off-line Tier 1 server are instead directed to other servers in Tier 1. Traffic only gets to the CDN if all servers in Tier 1 are offline or shedding.
The Static Server option is used to share load at the current decision tree leaf among a set of servers that the user does not expect to change often over time. The load share for a given server represents the amount of traffic that will be sent to that server within the same tier of the server set. The fraction of traffic sent to that server is computed by summing the load share numbers for all servers in the same tier of the server set and dividing the load share by that total. The shed fraction for a given server represents the fraction (from 0 to 1) of traffic that should be redirected away from a given server, after the initial decision based upon load share. The online flag can be used to remove a server from the list of ATC answers if the user wishes to take a server off-line for maintenance. (If a server has been switched off-line, end users may continue to access it for the duration of the TTL, or perhaps longer if the end user's resolver or browser ignores the TTL.)
In addition to default values for load share and shed fraction, the managed server may optionally be monitored to determine the on/off-line status, and polled for load feedback information (updated values for the load share and shed fraction). Furthermore, a managed server may hold either an IP address or a CNAME. A managed server holding an IP address without monitoring or load feedback becomes equivalent in functionality to the static server. Managed servers with monitoring only (load feedback not configured) are used when the user expects the load share and shed fraction of the servers to change infrequently, but want an instant reaction if the user's server becomes unavailable. In a presently preferred implementation, ATC monitors the user's server by polling a user-specified resource (denoted by a user-specified URL) at regular intervals (e.g., every 30 seconds) frome ach ATC name server. The URL scheme may be, e.g., HTTP, HTTPS or TCP. With HTTP(S), ATC name servers independently send a HEAD request, optionally with HTTP's basic authentication, and examine the response code. Response codes from 200 to 399, received within 15 seconds of the probe, put the server in an online state as viewed by the probing name server; all other conditions (connection refused, server 400 or 500 error, 15 second time, etc.) lead to an offline state for th e server until the next probe.
Alternatively, ATC can monitor the user's server by checking the ability to connect to a specified port. In this case, the URL format is tcp://HOST[:port], and the ATC name servers simply attempt to establish a TCP connection to determine the online state of the user's server. The same probing rate and timeout durations apply.
Suppose, for example, that a user wishes to use ATC for name service for download. example.com. Suppose too that the user has two servers and wants ATC to monitor them both and only return the IP address of an available server. In this example, the user could define two Managed servers, each with a Monitored URL as shown in the following table:
Server nick name
The Monitored URL can point to any resource available to the web server, in this case the web server's root. When these servers are used in a server set, ATC continuously polls the monitoring URLs to determine the on/off-line state of the user's servers.
A user may specify the load share and/or shed fraction of the user's servers dynamically, using a Load Feedback URL to specify an XML resource file (at a location of the subscriber's choice) in the following form (preferably plain text):
The file must be made accessible by the subscriber via http or https, optionally with basic authentication. In a presently preferred implementation, the online field is required, and all others are optional. LS is a number greater than (or equal to) zero, SF is a number from 0 to 1, OL is either True or False, and ET is a time (either absolute GMT or relative).
The expireTime parameter is the absolute time at which the current XML file expires, or the relative amount of time, post-probe, at which the current XML file expires. After a retrieved XML file expires, the loadShare and shedFraction return to their default values. In this manner a user (i.e., content provider) can temporarily (or permanently) override default load share and/or shed values.
The Managed Server specification with both Monitoring and Load Feedback may then look like the following table:
Load Feedback URL
The load feedback resource does not need to be on the server itself. The user may wish to use an independent server to control the load share and shed fraction of some or all of the user's servers. The state of the user's managed servers is maintained by each ATC name server as follows:
If the user's server uses neither a monitored URL nor a load feedback URL, it is considered to be always on-line with default load share and shed fraction.
If the user's server uses a monitored URL but not a load feedback URL, it is considered to be on-line when the monitored URL is successfully retrieved (HTTP response code from 200 to 399 within 15 seconds), otherwise it is considered to be off-line.
If the user's server uses both a monitored URL and a load feedback URL, the server status is preferably given by the following table:
Load Feedback URL
On-line with defaults
No XML, last known still
On-line with defaults
On-line, LS and SF
On-line with LS and SF
Off-line, LS and SF
In the above table, “No XML” means that either the XML file could not be retrieved within the 15 second time-out period (e.g., due to network error), the XML file was retrieved but could not be parsed, or the XML file had expired. “Last known” refers to the full contents of the last successfully retrieved XML file. Last known values expire and cease to exist at the expire time if the expire time is specified in the XML file. The term “defaults” refers to the default load share and shed fraction values specified in the Managed resource server.
If the user's server uses the Load Feedback URL but no Monitored URL, the user can achieve an N minute delayed failover by putting in the XML snippet a relative expireTime of N minutes (+Nm) and a loadshare of one, while having in the policy a default Load Share of 0.
The Dynamic Server option may be used to share load at the current decision tree leaf among a set of servers when the user expect that the load share, shed fraction, or server availability may change reasonably often. (The managed server option is preferred over the dynamic server option.) Load share and shed fraction are defined for this case as they are for Static Servers. However, the Dynamic Servers selection offers flexibility in exactly how they are specified. The Dynamic Server option supports specification of load share, shed fraction and the On line flag dynamically, allowing them to be defined by the subscriber via a short XML status file at a location of the subscriber's choice (as described above).
The subscriber specifies the location of this file to ATC, including any authentication requirements desired. ATC polls the file at predetermined fixed intervals, e.g., every 30 seconds, and updates the current ATC policy to reflect its contents. Subscribers can easily specify changes to load share, shed fraction and the On line flag by editing the file, either manually or by updating it using automated modules, without requiring updates to an entire ATC policy.
In order to maintain flexibility, values for the “URL Down load share” and the “URL Down shed fraction” parameters can be set in the ATC policy. They are used to control the behavior of ATC under the circumstance that the ATC polling mechanism is unable to retrieve the status file for a server, or is unable to parse its contents.
Subscriber specifies all three ATCServerStatus attributes in the status file, with the “URL Down load share” parameter set to zero. In this case the subscriber's server will not be returned as an answer under any conditions until the polling mechanism retrieves a valid XML file.
Subscriber specifies all three ATCServerStatus attributes in the status file, with the “URL Down load share” parameter set to one. In this case, ATC treats a failure to return valid XML according to the “Down load share” and “Down shed fraction” specified in the policy.
Subscriber specifies only the on line ATCServerStatus attribute in the status file. In this case, ATC uses the “Default load share” and “Default shed fraction” specified in the policy if the “On line” flag in the ATCServerStatus file is set to true.
Below is a table detailing all of the possible cases. In the table, a dash represents ATC taking the dynamic server out of consideration. LS and SF should be replaced by actual numbers.
Dynamic Server Cases
Form of retrieved ATCServerStatus file LoadShare ShedFraction <ATCServerStatus LS SF onLine=“True” loadShare=“LS” shedFraction=“SF”/> <ATCServerStatus Default load share Default shed fraction onLine=“True”/> <ATCServerStatus — — onLine=“False” loadShare=“LS” shedFraction=“SF”/> <ATCServerStatus — — onLine=“False”/> Bad format or un- Down load share Down shed fraction retrievable:
A user uses the Overflow Server option if the user would like to specify what should happen if, for some reason (e.g., server unavailability), no answers are selected by the Static or Managed (or Dynamic) Server selection process. Typically, the overflow server will be a CName to a service, such as Level 3 Communications' Content Delivery Network (CDN), that should be available in the case that the user's individual Static or Managed (or Dynamic) servers are unavailable.
Managed and Dynamic Server Status Alerts
The global ATC network preferably maintains an overall state of a user's Managed and Dynamic servers using Monitored or Load feedback URLs. A Server Status page, available from the subscriber web interface, continuously updates with the status (up or down) of the user's URLs and, if down, the relevant error condition (time-out, connection failure, file not found, etc.). Additionally, the overall server state is displayed (either on-line or off-line) along with a relevant status message. If a server changes state, an email message is sent to the user detailing the event. Email messages are preferably not sent more frequently than once in 15 minutes per domain name origin.
Once a DNS request is directed to an appropriate continent, the country based distribution policies 225 may further constrain the selection to particular servers that are in the same or close-by countries where the client 112 is located. For example, if the client 112 is located in the U.S., the country based policies 225 may direct the selection from the servers located in the U.S. Similarly, the region based distribution policies 230 may further constrain the selection to, for example, the west coast or east coast depending on where the client 112 is located.
When a particular server group is selected (e.g., after a hierarchical decisions based on the continent-based policies 220 and the region-based policies 230), the load share policies 240 govern the process whereby servers in a given server group should be selected. Such policies may be determined based on the servers' capacities or may be adaptively revised based on the dynamic performance or load of the underlying servers. The load share policies 240 may specify the percentage (share) of the total requests that each server in a server group should handle. For example, if a server group comprises a total of three primary servers (server 1, server 2, server 3), a load share policy for this server group may specify the load share as (0.3, 0.5, 0.2), indicating that server 1 should take 30% of the total load, server 2 should take 50% of the load, and server 3 should take 20% of the total load.
The tiered failover policies 250 govern the selection of a server when a particular default set of servers is no longer functioning or available. For example, primary servers in a server group may be considered as a default set of servers that provide service when operation is normal. Unavailability of such primary servers may be detected according to the response time of the server. For example, if a server is simply not responding, the server may be considered as not available. When all the primary servers are down, the tiered failover policies 250 govern where the traffic should be directed. For instance, the tiered failover policies 250 may specify to direct all traffic to the overflow servers at the next tier.
The subscriber policies 120 govern selection of one or more servers within the subscriber server network 104 (or in some other network of servers) so that their IP addresses may be returned in response to DNS requests from the client 112 (resolver 116). To determine or to select appropriate servers in the subscriber server network 104, the decisions may be hierarchical. For example, as shown in
As illustrated in
The ATC name server network 140 is responsible for responding to DNS requests, including processing DNS requests, applying the ATC policies 200 to select one or more servers from the subscriber server network (or a different designated network), and replying with the IP address(es) of the selected server(s). The ATC name server network 140 dynamically maintains the ATC policies 200, that are either received from the ATC administrative framework 142 or updated according to the dynamic operational status of the servers. The ATC name server network 140 provides domain name-IP address resolutions based on dynamically updated ATC policies 200. The ATC name server network 140 may also monitor the operational status of individual name servers within the network and supply logging and monitoring data to the ATC administrative framework 142.
The ATC administrative framework 142 may be designed to have fault-tolerance. For example, as depicted in
The ATC name server network 140 may comprise a plurality of name server agents 118-1, 118-2, . . . , 118-k, each of which may be designed to be responsible for the DNS requests of a particular geographical (or any other administrative or functional) region. For example, the name server agent 118-1 may be responsible for processing all the DNS requests from North America, the name server 118-2 may be responsible for Europe's DNS requests, and the name server 118-3 may be responsible for DNS requests from Japan. In addition, a name server agent may also serve as a back up name server agent for other name server agents in the network. For example, if the North America name server agent is not functioning properly, the Europe name server agent may be temporarily assigned to handle the DNS requests from North America. For that purpose, all ATC policies may be propagated to all of the name server agents in the ATC name server network 140.
The ATC policy database 124 stores the ATC policies 200. As discussed above, the ATC policies 200 may include policies from different sources (e.g., from subscribers and from other entities that control network traffic). Both the subscriber policies 120 and other policies 122 may be defined and provided to the AMA 144. In the exemplary configuration shown in
The ATC policy management mechanism 152 may broadcast or propagate the ATC policies 200 to relevant name servers in the ATC name server network 140 so that the ATC policies 200 may be used to control the domain name translation service. The stored ATC policies may be dynamically updated via different means. For example, the policies may be updated through the ATC administrative browser 166, or the administrative policy update mechanism 164 may revise existing ATC policies.
Alternatively, the AMA 144 may also be provided with policies from different sources through the ATC policy management mechanism 152, which may regularly poll dynamically updated policies from different locations. Such locations may include designated network locations that are designated to provide dynamic policy related information or servers (either in the subscriber server network 104 or in the CDN 105) that are classified as managed servers. For instance, a server may dynamically specify its load share via a designated file stored on the server or at some other location (the file may reside on the server being monitored or at some other location, e.g., a central load controlling server). To retrieve such dynamically defined load share information from a managed server, the ATC policy management mechanism 152 may poll the designated file stored on the managed server to obtain relevant load share information. Dynamic policies may also be polled from other policy making entities.
Broadcasting ATC policies may take place periodically according to some pre-defined interval or may be triggered whenever the stored ATC policies are updated. The ATC policy management mechanism 152 may monitor changes made to the existing ATC policies. The ATC policy management mechanism 152 may poll the ATC policies stored in the ATC policy database and see whether there are changes. On the other hand, whenever the ATC policy management mechanism 152 polls dynamic policies from specified locations (such locations may be specified in existing ATC policies), it may determine whether the dynamically polled policies differ from existing ATC policies. In the event that updated policies are different from the existing ATC policies, the ATC policy management mechanism 152 may re-broadcast the updated ATC policies to the ATC name server network 140.
The ATC network monitoring mechanism 150 may collect DNS log summaries from different name servers in the ATC name server network 140. Such summary log data may be received in the form of events that provide information such as, for example, the number of requests directed to particular servers in a given time period. The ATC network monitoring mechanism 150 may collectively processes such DNS log summaries (or events) from the entire ATC system. The report generation mechanism 168 may generates monitoring status reports from these summaries and makes such reports available to the subscriber 102 via the secure web-based GUI 160.
The administrative master backup mechanism 170 may periodically update the AMA backups 146-1, . . . , 146-m to ensure that all the backup agents are current. This may include replicating the ATC policies, the operational status of various control mechanisms (including the ATC policy management mechanism 152), the policy editing mechanism 162, and the administrative policy update mechanism 164, and providing the up-to-date information to the AMA backups.
A major function of an administrative master agent is to manage the ATC policies, to make sure that updated ATC policies are supplied to the name server agents in the ATC name server network 140, to monitor the various name servers' performance, to generate dynamic monitoring status report of system performance, and to maintain a connection through which policies may be updated dynamically and monitoring report can be examined.
Information flagging system errors and other anomalous conditions is collected by the ATC network monitoring mechanism or agent 150.
The trap handler 176 further comprises an event receiver 178 that intercepts trap events from the name servers and an event consolidation mechanism 180 which may classify the trapped events and organize them in a reasonable and appropriate fashion. The processing mechanism 182 may process the consolidated events to identify useful or informative patterns which may be further used, by the alert generation mechanism 184 to identify problematic patterns which may significantly affect the system performance.
The Adaptive Traffic Control (ATC) framework according to the present invention may be deployed as a stand-alone service directing traffic solely to the subscriber's servers, in conjunction with another content delivery network (CDN) provider, or in conjunction with any other service.
Each domain name server in the ATC name server network 140 may include (
The database manager 132 maintains the policy database 124. It received policies broadcast from the ATC policy management mechanism 152 in the ATC administrative framework 142 and populates the policies in the policy database 124. The ATC policies received from the ATC administrative framework 142 may also include information that defines or classifies servers in the subscriber server network 104 (or in the CDN 105). For example, some servers may be defined as monitored servers and some may correspond to managed servers.
When the database manager receive such information, it may inform the monitoring mechanism 130 of the classification of the underlying servers so that the monitoring mechanism 130 can monitor each server according to its status. When the ATC policy management mechanism 152 broadcasts updated policies, the database manager 132 accordingly updates the relevant policies stored in the policy database 124.
The monitoring mechanism 130 monitors the operational status of the name server 118-1 and one or more servers in the subscriber server network. It may collect events occurred in the name server 118-1 during operations and send such events to the ATC network monitoring mechanism 150 in the ATC administrative framework 142. On the other hand, it may also monitor the operations of various servers in the subscriber server group 104 (or in the CDN 105) according to how each server is defined (monitored or managed server).
If a server is defined as a monitored server, the monitoring mechanism 130 may dynamically probe the server (as discussed earlier) to determine its availability. If a server is defined as a managed server, the monitoring mechanism 130 may monitor its availability during operation. The monitoring mechanism 130 may also poll dynamic load share information from the server. When the monitoring mechanism 130 detects that a server is no longer available, it may inform the database manager 132 to create a local policy that indicate that the server is no longer available so that the ATC mechanism 126 can take into account when resolving a hostname.
When the monitoring mechanism 130 polls the dynamic load share information from the server, it may inform the database manager 132 to update the load share policies in the policy database 124 that are affected by the dynamics of the polled load share. For example, if three primary servers in a server group originally have load share (0.3, 0.3, 0.4) and the third primary server now changes its load share to 0.2, the database manager 132 may accordingly update the load share among these three primary servers into (0.4, 0.4, 0.2).
The report generator 134 generates reports related to the operations of the underlying name server based on log information 136 recorded. Such generated reports may be sent to a report consolidator 154 in the ATC administrative framework 142 so that reports from different name servers may be consolidated.
A subscriber may activate (turn up) the ATC system (DNS servers) in one of two ways: using a DNS CNAME or using NS delegation. Instead of using ATC to direct traffic for a single DNS hostname, the subscriber may have many different subdomains that it would like to direct to ATC. For example, the subscriber might want all downloads from dl.customer.com handled by ATC, together with all of its subdomains, but have all other domains that it controls, such as www.customer.com, resolved by its own name server:
dl.customer.com. => ATC
any.thing.dl.customer.com. => ATC
www.customer.com. => not ATC
customer.com. => not ATC
In this case, instead of adding the CNAME record in the subscriber's DNS zone file, it simply delegates the dl.customer.com. name to ATC via NS records in its zone file.
The delegation (using NS-records) method is presently preferred as it is more flexible and offers all of the reliability, scalability and flexibility of ATC. After the initial contact for delegation, a properly operating resolver making occasional queries will not contact the subscriber's own name server or name servers again. The result provides much better name resolution performance since the unnecessary overhead of routing each fresh DNS request through the subscriber's name server is eliminated. The CNAME method keeps the subscriber's own name server in the loop. That is, whenever the CNAME TTL expires, client resolvers will return to the subscriber's name servers to refresh the record.
For both CNAME and NS delegation methods, the procedure to turn off the ATC switch is the same—the subscriber edits its DNS zone files to remove the delegation authority to ATC. DNS requests will continue to be served in accordance with the subscriber's defined ATC policies until the TTLs have expired on the appropriate delegations.
The System in Operation
The name server 118 receives the request to resolve the hostname (at 808) and determines one or more servers in the subscriber server network 104 or in the CDN 105 that can process the client's request according to the location of the resolver 116 as well as relevant ATC policies retrieved from the policy database 124 (at 810). Details of this operation are described with reference to
The ATC policy management mechanism 152 also performs dynamic policy maintenance. It polls dynamic policy information (at 842) at certain defined intervals and uses such polled dynamic policy information to update existing policy (at 844). The updated policies are then broadcast to the name servers (at 846). If the updated policies need to be propagated to the backup agents (determined at 848), they are sent to the master backup agents (at 850).
The ATC policies may be initially set up and later adaptively updated according to servers' dynamic operational status. The ATC policies may be formed via various means. The described approaches may also be applied to form other policies. A GUI approach or a file-based approach (or both) may be employed to set up subscriber policies. Through the GUI approach, different means to form subscriber policies may be adopted. For example, a browser may be used so that a subscriber can enter policies directly. An XML file containing descriptions of the subscriber policies may also be loaded using GUI approach so that the policies may be parsed and stored. As another alternative, a file containing descriptions of the subscriber policies may also be loaded in a similar fashion and parsed accordingly. When a file based method is used, a file containing descriptions of the subscriber policies, either constructed based on XML or some other structure, may be accessed via other means such as FTP.
In some preferred embodiments, a subscriber accesses a secure web-based GUI 160 (
Correspondingly, the policies governing routing requests to different types of servers may also be defined accordingly. First, the policies that govern static servers are applied when servers are relatively static and do not change often over time. This may mean that the availability of the servers is fairly stable and load sharing among different servers is also relatively stable. The policies that control dynamic servers are applied when servers are expected to change frequently. Such policies include failover policies, shedding policies, and tiered failover policies (described earlier). The overflow policies control the change of flow of the requests when, for some reason, primary servers, either static or dynamic, become unavailable or overloaded. In this case, relevant overflow policies determine to which overflow server a request for name service should be directed.
The load share with respect to a given server represents the amount of traffic that will be sent to that server within a static server setting. An exemplary method to compute the load share of the traffic sent to the server is to sum the load share amount of all servers in a current static server setting and divide the load share for that server by the summed total to derive the load share.
The shed fraction for a given server represents the percentage of traffic that should be redirected away from the server. The redirection may be carried out after load share is made based upon load share policies.
Shedding fractions may also be computed automatically on the fly. For example, when a server is detected to have slow response, indicating that it may be overloaded, a shedding fraction may be computed according to the discrepancy between its expected response time and the actual response time. Such an automatically computed shedding fraction can then be applied to re-direct the newly computed fraction of the traffic to a different server to unload some of the traffic originally intended to be directed to the overloaded server.
For each resource server, an on-line flag may also be set to indicate whether the server is currently available. This flag is shown in
Since managed and dynamic servers are expected to change relatively frequently, policies that govern their selection may be defined in two stages. The policies for managed and dynamic servers may be initially specified in a similar fashion as for static servers. For instance, load share and shed fraction can be defined for dynamic servers New York and London, as shown in
The on-line status report may be provided at one or more network locations specified by the subscriber. The locations may be specified as a Uniform Resource Locator (URL) and may be accessed through an HTTP request. A location of the status report may be specified in the initial policy, providing a constant link to the location.
The frequency with which the status report is accessed may also be specified explicitly. For example, it may require the relevant mechanisms (specifically, the ATC policy management mechanism or the monitoring mechanism of each name server) to poll the status report at a regular time, e.g., every thirty seconds.
A status report may be constructed using some standard language such as extendible Markup Language (XML). Such a status report may contain revised policies, which may be determined by the subscriber manually based on network performance, devised by an automated process based on network performance, or may be generated by an individual managed server. In such cases, the status report includes updated policies and when it is polled, the updated policies are used in future traffic control. For example, a managed server may re-define its load share of according to its dynamic capacity. When such dynamically defined load share information is accessed and used in enforcement, the traffic is controlled in a manner that is adaptive to the network dynamics.
When a status report is accessed, the relevant mechanisms (e.g., the ATC policy management mechanism in the ATC administrative framework or the ATC mechanism in corresponding name server) updates the associated policies based on the information contained in the status report. For example, a status report may indicate that the current load share for server New York should be 0.4 (down from 1.0 previously) with the same shed fraction (0.2) and the current load share for server London should be 0.5 (down from previous 1.0) with 0.4 shed fraction (40% shed fraction). An alternative scenario may be that the status report provides network performance data about each dynamic server and the ATC mechanism, after accessing the status report, determines how the current policies may be revised accordingly.
When the status report provides dynamic policies, it may, in general include, for each dynamic server, the following information:
<ServerStatus loadShare=“LS” shedFraction=“SF” online=“Boolean”/>
where LS and SF represent numerical numbers and “Boolean” represents a logical value of either “true” or “false”.
With respect to dynamic servers, with the mechanism of dynamic policies described above, a subscriber or a server can easily specify changes to existing policies (e.g., changes to load share, shed fraction policies and the On-line flag) without having to update an entire ATC policy hierarchy. In addition, a parameter (called “Down on line” in some embodiments) can be set in an ATC policy to control the behavior of the ATC mechanism under the circumstance that the ATC policy management mechanism is unable to properly access the status report due to reasons such as a failed polling or retrieval or failing to parse the status report's content. According to some embodiments of the present invention, three different exemplary approaches may be applied to handle the situation.
With the first approach, a subscriber may instruct an ATC mechanism in a name server not to select a particular server if the status report for that server can not be properly obtained. The subscriber may specify this policy by setting parameter “Down on line” to false. In this case, the ATC mechanism will not consider the underlying server as a candidate for selection process until the polling mechanism retrieves a valid status report.
The second approach to deal with a polling failure is to allow the ATC mechanism to select the underlying dynamic server according to its default policies (or original policies). To specify this solution, the subscriber may set the “Down on line” parameter true.
The third approach to handle the situation where the status report can not be properly retrieved is to allow the ATC mechanism to select the underlying server if its “on line” flag is on (it is available). To achieve this, a subscriber may specify only the “on line” ServerStatus in the status report, with parameter “Down on line” set to either true or false. In this case, the ATC mechanism will use a load share and a shed fraction specified in the policy when the “On line” flag is set to true. The load share and the load shed fraction may both be dynamically determined (either broadcasted from the ATC policy management mechanism or polled by the ATC mechanism 130 from the underlying server.
Static, dynamic and managed servers are primary servers, although their selection may be controlled by operationally different policies. The third type of servers are called overflow servers. They provide alternatives when primary servers, for some reason, can not be selected. Typically, an overflow server corresponds to a Canonical name or CName, pointing to a service providing a CDN (such as, e.g., the CDN service offered by Level 3 Communications). The choice of overflow servers may be determined based on the belief that they are in general always available. An overflow server may be defined through a window illustrated in
The decision tree in
The next four examples (Examples 3-6) are based on an example subscriber which has ATC handling traffic for www.subscriber.com with a CNAME hand-off to www.subscriber.com.nsatc.net. The example subscriber has three datacenters, one in San Francisco, New York and London. The set of resources used by these four examples is shown in
With this policy (
Changing the shed fraction for any one server is not appropriate in this example because there is no defined lower tier or overflow server to receive shed traffic. Both servers are in the same tier.
A variation of this example is to put the New York server in Tier 2, i.e., have New York function as a backup. In this configuration, all traffic would be directed to the San Francisco server unless it was monitored as down or shedding in which case traffic would then go to New York. That is, if the San Francisco server had a shed fraction of, e.g., 10%, then ATC would return the New York server 10% of the time. When there is only one server in a Tier, there is no load share balancing for ATC to do, and the load share value becomes unimportant (unless zero).
This example demonstrates load share variation and server failover handling within a load sharing server set consisting only of managed servers.
This policy (
The shed fractions can be modified in one of two ways:
The subscriber may maintain an even load across all subscriber servers by setting the load share. This value typically does not need continuous adjustment. Then, if traffic levels increase and all servers are nearing their capacity, all servers begin shedding traffic to the Overflow server(s) (in this example, “dl.subscriber.com.c.footprint.net”, a CName for a CDN).
This example policy (
In this case, the subscriber does not have an overflow server defined. If the load on any server becomes too high, the shed fraction can be increased on that server and traffic will be sent to the lower tiers defined within each geographic region.
If both the San Francisco and New York servers are offline, all traffic is directed to the London server until the U.S. servers return. If all three servers are offline, ATC is unable to determine which servers are preferred and thus selects all three servers, with the hope that the end user may be able to connect to one of them.
This policy (
Note: The Other label is used, as before, to catch all non-specified world zones, and again within the U.S. time zone split to catch all remaining regions (in this case the western time zones of the U.S. and the rest of the Americas).
The following three examples (Examples 7-9) are based on an example subscriber which has ATC handling traffic for an origin server demo.nsatc.net and for the domain nsatc.net. The subscriber has three data centers in New York, San Francisco, and London, UK, with managed servers at each center. As shown in
The “www” sub-domain is handled somewhat differently in that the overflow for “www” will go to either of two CDNs. In this example, as shown in
As with the load share values for the other servers, the load share for the CDNs can also be adjusted by the subscriber on the fly or by logging in to the ATC.
Those skilled in the art will realize and understand, upon reading this description, that a subscriber may wish to adjust load share values for a CDN for performance and/or business reasons. E.g., a subscriber may have to pay a higher rate for one CDN than for another.
Those skilled in the art will realize and understand, upon reading this description, that the two CDNs may be owned and operated by different entities and may be in different domains.
Using this example, a subscriber can have its traffic handled initially by its origin servers (in NY or SF), with overflow being handled by a CDN. Overflow for the “images” sub-domain is handled by a single CDN, whereas overflow for the “www” sub-domain is handled by two CDNs.
End-user requests for the “download” sub-domain (download.nsatc.net) are handled by the subscriber's origin servers in NY and SF (in the ratio 1:2 (per
The “ftp” sub-domain is split based on country (i.e., on the country in which the end-user's request is believed to originate). End-user requests from the US are handled by the domain “us.demo.com” (a CNAME), and all other requests are handled by “international.demo.com” (also a CNAME). In this manner, ftp requests can be directed to different networks based on their country of origin.
The “images” sub-domain is split initially on three geographic zones:
II. Asia and Australia
III U.S. and other
Within each zone, end-user requests are further directed based on server load. E.g., in zone I (for Europe), end-user requests are handled by the tier 1 server(s) in the UK. If these fail (or are overloaded and need to shed load), requests then go to the tier 2 server(s) in NY. And if these fail (or are overloaded and must shed), requests are directed to the tier 3 server(s) in SF. Thus, in response to an end-user request for the sub-domain “images”, the request originating in Europe, the ATC will return the IP address of a server in the U.K. But if that server in the UK is overloaded, the ATC will return the IP address of a server in N.Y. And if that server is also overloaded, the ATC will return the IP address of a server in S.F.
The Asia/Australia zone operates similarly, except that the servers are put into different tiers, favoring the order SF, NY, UK. All other zones favor the order NY, SF, UK.
The “www” sub-domain is not split based on geographic location of the end-user. Traffic is handled by SF first, with NY as an overflow.
In addition to the various web-based interfaces described herein, there are also other means through which subscriber policies may be defined. As discussed earlier, for example, subscriber policies may also be constructed or specified in an XML file which can be downloaded by an ATC mechanism and used to control the traffic.
Policies defined via different means (e.g., through web based GUI or XML file) may be converted into some pre-defined format within the ATC mechanism. Such pre-defined format may be designed for efficiency in manage and handling the ATC policies. For example, the internal format for ATC policies may be designed so that, internally, the AMAs can conveniently store, access, and broadcast the ATC policies to the name server agents and the name server agents can efficiently apply the policies.
As mentioned earlier, in addition to management of the ATC policies, the AMA may also monitor the performance of name servers and generates viewable DNS log reports. The monitoring mechanism may gather performance information from either the DNS logs of the name servers or the events trapped from the name servers. Such gathered information may be used by the report generation mechanism to construct informative reports. The report generation mechanism may also make such reports available to the subscribers via the secure web-based GUI.
In some implementations, end-user resolvers may use a preferred subset of the ATC nameservers. This may be implemented by providing an initial pool of ATC name servers which respond to new requests from new end-user resolvers. When an end-user resolver first requires name resolution from an ATC nameserver, that resolver is directed (e.g., by the DNS system) to one of the pool of ATC nameservers. When that ATC nameserver provides an answer to the end-user resolver, it also gives that resolver a list of preferred ATC nameservers for that resolver, i.e., one or more ATC nameserver that are better suited to handle name resolution for that end-user resolver. An ATC nameserver may be better suited to handle requests from an end-user resolver for a number of reasons, e.g., because it is electronically closer to the resolver, because it is geographically appropriate for that resolver, etc. Those skilled in the art will realize, upon reading this description, that different and/or other measures of suitability may be used to provide an end-user resolver with a list of preferred ATC nameservers. Once an end-user resolver has a list of preferred ATC nameservers, that resolver will make future requests of nameservers in its list (until the entries for those nameservers expire or are replaced).
The various mechanisms described herein, including, without limitation, the adaptive traffic control (ATC) mechanism, the location determination mechanism, policy editing mechanism, administrative policy update mechanism, ATC policy management mechanism, report generation mechanism, a monitoring mechanism, and an administrative master backup mechanism may be implemented in hardware, software or a combination thereof. When implemented in software, they may be implemented in any type of appropriate interpreted or compiled programming language. When implemented fully or partially in software, aspects of the invention can reside on any memory or storage medium, including but not limited to a ROM, a disk, an ASIC, a PROM and the like. While the invention has been described with reference to particular mechanisms (algorithms, processes and functions) and architectures, one skilled in the art would realize that other mechanisms and/or architectures could be used while still achieving the invention.
When the various mechanisms of the present invention are running on a particular machine (e.g., the at a client or on a server), they may reside in the memory of the machine or on a storage device or in a combination. Further, while many of the operations have been shown as being performed in a particular order, one skilled in the art would realize that other orders, including some parallelization of operations, are possible and are considered to be within the scope of the invention.
The present invention has been described above in connection with a preferred embodiment thereof; however, this has been done for purposes of illustration only, and the invention is not so limited. Indeed, variations of the invention will be readily apparent to those skilled in the art. Such variations also fall within the scope of the invention. Thus, while the invention has been described with reference to the certain illustrated embodiments, the words that have been used herein are words of description, rather than words of limitation. Changes may be made, within the purview of the appended claims, without departing from the scope and spirit of the invention in its aspects. Although the invention has been described herein with reference to particular structures, acts, and materials, the invention is not to be limited to the particulars disclosed, but rather extends to all equivalent structures, acts, and, materials, such as are within the scope of the appended claims.
The processing described may be performed by a properly programmed general-purpose computer alone or in connection with a special purpose computer. Such processing may be performed by a single platform or by a distributed processing platform. In addition, such processing and functionality can be implemented in the form of special purpose hardware or in the form of software being run by a general-purpose computer. Any data handled in such processing or created as a result of such processing can be stored in any memory as is conventional in the art. By way of example, such data may be stored in a temporary memory, such as in the RAM of a given computer system or subsystem. In addition, or in the alternative, such data may be stored in longer-term storage devices, for example, magnetic disks, rewritable optical disks, and so on. For purposes of the disclosure herein, a computer-readable media may comprise any form of data storage mechanism, including such existing memory technologies as well as hardware or circuit representations of such structures and of such data.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US4495570||7 Jan 1982||22 Jan 1985||Hitachi, Ltd.||Processing request allocator for assignment of loads in a distributed processing system|
|US4591983||9 Jul 1984||27 May 1986||Teknowledge, Inc.||Hierarchical knowledge system|
|US4594704||16 Nov 1984||10 Jun 1986||Compagnie Industrielle Des Telecommunications Cit-Alcatel||Spare subscriber terminal device in a digital concentrator|
|US4726017||21 May 1985||16 Feb 1988||Fla.||Multidrop data concentrator communication network|
|US4803641||25 Nov 1987||7 Feb 1989||Tecknowledge, Inc.||Basic expert system tool|
|US4839798||6 Nov 1985||13 Jun 1989||Hitachi, Ltd.||Method and apparatus for controlling job transfer between computer systems|
|US4847784||13 Jul 1987||11 Jul 1989||Teknowledge, Inc.||Knowledge based tutor|
|US4920432||12 Jan 1988||24 Apr 1990||Eggers Derek C||System for random access to an audio video data library with independent selection and display at each of a plurality of remote locations|
|US4922417||24 Oct 1986||1 May 1990||American Telephone And Telegraph Company||Method and apparatus for data hashing using selection from a table of random numbers in combination with folding and bit manipulation of the selected random numbers|
|US4943932||15 Apr 1987||24 Jul 1990||Cimflex Teknowledge Corporation||Architecture for composing computational modules uniformly across diverse developmental frameworks|
|US4949187||16 Dec 1988||14 Aug 1990||Cohen Jason M||Video communications system having a remotely controlled central source of video and audio data|
|US4949248||15 Jul 1988||14 Aug 1990||Caro Marshall A||System for shared remote access of multiple application programs executing in one or more computers|
|US5029232||12 Jan 1989||2 Jul 1991||Cycle-Sat., Inc.||Satellite communications network|
|US5130792||1 Feb 1990||14 Jul 1992||Usa Video Inc.||Store and forward video system|
|US5132992||7 Jan 1991||21 Jul 1992||Paul Yurt||Audio and video transmission and receiving system|
|US5136716||8 Mar 1990||4 Aug 1992||Digital Equipment Corporation||Session control in network for digital data processing system which supports multiple transfer protocols|
|US5172413||20 Dec 1990||15 Dec 1992||Sasktel||Secure hierarchial video delivery system and method|
|US5191573||18 Sep 1990||2 Mar 1993||Hair Arthur R||Method for transmitting a desired digital video or audio signal|
|US5253275||2 Apr 1992||12 Oct 1993||H. Lee Browne||Audio and video transmission and receiving system|
|US5253341||11 Apr 1991||12 Oct 1993||Rozmanith Anthony I||Remote query communication system|
|US5287499||16 May 1991||15 Feb 1994||Bell Communications Research, Inc.||Methods and apparatus for information storage and retrieval utilizing a method of hashing and different collision avoidance schemes depending upon clustering in the hash table|
|US5287537||21 Sep 1992||15 Feb 1994||Data General Corporation||Distributed processing system having plural computers each using identical retaining information to identify another computer for executing a received command|
|US5291554||19 Aug 1992||1 Mar 1994||Tv Answer, Inc.||Shared-price custom video rentals via interactive TV|
|US5341477||6 Aug 1993||23 Aug 1994||Digital Equipment Corporation||Broker for computer network server selection|
|US5371532||15 May 1992||6 Dec 1994||Bell Communications Research, Inc.||Communications architecture and method for distributing information services|
|US5410343||2 Apr 1993||25 Apr 1995||Bell Atlantic Network Services, Inc.||Video-on-demand services using public switched telephone network|
|US5414455||7 Jul 1993||9 May 1995||Digital Equipment Corporation||Segmented video on demand system|
|US5442389||28 Dec 1992||15 Aug 1995||At&T Corp.||Program server for interactive television system|
|US5442390||7 Jul 1993||15 Aug 1995||Digital Equipment Corporation||Video on demand with memory accessing and or like functions|
|US5442749||9 Jul 1993||15 Aug 1995||Sun Microsystems, Inc.||Network video server system receiving requests from clients for specific formatted data through a default channel and establishing communication through separate control and data channels|
|US5471622||20 Apr 1995||28 Nov 1995||Paralogic, Inc.||Run-time system having nodes for identifying parallel tasks in a logic program and searching for available nodes to execute the parallel tasks|
|US5475615||23 Dec 1993||12 Dec 1995||U S West Advanced Technologies, Inc.||Method and system for sizing interactive video delivery systems|
|US5508732||22 Mar 1993||16 Apr 1996||International Business Machines Corporation||Data server, control server and gateway architecture system and method for broadcasting digital video on demand|
|US5515511||6 Jun 1994||7 May 1996||International Business Machines Corporation||Hybrid digital/analog multimedia hub with dynamically allocated/released channels for video processing and distribution|
|US5519435||1 Sep 1994||21 May 1996||Micropolis Corporation||Multi-user, on-demand video storage and retrieval system including video signature computation for preventing excessive instantaneous server data rate|
|US5522070||23 May 1995||28 May 1996||Fujitsu Limited||Computer resource distributing method and system for distributing a multiplicity of processes to a plurality of computers connected in a network|
|US5528281||30 Jul 1993||18 Jun 1996||Bell Atlantic Network Services||Method and system for accessing multimedia data over public switched telephone network|
|US5539621||23 Jun 1995||23 Jul 1996||Elonex Technologies, Inc.||Network communication unit with client and resource node array double layer ICs on printed board with connectors on housing|
|US5542087||15 Oct 1993||30 Jul 1996||Hewlett-Packard Company||Linear hashing for distributed records|
|US5544313||11 May 1994||6 Aug 1996||International Business Machines Corporation||Baton passing optimization scheme for load balancing/configuration planning in a video-on-demand computer system|
|US5544327||26 Jul 1994||6 Aug 1996||International Business Machines Corporation||Load balancing in video-on-demand servers by allocating buffer to streams with successively larger buffer requirements until the buffer requirements of a stream can not be satisfied|
|US5550577||19 May 1994||27 Aug 1996||Alcatel N.V.||Video on demand network, including a central video server and distributed video servers with random access read/write memories|
|US5550863||8 Oct 1993||27 Aug 1996||H. Lee Browne||Audio and video transmission and receiving system|
|US5550982||24 Jun 1993||27 Aug 1996||Starlight Networks||Video application server|
|US5557317||22 May 1995||17 Sep 1996||Nec Corporation||Video-on-demand system with program relocation center|
|US5572643||19 Oct 1995||5 Nov 1996||Judson; David H.||Web browser with dynamic display of information objects during linking|
|US5590288||13 Mar 1995||31 Dec 1996||Restaurant Technology, Inc.||Distributed data processing system and method utilizing peripheral device polling and layered communication software|
|US5592611||14 Mar 1995||7 Jan 1997||Network Integrity, Inc.||Stand-in computer server|
|US5594910||26 Nov 1993||14 Jan 1997||Ibm Corp.||Interactive computer network and method of operation|
|US5603026||7 Dec 1994||11 Feb 1997||Xerox Corporation||Application-specific conflict resolution for weakly consistent replicated databases|
|US5619648||30 Nov 1994||8 Apr 1997||Lucent Technologies Inc.||Message filtering techniques|
|US5623656||15 Dec 1994||22 Apr 1997||Lucent Technologies Inc.||Script-based data communication system and method utilizing state memory|
|US5625781||31 Oct 1995||29 Apr 1997||International Business Machines Corporation||Itinerary list for interfaces|
|US5627829||6 Jun 1995||6 May 1997||Gleeson; Bryan J.||Method for reducing unnecessary traffic over a computer network|
|US5630067||4 Jun 1996||13 May 1997||International Business Machines Corporation||System for the management of multiple time-critical data streams|
|US5633999||18 Dec 1995||27 May 1997||Nonstop Networks Limited||Workstation-implemented data storage re-routing for server fault-tolerance on computer networks|
|US5634006||11 Oct 1995||27 May 1997||International Business Machines Corporation||System and method for ensuring QOS in a token ring network utilizing an access regulator at each node for allocating frame size for plural transmitting applications based upon negotiated information and priority in the network|
|US5638443||23 Nov 1994||10 Jun 1997||Xerox Corporation||System for controlling the distribution and use of composite digital works|
|US5644714||10 Apr 1995||1 Jul 1997||Elonex Plc, Ltd.||Video collection and distribution system with interested item notification and download on demand|
|US5646676||30 May 1995||8 Jul 1997||International Business Machines Corporation||Scalable interactive multimedia server system for providing on demand data|
|US5649186||7 Aug 1995||15 Jul 1997||Silicon Graphics Incorporated||System and method for a computer-based dynamic information clipping service|
|US5659729||1 Feb 1996||19 Aug 1997||Sun Microsystems, Inc.||Method and system for implementing hypertext scroll attributes|
|US5666362||25 Jul 1995||9 Sep 1997||3Com Corporation||Method and apparatus for asynchronous PPP and synchronous PPP conversion|
|US5671279||13 Nov 1995||23 Sep 1997||Netscape Communications Corporation||Electronic commerce using a secure courier system|
|US5675734||27 Feb 1996||7 Oct 1997||Parsec Sight/Sound, Inc.||System for transmitting desired digital video or audio signals|
|US5682512||30 Jun 1995||28 Oct 1997||Intel Corporation||Use of deferred bus access for address translation in a shared memory clustered computer system|
|US5699513||31 Mar 1995||16 Dec 1997||Motorola, Inc.||Method for secure network access via message intercept|
|US5708780||7 Jun 1995||13 Jan 1998||Open Market, Inc.||Internet server access control and monitoring systems|
|US5712979||20 Sep 1995||27 Jan 1998||Infonautics Corporation||Method and apparatus for attaching navigational history information to universal resource locator links on a world wide web page|
|US5715453||31 May 1996||3 Feb 1998||International Business Machines Corporation||Web server mechanism for processing function calls for dynamic data queries in a web page|
|US5721914||14 Sep 1995||24 Feb 1998||Mci Corporation||System and method for hierarchical data distribution|
|US5734831||26 Apr 1996||31 Mar 1998||Sun Microsystems, Inc.||System for configuring and remotely administering a unix computer over a network|
|US5740423||28 Dec 1995||14 Apr 1998||Csg Systems, Inc.||System and method for accessing distributed data on a plurality of databases|
|US5742762||19 May 1995||21 Apr 1998||Telogy Networks, Inc.||Network management gateway|
|US5751961||31 Jan 1996||12 May 1998||Bell Communications Research, Inc.||Integrated internet system for translating logical addresses of internet documents to physical addresses using integrated service control point|
|US5761507||5 Mar 1996||2 Jun 1998||International Business Machines Corporation||Client/server architecture supporting concurrent servers within a server with a transaction manager providing server/connection decoupling|
|US5761663||15 May 1997||2 Jun 1998||International Business Machines Corporation||Method for distributed task fulfillment of web browser requests|
|US5764906||7 Nov 1995||9 Jun 1998||Netword Llc||Universal electronic resource denotation, request and delivery system|
|US5774660||5 Aug 1996||30 Jun 1998||Resonate, Inc.||World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network|
|US5774668||7 Jun 1995||30 Jun 1998||Microsoft Corporation||System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing|
|US5777988||17 Apr 1996||7 Jul 1998||Bell Communications Research, Inc.||System and method for equalizing delay in a dynamic packet switching network|
|US5777989||19 Dec 1995||7 Jul 1998||International Business Machines Corporation||TCP/IP host name resolution for machines on several domains|
|US5784058||28 May 1996||21 Jul 1998||Sun Microsystems, Inc.||User-controllable persistent browser display pages|
|US5796952||21 Mar 1997||18 Aug 1998||Dot Com Development, Inc.||Method and apparatus for tracking client interaction with a network resource and creating client profiles and resource database|
|US5799141||9 Jun 1995||25 Aug 1998||Qualix Group, Inc.||Real-time data protection system and method|
|US5802106||6 Dec 1996||1 Sep 1998||Packeteer, Inc.||Method for rapid data rate detection in a packet communication environment without data rate supervision|
|US5802291||30 Mar 1995||1 Sep 1998||Sun Microsystems, Inc.||System and method to control and administer distributed object servers using first class distributed objects|
|US5812769||20 Sep 1995||22 Sep 1998||Infonautics Corporation||Method and apparatus for redirecting a user to a new location on the world wide web using relative universal resource locators|
|US5815664||19 Mar 1996||29 Sep 1998||Fujitsu Limited||Address reporting device and method for detecting authorized and unauthorized addresses in a network environment|
|US5826031||10 Jun 1996||20 Oct 1998||Sun Microsystems, Inc.||Method and system for prioritized downloading of embedded web objects|
|US5828847||19 Apr 1996||27 Oct 1998||Storage Technology Corporation||Dynamic server switching for maximum server availability and load balancing|
|US5832506||29 Mar 1996||3 Nov 1998||Intel Corporation||Directory for network servers|
|US5832514||26 Jun 1996||3 Nov 1998||Microsoft Corporation||System and method for discovery based data recovery in a store and forward replication process|
|US5835718||10 Apr 1996||10 Nov 1998||At&T Corp||URL rewriting pseudo proxy server|
|US5838906||17 Oct 1994||17 Nov 1998||The Regents Of The University Of California||Distributed hypermedia method for automatically invoking external application providing interaction and display of embedded objects within a hypermedia document|
|US5845303||2 Oct 1996||1 Dec 1998||Netpodium, Inc.||Document processing using frame-based templates with hierarchical tagging|
|US5856974||13 Feb 1996||5 Jan 1999||Novell, Inc.||Internetwork address mapping gateway|
|US5862339||9 Jul 1996||19 Jan 1999||Webtv Networks, Inc.||Client connects to an internet access provider using algorithm downloaded from a central server based upon client's desired criteria after disconnected from the server|
|US5867706||19 Dec 1996||2 Feb 1999||International Business Machines Corp.||Method of load balancing across the processors of a server|
|US5867799||4 Apr 1996||2 Feb 1999||Lang; Andrew K.||Information system and method for filtering a massive flow of information entities to meet user information classification needs|
|US5870546||23 Dec 1997||9 Feb 1999||Infoseek Corporation||Method and apparatus for redirection of server external hyper-link reference|
|US5870559||11 Apr 1997||9 Feb 1999||Mercury Interactive||Software system and associated methods for facilitating the analysis and management of web sites|
|US5878212||31 Jul 1995||2 Mar 1999||At&T Corp.||System for updating mapping or virtual host names to layer-3 address when multimedia server changes its usage state to busy or not busy|
|US5884038||2 May 1997||16 Mar 1999||Whowhere? Inc.||Method for providing an Internet protocol address with a domain name server|
|US5890171||6 Aug 1996||30 Mar 1999||Microsoft Corporation||Computer system and computer-implemented method for interpreting hypertext links in a document when including the document within another document|
|US5893116||30 Sep 1996||6 Apr 1999||Novell, Inc.||Accessing network resources using network resource replicator and captured login script for use when the computer is disconnected from the network|
|US5894554||23 Apr 1996||13 Apr 1999||Infospinner, Inc.||System for managing dynamic web page generation requests by intercepting request at web server and routing to page server thereby releasing web server to process other requests|
|US5896533||6 Jul 1995||20 Apr 1999||Intel Corporation||Accessing internets world-wide web through object linking and embedding technology|
|US5903723||21 Dec 1995||11 May 1999||Intel Corporation||Method and apparatus for transmitting electronic mail attachments with attachment references|
|US5907704||2 Oct 1996||25 May 1999||Quark, Inc.||Hierarchical encapsulation of instantiated objects in a multimedia authoring system including internet accessible objects|
|US5913028||6 Oct 1995||15 Jun 1999||Xpoint Technologies, Inc.||Client/server data traffic delivery system and method|
|US5913033||20 Dec 1996||15 Jun 1999||International Business Machines Corporation||Apparatus and method for retrieving information using standard objects|
|US5918010||6 Feb 1998||29 Jun 1999||General Internet, Inc.||Collaborative internet data mining systems|
|US5919247||24 Jul 1996||6 Jul 1999||Marimba, Inc.||Method for the distribution of code and data updates|
|US5920701||28 Aug 1996||6 Jul 1999||Starburst Communications Corporation||Scheduling data transmission|
|US5931904||11 Oct 1996||3 Aug 1999||At&T Corp.||Method for reducing the delay between the time a data page is requested and the time the data page is displayed|
|US5933832||10 Sep 1997||3 Aug 1999||Kabushiki Kaisha Toshiba||Retrieval system for frequently updated data distributed on network|
|US5935207||9 Apr 1997||10 Aug 1999||Webtv Networks, Inc.||Method and apparatus for providing remote site administrators with user hits on mirrored web sites|
|US5944780||5 May 1997||31 Aug 1999||At&T Corp||Network with shared caching|
|US5945989||25 Mar 1997||31 Aug 1999||Premiere Communications, Inc.||Method and apparatus for adding and altering content on websites|
|US5956489||16 Jan 1996||21 Sep 1999||Microsoft Corporation||Transaction replication system and method for supporting replicated transaction-based services|
|US5956716||7 Jun 1996||21 Sep 1999||Intervu, Inc.||System and method for delivery of video data over a computer network|
|US5958008||11 Apr 1997||28 Sep 1999||Mercury Interactive Corporation||Software system and associated methods for scanning and mapping dynamically-generated web documents|
|US5961596||14 Feb 1997||5 Oct 1999||Hitachi, Ltd.||Method of monitoring a computer system, featuring performance data distribution to plural monitoring processes|
|US5966440||6 Jun 1995||12 Oct 1999||Parsec Sight/Sound, Inc.||System and method for transmitting desired digital video or digital audio signals|
|US5968121||13 Aug 1997||19 Oct 1999||Microsoft Corporation||Method and apparatus for representing and applying network topological data|
|US5973696||8 Aug 1997||26 Oct 1999||Agranat Systems, Inc.||Embedded web server|
|US5978791||24 Oct 1997||2 Nov 1999||Kinetech, Inc.||Data processing system using substantially unique identifiers to identify data items, whereby identical data items have the same identifiers|
|US5983214||5 Nov 1998||9 Nov 1999||Lycos, Inc.||System and method employing individual user content-based data and user collaborative feedback data to evaluate the content of an information entity in a large information communication network|
|US5983227||12 Jun 1997||9 Nov 1999||Yahoo, Inc.||Dynamic page generator|
|US5987606||19 Mar 1997||16 Nov 1999||Bascom Global Internet Services, Inc.||Method and system for content filtering information retrieved from an internet computer network|
|US5991809||25 Jul 1997||23 Nov 1999||Clearway Technologies, Llc||Web serving system that coordinates multiple servers to optimize file transfers|
|US5996025||31 Oct 1997||30 Nov 1999||International Business Machines Corp.||Network transparent access framework for multimedia serving|
|US6002720||10 Apr 1996||14 Dec 1999||H. Lee Browne, D/B/A Greenwich Information Technologies Llc||Audio and video transmission and receiving system|
|US6003030||18 Oct 1996||14 Dec 1999||Intervu, Inc.||System and method for optimized storage and retrieval of data on a distributed computer network|
|US6006264||30 Mar 1998||21 Dec 1999||Arrowpoint Communications, Inc.||Method and system for directing a flow between a client and a server|
|US6012090||14 Mar 1997||4 Jan 2000||At&T Corp.||Client-side parallel requests for network services using group name association|
|US6014686||20 Jun 1997||11 Jan 2000||Telcordia Technologies, Inc.||Apparatus and methods for highly available directory services in the distributed computing environment|
|US6014698||11 Jun 1997||11 Jan 2000||Matchlogic, Inc.||System using first banner request that can not be blocked from reaching a server for accurately counting displays of banners on network terminals|
|US6018516||14 Nov 1997||25 Jan 2000||Packeteer, Inc.||Method for minimizing unneeded retransmission of packets in a packet communication environment supporting a plurality of data link rates|
|US6021426||1 Dec 1997||1 Feb 2000||At&T Corp||Method and apparatus for dynamic data transfer on a web page|
|US6026440||27 Jan 1997||15 Feb 2000||International Business Machines Corporation||Web server account manager plug-in for monitoring resources|
|US6029175||7 Jun 1996||22 Feb 2000||Teknowledge Corporation||Automatic retrieval of changed files by a network software agent|
|US6029176||25 Nov 1997||22 Feb 2000||Cannon Holdings, L.L.C.||Manipulating and analyzing data using a computer system having a database mining engine resides in memory|
|US6035332||6 Oct 1997||7 Mar 2000||Ncr Corporation||Method for monitoring user interactions with web pages from web server using data and command lists for maintaining information visited and issued by participants|
|US6038216||1 Nov 1996||14 Mar 2000||Packeteer, Inc.||Method for explicit data rate control in a packet communication environment without data rate supervision|
|US6038310||1 Aug 1995||14 Mar 2000||British Telecommunications Public Limited Company||Service node for a telephony network|
|US6038610||17 Jul 1996||14 Mar 2000||Microsoft Corporation||Storage of sitemaps at server sites for holding information regarding content|
|US6041307||23 Jan 1998||21 Mar 2000||Lucent Technologies Inc.||Technique for effectively managing resources in a network|
|US6041324||17 Nov 1997||21 Mar 2000||International Business Machines Corporation||System and method for identifying valid portion of computer resource identifier|
|US6044405||12 Apr 1996||28 Mar 2000||Wam!Net Inc.||Service network incorporating geographically-remote hubs linked by high speed transmission paths|
|US6046980||24 Nov 1997||4 Apr 2000||Packeteer, Inc.||System for managing flow bandwidth utilization at network, transport and application layers in store and forward network|
|US6049831||13 Feb 1997||11 Apr 2000||Gte Laboratories Incorporated||System for transmitting network-related information where requested network information is separately transmitted as definitions and display information|
|US6052718||7 Jan 1997||18 Apr 2000||Sightpath, Inc||Replica routing|
|US6052730||9 Jan 1998||18 Apr 2000||The Board Of Trustees Of The Leland Stanford Junior University||Method for monitoring and/or modifying web browsing sessions|
|US6065051||15 Apr 1998||16 May 2000||Hewlett-Packard Company||Apparatus and method for communication between multiple browsers|
|US6065062||10 Dec 1997||16 May 2000||Cisco Systems, Inc.||Backup peer pool for a routed computer network|
|US6070191||17 Oct 1997||30 May 2000||Lucent Technologies Inc.||Data distribution techniques for load-balanced fault-tolerant web access|
|US6081829||31 Jan 1996||27 Jun 2000||Silicon Graphics, Inc.||General purpose web annotations without modifying browser|
|US6092112||14 Jan 1997||18 Jul 2000||Matsushita Electric Industrial Co., Ltd.||Distributing information through an open network to many and unspecific clients being in different retaining situations with an information server|
|US6092204||8 Jun 1999||18 Jul 2000||At&T Corp||Filtering for public databases with naming ambiguities|
|US6098078||23 Dec 1996||1 Aug 2000||Lucent Technologies Inc.||Maintaining consistency of database replicas|
|US6105028||26 Jun 1997||15 Aug 2000||Digital Equipment Corporation||Method and apparatus for accessing copies of documents using a web browser request interceptor|
|US6108673||25 Feb 1997||22 Aug 2000||International Business Machines Corporation||System for creating a form from a template that includes replication block|
|US6108703||19 May 1999||22 Aug 2000||Massachusetts Institute Of Technology||Global hosting system|
|US6112231||27 Oct 1998||29 Aug 2000||At&T Corp.||Server to cache protocol for improved web performance|
|US6112239||18 Jun 1997||29 Aug 2000||Intervu, Inc||System and method for server-side optimization of data delivery on a distributed computer network|
|US6112240||3 Sep 1997||29 Aug 2000||International Business Machines Corporation||Web site client information tracker|
|US6115357||29 Jun 1998||5 Sep 2000||Packeteer, Inc.||Method for pacing data flow in a packet-based network|
|US6115752||21 May 1998||5 Sep 2000||Sun Microsystems, Inc.||System and method for server selection for mirrored sites|
|US6119143||22 May 1997||12 Sep 2000||International Business Machines Corporation||Computer system and method for load balancing with selective control|
|US6125388||1 Dec 1997||26 Sep 2000||Reisman; Richard R.||System for transporting information objects between a user station and multiple remote sources based upon user modifiable object manifest stored in the user station|
|US6125394||6 Jun 1997||26 Sep 2000||At&T Corporation||Computer system having a plurality of resources and utilizing a selection mechanism to select the resources based upon historical loading|
|US6128601||2 Mar 1998||3 Oct 2000||Atcom, Inc.||Active client to communications network connection apparatus and method|
|US6128660||20 Mar 1997||3 Oct 2000||Hearme||Network match maker|
|US6130890||11 Sep 1998||10 Oct 2000||Digital Island, Inc.||Method and system for optimizing routing of data packets|
|US6134583||1 Jul 1996||17 Oct 2000||Sun Microsystems, Inc.||Method, system, apparatus and article of manufacture for providing identity-based caching services to a plurality of computer systems (#16)|
|US6144375||14 Aug 1998||7 Nov 2000||Praja Inc.||Multi-perspective viewer for content-based interactivity|
|US6144702||23 Jul 1998||7 Nov 2000||Greenwich Information Technologies, Llc||Audio and video transmission and receiving system|
|US6144996||12 Aug 1998||7 Nov 2000||Compaq Computer Corporation||Method and apparatus for providing a guaranteed minimum level of performance for content delivery over a network|
|US6151624||3 Feb 1998||21 Nov 2000||Realnames Corporation||Navigating network resources based on metadata|
|US6154738||21 May 1999||28 Nov 2000||Call; Charles Gainor||Methods and apparatus for disseminating product information via the internet using universal product codes|
|US6154744||17 Dec 1998||28 Nov 2000||Intervu, Inc.||System and method for optimized storage and retrieval of data on a distributed computer network|
|US6154753||12 Sep 1996||28 Nov 2000||Cable & Wireless, Inc.||Document management system and method for business quality modeling|
|US6154777||1 Jul 1996||28 Nov 2000||Sun Microsystems, Inc.||System for context-dependent name resolution|
|US6163779||29 Sep 1997||19 Dec 2000||International Business Machines Corporation||Method of saving a web page to a local hard drive to enable client-side browsing|
|US6167427||28 Nov 1997||26 Dec 2000||Lucent Technologies Inc.||Replication service system and method for directing the replication of information servers based on selected plurality of servers load|
|US6173311||13 Feb 1997||9 Jan 2001||Pointcast, Inc.||Apparatus, method and article of manufacture for servicing client requests on a network|
|US6173322||5 Jun 1997||9 Jan 2001||Silicon Graphics, Inc.||Network request distribution based on static rules and dynamic performance data|
|US6178160||23 Dec 1997||23 Jan 2001||Cisco Technology, Inc.||Load balancing of client connections across a network using server based algorithms|
|US6181867||7 Jun 1995||30 Jan 2001||Intervu, Inc.||Video storage and retrieval system|
|US6185598||10 Feb 1998||6 Feb 2001||Digital Island, Inc.||Optimized network resource location|
|US6185619||7 Nov 1997||6 Feb 2001||Genuity Inc.||Method and apparatus for balancing the process load on network servers according to network and serve based policies|
|US6189030||1 May 1998||13 Feb 2001||Infoseek Corporation||Method and apparatus for redirection of server external hyper-link references|
|US6189039||10 Apr 1997||13 Feb 2001||International Business Machines Corporation||Selective tunneling of streaming data|
|US6195680||23 Jul 1998||27 Feb 2001||International Business Machines Corporation||Client-based dynamic switching of streaming servers for fault-tolerance and load balancing|
|US6205120||13 Mar 1998||20 Mar 2001||Packeteer, Inc.||Method for transparently determining and setting an optimal minimum required TCP window size|
|US6226618||13 Aug 1998||1 May 2001||International Business Machines Corporation||Electronic content delivery system|
|US6226642||11 Sep 1997||1 May 2001||International Business Machines Corporation||Content modification of internet web pages for a television class display|
|US6230196||12 Nov 1997||8 May 2001||International Business Machines Corporation||Generation of smart HTML anchors in dynamic web page creation|
|US6243760||24 Jun 1997||5 Jun 2001||Vistar Telecommunications Inc.||Information dissemination system with central and distributed caches|
|US6249810||27 Apr 1999||19 Jun 2001||Chaincast, Inc.||Method and system for implementing an internet radio device for receiving and/or transmitting media information|
|US6256675||6 May 1998||3 Jul 2001||At&T Corp.||System and method for allocating requests for objects and managing replicas of objects on a network|
|US6263313||30 Nov 1998||17 Jul 2001||International Business Machines Corporation||Method and apparatus to create encoded digital content|
|US6266699||17 Apr 1997||24 Jul 2001||Siemens Aktiengesellschaft||Control in an intelligent network|
|US6269394||16 Dec 1998||31 Jul 2001||Brian Kenner||System and method for delivery of video data over a computer network|
|US6272566||18 Nov 1998||7 Aug 2001||International Business Machines Corporation||System for maintaining proper buffering within video play list|
|US6275470||18 Jun 1999||14 Aug 2001||Digital Island, Inc.||On-demand overlay routing for computer-based communication networks|
|US6282569||3 Jun 1997||28 Aug 2001||International Business Machines Corp.||Name server computer having a load levelling facility to spread the load from client computers across a plurality of server computers|
|US6282574||24 Feb 2000||28 Aug 2001||Bell Atlantic Network Services, Inc.||Method, server and telecommunications system for name translation on a conditional basis and/or to a telephone number|
|US6286045||19 May 1997||4 Sep 2001||Matchlogic, Inc.||Information storage and delivery over a computer network using centralized intelligence to monitor and control the information being delivered|
|US6298041||27 Apr 1999||2 Oct 2001||Packeteer, Inc.||Method for explicit data rate control in a packet communication environment without data rate supervision|
|US6311214||29 Jun 1999||30 Oct 2001||Digimarc Corporation||Linking of computers based on optical sensing of digital data|
|US6314565||30 Apr 1998||6 Nov 2001||Intervu, Inc.||System and method for automated identification, retrieval, and installation of multimedia software components|
|US6327622||3 Sep 1998||4 Dec 2001||Sun Microsystems, Inc.||Load balancing in a network environment|
|US6330602||7 Nov 1997||11 Dec 2001||Nortel Networks Limited||Scaleable web server and method of efficiently managing multiple servers|
|US6332195||22 Feb 1999||18 Dec 2001||Secure Computing Corporation||Secure server utilizing separate protocol stacks|
|US6338044||17 Mar 1999||8 Jan 2002||Loudeye Technologies, Inc.||Personal digital content system|
|US6347085||14 Aug 1997||12 Feb 2002||Netspeak Corporation||Method and apparatus for establishing communications between packet-switched and circuit-switched networks|
|US6360256||1 Jul 1996||19 Mar 2002||Sun Microsystems, Inc.||Name service for a redundant array of internet servers|
|US6370571||5 Mar 1997||9 Apr 2002||At Home Corporation||System and method for delivering high-performance online multimedia services|
|US6370580||15 Sep 1999||9 Apr 2002||Clearway Acquisition, Inc.||Web serving system that coordinates multiple servers to optimize file transfers|
|US6398245||1 Dec 1998||4 Jun 2002||International Business Machines Corporation||Key management system for digital content player|
|US6405252||23 Aug 2000||11 Jun 2002||Speedera Networks, Inc.||Integrated point of presence server network|
|US6405257||27 Aug 1998||11 Jun 2002||Verizon Laboratories Inc.||Method and system for burst congestion control in an internet protocol network|
|US6412000||23 Nov 1998||25 Jun 2002||Packeteer, Inc.||Method for automatically classifying traffic in a packet communications network|
|US6415280||1 Apr 1999||2 Jul 2002||Kinetech, Inc.||Identifying and requesting data in network using identifiers which are based on contents of data|
|US6418421||10 Dec 1998||9 Jul 2002||International Business Machines Corporation||Multimedia player for an electronic content delivery system|
|US6421726||1 Mar 1998||16 Jul 2002||Akamai Technologies, Inc.||System and method for selection and retrieval of diverse types of video data on a computer network|
|US6430618||13 Mar 1998||6 Aug 2002||Massachusetts Institute Of Technology||Method and apparatus for distributing requests among a plurality of resources|
|US6442549||15 Nov 1999||27 Aug 2002||Eric Schneider||Method, product, and apparatus for processing reusable information|
|US6456630||7 Dec 1998||24 Sep 2002||Packeteer, Inc.||Method for data rate control for heterogenous or peer internetworking|
|US6460082||17 Jun 1999||1 Oct 2002||International Business Machines Corporation||Management of service-oriented resources across heterogeneous media servers using homogenous service units and service signatures to configure the media servers|
|US6460085||6 May 1999||1 Oct 2002||Mentat Inc.||Method and system for managing memory in an internet over satellite connection|
|US6463454||17 Jun 1999||8 Oct 2002||International Business Machines Corporation||System and method for integrated load distribution and resource management on internet environment|
|US6463508||19 Jul 1999||8 Oct 2002||International Business Machines Corporation||Method and apparatus for caching a media stream|
|US6470389||14 Mar 1997||22 Oct 2002||Lucent Technologies Inc.||Hosting a network service on a cluster of servers using a single-address image|
|US6473405||25 Jun 2001||29 Oct 2002||Digital Island, Inc.||On-demand overlay routing for computer-based communication networks|
|US6480893||21 Apr 2000||12 Nov 2002||Clearway Acquisition, Inc.||Web serving system|
|US6484143||18 Aug 2000||19 Nov 2002||Speedera Networks, Inc.||User device and system for traffic management and content distribution over a world wide area network|
|US6484204||24 May 2001||19 Nov 2002||At&T Corp.||System and method for allocating requests for objects and managing replicas of objects on a network|
|US6490580||29 Oct 1999||3 Dec 2002||Verizon Laboratories Inc.||Hypervideo information retrieval usingmultimedia|
|US6493707||29 Oct 1999||10 Dec 2002||Verizon Laboratories Inc.||Hypervideo: information retrieval using realtime buffers|
|US6496856||18 May 2000||17 Dec 2002||Akamai Technologies, Inc.||Video storage and retrieval system|
|US6502125||9 Aug 2000||31 Dec 2002||Akamai Technologies, Inc.||System and method for optimized storage and retrieval of data on a distributed computer network|
|US6502215||17 Apr 2001||31 Dec 2002||Micron Technology, Inc.||Self-test RAM using external synchronous clock|
|US6505248||24 Mar 1999||7 Jan 2003||Gte Data Services Incorporated||Method and system for monitoring and dynamically reporting a status of a remote server|
|US6529477||2 Feb 1999||4 Mar 2003||Mentat Inc.||Internet over satellite system|
|US6553413||28 Jun 2000||22 Apr 2003||Massachusetts Institute Of Technology||Content delivery network using edge-of-network servers for providing content delivery to a set of participating content providers|
|US6553420||2 Jun 1998||22 Apr 2003||Massachusetts Institute Of Technology||Method and apparatus for distributing requests among a plurality of resources|
|US6557054||20 Apr 2000||29 Apr 2003||Richard R. Reisman||Method and system for distributing updates by presenting directory of software available for user installation that is not already installed on user station|
|US6564251||3 Dec 1998||13 May 2003||Microsoft Corporation||Scalable computing system for presenting customized aggregation of information|
|US6577595||12 Nov 1999||10 Jun 2003||Genuity Inc.||Systems and methods for transporting associated data signals over a network|
|US6581090||30 Sep 1997||17 Jun 2003||Mirror Image Internet, Inc.||Internet communication system|
|US6584083||2 Feb 1999||24 Jun 2003||Mentat Inc.||Internet over satellite method|
|US6587837||1 Dec 1998||1 Jul 2003||International Business Machines Corporation||Method for delivering electronic content from an online store|
|US6591299||24 May 2002||8 Jul 2003||Packeteer, Inc.||Method for automatically classifying traffic with enhanced hierarchy in a packet communications network|
|US6611862||20 Apr 2000||26 Aug 2003||Richard R. Reisman||User station software that controls transport and presentation of content from a remote source|
|US6625643||13 Nov 1999||23 Sep 2003||Akamai Technologies, Inc.||System and method for resource management on a data network|
|US6654344||6 May 1999||25 Nov 2003||Mentat Inc.||Method and system for controlling data flow in an internet over satellite connection|
|US6654807||6 Dec 2001||25 Nov 2003||Cable & Wireless Internet Services, Inc.||Internet content delivery network|
|US6658464||20 Apr 2000||2 Dec 2003||Richard R. Reisman||User station software that controls transport, storage, and presentation of content from a remote source|
|US6665706||30 Dec 2002||16 Dec 2003||Akamai Technologies, Inc.||System and method for optimized storage and retrieval of data on a distributed computer network|
|US6665726||6 Jan 2000||16 Dec 2003||Akamai Technologies, Inc.||Method and system for fault tolerant media streaming over the internet|
|US6691148||24 Dec 1998||10 Feb 2004||Verizon Corporate Services Group Inc.||Framework for providing quality of service requirements in a distributed object-oriented computer system|
|US6694358||23 Aug 2000||17 Feb 2004||Speedera Networks, Inc.||Performance computer network method|
|US6699418||14 Feb 2002||2 Mar 2004||Kuraray Co., Ltd.||Method for producing biaxially stretched film made of ethylene-vinyl alcohol copolymer|
|US6708137||16 Jul 2001||16 Mar 2004||Cable & Wireless Internet Services, Inc.||System and method for providing composite variance analysis for network operation|
|US6718328||28 Feb 2000||6 Apr 2004||Akamai Technologies, Inc.||System and method for providing controlled and secured access to network resources|
|US6741563||31 Aug 2001||25 May 2004||Packeteer, Inc.||Method for explicit data rate control in a packet communication environment without data rate supervision|
|US6751673||3 Jan 2001||15 Jun 2004||Akamai Technologies, Inc.||Streaming media subscription mechanism for a content delivery network|
|US6754699||19 Jul 2001||22 Jun 2004||Speedera Networks, Inc.||Content delivery and global traffic management network system|
|US6754706||11 Aug 2000||22 Jun 2004||Speedera Networks, Inc.||Scalable domain name system with persistence and load balancing|
|US6763377||3 Mar 2000||13 Jul 2004||International Business Machines Corporation||Asset management and scheduling graphical user interface for media streamer|
|US6763388||10 Aug 1999||13 Jul 2004||Akamai Technologies, Inc.||Method and apparatus for selecting and viewing portions of web pages|
|US6778502||27 Jul 2001||17 Aug 2004||Savvis, Inc.||On-demand overlay routing for computer-based communication networks|
|US6785704||3 Jul 2000||31 Aug 2004||Fastforward Networks||Content distribution system for operation over an internetwork including content peering arrangements|
|US6799221||4 Aug 2000||28 Sep 2004||Akamai Technologies, Inc.||System and method for server-side optimization of data delivery on a distributed computer network|
|US6801576||7 Jun 2000||5 Oct 2004||Loudeye Corp.||System for accessing, distributing and maintaining video content over public and private internet protocol networks|
|US6834306||10 Aug 1999||21 Dec 2004||Akamai Technologies, Inc.||Method and apparatus for notifying a user of changes to certain parts of web pages|
|US6842604||12 Oct 2001||11 Jan 2005||Loudeye Corporation||Personal digital content system|
|US6859791||13 Nov 2000||22 Feb 2005||International Business Machines Corporation||Method for determining internet users geographic region|
|US6870851||26 May 2000||22 Mar 2005||Savvis, Inc.||Method and system for optimizing routing of data packets|
|US6874032||15 Nov 2001||29 Mar 2005||Verizon Laboratories Inc.||Method and system for burst congestion control in an internet protocol network|
|US6901604||27 Apr 1999||31 May 2005||Chaincast, Inc.||Method and system for ensuring continuous data flow between re-transmitters within a chaincast communication system|
|US6915329||11 Jun 2001||5 Jul 2005||Xcelera||Web serving system|
|US6928442||15 Nov 2001||9 Aug 2005||Kinetech, Inc.||Enforcement and policing of licensed content using content-based identifiers|
|US6934255||28 Jan 2000||23 Aug 2005||Packeteer, Inc.||Internet over satellite apparatus|
|US6950623||18 Sep 2001||27 Sep 2005||Loudeye Corporation||Methods and systems for dynamically serving in-stream advertisements|
|US6963910||3 Mar 2000||8 Nov 2005||International Business Machines Corporation||Graphical user interface for creating assets|
|US6963980||16 Nov 2000||8 Nov 2005||Protegrity Corporation||Combined hardware and software based encryption of databases|
|US6963981||29 Jan 2002||8 Nov 2005||Akamai Technologies, Inc.||Method and apparatus for remote installation of an operating system over a network connection|
|US6965890||3 Oct 2002||15 Nov 2005||Verizon Laboratories Inc.||Hyper video: information retrieval using realtime buffers|
|US6970432||18 Jun 2001||29 Nov 2005||Packeteer, Inc.||System and method for dynamically identifying internal hosts in a heterogeneous computing environment with multiple subnetworks|
|US6973485||30 Oct 2002||6 Dec 2005||Hitachi, Ltd.||Proxy server selecting server and proxy server|
|US6973490||23 Jun 2000||6 Dec 2005||Savvis Communications Corp.||Method and system for object-level web performance and analysis|
|US6981050||11 Feb 2000||27 Dec 2005||Loudeye Corp.||Digital remote recorder|
|US6981180||16 Mar 2001||27 Dec 2005||Akamai Technologies, Inc.||Method and apparatus for testing request-response service using live connection traffic|
|US6996616||17 Apr 2001||7 Feb 2006||Akamai Technologies, Inc.||HTML delivery from edge-of-network servers in a content delivery network (CDN)|
|US7003572||30 Apr 2001||21 Feb 2006||Packeteer, Inc.||System and method for efficiently forwarding client requests from a proxy server in a TCP/IP computing environment|
|US7007089||6 Jun 2002||28 Feb 2006||Akarnai Technologies, Inc.||Content delivery network map generation using passive measurement data|
|US7010578||21 Sep 2000||7 Mar 2006||Akamai Technologies, Inc.||Internet content delivery service with third party cache interface support|
|US7012900||22 Aug 2001||14 Mar 2006||Packeteer, Inc.||Method for measuring network delay using gap time|
|US7039633||3 Oct 2002||2 May 2006||Verizon Laboratories Inc.||Hyper video: information retrieval using multimedia|
|US7047300||10 Feb 1998||16 May 2006||Sprint Communications Company L.P.||Survivable and scalable data system and method for computer networks|
|US7054935||13 Mar 2002||30 May 2006||Savvis Communications Corporation||Internet content delivery network|
|US7058706||7 Sep 2000||6 Jun 2006||Akamai Technologies, Inc.||Method and apparatus for determining latency between multiple servers and a client|
|US7069177||24 Dec 2003||27 Jun 2006||Savvis Communications P/S Corporation||System and method for providing composite variance analysis for network operation|
|US7096266||7 Jan 2002||22 Aug 2006||Akamai Technologies, Inc.||Extending an Internet content delivery network into an enterprise|
|US7103564||17 Aug 2000||5 Sep 2006||International Business Machines Corporation||Method and apparatus for performing personalization based on classification|
|US7103645||17 Apr 2003||5 Sep 2006||Massachusetts Institute Of Technology||Method and system for providing content delivery to a set of participating content providers|
|US7110984||13 Nov 2000||19 Sep 2006||International Business Machines Corporation||Updating usage conditions in lieu of download digital rights management protected content|
|US7117259||3 Mar 2000||3 Oct 2006||International Business Machines Corporation||Server time window for multiple selectable servers in a graphical user interface|
|US7185052 *||16 May 2001||27 Feb 2007||Akamai Technologies, Inc.||Meta content delivery network system|
|US7188085||20 Jul 2001||6 Mar 2007||International Business Machines Corporation||Method and system for delivering encrypted content with associated geographical-based advertisements|
|US7206748||10 Dec 1998||17 Apr 2007||International Business Machines Corporation||Multimedia player toolkit for electronic content delivery|
|US7254645||27 Mar 2001||7 Aug 2007||Nec Corporation||Quality assured network service provision system compatible with a multi-domain network and service provision method and service broker device|
|US7373644||2 Oct 2001||13 May 2008||Level 3 Communications, Llc||Automated server replication|
|US7577754||26 Apr 2001||18 Aug 2009||Adara Networks, Inc.||System and method for controlling access to content carried in a caching architecture|
|US20010029525||29 Jan 2001||11 Oct 2001||Lahr Nils B.||Method of utilizing a single uniform resource locator for resources with multiple formats|
|US20010056500||17 Aug 2001||27 Dec 2001||Digital Island, Inc.||Optimized network resource location|
|US20020018449||27 Jul 2001||14 Feb 2002||Digital Island, Inc.||On-demand overlay routing for computer-based communication networks|
|US20020023164||29 Jan 2001||21 Feb 2002||Lahr Nils B.||Method and apparatus for client-side authentication and stream selection in a content distribution system|
|US20020023165||29 Jan 2001||21 Feb 2002||Lahr Nils B.||Method and apparatus for encoder-based distribution of live video and other streaming content|
|US20020040404||29 Jan 2001||4 Apr 2002||Ibeam Broadcasting Corporation.||System and method for performing broadcast-enabled disk drive replication in a distributed data delivery network|
|US20020042817||29 Jan 2001||11 Apr 2002||Lahr Nils B.||System and method for mirroring and caching compressed data in a content distribution system|
|US20020046273||29 Jan 2001||18 Apr 2002||Lahr Nils B.||Method and system for real-time distributed data mining and analysis for network|
|US20020046405||29 Jan 2001||18 Apr 2002||Ibeam Broadcasting Corporation||System and method for determining optimal server in a distributed network for serving content streams|
|US20020049857||6 Dec 2001||25 Apr 2002||Digital Island, Inc.||Optimized network resource location|
|US20020059592||17 May 2001||16 May 2002||Chaincast, Inc.||Method and system for implementing an internet radio device for receiving and /or transmitting media information|
|US20020066038||29 Nov 2000||30 May 2002||Ulf Mattsson||Method and a system for preventing impersonation of a database user|
|US20020073199||29 May 2001||13 Jun 2002||Matthew Levine||Method for extending a network map|
|US20020078233||9 Jul 2001||20 Jun 2002||Alexandros Biliris||Method and apparatus for content distribution network brokering and peering|
|US20020082999||15 Oct 2001||27 Jun 2002||Cheol-Woong Lee||Method of preventing reduction of sales amount of records due to digital music file illegally distributed through communication network|
|US20020083124||11 May 2001||27 Jun 2002||Knox Christopher R.||Systems and methods for supporting the delivery of streamed content|
|US20020099850||13 Mar 2002||25 Jul 2002||Digital Island, Inc.||Internet content delivery network|
|US20020124080||30 May 2001||5 Sep 2002||Leighton F. Thomson||Method for predicting file download time from mirrored data centers in a global computer netwrok|
|US20020129134||29 May 2001||12 Sep 2002||Leighton F. Thomson||Global load balancing across mirrored data centers|
|US20020131645||16 Jan 2001||19 Sep 2002||Packeteer Incorporated||Method and apparatus for optimizing a JPEG image using regionally variable compression levels|
|US20020143798||1 Apr 2002||3 Oct 2002||Akamai Technologies, Inc.||Highly available distributed storage system for internet content with storage site redirection|
|US20020143888||1 Apr 2002||3 Oct 2002||Akamai Technologies, Inc.||Scalable, high performance and highly available distributed storage system for internet content|
|US20020147774||1 Apr 2002||10 Oct 2002||Akamai Technologies, Inc.||Content storage and replication in a managed internet content storage environment|
|US20020163882||1 Mar 2002||7 Nov 2002||Akamai Technologies, Inc.||Optimal route selection in a content delivery network|
|US20020199016||22 Jun 2001||26 Dec 2002||Freedman Avraham T.||Automated control of outbound transist links in a multi-homed BGP routing environment|
|US20030009444||14 Jun 2002||9 Jan 2003||Eidler Christopher William||Secured shared storage architecture|
|US20030018966||19 Oct 2001||23 Jan 2003||Cook David H.||System and method for selective insertion of content into streaming media|
|US20030028623||2 Aug 2002||6 Feb 2003||Hennessey Wade L.||Method and apparatus for facilitating distributed delivery of content across a computer network|
|US20030028626||2 Aug 2002||6 Feb 2003||Hennessey Wade L.||Dynamically configuring network communication parameters for an application|
|US20030028777||2 Aug 2002||6 Feb 2003||Hennessey Wade L.||Method and apparatus for facilitating secure distributed content delivery|
|US20030055972||9 Jul 2002||20 Mar 2003||Fuller William Tracy||Methods and systems for shared storage virtualization|
|US20030061263||26 Sep 2001||27 Mar 2003||Guy Riddle||Dynamic partitioning of network resources|
|US20030061280||24 Sep 2002||27 Mar 2003||Bulson Jason Andrew||Systems and methods for enhancing streaming media|
|US20030078888||15 Oct 2001||24 Apr 2003||Cheol-Woong Lee||System and method of sharing digital literary works while protecting against illegal reproduction through communication network|
|US20030078889||15 Oct 2001||24 Apr 2003||Cheol-Woong Lee||Method of preventing reduction of sales amount of records due to a digital music file illegally distributed through communication network|
|US20030105604||19 Jun 2002||5 Jun 2003||Ash Leslie E.||Real-time streaming media measurement system and method|
|US20030149581||28 Feb 2001||7 Aug 2003||Imran Chaudhri||Method and system for providing intelligent network content delivery|
|US20040022194||30 Jul 2003||5 Feb 2004||Digital Island, Inc.||On-demand overlay routing for computer-based communication networks|
|US20040039798||18 Jun 2003||26 Feb 2004||Ultradns, Inc.||Domain name resolution system and method|
|US20040139097||23 Dec 2003||15 Jul 2004||Kinetech, Inc.||Identifying data in a data processing system|
|US20040177148||17 Mar 2004||9 Sep 2004||Mark Tsimelzon||Method and apparatus for selecting and viewing portions of web pages|
|US20050033858||31 Aug 2004||10 Feb 2005||Swildens Eric Sven-Johan||Load balancing service|
|US20050038851||21 Sep 2004||17 Feb 2005||Xcelera, A Delaware Corporation||Web serving system|
|US20050100027||17 Dec 2004||12 May 2005||Savvis, Inc.||Method and system for optimizing routing of data packets|
|US20050114296||22 Dec 2004||26 May 2005||Savvis, Inc.||Content delivery network and associated methods and mechanisms|
|US20050262104||21 Jul 2005||24 Nov 2005||Savvis Communications Corporation||Method and system for internet performance monitoring and analysis|
|US20060143293||27 Feb 2006||29 Jun 2006||Akamai Technologies, Inc.||Content delivery network map generation using passive measurement data|
|AU763380B2||Title not available|
|CA2202572C||14 Apr 1997||10 Feb 2004||Ka Lun Eddie Law||A scaleable web server and method of efficiently managing multiple servers|
|CA2335661C||9 Feb 2001||6 Jan 2009||International Business Machines Corporation||Asset management and scheduling graphical user interface for media streamer|
|CA2335662C||9 Feb 2001||22 Jun 2010||International Business Machines Corporation||Graphical user interface for creating assets|
|CA2467998C||12 Aug 1999||25 Apr 2006||International Business Machines Corporation||System for tracking end-user electronic content usage|
|EP0800143B1||7 Apr 1997||22 Dec 2004||Sun Microsystems, Inc.||Method and apparatus for obtaining and displaying network server information|
|EP0801487A2||10 Apr 1997||15 Oct 1997||AT&T Corp.||A url rewriting pseudo proxy server|
|EP0817020A2||1 Jul 1997||7 Jan 1998||Sun Microsystems, Inc.||A name service for a redundant array of internet servers|
|EP0817444A2||30 Jun 1997||7 Jan 1998||Sun Microsystems, Inc.||System for context-dependent name resolution|
|EP0824236A2||1 Jul 1997||18 Feb 1998||International Business Machines Corporation||Computer system|
|EP0865180A2||3 Mar 1998||16 Sep 1998||Lucent Technologies Inc.||Load distribution among servers in a TCP/IP network|
|EP1104555A2||12 Aug 1999||6 Jun 2001||International Business Machines Corporation||System for tracking end-user electronic content usage|
|GB2281793A||Title not available|
|GB2353877B||Title not available|
|IL140935D0||Title not available|
|JP3566626B2||Title not available|
|JP3762649B2||Title not available|
|JP2000259539A||Title not available|
|JP2002522995T5||Title not available|
|JP2005124165A||Title not available|
|WO1999009726A||Title not available|
|WO1999029083A||Title not available|
|WO2000052594A||Title not available|
|1||"Content Management Technology/Industry News," Content Technologies Trends and Advice, Gilbane Report, News for Jun. 1999 [21 pages].|
|2||"Exporting Web Server Final Report," http://www.cs.technion.ac.il/Labs/Lccn/projects/spring97/project4/final-report.html, Spring 1997 (downloaded Jul. 7, 2007).|
|3||"Exporting Web Server Final Report," http://www.cs.technion.ac.il/Labs/Lccn/projects/spring97/project4/final—report.html, Spring 1997 (downloaded Jul. 7, 2007).|
|4||"Local Area Network Server Replacement Procedure", IBM Technical Disclosure Bulletin, vol. 38, No. 1, (Jan. 1995), 235-236.|
|5||"Patent Abstracts of Japan, Electronic Mail Multiplexing System and Communication Control Method in the System" (Appln. No. JP19930162529), (Jun. 30, 1993) (Pub. No. JP 7066829).|
|6||"Patent Abstracts of Japan, Method and Device for Repeating and Converting Information", (Appln. No. JP1996 0328583) (Pub. No. JP10171727), Jun. 26, 1998.|
|7||Adler, R. M., "Distributed Coordination Models for Client/Server Computing," Computer 28, 4 (Apr. 1995), 14-22.|
|8||Aggarwal, A. et al., "Performance of Dynamic Replication Schemes for an Internet Hosting Service". Technical Report, AT&T Labs, Oct. 1998.|
|9||Andresen et al., "SWEB: Towards a Scalable World Wide Web Server on Multicomputers", Proc. IPPS, (Apr. 15, 1996), 850-856.|
|10||Andresen, D., et al., Multiprocessor scheduling with client resources to improve the response time of WWW applications, Proc. 11th Int'l Conf. on Supercomputing (Austria, Jul. 1997). ICS '97. ACM Press, NY, NY, 92-99.|
|11||Awerbuch, B. et al., Distributed Paging for General Networks. In Proc. of the 7th ACM-SIAM Symposium on Discrete Algorithms, pp. 574-583, Jan. 1996.|
|12||Awerbuch, et al., Competitive Distributed File Allocation. in Proc. of the 25th Ann. ACM Symp. on Theory of Computing, pp. 164-173, May 1993.|
|13||Baentsch, M, et al. "Enhancing the Web's Infrastructure: From Caching to Replication." IEEE Internet Computing, 1(2):18-27, Mar. 1997.|
|14||Bartal, Y., et al., "Competitive Algorithms for Distributed Data Management", 24th Annual ACM STOC, May 1992, Victoria, B. C. Canada.|
|15||Basturk, E., et al., "Using network layer anycast for load distribution in the Internet," Tech. Rep., IBM T.J. Watson Research Center, Jul. 1997 (21 pgs.).|
|16||Berners-Lee et al., RFC 1738-Uniform Resource Locators, Dec. 1994.|
|17||Berners-Lee et al., RFC 1738—Uniform Resource Locators, Dec. 1994.|
|18||Bestavros, A., "Speculative Data Dissemination 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.|
|19||Bestavros, et al., "Server-Initiated Document Dissemination for the WWW," IEEE Data Engineering Bulletin 19(3):3-11, Sep. 1996.|
|20||Bhattacharjee et al., "Application-layer anycasting," in Proc. IEEE INFOCOM '97, Apr. 1997.|
|21||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, 1-2 (Dec. 1995), 37-51.|
|22||Brisco, T. P. RFC 1794: DNS support for load balancing, Apr. 1995.|
|23||Carter et al., "Dynamic server selection using bandwidth probing in wide-area networks," Tech. Rep. BU-CS-96-007, Comp. Sci. Dept., Boston University, Mar. 1996.|
|24||Carter et al., Server selection using dynamic path characterization in Wide-Area Networks, IEEE INFOCOM '97, Apr. 7-12, 1997 (pp. 1014-1021).|
|25||Carter, J. Lawrence et al., "Universal Classes of Hash Functions", Journal of Computer and System Sciences, vol. 18, No. 2, (Apr. 1979), 143-154.|
|26||Cate, V. "Alex: a global file system", in Proc. Usenix Conf. on File Systems, May 1992, pp. 1-11.|
|27||Chankhunthod, A. et al., "A Hierarchical Internet Object Cache", Proc. of the 1996 USENIX Technical Conf., Jan. 1996, pp. 153-163.|
|28||Cisco Systems, Inc., Cisco DistributedDirector 2500 Series Installation and Configuration Guide, pp. xix-xxii; 1-1 to 1-12; 6-1 to 6-18; 7-1 to 7-18; 8-1 to 8-24, Dec. 1997, downloaded Apr. 2007: http://www.cisco.com/univercd/cc/td/doc/product/iaabu/distrdir/dd2501/.|
|29||Cisco Systems, Inc., 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; Dec. 1997, [downloaded Apr. 2007 from http://www.cisco.com/univercd/cc/td/doc/product/iaabu/distrdir/dd4700m/].|
|30||Claims (amended) filed by applicant in Japanese Patent Application No. 2003-531370, Jan. 17, 2008 (English translation provided by foreign associate) [12 pgs.].|
|31||Claims (amended) filed by applicant in KIPO for Korean Patent Application No. KR 10 2004 7004613, Jul. 24, 2009 (English translation provided by foreign associate) [10 pgs.].|
|32||Cohen, J., et al., "Cache Array Routing Protocol v1.1", Sep. 29, 1997; http://tools.ietf.org/id/draft-vinod-carp-v1-01.txt (Last-Modified: Wed, Oct. 1, 1997).|
|33||Colajanni, M. and Yu, P. S. 1997. Adaptive TTL schemes for load balancing of distributed Web servers. SIGMETRICS Perform. Eval. Rev. 25, 2 (Sep. 1997), 36-42.|
|34||Communication (1 page) and European Search Report (with Annex) for Appln. No. EP 02799672.7, dated Apr. 17, 2008.|
|35||Cormen, T. H., et al., "Introduction to Algorithms", The MIT Press, Cambridge, Massachusetts, (1994), 219-243, 991-993.|
|36||Crovella et al., Dynamic server selection in the Internet, 3rd IEEE Workshop on the Arch. and Implementation of High Performance Computer Sys. '95, pp. 158-162, Aug. 1995.|
|37||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 (Aug. 1992). D. Oran, Ed. SIGCOMM '92. ACM Press, New York, NY, 281-292.|
|38||De Bra, P.M.E., et al., "Information Retrieval in the World Wide Web: Making Client-Based Searching Feasible", Computer Networks and ISDN Systems, NL, North Holland Publishing, Amsterdam, vol. 27, No. 2, ISSN: 0169-7552, (Nov. 1, 1994), 183-192.|
|39||Deering, S. E., et al, "Multicast routing in datagram internetworks and extended LANs," ACM Trans. Comput. Syst. 8, 2 (May 1990), 85-110.|
|40||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.|
|41||Doi, K. "Super Proxy Script-How to make distributed proxy servers by URL hashing," Sharp Corp., http://naragw.sharp.co.jp/sps/, dates unknown (1996-2000), download Jul. 7, 2007.|
|42||Doi, K. "Super Proxy Script—How to make distributed proxy servers by URL hashing," Sharp Corp., http://naragw.sharp.co.jp/sps/, dates unknown (1996-2000), download Jul. 7, 2007.|
|43||European Patent Application No. 02799672.7, file history as of Apr. 23, 2010 (downloaded from EPO).|
|44||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.|
|45||Floyd, S., et al., "A Reliable Multicast Framework for Light-Weight Sessions and Application Level Framing", In Proc. of ACM SIGCOMM '95, 342-356, Aug. 1995.|
|46||Fox, A., "A Framework for Separating Server Scalability and Availability from Internet Application Functionality," PhD thesis, University of California, Berkeley, Dec. 1998.|
|47||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.|
|48||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.|
|49||Gadde, S., et al., "Reduce, reuse, recycle: An approach to building large internet caches," in Workshop on Hot Topics in Operating Systems (HotOS), Apr. 1997, pp. 93-98.|
|50||Goldszmidt, et al., "Load Distribution for Scalable Web Servers: Summer Olympics 1996-A Case Study," In Proc. 8th IFIP/IEEE Int'l Workshop on Distributed Systems: Operations and Management, Sydney, Australia, Oct. 1997.|
|51||Goldszmidt, et al., "Load Distribution for Scalable Web Servers: Summer Olympics 1996—A Case Study," In Proc. 8th IFIP/IEEE Int'l Workshop on Distributed Systems: Operations and Management, Sydney, Australia, Oct. 1997.|
|52||Grigni, M., et al., "Tight Bounds on Minimum Broadcasts Networks", SIAM J. Disc. Math. 4 (May 1991), 207-222.|
|53||Gulbrandsen, A., et al., "A DNS RR for specifying the location of services (DNS SRV)", Network Working Group, RFC 2052, Oct. 1996.|
|54||Guyton et al., "Locating nearby copies of replicated Internet servers," Proc. ACM SIGCOMM '95, pp. 288-298, Oct. 1995.|
|55||Gwertzman, J., et al., "The Case for Geographical Push-Caching", Proc. Workshop on Hot OS '95, (May 4, 1995), 51-55.|
|56||Gwertzman, J., et al., "World-Wide Web Cache Consistency", Proc. 1996 USENIX Tech. Conf., pp. 141-151, San Diego, CA, Jan. 1996.|
|57||International Preliminary Examination Report (IPER), Form PCT/IPEA/409, for PCT/US02/30921, Oct., 2005 [5 pgs.].|
|58||International Search Report (ISR), Form PCT/ISA/210, for PCT/US02/30921, Jan. 28, 2004 [5 pgs.].|
|59||Japanese Patent Office (JPO) "Notice of Reasons for Rejection", for Japanese Patent Application No. 2003-531370, Jul. 17, 2007, "Organized Translation" provided by foreign associate [2 pgs.].|
|60||Japanese Patent Publication JP 10-70571,Jun., 1997, International Business Machines Corporation, English translation provided with Office Action [34 pgs.].|
|61||Japanese Patent Publication JP 5-130144, Published May 5, 1993, Fujitsu Ltd., English translation provided with Office Action [9 pgs.].|
|62||Jeffery, C., et al., "Proxy sharing proxy servers." In Proc. IEEE etaCOM Conf., pp. 116-119, May 1996.|
|63||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.|
|64||Korean Intellectual Property Office (KIPO), Notice of Preliminary Rejection (Non-Final)) for Korean Patent Application No. KR 10 2004 7004613, Apr. 24, 2009, English translation (provided by foreign associate) [5 pgs.].|
|65||Krishnamurthy, B. et al., Study of piggyback cache validation for proxy caches in the World Wide Web, in: Symp. on Internet Technology and Systems, USENIX Association, Dec. 1997.|
|66||Kwan et al., NCSA's World Wide Web Server: Design and Performance, IEEE, pp. 68-74, Nov. 1995.|
|67||Litwin, W., et al., "LH*-A Scalable, Distributed Data Structure", ACM Trans. on Database Systems, vol. 21, No. 4, pp. 480-525, Dec. 1996.|
|68||Litwin, W., et al., "LH*—A Scalable, Distributed Data Structure", ACM Trans. on Database Systems, vol. 21, No. 4, pp. 480-525, Dec. 1996.|
|69||Luotonen et al., World-Wide Web Proxies, CERN, Apr. 1994 (modified May 24, 1994).|
|70||Malpani, R., et al., "Making World Wide Web Caching Servers Cooperate", in Proc. 4th Int'l. World Wide Web Conf. (Dec. 1995), 10 pages (downloaded from http://www.w3.org/Conferences/WWW4/Papers/59/ on Jul. 7, 2007).|
|71||Mockapetris et al., "Development of the Domain Name System," Proc. SIGCOMM '88 Computer Communications Review, vol. 18, No. 4, Aug. 1988.|
|72||Mockapetris, P., RFC 1034: Domain Names-Concepts and Facilities, Nov. 1987.|
|73||Mockapetris, P., RFC 1034: Domain Names—Concepts and Facilities, Nov. 1987.|
|74||Mockapetris, P., RFC 1035: Domain Names-Implementation and Specification, Nov. 1987.|
|75||Mockapetris, P., RFC 1035: Domain Names—Implementation and Specification, Nov. 1987.|
|76||Mourad et al., "Scalable Web Server Architectures," iscc, 2nd IEEE Symposium on Computers and Communications (ISCC '97), Jul. 1997, pp. 12-16.|
|77||Nisan, N. 1990. Pseudorandom generators for space-bounded computations. In Proc. 22nd Annual ACM Symp. on theory of Computing (Baltimore, MD, U.S., May 13-17, 1990). H. Ortiz, Ed. STOC '90. ACM Press, New York, NY, 204-212.|
|78||Office Action for Chinese (PRC) patent application no. 02821371.8, from The Patent Office of the People's Republic of China, dated Aug. 3, 2010 (non-official translation, 9 pgs., including 2 pg. summary).|
|79||Office Action from Chinese Patent Office for application non. 02821371.8, Jan. 29, 2010, in Chinese with translation.|
|80||Office Action from Chinese Patent Office for application non. 02821371.8, Jan. 4, 2008, in Chinese with translation.|
|81||Office Action from Chinese Patent Office for application non. 02821371.8, May 8, 2009, in Chinese with translation.|
|82||Office Action from KIPO for Korean Appin. No. 10-2004-7004613,. Apr. 24, 2009 [and non-official translation].|
|83||Oguchi et al., A Study of Caching Proxy Mechanisms Realized on Wide Area Distributed Networks, High Performance Distributed Computing, 5th Int'l Symp., pp. 443-449, Aug. 1996.|
|84||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.|
|85||Panigrahy, R., "Relieving Hot Spots on the World Wide Web", Master's thesis, MIT EECS, Jun. 1997, pp. 1-66.|
|86||Patent Abstracts of Japan, "Communication Connection Method With a Plurality of Hosts having Common Identifier", Appln. No. JP 08-20114, Pub. No. 10-093552, Applicant Nippon Telegraph & Telephone, published Apr. 1998.|
|87||Patent Abstracts of Japan, "Domain Name Solving Method and Domain Name Solving System", Appln. No. JP19990223763, Pub. No. 2001-053793, Applicant Nippon Telegraph & Telephone, published Feb. 23, 2001.|
|88||Patent Abstracts of Japan, "Server System for Internet", Pub. No. 10-027148, pub. date Jan. 27, 1998, Applicant: Hitachi, computer translation, 12 pgs.|
|89||Peleg, D., et al., "The Availability of Quorum Systems", Information and Computation, 123, (Dec. 1995), 210-223.|
|90||Petri S., et al., "Load Balancing and Fault Tolerance in Workstation Clusters. Migrating Groups of Communicating Processes.", Operating Systems Review, vol. 29, No. 4, Oct. 1995, pp. 25-36.|
|91||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), 570-579.|
|92||Postel, RFC 1591-Domain Name System Structure and Delegation, Mar. 1994.|
|93||Postel, RFC 1591—Domain Name System Structure and Delegation, Mar. 1994.|
|94||Rabin, M. O., 1989, "Efficient dispersal of information for security, load balancing, and fault tolerance," J. ACM 36, 2 (Apr. 1989), 335-348.|
|95||Rabinovich, M. et al., "Dynamic Replication on the Internet Work Project No. 3116-17-7006", AT&T Labs Research, Mar. 5, 1998.|
|96||Rabinovich, M. et al., RaDaR: A Scalable Architecture for a Global Web Hosting Service, WWW8, May 1999.|
|97||Ross, K.W., "Hash-Routing for Collections of Shared Web Caches", IEEE Network Magazine, 11, 7:37-44, Nov.-Dec. 1997.|
|98||Schemers, R., "Ibnamed-A load balancing name server written in Perl," 1995 LISA IX-Sep. 17-22, 1995-Monterey, CA.|
|99||Schemers, R., "Ibnamed—A load balancing name server written in Perl," 1995 LISA IX—Sep. 17-22, 1995—Monterey, CA.|
|100||Schuba, Christoph; "Addressing Weaknesses in the Domain Name System Protocol," COAST Laboratory, Dept. of Computer Sciences, Purdue University; West Layfayette, IN; Aug. 1993, p. 1-87.|
|101||Smith, "What can Archives offer the World Wide Web?", Technical Report 11, University of Kent, Computing Laboratory, University of Kent, Canterbury, UK, Mar. 1994.|
|102||SNMPV2 Working Group J Case SNMP Research et al: "Management Information Base for Version 2 of the Simple Network Management Protocol (SNMPv2); rfc1907.txt" IETF Standard, Internet Engineering Task Force, IETF, CH, Jan. 1996.|
|103||Tarjan, Robert E., et al., "Storing a Sparse Table", Commun.ACM, 22, 11, (Nov. 1979), 606-611.|
|104||Thaler, D. G. and Ravishankar, C. V. 1998. Using name-based mappings to increase hit rates. IEEE/ACM Trans. Netw. 6, 1 (Feb. 1998), 1-14.|
|105||Vitter, J. S., et al., "Optimal Prefetching via Data Compression," Proc. 32nd Annual IEEE Symposium on Foundations of Computer Science (Oct. 1991).|
|106||Vixie, Paul; "Name Server Operations Guide for BIND," Internet Software Consortium; La Honda, CA; p. SMM:10-2-SMM:10-30 (undated, 1996).|
|107||Vixie, Paul; "Name Server Operations Guide for BIND," Internet Software Consortium; La Honda, CA; p. SMM:10-2—SMM:10-30 (undated, 1996).|
|108||Wessels, Intelligent Caching for World-Wide Web Objects, Masters Thesis, University of Colorado, Jan. 1995 (also presented at INET '95 in Jun. 1995).|
|109||Yao, A. C. 1981. Should Tables Be Sorted?. J. ACM 28, 3 (Jul. 1981), 615-628.|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US8166108 *||29 Sep 2011||24 Apr 2012||Edgecast Networks, Inc.||Systems and methods to uniquely identify assets in a federation|
|US8244915 *||22 Mar 2012||14 Aug 2012||Edgecast Networks, Inc.||Systems and methods to uniquely identify assets in a federation|
|US8280998||8 Feb 2011||2 Oct 2012||Brocade Communications Systems, Inc.||Configurable geographic prefixes for global server load balancing|
|US8291083||23 Dec 2011||16 Oct 2012||Limelight Networks, Inc.||Distributed landing pad and brick topology for content storage in content delivery networks|
|US8396970||23 Dec 2011||12 Mar 2013||Limelight Networks, Inc.||Content processing between locations workflow in content delivery networks|
|US8458290||30 Dec 2011||4 Jun 2013||Limelight Networks, Inc.||Multicast mapped look-up on content delivery networks|
|US8478858||5 Jan 2012||2 Jul 2013||Limelight Networks, Inc.||Policy management for content storage in content delivery networks|
|US8504721||1 Jul 2009||6 Aug 2013||Brocade Communications Systems, Inc.||Global server load balancing|
|US8510428||27 Aug 2012||13 Aug 2013||Brocade Communications Systems, Inc.||Configurable geographic prefixes for global server load balancing|
|US8521813||23 Dec 2011||27 Aug 2013||Limelight Networks, Inc.||Content replication workflow in content delivery networks|
|US8549148||29 Oct 2010||1 Oct 2013||Brocade Communications Systems, Inc.||Domain name system security extensions (DNSSEC) for global server load balancing|
|US8615577||23 Dec 2011||24 Dec 2013||Limelight Networks, Inc.||Policy based processing of content objects in a content delivery network using mutators|
|US8621342 *||10 Sep 2009||31 Dec 2013||Oracle International Corporation||System and method for XML registry re-parsing|
|US8683043||15 Sep 2011||25 Mar 2014||Edgecast Networks, Inc.||Systems and methods to uniquely identify assets in a federation|
|US8700945||23 Sep 2011||15 Apr 2014||Amazon Technologies, Inc.||Content delivery failover|
|US8738961 *||17 Aug 2010||27 May 2014||International Business Machines Corporation||High-availability computer cluster with failover support based on a resource map|
|US8755279||18 Jan 2011||17 Jun 2014||Brocade Communications Systems, Inc.||Smoothing algorithm for round trip time (RTT) measurements|
|US8825830||15 Mar 2013||2 Sep 2014||Level 3 Communications, Llc||Content delivery framework with dynamic service network topology|
|US8856329||22 Mar 2013||7 Oct 2014||Limelight Networks, Inc.||Multicast mapped look-up on content delivery networks|
|US8862740||5 May 2011||14 Oct 2014||Brocade Communications Systems, Inc.||Host-level policies for global server load balancing|
|US8873717||22 Nov 2011||28 Oct 2014||Centurylink Intellectual Property Llc||Emergency alert signaling|
|US8909810 *||6 Aug 2008||9 Dec 2014||Isabella Products, Inc.||Systems and methods for multimedia content sharing|
|US8914814||6 Sep 2011||16 Dec 2014||Edgecast Networks, Inc.||Intercommunication in the open content delivery network federation|
|US8949850||5 May 2006||3 Feb 2015||Brocade Communications Systems, Inc.||Statistical tracking for global server load balancing|
|US9013996||16 May 2012||21 Apr 2015||Centurylink Intellectual Property Llc||Customer configuration of broadband services|
|US9015323||10 Dec 2009||21 Apr 2015||Brocade Communications Systems, Inc.||Global server load balancing|
|US9015343 *||22 Nov 2011||21 Apr 2015||Centurylink Intellectual Property Llc||User control over content delivery|
|US9083652||26 Sep 2011||14 Jul 2015||Fortinet, Inc.||Crowd based content delivery|
|US9112948||18 Mar 2011||18 Aug 2015||Amazon Technologies, Inc.||System and method for assignment and switching of content sources for a streaming content session|
|US9130954||27 Nov 2002||8 Sep 2015||Brocade Communications Systems, Inc.||Distributed health check for global server load balancing|
|US9215268||18 Mar 2011||15 Dec 2015||Amazon Technologies, Inc.||System and method for selection and switching of content sources for a streaming content session|
|US9225775||17 Nov 2008||29 Dec 2015||Brocade Communications Systems, Inc.||Global server load balancing|
|US9300732 *||16 Mar 2015||29 Mar 2016||Centurylink Intellectual Property Llc||User control over content delivery|
|US9331979||3 Feb 2015||3 May 2016||Fortinet, Inc.||Facilitating content accessibility via different communication formats|
|US9338182||31 Jul 2013||10 May 2016||Brocade Communications Systems, Inc.||Domain name system security extensions (DNSSEC) for global server load balancing|
|US9379849||14 Apr 2014||28 Jun 2016||Amazon Technologies, Inc.||Content delivery failover|
|US9385988 *||2 Nov 2010||5 Jul 2016||Cedexis, Inc.||Internet infrastructure survey|
|US9420050||31 Aug 2011||16 Aug 2016||Verizon Digital Media Services Inc.||Log reporting for a federated platform|
|US9438444||6 Sep 2011||6 Sep 2016||Verizon Digital Media Services Inc.||Capacity sharing in a federation of distributed platforms|
|US9451045||14 Dec 2012||20 Sep 2016||Level 3 Communications, Llc||Content delivery network|
|US9456053||14 Dec 2012||27 Sep 2016||Level 3 Communications, Llc||Content delivery network|
|US9479574||24 Jun 2013||25 Oct 2016||Brocade Communications Systems, Inc.||Global server load balancing|
|US9516136||12 Jun 2014||6 Dec 2016||Level 3 Communications, Llc||Customer-specific request-response processing in a content delivery network|
|US9537820||10 Mar 2016||3 Jan 2017||Fortinet, Inc.||Facilitating content accessibility via different communication formats|
|US9544183||5 Apr 2013||10 Jan 2017||Akamai Technologies, Inc.||Methods and apparatus for providing content delivery instructions to a content server|
|US9548901||14 Dec 2012||17 Jan 2017||Level 3 Communications, Llc||Framework supporting content delivery with hybrid content delivery services|
|US9548902||14 Dec 2012||17 Jan 2017||Level 3 Communications, Llc||Devices and methods supporting content delivery with delivery services having dynamically configurable log information|
|US9548903||14 Dec 2012||17 Jan 2017||Level 3 Communications, Llc||Devices and methods supporting content delivery with rendezvous services having dynamically configurable log information|
|US9553909||17 Aug 2015||24 Jan 2017||Amazon Technologies, Inc.||System and method for assignment and switching of content sources for a streaming content session|
|US9584360||29 Sep 2003||28 Feb 2017||Foundry Networks, Llc||Global server load balancing support for private VIP addresses|
|US9584472||27 Sep 2011||28 Feb 2017||Fortinet, Inc.||Facilitating content accessibility via different communication formats|
|US9584473||6 Aug 2014||28 Feb 2017||Fortinet, Inc.||Facilitating content accessibility via different communication formats|
|US9591047||11 Apr 2016||7 Mar 2017||Level 3 Communications, Llc||Invalidation in a content delivery network (CDN)|
|US9628342||14 Dec 2012||18 Apr 2017||Level 3 Communications, Llc||Content delivery framework|
|US9628343||14 Dec 2012||18 Apr 2017||Level 3 Communications, Llc||Content delivery framework with dynamic service network topologies|
|US9628344||14 Dec 2012||18 Apr 2017||Level 3 Communications, Llc||Framework supporting content delivery with reducer services network|
|US9628345||14 Dec 2012||18 Apr 2017||Level 3 Communications, Llc||Framework supporting content delivery with collector services network|
|US9628346 *||14 Dec 2012||18 Apr 2017||Level 3 Communications, Llc||Devices and methods supporting content delivery with reducer services|
|US9628347||13 Mar 2013||18 Apr 2017||Level 3 Communications, Llc||Layered request processing in a content delivery network (CDN)|
|US9634904||14 Dec 2012||25 Apr 2017||Level 3 Communications, Llc||Framework supporting content delivery with hybrid content delivery services|
|US9634905||13 Mar 2013||25 Apr 2017||Level 3 Communications, Llc||Invalidation systems, methods, and devices|
|US9634906||15 Mar 2013||25 Apr 2017||Level 3 Communications, Llc||Devices and methods supporting content delivery with adaptation services with feedback|
|US9634907||15 Mar 2013||25 Apr 2017||Level 3 Communications, Llc||Devices and methods supporting content delivery with adaptation services with feedback|
|US9634918||17 Jun 2014||25 Apr 2017||Level 3 Communications, Llc||Invalidation sequencing in a content delivery framework|
|US9641401||15 Mar 2013||2 May 2017||Level 3 Communications, Llc||Framework supporting content delivery with content delivery services|
|US9641402||15 Mar 2013||2 May 2017||Level 3 Communications, Llc||Configuring a content delivery network (CDN)|
|US9647899||14 Dec 2012||9 May 2017||Level 3 Communications, Llc||Framework supporting content delivery with content delivery services|
|US9647900||14 Dec 2012||9 May 2017||Level 3 Communications, Llc||Devices and methods supporting content delivery with delivery services|
|US9647901||15 Mar 2013||9 May 2017||Level 3 Communications, Llc||Configuring a content delivery network (CDN)|
|US9654353||14 Dec 2012||16 May 2017||Level 3 Communications, Llc||Framework supporting content delivery with rendezvous services network|
|US9654354||14 Dec 2012||16 May 2017||Level 3 Communications, Llc||Framework supporting content delivery with delivery services network|
|US9654355||14 Dec 2012||16 May 2017||Level 3 Communications, Llc||Framework supporting content delivery with adaptation services|
|US9654356||14 Dec 2012||16 May 2017||Level 3 Communications, Llc||Devices and methods supporting content delivery with adaptation services|
|US9660874||14 Dec 2012||23 May 2017||Level 3 Communications, Llc||Devices and methods supporting content delivery with delivery services having dynamically configurable log information|
|US9660875||14 Dec 2012||23 May 2017||Level 3 Communications, Llc||Devices and methods supporting content delivery with rendezvous services having dynamically configurable log information|
|US9660876||12 Jun 2014||23 May 2017||Level 3 Communications, Llc||Collector mechanisms in a content delivery network|
|US9661046||14 Dec 2012||23 May 2017||Level 3 Communications, Llc||Devices and methods supporting content delivery with adaptation services|
|US9667506||22 Dec 2014||30 May 2017||Level 3 Communications, Llc||Multi-level peering in a content delivery framework|
|US9680791||29 Jul 2011||13 Jun 2017||Fortinet, Inc.||Facilitating content accessibility via different communication formats|
|US9686148||13 Mar 2013||20 Jun 2017||Level 3 Communications, Llc||Responsibility-based cache peering|
|US9699138||18 Nov 2014||4 Jul 2017||Fortinet, Inc.||Directing clients based on communication format|
|US9705754||14 Dec 2012||11 Jul 2017||Level 3 Communications, Llc||Devices and methods supporting content delivery with rendezvous services|
|US9705977 *||20 Apr 2011||11 Jul 2017||Symantec Corporation||Load balancing for network devices|
|US9722882||14 Dec 2012||1 Aug 2017||Level 3 Communications, Llc||Devices and methods supporting content delivery with adaptation services with provisioning|
|US9722883||13 Mar 2013||1 Aug 2017||Level 3 Communications, Llc||Responsibility-based peering|
|US9722884||13 Mar 2013||1 Aug 2017||Level 3 Communications, Llc||Event stream collector systems, methods, and devices|
|US20100011120 *||20 Jul 2009||14 Jan 2010||Foundry Networks, Inc.||Canonical name (cname) handling for global server load balancing|
|US20100036967 *||6 Aug 2008||11 Feb 2010||Isabella Products, Inc.||Systems and methods for multimedia content sharing|
|US20110029857 *||10 Sep 2009||3 Feb 2011||Oracle International Corporation||System and method for xml registry re-parsing|
|US20120047394 *||17 Aug 2010||23 Feb 2012||International Business Machines Corporation||High-availability computer cluster with failover support based on a resource map|
|US20120131096 *||22 Nov 2011||24 May 2012||Embarq Holdings Company, Llc||User Control Over Content Delivery|
|US20120246315 *||2 Nov 2010||27 Sep 2012||Cedexis Inc.||Internet infrastructure survey|
|US20120271964 *||20 Apr 2011||25 Oct 2012||Blue Coat Systems, Inc.||Load Balancing for Network Devices|
|US20130103785 *||3 Feb 2011||25 Apr 2013||3Crowd Technologies, Inc.||Redirecting content requests|
|US20140173048 *||14 Dec 2012||19 Jun 2014||Level 3 Communications, Llc||Devices And Methods Supporting Content Delivery With Reducer Services|
|US20150195351 *||16 Mar 2015||9 Jul 2015||Centurylink Intellectual Property Llc||User Control Over Content Delivery|
|US20150195354 *||22 Mar 2015||9 Jul 2015||Fortinet, Inc.||Redirection content requests|
|US20160182654 *||17 Dec 2014||23 Jun 2016||International Business Machines Corporation||Moving Critical Actions Within A Mobile Application|
|WO2012097030A1||11 Jan 2012||19 Jul 2012||Level 3 Communications, Llc||Customized domain names in a content delivery network (cdn)|
|U.S. Classification||709/223, 709/219|
|International Classification||G06F15/173, G06F15/16|
|Cooperative Classification||H04L67/1029, H04L67/1031, H04L67/1034, H04L67/1021, H04L67/1023, H04L67/1008, H04L69/329, H04L67/1002, H04L67/18, H04L67/101, H04W4/20, H04L43/0852, H04L41/22, H04L41/0893, H04L43/06, H04L29/12783, H04L43/0817, H04W4/021, H04L43/12, H04L61/35, H04L29/06, H04W4/02, H04L43/00, H04L43/0811, H04L29/12066, H04L43/045, H04L43/10, H04L61/1511|
|European Classification||H04L29/08N17, H04L29/12A2A1, H04L29/08N9A, H04L29/06, H04L29/12A6, H04W4/02, H04L29/08N9A1C, H04L29/08N9A1B, H04L29/08N9A1H, H04L29/08N9A7, H04L41/22, H04L29/08N9A1J, H04L12/26M, H04L43/00, H04L29/08N9A11, H04L41/08F, H04W4/02G, H04W4/20, H04L61/15A1, H04L61/35|
|27 May 2009||AS||Assignment|
Owner name: LEVEL 3 COMMUNICATIONS, LLC, COLORADO
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MIDDLETON, TED;REEL/FRAME:022740/0672
Effective date: 20081007
|3 Jan 2012||AS||Assignment|
Owner name: WELLS FARGO FOOTHILL, INC., AS ADMINISTRATIVE AGEN
Free format text: SECURITY AGREEMENT;ASSIGNOR:SAVVIS COMMUNICATIONS CORPORATION;REEL/FRAME:027472/0477
Effective date: 20050610
Owner name: SAVVIS COMMUNICATIONS CORPORATION, MISSOURI
Free format text: MERGER;ASSIGNOR:SAVVIS, INC.;REEL/FRAME:027472/0449
Effective date: 20050330
Owner name: SAVVIS ASSET HOLDINGS, INC., MISSOURI
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:CABLE & WIRELESS INTERNET SERVICES, INC.;REEL/FRAME:027469/0951
Effective date: 20040213
|5 Jan 2012||AS||Assignment|
Owner name: LEVEL 3 COMMUNICATIONS LLC, COLORADO
Free format text: MERGER;ASSIGNOR:MOUNT SHASTA ACQUISITION LLC;REEL/FRAME:027486/0525
Effective date: 20070122
Owner name: MOUNT SHASTA ACQUISITION LLC, MISSOURI
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SAVVIS COMMUNICATIONS CORPORATION;REEL/FRAME:027486/0349
Effective date: 20070122
|17 Jan 2012||AS||Assignment|
Owner name: CABLE & WIRELESS INTERNET SERVICES, INC., CALIFORN
Free format text: CHANGE OF NAME;ASSIGNOR:DIGITAL ISLAND, INC.;REEL/FRAME:027544/0835
Effective date: 20020212
|28 May 2014||FPAY||Fee payment|
Year of fee payment: 4