EP1327195A1 - Method and apparatus for dynamic determination of optimum connection of a client to content servers - Google Patents

Method and apparatus for dynamic determination of optimum connection of a client to content servers

Info

Publication number
EP1327195A1
EP1327195A1 EP01975281A EP01975281A EP1327195A1 EP 1327195 A1 EP1327195 A1 EP 1327195A1 EP 01975281 A EP01975281 A EP 01975281A EP 01975281 A EP01975281 A EP 01975281A EP 1327195 A1 EP1327195 A1 EP 1327195A1
Authority
EP
European Patent Office
Prior art keywords
data
request
content server
user
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP01975281A
Other languages
German (de)
French (fr)
Inventor
Antonio Salerno
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Conxion Corp
Original Assignee
Conxion Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Conxion Corp filed Critical Conxion Corp
Publication of EP1327195A1 publication Critical patent/EP1327195A1/en
Withdrawn legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations

Definitions

  • the subject of this invention relates to the data communications industry. Specifically, this invention describes a method and apparatus for dynamically determining the optimum one of many servers for delivery of content to a user client terminal.
  • ISPs Internet Service Providers
  • LANs local area networks
  • WANs wide area networks
  • data communications encompasses a variety of data forms including, but not limited to, voice, video, audio, e-mail and software.
  • voice, video, audio, e-mail and software For purposes of the present invention the discussion will center on the Internet.
  • clients and servers Common to all network structures is the notion of clients and servers.
  • a client is the source of a request for some service and a server provides that service. It is possible that the same device that is a server can, in a following transaction, become a client. For example, supposing that a user makes a request for some information through his ISP. The user's terminal is the client and the ISP is the server. But the information that the user has requested resides on a different network, thus the ISP must make a request from a different data terminal at some other network location, thus the ISP becomes the client and the distant terminal the server.
  • a data terminal is considered to be a device having data processing, display and input/output capability. Thus a data terminal could be any number of physical machines including a desktop PC, a laptop PC, a router, or any other device capable of communicating with other such devices.
  • individual data terminals are dispersed in logical and, in most cases, physical space. Some of these data terminal devices are strictly clients and are used by individual users to process data, access data and applications, and communicate with remote data terminal devices. Other data terminal devices act as communication portals and serve as both the server to an end user and as clients of other network data terminal devices. Still other data terminal devices contain large volumes of data and act only as servers, outputting requested data upon demand from a client device.
  • Mirror sites are used for a number of reasons, including data redundancy, traffic demand, and cost control, however, for this discussion the use of mirror sites is particularly related to optimizing data transfer to user clients. Given that multiple mirror sites are available to serve a specific user client, a need arises to determine which of the mirror servers will be used to deliver the requested data. Numerous methods exist in the art to make this decision. These methods fall into two major types: fixed and dynamic. Fixed routing includes such methods as selecting a route from preprogrammed tables, calculating least delivery route cost, least delivery route weight, or least delivery route distance. Dynamic routing methods include deriving the optimum route from data supplied by the user clients and data servers, then making a calculation on-the-fly, or using statistical balancing to determine the best delivery route.
  • Centralized fixed routing uses a dedicated routing server to pick the optimum route from a table.
  • a table is used to determine the shortest distance from a user client to a data server. Variations of this method include the geographic location method and the preprogrammed logical location method.
  • the fixed routing method ignores effects of local traffic demand on a single site, thus it suffers from delays in delivery and increases in connection time and cost, with an attendant reduction in network efficiency.
  • Another fixed routing method divides the network topology into low speed local and high speed backbone segments, then parses the available data servers into one or the other of the segments.
  • This so-called network parsing method makes the delivery decision predicated upon a preprogrammed elimination of many of the otherwise available nodes based on which segment the node resides in, thus it suffers from inefficient selection of the least busy server.
  • the result is again a less-than- optimal route selection with a potential increase in cost due to increased connection time.
  • Dynamic route selection methods include the least weight method, the least cost method, and the statistical balancing method. Each of these methods is dynamic since current network topology and traffic data are used to make the routing decision.
  • the least weight method first uses data gathered about the end nodes in a specific communication session to assign a weight to a theoretical connection to all nodes of a network, then, in a second step, uses tabular data about the network topology with corresponding weighted values, and finally, in a third step, chooses the least weight answer from all possible connections formed by the addition of all of the weighted values.
  • This method is slow compared to other methods, and suffers further from an aggregation of communication delays throughout the network. The result is delayed connection from the user client to the desired data server.
  • the least cost method is based on traffic density and unit cost of data transferred.
  • an arbitrary cost is assigned to a set level of traffic such that when traffic on one data server reaches a predetermined value, the cost per unit of data transferred will become high, forcing the algorithm to direct new traffic to a different data server.
  • This method ignores the effects of geographical location, forcing traffic over a longer, more delay prone route when traffic on the desired data server reaches the predetermined level. Further, the method is centralized, so it is prone to service interruptions if the decision making data terminal device fails.
  • Statistical balancing of user clients is another dynamic route selection method, hi this method all of the possible routes are monitored for traffic levels, and the traffic loads balanced on a per server basis. This method, like the cost method above, ignores any geographical advantages, thus possibly choosing a sub-optimal route due to the distance the data must travel.
  • the existing methods suffer from one or more disadvantages. What would be desirable is a method for choosing an optimum connection from a user client to a data server dynamically and in such a way as to mitigate the disadvantages of the existing methods.
  • the method should simultaneously provide the most efficient and cost effective routing decision.
  • the method and apparatus of the present invention provide dynamic routing selection of the optimum data server from among many data servers that form a distributed content cache on a communications network.
  • a user client enters a request by one of several addressing protocols.
  • the method of the invention uses a combination of analytical tools to act upon information contained in the request to determine which of the many distributed content data servers will provide the optimum connection for the user client. Criteria used to make the selection include the type of request, the shortest path, and, when needed, other factors such as route weighting and best bandwidth.
  • the method of the present invention combines a number of protocols and test methods to make the optimum routing decision.
  • the protocols include, but are not limited to, HyperText Transfer Protocol [HTTP], HyperText Markup Language [HTML] and Dynamic Name Sever [DNS] addressing using Border Gateway Protocol [BGP] data.
  • HTTP HyperText Transfer Protocol
  • HTTP HyperText Markup Language
  • DNS Dynamic Name Sever
  • a significant advantage over the prior art is that the method of the present invention is platform independent, allowing it to be used for both internal networks, or externally across other networks of different types.
  • Operation of the present invention is accomplished through use of fully mirrored content data servers, or Content Delivery Nodes [CDN] containing an embedded Redirector Agent, and multiple redundant Node Decision Servers [NDS] located at strategic data hubs within the ISP hosting service.
  • CDNs may contain a variety of data types, for example live multi-cast, audio, video, standard web pages or simple data libraries.
  • a user client issues a request, for example by entering a Universal Resource Locator [URL] address, which is received and analyzed by the Redirector Agent embedded in the CDN. Having identified the type of protocol to be used, the Redirector Agent queries the NDS for the optimum route decision.
  • URL Universal Resource Locator
  • the NDS then reviews the status of the network based upon the most current BGP data, including peer outages and geographic location of the CDN closest to the requestor, and makes an optimum connection determination. Once the decision is made, the NDS returns the optimum path data to the Redirector Agent. Based on the received optimum route data from the NDS plus the application of other administrative factors, the Redirector Agent formulates and returns the optimum path data to the user client.
  • the Redirector Agent can receive and react to HTTP tasks submitted by the requestor's web browser and return to the user client the URL of the optimum CDN.
  • the method of the present invention can receive DNS lookup data from the requestor and, using a DNS lookup table, return the DNS address of the optimum CDN.
  • a third alternative method delivers embedded HTML instructions containing the appropriate target CDN data.
  • the array of redundant NDSs receives constant updates as to the status of the network via BGP data which is fresh with each new communications session. Thus if one of a plurality of mirrored CDNs goes offline, the redundant NDS array factors this peer outage into the decision criteria.
  • a significant advantage of the present invention is the ability to provide the optimum connection from a requestor to a content data server in real time. This and other advantages of the present invention are discussed in detail below in conjunction with the figures attached.
  • Figure 1 illustrates a high level block diagram of a system that can make use of a first embodiment of the method of the present invention.
  • Figure 2 presents a top level state diagram of an embodiment of the method of the present invention.
  • Figure 3 is a detailed block diagram of a data content server that can make use of the method of the present invention.
  • Figure 4 is a detailed block diagram of a node decision server that can make use of the method of the present invention.
  • Figure 5 presents a state diagram of a typical HTTP communications session using the method of the present invention.
  • Figure 6 presents a state diagram of a typical HTML communications session using the method of the present invention.
  • Figure 7 presents a state diagram of a typical DNS communications session using the method of the present invention.
  • the method of the present invention overcomes these disadvantages by providing a method and associated apparatus that allows dynamic determination of the most optimal target data server for content delivery without insertion of undesirable delays.
  • client and “server” are used in their technical sense. That is, where a device is the source of a request, it is referred to as a client, whereas the same device responding to a request is referred to as a server.
  • a Hosting Service 140 provides data services for numerous users, hi this configuration, the Hosting Service 140 is located geographically in Santa Clara.
  • the Hosting Service 140 maintains a number of Routers 141 and Switches 143 that interface to data content servers such as Content Server #1 300.
  • this is not the only possible host services configuration and is shown here as an example only. Other configurations could be used without departing from the spirit of the invention, for example, the Switches 143 could be eliminated for smaller host configurations.
  • the Content Server #1 300 contains, among other data and programs, a Content Delivery Node #1 310 and a Redirector Agent 350.
  • the Content Delivery Node #1 310 contains the information that a remote user is seeking and is one of several mirrored content sites.
  • the Redirector Agent 350 is a program that receives users' requests, processes user address data, and interfaces with a Node Decision Server [NDS] 400, also located at the Hosting Service 140.
  • the NDS 400 uses the Border Gateway Protocol [BGP] Data Table 410 to make a decision as to which of a plurality of mirrored data content servers will be the best for a particular user and communications session.
  • BGP Border Gateway Protocol
  • the BGP Data Table 410 is updated with current network status with each new communications session. These data are contained in the incoming message and are sent to the NDS 400 by the Router 141 as part of its normal operation. The NDS 400 then interprets the BGP data sent and updates the BGP Data Table 410. Each time a new communications session is started, regardless of the specific user, updated BGP data are sent to the BGP Data Table 410. In this way the method of the present invention maintains a detailed status of the current network conditions, including peer outages and active routes, advantageously allowing for a more accurate determination of an optimum content delivery path.
  • a mirrored data content server is Content Server #2 130 in Atlanta.
  • Content Server #2 130 contains the identical data content as Content Server #1 300 as well as Content Delivery Node #2 135.
  • this fully mirrored configuration has several nontrivial advantages over the prior art including more rapid determination of the optimum data content server for a particular user and communications session. Shown in Fig. 1 are two typical remote users, User 1 110 in Chicago and User
  • ISP Internet Service Provider
  • Fig. 2 presents a high level state diagram 200 of the method of the present invention. While there are numerous specific instances of the use of BGP data by the method of the present invention, each discussed in detail below, Fig. 2 is appropriate for describing the method at a high level of granularity.
  • the process begins when the User 210 requests a communications session. Note that the User 210 in Fig. 2 is equivalent to User 1 110 in Fig. 1 but is labeled differently here for clarity. Note further that Router 230, Redirector Agent 280, and NDS 250 all are equivalent to their counterparts in Fig. 1 but are labeled differently for clarity in Fig. 2.
  • the User Request 215 is sent to a Router 230.
  • the Router 230 sends the incoming message to the NDS 250 in the Send BGP data step 234.
  • the NDS 250 interprets the BGP data contained in the incoming message in the Interpret BGP Data step 252 and then updates the BGP table at the Update BGP Data Table step 254. At this point in time the NDS 250 has a real time status of the entire network to use in its decision making process.
  • the Router 230 also delivers the request to the Redirector Agent 280 at the Deliver Request step 236. Once the Redirector Agent 280 has received the request, the Determine Request Type step 282 is executed in order for the method of the present invention to understand what type of communication protocol is being used by the user's client device.
  • the Redirector Agent 280 forms a query and sends it to the NDS 250 via the Query NDS for Best Server step 284. Using the very recently updated network status the NDS executes a Look-up Best Server step 265 and returns the results of the decision process to the Redirector Agent 280 in the Best Server Response step 258.
  • the Redirector Agent 280 executes the Apply Other Admin Factors step 286 prior to sending the optimum route decision via the Return Best Server step 288.
  • Other administrative factors may include such information as customer status, current traffic conditions and content status among others.
  • the Router 230 receives the optimum data content server path information from the Redirector Agent 280 and passes it back to the User 210 via the Best Choice step 238.
  • Fig. 3 provides the relevant detail of a typical Content Server 300, such as Content Server #1 in Fig. 1.
  • the server contains, among other things, a Content Delivery Node #1 310, in this case having a Universal Resource Locator [URL] of www-west.demo.com.
  • a Redirector Agent 350 is also contained in Content Server 300.
  • the redirector agent is a software program containing a Front End Processor module 352, Application/Configuration Table 355 and NDS Interface module 358.
  • a typical content server will contain many other components, both hardware and software, that are not relevant to the method of the present invention and are thus not addressed in this discussion. While each of the modules contained in the Redirector Agent 350 will be discussed in greater detail in conjunction with Figs.
  • the Front End Processor module 352 is responsible of accepting a user's request, parsing the incoming data, analyzing the data and formulating a decision query to be sent to the NDS.
  • the query is based upon what type of application has been sent by the user, thus the Application/Configuration Table 355, containing pre-configured data related to types of applications expected from users, is checked by the Front End Processor module 352 and the proper data is fetched for use in formulating the query to the NDS.
  • the NDS Interface module 358 is used to send queries and receive responses from the NDS.
  • Fig. 4 is a detailed block diagram of the NDS 400 in Fig. 1.
  • the NDS 400 contains, among other things, the BGP Data Table 410, the BGP Interpreter module 420, The Network Status Data Table 430 and the Redirector Agent Interface module 440. Note that the NDS 400 may contain other hardware and software that are not relevant to the method of the present invention and are thus not addressed in this discussion.
  • BGP Interpreter module 420 interprets the incoming message and extracts BGP data. These fresh data are then sent to the BGP Data Table 410, and, in combination with the geographic location data from the Network Status Data Table 430, form the decision data to be used in determining the optimum data content server location for the particular user request.
  • the exact method for selection of the best possible data content server varies with the type of user request thus is not discussed in detail here; however, each method is covered in detail in conjunction with Fig.s 5 through 7 below.
  • Redirector Agent Interface module 440 receives queries from and sends responses to the NDS Interface module, 358 of Fig. 3.
  • FIGs. 5 through 7 provide the process details for three types of communication sessions.
  • Fig. 5 presents a detailed state diagram 500 of the present invention using the HTTP redirect method.
  • the process starts with the User 510, whose IP address happens to be 192.168J.43, issuing a request to connect to www.demo.com at User Request 515.
  • the request takes the form of an HTTP GET/file.exe command.
  • the Router 530 receives the command and then delivers the request via the Deliver Request step 536 to a Redirector Agent 580 embedded in a content server, for example, Content Server #1 300 in Fig. 1.
  • the Router 530 accomplishes other tasks as explained in conjunction with Fig. 2 above, for example, delivering the request message to the NDS 550 to accomplish the BGP data update.
  • the decision in the NDS 550 is based upon the current BGP data, the geographic locations of all possible relevant data content servers, which of the relevant data content servers have active routes, and which are administratively up or down. Where multiple geographic locations with active routes exist that are otherwise equal, a random distribution method of route assignment is used, i the example shown in Fig. 5, the optimum data content server selected by the NDS 550 happens to be Content Server #2 (130 of Fig. 1) located in Atlanta. This comports with the geographic location of the User 510 who is located in Chicago. Were the incoming request from User 2, 120 in Fig 1., located in Seattle, the NDS 550 would respond with Content Server #1 (300 of Fig. 1) instead, since it is located in Santa Clara.
  • the Redirector Agent 580 Once the Redirector Agent 580 has received the response from the NDS 550, other relevant data are applied to the decision at the Apply Other Admin Factors step 586. Here, such factors as data content server loading, availability and data status are used to ensure that the proper content server has been selected.
  • a 302 HTTP ://www-east.demo.com/file.exe redirect command is passed back to the user.
  • the user's device executes the command and connects the user to the appropriate data content sever via the optimum path.
  • FIG. 6 presents a detailed state diagram 600 of the present invention using the embedded HTML command method.
  • the process again starts with the User 610, whose IP address again happens to be 192.168.7.43, issuing a request to connect to www.demo.com at User Request 615.
  • the request takes the form of an HTTP GET/index.html command.
  • the Router 630 receives the command and then delivers the request via the Deliver Request step 636 to a Redirector Agent 680 embedded in a content server, for example, Content Server #1 300 in Fig. 1. Note that the Router 630 accomplishes other tasks as explained in conjunction with Fig. 2 above, for example, delivering the request message to the NDS 650 to accomplish the BGP data update.
  • the Redirector Agent 680 uses the data contained in the Application/Configuration Table, 355 of Fig. 3, to determine which type of communications protocol is being used at the Determine Request Type step 682. In this instance, the determination is made that an embedded HTML protocol has been received from the user. Steps 684 through 686 perform the same functions in the same manner as their counterparts in Fig. 5 and therefore are not detailed here.
  • an HTTP://www-east.demo.com/index.html redirect command is passed back to the user.
  • the user's device executes the command and connects the user to the appropriate data content sever via the optimum path.
  • Fig. 7 presents a detailed state diagram 700 of the present invention using the DNS lookup method.
  • the process again starts with the User 710, whose IP address again happens to be 192.168.7.43, issuing a request to connect to www.demo.com at User Request 715.
  • the request takes the form of a DNS lookup www.demo.com command.
  • the Router 730 receives the command and then delivers the request via the Deliver Request step 736 to a Redirector Agent 780 embedded in a content server, for example, Content Server #1 300 in Fig. 1.
  • the Router 730 accomplishes other tasks as explained in conjunction with Fig. 2 above, for example, delivering the request message to the NDS 750 to accomplish the BGP data update.
  • a first advantage of the present invention is the ability to make an optimal route decision based on current network status. This is accomplished by reading and storing network conditions gained from fresh BGP data contained in each new session.
  • a second advantage of the present invention is the speed of the optimum route decision process. Rapid route selection reduces the user delays in connecting to the best content server thereby reducing overall network traffic and increasing efficiency.
  • a third advantage of the present invention is that it is platform independent.
  • the Redirector Agent can be embedded in various communications environments making it broadly available to networks of all sizes and configurations.
  • a fourth advantage of the present invention is that it is application independent. Since the Redirector Agent is pre-configured based upon client protocol preferences, a variety of communication applications may be served from the same network hosting environment.
  • a fifth advantage of the present invention is that it is expandable. As new protocols and or communications applications become available, the Redirector Agent can be programmed to recognize, analyze and react in an appropriate manner.
  • a sixth advantage of the present invention is that it is configurable on a client- by-client basis. This advantage allows the present invention to be changed as a client's needs change with little effort and expense.
  • a seventh advantage of the present invention is that it is mirrored. This redundancy of both data and process greatly increases the dependability of the method of the present invention and significantly reduces the deterioration in performance related to network outages.
  • An eighth advantage of the present invention is that it is economical since makes the optimum route selection based on best performance at the specific point in time when the user makes the content request. This is done through use of a many network factors including bandwidth, equipment status, geographic considerations, and session type, as well as others.

Abstract

The method and apparatus of the present invention provide dynamic routing selection of the optimum data server from among many data servers (130, 300) that form a distributed content cache on a communications network (100). A user client (110, 120) enters a request by one of several addressing protocols (112, 120). The method of the invention uses a combination of analytical tools to act upon information contained in the request to determine which of the many distributed content data servers will provide the optimum connection for the user client. Criteria used to make the selection include the type of request, the shortest.

Description

METHOD AND APPARATUS FOR DYNAMIC DETERMINATION
OF OPTIMUM CONNECTION OF A CLIENT
TO CONTENT SERVERS
BRIEF DESCRIPTION OF THE INVENTION
The subject of this invention relates to the data communications industry. Specifically, this invention describes a method and apparatus for dynamically determining the optimum one of many servers for delivery of content to a user client terminal.
BACKGROUND OF THE INVENTION As the use of networks increases, more and more users are turning to network service providers for hosted data services. These service providers operate generally over the Internet, and are thus referred to as Internet Service Providers, or ISPs. It should be noted however that the Internet is not the only possible network topology that provides services to multiple users. Thus the discussion below can apply to a wide variety of network architectures including, but not limited to, local area networks [LANs], wide area networks [WANs], intranets and internets. Further, data communications encompasses a variety of data forms including, but not limited to, voice, video, audio, e-mail and software. For purposes of the present invention the discussion will center on the Internet. Common to all network structures is the notion of clients and servers. Generally, a client is the source of a request for some service and a server provides that service. It is possible that the same device that is a server can, in a following transaction, become a client. For example, supposing that a user makes a request for some information through his ISP. The user's terminal is the client and the ISP is the server. But the information that the user has requested resides on a different network, thus the ISP must make a request from a different data terminal at some other network location, thus the ISP becomes the client and the distant terminal the server. Note that for purposes of this discussion, a data terminal is considered to be a device having data processing, display and input/output capability. Thus a data terminal could be any number of physical machines including a desktop PC, a laptop PC, a router, or any other device capable of communicating with other such devices.
In modern network architectures, individual data terminals are dispersed in logical and, in most cases, physical space. Some of these data terminal devices are strictly clients and are used by individual users to process data, access data and applications, and communicate with remote data terminal devices. Other data terminal devices act as communication portals and serve as both the server to an end user and as clients of other network data terminal devices. Still other data terminal devices contain large volumes of data and act only as servers, outputting requested data upon demand from a client device.
Modernly, data terminal devices on one network have the ability to communicate with data terminal devices on another network through the use of common protocols. The result is that many networks containing many data servers can be connected to a very large number of user clients. To identify which network and client are to be served, an address scheme has been adopted. Additionally, the demand for certain data, for example, a video feed of a sporting event, can be so large that more than one data server with identical data may be required to satisfy the demand. Typically, a network hosting service will supply these multiple data servers in different geographical parts of the world. These identical servers are referred to as data mirrors, or mirror sites. Mirror sites are used for a number of reasons, including data redundancy, traffic demand, and cost control, however, for this discussion the use of mirror sites is particularly related to optimizing data transfer to user clients. Given that multiple mirror sites are available to serve a specific user client, a need arises to determine which of the mirror servers will be used to deliver the requested data. Numerous methods exist in the art to make this decision. These methods fall into two major types: fixed and dynamic. Fixed routing includes such methods as selecting a route from preprogrammed tables, calculating least delivery route cost, least delivery route weight, or least delivery route distance. Dynamic routing methods include deriving the optimum route from data supplied by the user clients and data servers, then making a calculation on-the-fly, or using statistical balancing to determine the best delivery route. Centralized fixed routing uses a dedicated routing server to pick the optimum route from a table. Sometimes referred to as the minimum hop method, a table is used to determine the shortest distance from a user client to a data server. Variations of this method include the geographic location method and the preprogrammed logical location method. The fixed routing method ignores effects of local traffic demand on a single site, thus it suffers from delays in delivery and increases in connection time and cost, with an attendant reduction in network efficiency.
Another fixed routing method divides the network topology into low speed local and high speed backbone segments, then parses the available data servers into one or the other of the segments. This so-called network parsing method makes the delivery decision predicated upon a preprogrammed elimination of many of the otherwise available nodes based on which segment the node resides in, thus it suffers from inefficient selection of the least busy server. The result is again a less-than- optimal route selection with a potential increase in cost due to increased connection time. Dynamic route selection methods include the least weight method, the least cost method, and the statistical balancing method. Each of these methods is dynamic since current network topology and traffic data are used to make the routing decision. The least weight method first uses data gathered about the end nodes in a specific communication session to assign a weight to a theoretical connection to all nodes of a network, then, in a second step, uses tabular data about the network topology with corresponding weighted values, and finally, in a third step, chooses the least weight answer from all possible connections formed by the addition of all of the weighted values. This method is slow compared to other methods, and suffers further from an aggregation of communication delays throughout the network. The result is delayed connection from the user client to the desired data server.
The least cost method is based on traffic density and unit cost of data transferred. In this method an arbitrary cost is assigned to a set level of traffic such that when traffic on one data server reaches a predetermined value, the cost per unit of data transferred will become high, forcing the algorithm to direct new traffic to a different data server. This method ignores the effects of geographical location, forcing traffic over a longer, more delay prone route when traffic on the desired data server reaches the predetermined level. Further, the method is centralized, so it is prone to service interruptions if the decision making data terminal device fails.
Statistical balancing of user clients is another dynamic route selection method, hi this method all of the possible routes are monitored for traffic levels, and the traffic loads balanced on a per server basis. This method, like the cost method above, ignores any geographical advantages, thus possibly choosing a sub-optimal route due to the distance the data must travel.
As can be seen, the existing methods suffer from one or more disadvantages. What would be desirable is a method for choosing an optimum connection from a user client to a data server dynamically and in such a way as to mitigate the disadvantages of the existing methods. Advantageously, the method should simultaneously provide the most efficient and cost effective routing decision.
SUMMARY OF THE INVENTION
The method and apparatus of the present invention provide dynamic routing selection of the optimum data server from among many data servers that form a distributed content cache on a communications network. A user client enters a request by one of several addressing protocols. The method of the invention uses a combination of analytical tools to act upon information contained in the request to determine which of the many distributed content data servers will provide the optimum connection for the user client. Criteria used to make the selection include the type of request, the shortest path, and, when needed, other factors such as route weighting and best bandwidth. The method of the present invention combines a number of protocols and test methods to make the optimum routing decision. The protocols include, but are not limited to, HyperText Transfer Protocol [HTTP], HyperText Markup Language [HTML] and Dynamic Name Sever [DNS] addressing using Border Gateway Protocol [BGP] data. A significant advantage over the prior art is that the method of the present invention is platform independent, allowing it to be used for both internal networks, or externally across other networks of different types.
Operation of the present invention is accomplished through use of fully mirrored content data servers, or Content Delivery Nodes [CDN] containing an embedded Redirector Agent, and multiple redundant Node Decision Servers [NDS] located at strategic data hubs within the ISP hosting service. The CDNs may contain a variety of data types, for example live multi-cast, audio, video, standard web pages or simple data libraries. A user client issues a request, for example by entering a Universal Resource Locator [URL] address, which is received and analyzed by the Redirector Agent embedded in the CDN. Having identified the type of protocol to be used, the Redirector Agent queries the NDS for the optimum route decision. The NDS then reviews the status of the network based upon the most current BGP data, including peer outages and geographic location of the CDN closest to the requestor, and makes an optimum connection determination. Once the decision is made, the NDS returns the optimum path data to the Redirector Agent. Based on the received optimum route data from the NDS plus the application of other administrative factors, the Redirector Agent formulates and returns the optimum path data to the user client.
Because the method of the present invention is platform independent, user client requests can vary. For example, the Redirector Agent can receive and react to HTTP tasks submitted by the requestor's web browser and return to the user client the URL of the optimum CDN. Alternatively the method of the present invention can receive DNS lookup data from the requestor and, using a DNS lookup table, return the DNS address of the optimum CDN. A third alternative method delivers embedded HTML instructions containing the appropriate target CDN data. The array of redundant NDSs receives constant updates as to the status of the network via BGP data which is fresh with each new communications session. Thus if one of a plurality of mirrored CDNs goes offline, the redundant NDS array factors this peer outage into the decision criteria. In this way the optimum connection decision is dynamic, and always represents the best decision for any given communications session connection in real time. Once the off-line CDN returns to service, the network status is again updated and the optimum route decision is made accordingly. Thus a significant advantage of the present invention is the ability to provide the optimum connection from a requestor to a content data server in real time. This and other advantages of the present invention are discussed in detail below in conjunction with the figures attached.
BRIEF DESCRIPTION OF THE DRAWINGS
Figure 1 illustrates a high level block diagram of a system that can make use of a first embodiment of the method of the present invention.
Figure 2 presents a top level state diagram of an embodiment of the method of the present invention. Figure 3 is a detailed block diagram of a data content server that can make use of the method of the present invention.
Figure 4 is a detailed block diagram of a node decision server that can make use of the method of the present invention.
Figure 5 presents a state diagram of a typical HTTP communications session using the method of the present invention.
Figure 6 presents a state diagram of a typical HTML communications session using the method of the present invention.
Figure 7 presents a state diagram of a typical DNS communications session using the method of the present invention.
DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS
As described briefly above, there are a number of disadvantages with the current methods for optimizing the distribution of content from remotely located data servers including delays, sub optimum efficiency, and service interruptions among others. The method of the present invention overcomes these disadvantages by providing a method and associated apparatus that allows dynamic determination of the most optimal target data server for content delivery without insertion of undesirable delays.
The method of the present invention will be more clearly understood through a brief discussion of the environment in which the invention operates. Note that for the detailed discussion that follows the terms "client" and "server" are used in their technical sense. That is, where a device is the source of a request, it is referred to as a client, whereas the same device responding to a request is referred to as a server.
Referring to Fig. 1, a high level block diagram of a system 100 that can make use of the present invention is shown. A Hosting Service 140 provides data services for numerous users, hi this configuration, the Hosting Service 140 is located geographically in Santa Clara. The Hosting Service 140 maintains a number of Routers 141 and Switches 143 that interface to data content servers such as Content Server #1 300. As is known to those of skill in the art, this is not the only possible host services configuration and is shown here as an example only. Other configurations could be used without departing from the spirit of the invention, for example, the Switches 143 could be eliminated for smaller host configurations. The Content Server #1 300 contains, among other data and programs, a Content Delivery Node #1 310 and a Redirector Agent 350. As will be discussed in greater detail below, the Content Delivery Node #1 310 contains the information that a remote user is seeking and is one of several mirrored content sites. The Redirector Agent 350, also discussed in detail below, is a program that receives users' requests, processes user address data, and interfaces with a Node Decision Server [NDS] 400, also located at the Hosting Service 140. The NDS 400 uses the Border Gateway Protocol [BGP] Data Table 410 to make a decision as to which of a plurality of mirrored data content servers will be the best for a particular user and communications session.
The BGP Data Table 410 is updated with current network status with each new communications session. These data are contained in the incoming message and are sent to the NDS 400 by the Router 141 as part of its normal operation. The NDS 400 then interprets the BGP data sent and updates the BGP Data Table 410. Each time a new communications session is started, regardless of the specific user, updated BGP data are sent to the BGP Data Table 410. In this way the method of the present invention maintains a detailed status of the current network conditions, including peer outages and active routes, advantageously allowing for a more accurate determination of an optimum content delivery path.
An example of a mirrored data content server is Content Server #2 130 in Atlanta. Content Server #2 130 contains the identical data content as Content Server #1 300 as well as Content Delivery Node #2 135. As will be discussed below, this fully mirrored configuration has several nontrivial advantages over the prior art including more rapid determination of the optimum data content server for a particular user and communications session. Shown in Fig. 1 are two typical remote users, User 1 110 in Chicago and User
2 120 in Seattle. These users each have an Internet Service Provider [ISP] (User 1 ISP 112 and User 2 ISP 122 respectively) connecting them to the Internet 150. The function of an ISP is well understood by those of skill in the art and is thus not treated in detail as part of this discussion. These users have a need to connect to a content provider's information and do so by requesting the establishment of a communications session with a target data content server.
Fig. 2 presents a high level state diagram 200 of the method of the present invention. While there are numerous specific instances of the use of BGP data by the method of the present invention, each discussed in detail below, Fig. 2 is appropriate for describing the method at a high level of granularity. The process begins when the User 210 requests a communications session. Note that the User 210 in Fig. 2 is equivalent to User 1 110 in Fig. 1 but is labeled differently here for clarity. Note further that Router 230, Redirector Agent 280, and NDS 250 all are equivalent to their counterparts in Fig. 1 but are labeled differently for clarity in Fig. 2. The User Request 215 is sent to a Router 230. The Router 230 sends the incoming message to the NDS 250 in the Send BGP data step 234. The NDS 250 interprets the BGP data contained in the incoming message in the Interpret BGP Data step 252 and then updates the BGP table at the Update BGP Data Table step 254. At this point in time the NDS 250 has a real time status of the entire network to use in its decision making process. The Router 230 also delivers the request to the Redirector Agent 280 at the Deliver Request step 236. Once the Redirector Agent 280 has received the request, the Determine Request Type step 282 is executed in order for the method of the present invention to understand what type of communication protocol is being used by the user's client device. After making this determination the Redirector Agent 280 forms a query and sends it to the NDS 250 via the Query NDS for Best Server step 284. Using the very recently updated network status the NDS executes a Look-up Best Server step 265 and returns the results of the decision process to the Redirector Agent 280 in the Best Server Response step 258.
Having received the best data content server decision from the NDS 250, the Redirector Agent 280 executes the Apply Other Admin Factors step 286 prior to sending the optimum route decision via the Return Best Server step 288. Other administrative factors may include such information as customer status, current traffic conditions and content status among others. The Router 230 receives the optimum data content server path information from the Redirector Agent 280 and passes it back to the User 210 via the Best Choice step 238.
Fig. 3 provides the relevant detail of a typical Content Server 300, such as Content Server #1 in Fig. 1. The server contains, among other things, a Content Delivery Node #1 310, in this case having a Universal Resource Locator [URL] of www-west.demo.com. Also contained in Content Server 300 is a Redirector Agent 350. The redirector agent is a software program containing a Front End Processor module 352, Application/Configuration Table 355 and NDS Interface module 358. As will be obvious to those of skill in the art, a typical content server will contain many other components, both hardware and software, that are not relevant to the method of the present invention and are thus not addressed in this discussion. While each of the modules contained in the Redirector Agent 350 will be discussed in greater detail in conjunction with Figs. 5 through 7 below, in general, the Front End Processor module 352 is responsible of accepting a user's request, parsing the incoming data, analyzing the data and formulating a decision query to be sent to the NDS. The query is based upon what type of application has been sent by the user, thus the Application/Configuration Table 355, containing pre-configured data related to types of applications expected from users, is checked by the Front End Processor module 352 and the proper data is fetched for use in formulating the query to the NDS. The NDS Interface module 358 is used to send queries and receive responses from the NDS.
Fig. 4 is a detailed block diagram of the NDS 400 in Fig. 1. The NDS 400 contains, among other things, the BGP Data Table 410, the BGP Interpreter module 420, The Network Status Data Table 430 and the Redirector Agent Interface module 440. Note that the NDS 400 may contain other hardware and software that are not relevant to the method of the present invention and are thus not addressed in this discussion.
BGP Interpreter module 420 interprets the incoming message and extracts BGP data. These fresh data are then sent to the BGP Data Table 410, and, in combination with the geographic location data from the Network Status Data Table 430, form the decision data to be used in determining the optimum data content server location for the particular user request. The exact method for selection of the best possible data content server varies with the type of user request thus is not discussed in detail here; however, each method is covered in detail in conjunction with Fig.s 5 through 7 below. Redirector Agent Interface module 440 receives queries from and sends responses to the NDS Interface module, 358 of Fig. 3.
Recall that the precise best route selection method depends upon what application was used by the user to establish the communication session. Figs. 5 through 7 provide the process details for three types of communication sessions.
These application types are exemplary in nature, and do not represent a limitation on the scope of the present invention. For Figs. 5 through 7 state diagrams have been used for clarity of understanding. It will be recognized by those of skill in the art that within each of the states shown various smaller steps are executed which do not add to the understanding of the method of the present invention and have been aggregated for clarity.
Fig. 5 presents a detailed state diagram 500 of the present invention using the HTTP redirect method. With this method the process starts with the User 510, whose IP address happens to be 192.168J.43, issuing a request to connect to www.demo.com at User Request 515. The request takes the form of an HTTP GET/file.exe command. The Router 530 receives the command and then delivers the request via the Deliver Request step 536 to a Redirector Agent 580 embedded in a content server, for example, Content Server #1 300 in Fig. 1. Note that the Router 530 accomplishes other tasks as explained in conjunction with Fig. 2 above, for example, delivering the request message to the NDS 550 to accomplish the BGP data update. The Redirector Agent 580 uses the data contained in the Application/Configuration Table, 355 of Fig. 3, to determine which type of communications protocol is being used at the Determine Request Type step 582. Once determined, a query is formed and sent to the NDS 550 at the Best Server for 192.168.7.43 step 584. Within the NDS 550 the Look-up Best Server step 556 determines the closest geographic data content server to the user from among a plurality of data content servers. Once the optimum geographical data content server has been determined, the NDS 550 responds to the Redirector Agent 580 with the location data at the Best Server = Content Server #2 step 558.
The decision in the NDS 550 is based upon the current BGP data, the geographic locations of all possible relevant data content servers, which of the relevant data content servers have active routes, and which are administratively up or down. Where multiple geographic locations with active routes exist that are otherwise equal, a random distribution method of route assignment is used, i the example shown in Fig. 5, the optimum data content server selected by the NDS 550 happens to be Content Server #2 (130 of Fig. 1) located in Atlanta. This comports with the geographic location of the User 510 who is located in Chicago. Were the incoming request from User 2, 120 in Fig 1., located in Seattle, the NDS 550 would respond with Content Server #1 (300 of Fig. 1) instead, since it is located in Santa Clara.
Once the Redirector Agent 580 has received the response from the NDS 550, other relevant data are applied to the decision at the Apply Other Admin Factors step 586. Here, such factors as data content server loading, availability and data status are used to ensure that the proper content server has been selected. At step 588, Return Best Server, the Redirector Agent 580 passes the decision to the Router 530, which in turn sends the optimum route to the User 510 via the Best Choice = step 538. Thus in this instance, a 302 HTTP ://www-east.demo.com/file.exe redirect command is passed back to the user. The user's device then executes the command and connects the user to the appropriate data content sever via the optimum path. Fig. 6 presents a detailed state diagram 600 of the present invention using the embedded HTML command method. With this method the process again starts with the User 610, whose IP address again happens to be 192.168.7.43, issuing a request to connect to www.demo.com at User Request 615. The request takes the form of an HTTP GET/index.html command. The Router 630 receives the command and then delivers the request via the Deliver Request step 636 to a Redirector Agent 680 embedded in a content server, for example, Content Server #1 300 in Fig. 1. Note that the Router 630 accomplishes other tasks as explained in conjunction with Fig. 2 above, for example, delivering the request message to the NDS 650 to accomplish the BGP data update.
The Redirector Agent 680 uses the data contained in the Application/Configuration Table, 355 of Fig. 3, to determine which type of communications protocol is being used at the Determine Request Type step 682. In this instance, the determination is made that an embedded HTML protocol has been received from the user. Steps 684 through 686 perform the same functions in the same manner as their counterparts in Fig. 5 and therefore are not detailed here. At step 688, Return Best Server, the Redirector Agent 680 passes the decision to the Router 630, which in turn sends the optimum route to the User 610 via the Best Choice = step 638. Thus in this instance, an HTTP://www-east.demo.com/index.html redirect command is passed back to the user. The user's device then executes the command and connects the user to the appropriate data content sever via the optimum path.
Fig. 7 presents a detailed state diagram 700 of the present invention using the DNS lookup method. With this method the process again starts with the User 710, whose IP address again happens to be 192.168.7.43, issuing a request to connect to www.demo.com at User Request 715. The request takes the form of a DNS lookup www.demo.com command. The Router 730 receives the command and then delivers the request via the Deliver Request step 736 to a Redirector Agent 780 embedded in a content server, for example, Content Server #1 300 in Fig. 1. Note that the Router 730 accomplishes other tasks as explained in conjunction with Fig. 2 above, for example, delivering the request message to the NDS 750 to accomplish the BGP data update. The Redirector Agent 780 uses the data contained in the Application/Configuration Table, 355 of Fig. 3, to determine which type of communications protocol is being used at the Determine Request Type step 782. In this instance, the determination is made that a DNS lookup protocol has been received from the user. Steps 784 through 786 perform the same functions in the same manner as their counterparts in Fig. 5 and therefore are not detailed. At step 788, Return Best Server, the Redirector Agent 780 passes the decision to the Router 730, which in turn sends the optimum route to the User 710 via the Best Choice = step 738. Thus in this instance, a DNS address of 206.224.221.254 is passed back to the user. The user's device then executes the connection to the appropriate data content sever via the optimum path in the normal manner. A first advantage of the present invention is the ability to make an optimal route decision based on current network status. This is accomplished by reading and storing network conditions gained from fresh BGP data contained in each new session.
A second advantage of the present invention is the speed of the optimum route decision process. Rapid route selection reduces the user delays in connecting to the best content server thereby reducing overall network traffic and increasing efficiency.
A third advantage of the present invention is that it is platform independent. The Redirector Agent can be embedded in various communications environments making it broadly available to networks of all sizes and configurations.
A fourth advantage of the present invention is that it is application independent. Since the Redirector Agent is pre-configured based upon client protocol preferences, a variety of communication applications may be served from the same network hosting environment.
A fifth advantage of the present invention is that it is expandable. As new protocols and or communications applications become available, the Redirector Agent can be programmed to recognize, analyze and react in an appropriate manner.
A sixth advantage of the present invention is that it is configurable on a client- by-client basis. This advantage allows the present invention to be changed as a client's needs change with little effort and expense.
A seventh advantage of the present invention is that it is mirrored. This redundancy of both data and process greatly increases the dependability of the method of the present invention and significantly reduces the deterioration in performance related to network outages. An eighth advantage of the present invention is that it is economical since makes the optimum route selection based on best performance at the specific point in time when the user makes the content request. This is done through use of a many network factors including bandwidth, equipment status, geographic considerations, and session type, as well as others.

Claims

What is claimed is:
1. A method of providing dynamic determination of an optimal content server to service a request from a remote user terminal, comprising: receiving a request from a remote user teπninal, said request containing request data and protocol data; updating a network status data table using said protocol data; determining a request type based upon said request data; comparing said request type to content server selection criteria contained in a network status data table; choosing an optimal content server based upon said request type and said content server selection criteria; and communicating information defining said optimal content server to said remote user terminal.
2. The method of Claim 1 wherein said determining step comprises the steps of: parsing said request data; characterizing said request data in accordance with request types maintained in an application/configuration table; forming an optimal content server query; and sending said optimal content server query to a content server node decision module.
3. The method of claim 2 wherein said characterizing step includes the step of characterizing said request data in accordance with requests types including Hypertext Transfer Protocol requests, Hypertext Markup Language requests, and Dynamic Name Server requests.
4. The method of claim 1 wherein said updating step includes updating said network status data table with Border Gateway Protocol data.
5. The method of claim 1 wherein said choosing step includes the step of choosing an optimal content server based upon said request type and content server selection criteria including updated network status, updated network communications bandwidth, user geographic data, and content server geographic data.
6. A computer readable memory to direct a digital device to function in a specified manner, comprising: a redirector agent program including a front end processor module, an application/ configuration data table module, and a node decision server interface module, said redirector agent program identifying a user request type and an optimal server query to process a user request; and a connection decision program including a protocol data table module, a protocol Interpreter module, a network status data table module and a redirector agent interface module, said connection decision program producing an optimal content server command corresponding to an optimal content server to process said user request.
7. The computer readable memory of claim 6 wherein said redirector program and said connection decision program are executed at a single geographic location.
8. The computer readable memory of claim 6 wherein said redirector program and said connection decision program are executed at different geographical locations.
9. The computer readable memory of claim 6 wherein said redirector program and said connection decision program are replicated at a plurality of geographic locations.
EP01975281A 2000-09-19 2001-09-19 Method and apparatus for dynamic determination of optimum connection of a client to content servers Withdrawn EP1327195A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US663977 1991-03-04
US66397700A 2000-09-19 2000-09-19
PCT/US2001/029524 WO2002025463A1 (en) 2000-09-19 2001-09-19 Method and apparatus for dynamic determination of optimum connection of a client to content servers

Publications (1)

Publication Number Publication Date
EP1327195A1 true EP1327195A1 (en) 2003-07-16

Family

ID=24663995

Family Applications (1)

Application Number Title Priority Date Filing Date
EP01975281A Withdrawn EP1327195A1 (en) 2000-09-19 2001-09-19 Method and apparatus for dynamic determination of optimum connection of a client to content servers

Country Status (3)

Country Link
EP (1) EP1327195A1 (en)
AU (1) AU2001294620A1 (en)
WO (1) WO2002025463A1 (en)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2002950134A0 (en) 2002-07-11 2002-09-12 Youramigo Pty Ltd A link generation system
US20040133631A1 (en) * 2003-01-06 2004-07-08 Hagen David A. Communication system
WO2011073707A1 (en) * 2009-12-14 2011-06-23 Telefonaktiebolaget L M Ericsson (Publ) Dynamic cache selection method and system
WO2013090699A1 (en) 2011-12-14 2013-06-20 Level 3 Communications, Llc Content delivery network
US9628346B2 (en) 2012-12-13 2017-04-18 Level 3 Communications, Llc Devices and methods supporting content delivery with reducer services
US10701149B2 (en) 2012-12-13 2020-06-30 Level 3 Communications, Llc Content delivery framework having origin services
US20140337472A1 (en) 2012-12-13 2014-11-13 Level 3 Communications, Llc Beacon Services in a Content Delivery Framework
US10701148B2 (en) 2012-12-13 2020-06-30 Level 3 Communications, Llc Content delivery framework having storage services
US10652087B2 (en) 2012-12-13 2020-05-12 Level 3 Communications, Llc Content delivery framework having fill services
US10791050B2 (en) 2012-12-13 2020-09-29 Level 3 Communications, Llc Geographic location determination in a content delivery framework
US9634918B2 (en) 2012-12-13 2017-04-25 Level 3 Communications, Llc Invalidation sequencing in a content delivery framework
SG11201506355QA (en) * 2013-02-19 2015-09-29 Teridion Technologies Ltd Increased data transfer rate method and system for regular internet user

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5265257A (en) * 1990-06-22 1993-11-23 Digital Equipment Corporation Fast arbiter having easy scaling for large numbers of requesters, large numbers of resource types with multiple instances of each type, and selectable queuing disciplines
US6016520A (en) * 1995-07-14 2000-01-18 Microsoft Corporation Method of viewing at a client viewing station a multiple media title stored at a server and containing a plurality of topics utilizing anticipatory caching
US6182122B1 (en) * 1997-03-26 2001-01-30 International Business Machines Corporation Precaching data at an intermediate server based on historical data requests by users of the intermediate server
US6286029B1 (en) * 1997-04-28 2001-09-04 Sabre Inc. Kiosk controller that retrieves content from servers and then pushes the retrieved content to a kiosk in the order specified in a run list
US6173322B1 (en) * 1997-06-05 2001-01-09 Silicon Graphics, Inc. Network request distribution based on static rules and dynamic performance data
US6108706A (en) * 1997-06-09 2000-08-22 Microsoft Corporation Transmission announcement system and method for announcing upcoming data transmissions over a broadcast network
US6233607B1 (en) * 1999-04-01 2001-05-15 Diva Systems Corp. Modular storage server architecture with dynamic data management

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO0225463A1 *

Also Published As

Publication number Publication date
WO2002025463A1 (en) 2002-03-28
AU2001294620A1 (en) 2002-04-02

Similar Documents

Publication Publication Date Title
US10476984B2 (en) Content request routing and load balancing for content distribution networks
US5774660A (en) World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network
US9544268B2 (en) Systems and method to discover clients associated with local domain name server using sampling
Cardellini et al. Dynamic load balancing on web-server systems
US7103651B2 (en) Method and apparatus for discovering client proximity network sites
US7111006B2 (en) System and method for providing distributed database services
US7284055B1 (en) Method and system for network redirecting
US6879998B1 (en) Viewer object proxy
US7565450B2 (en) System and method for using a mapping between client addresses and addresses of caches to support content delivery
US20120303784A1 (en) Load balancing
US20010049741A1 (en) Method and system for balancing load distribution on a wide area network
US20030182410A1 (en) Method and apparatus for determination of optimum path routing
US8832245B2 (en) System and method for content delivery using dynamic region assignment
US6731598B1 (en) Virtual IP framework and interfacing method
WO2002025463A1 (en) Method and apparatus for dynamic determination of optimum connection of a client to content servers
Agarwal et al. Content distribution architecture using network layer anycast
EP1297677A2 (en) Client side holistic health check
AU2001272931A1 (en) Client side address routing analysis
CA2410866C (en) Client side deterministic routing and transparent redirection
KR20030059681A (en) Method and System for supplying Anycast service

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20030407

AK Designated contracting states

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LI LU MC NL PT SE TR

AX Request for extension of the european patent

Extension state: AL LT LV MK RO SI

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20040401