US20090228588A1 - Performance computer network method - Google Patents
Performance computer network method Download PDFInfo
- Publication number
- US20090228588A1 US20090228588A1 US12/471,209 US47120909A US2009228588A1 US 20090228588 A1 US20090228588 A1 US 20090228588A1 US 47120909 A US47120909 A US 47120909A US 2009228588 A1 US2009228588 A1 US 2009228588A1
- Authority
- US
- United States
- Prior art keywords
- server
- web
- servers
- pop
- customer
- 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.)
- Abandoned
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/14—Charging, metering or billing arrangements for data wireline or wireless communications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/101—Server selection for load balancing based on network conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
- H04L41/5009—Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF]
- H04L41/5012—Determining service level performance parameters or violations of service level contracts, e.g. violations of agreed response time or mean time between failures [MTBF] determining service availability, e.g. which services are available at a certain point in time
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/508—Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement
- H04L41/509—Network service management, e.g. ensuring proper service fulfilment according to agreements based on type of value added network service under agreement wherein the managed service relates to media content delivery, e.g. audio, video or TV
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/0858—One way delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/12—Network monitoring probes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/10015—Access to distributed or replicated servers, e.g. using brokers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/563—Data redirection of data network streams
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Definitions
- the present invention relates to world wide area networking. More particularly, the invention provides a technique including a method and system for using a global traffic management system coupled to a plurality of content servers for a service fee. But it would be recognized that the invention has a much broader range of applicability. For example, the invention can also be applied to operation on a private network, and the like.
- the Internet is a world wide “super-network” which connects together millions of individual computer networks and computers.
- the Internet is generally not a single entity. It is an extremely diffuse and complex system over where no single entity has complete authority or control. Although the Internet is widely know for one of its ways of presenting information through the World Wide Web (herein “Web”), there are many other services currently available based upon the general Internet protocols and infrastructure.
- Web World Wide Web
- the Web is often easy to use for people inexperienced with computers.
- Information on the Web often is presented on “pages” of graphics and text that contain “links” to other pages either within the same set of data files (i.e., Web site) or within data files located on other computer networks.
- Users often access information on the Web using a “browser” program such as one made by Netscape Communications Corporation (now America Online, Inc.) of Mountain View, Calif. or ExplorerTM from Microsoft Corporation of Redmond, Wash. Browser programs can process information from Web sites and display the information using graphics, text, sound, and animation. Accordingly, the Web has become a popular medium for advertising goods and services directly to consumers.
- Traffic generally refers to the transfer of information from a Web site at a server computer to a user at a client computer.
- the traffic generally travels through the world wide network of computers using a packetized communication protocol, such as TCP/IP. Tiny packets of information travel from the server computer through the network to the client computer.
- TCP/IP packetized communication protocol
- Tiny packets of information travel from the server computer through the network to the client computer.
- the tiny packets of information traveling through the Internet become congested.
- traffic jams that cause a delay in the information from the server to the client occur during high usage hours on the Internet.
- These traffic jams lead to long wait times at the client location.
- a user of the client computer may wait for a long time for a graphical object to load onto his/her computer.
- the present invention relates to a computer server network. More particularly, the present invention relates to an integrated load balancing and content delivery computer network.
- Embodiments of the present invention include a number of Linux machines (on other operating machines) running software available from the current assignee.
- This software currently includes eight separate software components that are delivered as a single product. When deployed across a large number of machines, the software creates a network of point of presence (POP) computers that provides a solution for integrated content hosting and traffic management.
- POP point of presence
- Customers using the POP network can store content such as HTML, images, video, sound, software, or the like on the network for fast and highly available access by clients (end users).
- the network also provides load balancing and high availability for servers outside the network.
- Customers with generated content such as search engines, auctions and shopping carts, can use the latter feature to add their own content servers to the network.
- the computer network may be monitored using a standard web browser in some embodiments.
- HTML interfaces are provided that display the computer networks current status as well as historical statistics.
- a method for operating a network of point of presence servers sharing a hostname includes a user making a request for a web page with a domain name the POP network is authoritative for.
- the user's computer sends a request for name resolution of the domain name they are requesting content from to the configured local DNS server (LDNS) for that user's computer.
- LDNS is typically configured in close proximity to the user's computer.
- the LDNS resolves the IP address of the domain name the user's computer has queried for by sending a query to the Authoritative DNS server (ADNS) for that domain name.
- ADNS Authoritative DNS server
- the POP network DNS servers (SPDNS) is designated as an ADNS for all domains the POP network provides service for.
- the SPDNS On being asked to resolve the domain name from the LDNS on behalf of the user, the SPDNS first determines from the plurality of POP network servers and customer web servers the subset of servers addressable by the requested domain name.
- addressable servers are servers that have been configured by either the customer or the POP network to satisfy user requests for content within the requested domain name. These servers have been defined in the POP network configuration as such.
- the POP network selects the optimal server/servers for the user based on rules defined in the POP network configuration. These rules define how criteria such as POP/customer server health, latency from POP/customer servers to the user making the request, packet loss experienced at each POP, cost associated with each POP/customer server, and the like. These factors are then combined to define the optimal server for a given user making a request for a given domain name. In addition, persistence is defined in embodiments of the present invention for a domain name so that the user is returned to the same POP/customer server on subsequent requests within a definable time. These rules for defining the optimal server are created on a per domain name basis allowing each domain name to be configured independently.
- the next step includes the SPDNS returning the IP address of the optimal servers to the LDNS making the request, and the LDNS resolving the domain name for the user computer making the request for content with the IPs provided by the SPDNS.
- the POP network servers are defined in the POP network configuration to be addressable by a requested domain names that represent a customer's static or cacheable content, a static domain name.
- the customer's servers are defined as addressable for domain names that represent dynamic or non-cacheable content, a dynamic domain name.
- Resolution for either domain name type is performed by the same set of servers controlled and operated by the POP network, the SPDNS.
- both domain name types leverage the same infrastructure for determining network and service load as well as configuration.
- This technique allows the customer to organize their web site by functions where functions are mapped into domain names.
- the functions have requirements that define what is needed by a server to satisfy the function. Some functions may only be limited by the ability to access a collection of static content while others require a proprietary application and access to a customer's database.
- the domain names are then mapped into resources or servers that can be addressed by the domain name and that satisfy requests for the function that domain name has been defined to support.
- This method of organization allows individual elements of a web page to be retrieved from different resources. Further, such embodiments provide the SPDNS the control to direct users to an available and optimal server for a given resource. This greatly improves the user experience by reducing connection time, download time, errors, and the like.
- a method for a computer network includes sending a first request from a web client for resolving a first web address of a web page to a client DNS server, sending the first request from the client DNS server to a POP DNS server within a POP server network, using a probe server in the POP server network to determine traffic loads of a plurality of customer web servers, each of the customer web servers storing the web page, using the POP DNS server to determine a customer web server from the plurality of customer web servers, the customer web server having a traffic load lower than traffic loads of other customer web servers in the plurality of customer web servers.
- the technique may also include requesting the web page from the customer web server, the web page including static content represented by an embedded URL, sending the web page from the customer web server to the web client, sending a second request from the web client for resolving the URL to the client DNS server, and sending the second request from the client DNS server to the POP DNS server within a POP server network.
- the method includes using the probe server to determine service metrics of a plurality of web caches within the POP server network, using the POP DNS server to determine a web cache from the plurality of web caches, the web cache having service metrics more appropriate for the second request than service metrics of other web caches in the plurality of web caches, and requesting the static content from the web cache. Sending the static content to the web client, and outputting the static content with the web client are also contemplated.
- a method for a computer network includes using a web client to enter a first web address of a web page, sending a first request from the web client to a client DNS server to resolve the first web address, sending the first request from the client DNS server to a POP DNS server within a POP server network, using a probe server in the POP server network to determine latencies between the probe server to a plurality of customer web servers, each of the customer web servers having the web page, and using the POP DNS server to determine a customer web server from the plurality of customer web servers in response to the latencies, the customer web server having a latency lower than latencies of other customer web servers in the plurality of customer web servers.
- the steps of requesting the web page from the customer web server, the web page including an embedded URL representing static content, sending the web page from the customer web server to the web client, sending a second request from the web client to the client DNS server for resolving the URL, sending the second request from the client DNS server to the POP DNS server within the POP server network are also included.
- FIG. 1 is an overview block diagram of an embodiment of the present invention
- FIG. 2 illustrates a block diagram of a typical server machine according to an embodiment of the present invention
- FIGS. 3A-3C illustrate a flow chart according to an embodiment of the present invention
- FIG. 4 illustrates a flow chart according to another embodiment of the present invention.
- FIG. 5 illustrates a more detailed block diagram according to one embodiment.
- FIG. 1 is an overview block diagram of an embodiment of the present invention.
- the invention provides a technique including a method and system for using a global traffic management system coupled to a plurality of content servers for a service fee.
- FIG. 1 illustrates a series of “point of presence” (POP) servers 10 , 20 , and 30 , customer web servers (POP servers) 40 and 45 , a monitoring POP server 50 , and an ISP cluster 60 .
- POP point of presence
- the servers 10 - 50 , and ISP 60 are typically coupled via a computer network 70 , such as the Internet.
- other types of computer networks may include other wide area networks, local area networks, such as intranets, and the like.
- POP servers 10 - 30 are typically distributed around the world and together they form a POP network.
- each POP server will include a plurality of dedicated servers, providing functionality as will be described below.
- POP server 20 includes servers 65 , 80 - 100 .
- server 65 operates as a probing server according to NetProbe software described below
- server 80 and 90 operate as a cache according to WebCache software described below
- server 100 operates as a content server according to WebServer software described below.
- server 10 and 20 may include a server 110 and 120 that includes Domain Name Server (DNS) software, described below.
- DNS Domain Name Server
- NetProbe server software performs probes across computer network 70 to determine server load and availability (metrics), to perform content checks to ensure servers are delivering correct content, to determine latency between customer web sites and POP servers, and the like.
- NetProbe software may operate continuously and typically sends results to POP servers running NameServer software, such as POP server 10 and 30 .
- measurements of server metrics may include response times for HTTP service, FTP service, customer web server CPU load, customer web server memory load and/or utilization, or the like. In other embodiment, other types of measurements are contemplated.
- the WebCache server software responds to requests for static web content from clients, such as web browsers from memory.
- clients such as web browsers from memory.
- the WebCache software will generate a request to a WebServer.
- WebServer sends the requested content
- the WebCache software caches the content in memory.
- the WebServer software responds to requests for content from WebCache servers. If the content requested does not exist on disk, the WebServer software will generate a request to a web server that is known to include the content, for example, web server 130 . Once the content is provided by web server 130 , the WebServer software stores the content to disk and also returns the content to the WebCache. In this embodiment, this server only gets request for WebCache “misses” so it does not require caching functionality.
- DNS software performs a mapping from domain name to IP address.
- the DNS software is queried to resolve a hostname, or the like, and returns an IP address of a web server that has the bandwidth to respond to the request. Further, in response to a query, the DNS software returns an IP address of a web server that can quickly provide web content.
- the dedicated servers are typically coupled to the computer network 70 via a router.
- a fewer number of physical servers may be used to implement functionality of servers 65 , 80 - 100 , or the like.
- a physical server may have multiple software packages operating upon it at one time.
- WebCache software and WebServer software may operate as two different processes on a single server.
- each POP server will include NetProbe, WebCache, and WebServer software.
- only a limited number of POP servers will include DNS software, however, in other embodiments, the number of servers with DNS software may be increased.
- customer web servers 40 and 45 typically include web servers 130 and 135 and servers 140 and 145 .
- web servers 130 and 135 provide static content, such as text and graphics
- servers 140 and 145 provide non-static content, or content that changes in response to a user query, or the like.
- servers 140 and 145 may be search engines, databases, or the like.
- customer POP web servers 40 and 45 are mirrors of each other, and are designed to improve the perceived responsiveness of a web site with respect to a user.
- ISP 60 is illustrated including users 150 - 160 , and a client DNS server 170 .
- ISP 60 may be a conventional ISP such as Earthlink, AOL, or the like. Accordingly, users 150 and 160 may be home users using dial-up lines, cable modems, DSL, or the like, to connect with ISP 60 .
- client DNS server 170 is typically provided within ISP 60 . In the present embodiment, client DNS server 170 is typically used to resolve a host name into an IP address. If client DNS server 170 does not know the IP address, client DNS server 170 may pass the request to other DNS servers, such as DNS servers 110 - 120 , or the like.
- a monitoring POP server 50 may include a plurality of dedicated servers, providing functionality described herein.
- monitoring POP server 50 includes servers 180 - 210 .
- server 180 operates as an monitoring display server according to NetView software described below;
- server 190 operates as an administration server according to tools, together termed AdminTool software, described below;
- servers 200 and 210 operate as logging servers according to LogServer software described below.
- POP server 10 and 20 may include a server 110 and 120 that includes Domain Name Server (DNS) software, described below.
- DNS Domain Name Server
- NetView software provides an HTML interface to current and historical statistics for customers and network administrators.
- the statistics about the POP network and the like are typically derived from servers running LogServer software, such as servers 200 and 210 , described below.
- NetView software includes web server CGI programs to provide the HTML output.
- the NetView software also provides an interface that allows customers to flush content from the POP network as they update the content on their web servers.
- LogServer software receives log file data from servers running NameServer, WebCache, WebServer and NetProbes software, and the like.
- LogServer software receives the log file data, and stores the data onto disk.
- the LogServer software separates the data into appropriate categories and processes the data to generate statistics. As mentioned above, the data is thus used for monitoring the state of POP servers on the network.
- AdminTool software various administrator tools, termed AdminTool software are also typically provided. These tools are used by the administrator to configure and administer the network of POP servers.
- tools provide tools that “spider” a customer web site and load WebServers and caches with content.
- monitoring POP server 50 In the present embodiment, a single monitoring POP server 50 is contemplated, however, multiple monitoring servers may be provided in alternative embodiments of the present invention.
- POP servers 10 - 30 , and monitoring POP server 50 includes shared software.
- This set of client and server software programs includes a server that receives a global configuration file that specifies the architecture of the POP servers, and stores it locally.
- POP servers will include multiple machines, each with a single purpose (DNS name server, for instance).
- DNS name server for instance
- POP servers 10 - 30 and customer web server 40 and 45 work together to provide static content and dynamic content to a user, such as user 150 coupled to ISP 60 .
- the POP network illustrated in FIG. 1 provides content hosting for static content, such as images, video, software, etc.
- the POP network also provides for load balancing and traffic management for services, and dynamic content that cannot be stored. Further detail regarding the process will be described below.
- the POP server network may simultaneously provide traffic management, as well as content hosting to more than one specific customer.
- customer 1 and customer 2 share the POP server network.
- POP server network may provide traffic load management by directing traffic to either customer 1 web server 40 or customer 1 web server 45 .
- POP server network may be used to host static content for customer 2 .
- Still further POP server may provide both traffic management and content hosting, as will be illustrated and discussed below. Accordingly, the POP server network may be termed a “shared” server network.
- FIG. 2 illustrates a block diagram of a typical server machine 300 according to an embodiment of the present invention.
- Server machine 300 typically includes a monitor 330 , a computer 340 , a keyboard 350 , an input device 360 , and a network interface 370 .
- Computer 340 includes familiar computer components such as a processor 310 , and memory storage devices, such as a random access memory (RAM) 320 , a disk drive 380 , and a system bus 390 interconnecting the above components.
- Network interface 370 is illustrated coupled to a network 395 , or the like
- a mouse is but one example of an input device 360 , also known as a pointing device.
- Other types of input devices may include trackballs, drawing tablets, microphones (for voice activated input), and the like.
- network interface 370 may be an Ethernet card, a modem, or the like.
- RAM 320 and disk drive 380 are examples of tangible media for storage of data, files, log data, computer programs, drivers, embodiments of the herein described methods, and the like.
- Other types of tangible media include floppy disks, removable hard disks, optical storage media such as CD-ROMS and bar codes, and semiconductor memories such as flash memories, read-only-memories (ROMS), battery-backed memories, and the like.
- Server 300 includes a PC compatible computer having '586 or '686 class based microprocessors, such as the AthlonTM microprocessor from AMD. Further, in the present embodiment, Server 300 utilizes LINUX, and runs software provided by Speedera Networks, Inc., the assignee of the present invention.
- FIG. 2 is representative of but one type of system for embodying the present invention. It will be readily apparent to one of ordinary skill in the art that many types of hardware and software configurations are suitable for use in conjunction with the present invention. For example, processors such as the G4 from Motorola, Pentiumlll, Pentium4, Itanium from Intel, and the like may be used; further any computer communications bus may be used in alternative embodiments of the present invention.
- server 300 may operate under the WindowsNT operating system, may operate under MAC OS from Apple Computer, BeOS from Be, Incorporated, and the like.
- FIGS. 3A-3C illustrate a flow chart according to an embodiment of the present invention.
- FIGS. 3A-3C illustrate a method for a network of POP servers to service a request from a user.
- FIGS. 3A-3C illustrate a method for a network of POP servers to service a request from a user.
- FIG. 1 illustrates the system in FIG. 1 for convenience.
- NetProbe servers 670 and 675 determine the amount of latency between itself and customer web server 40 and customer web server 45 , step 390 .
- Latency may also be determined between NetProbe servers 670 and 675 and the user's (client's local) DNS). Latency between a local DNS and NetProbe servers 670 and 675 are measured because the latency information should be as a user would experience it. Further, a NetProbe server should be in close proximity to the Customers' origin sites.
- the latencies may include a measurement of the amount of traffic and the load on the customer web servers at that moment in time. Further, the latency may include a measurement of response times between the particular NetProbe server 670 and the different customer web servers. In embodiments of the present invention, measurements of latency may include response times for HTTP service, FTP service, streaming media service. Additionally, factors such as customer web server CPU load, customer web server memory load and/or utilization, or the like may also be considered. In other embodiments, other types of measurements are contemplated, for example performance metrics, availability, persistence data, client weighting factors, and the like.
- NetProbe servers 670 and 675 and the like run virtually independently from other servers within a POP server, such as within POP server 10 , this step may be repeated at regular intervals, for example, every hour or the like. In embodiments of the present invention, it is envisioned that some customers may have many more than two web servers, thus NetProbe servers 670 and 675 may take additional traffic load measurements.
- NetProbe servers 670 and 675 , and the like also determine the performance of other POP servers, such as POP server 20 , 30 , or the like, step 400 .
- This type of data is termed “service metrics” of the POP network.
- the metrics may include a measurement of the amount of traffic and the load on a POP server at a recent period in time.
- service metrics may also consider response times for HTTP service, FTP service, POP server CPU load, POP server memory load and/or utilization, or the like.
- other types of measurements are contemplated, for example availability, persistence data, client weighting factors, monetary costs, and the like.
- NetProbe servers 670 and 675 , and the like run virtually independently from other servers within a POP server, such as POP server 10 , this step may be repeated at regular intervals, for example, every hour or the like.
- a user such as user 150 enters the name of a customer's web site, step 410 .
- a user can type-in the name of a customer's web site via keyboard, and in another embodiment, the user can select a hyperlink to the customer's web site from a page the user is viewing, or the like.
- the customer's web site is “customer1.com.”
- the name of the customer's web site is passed ( 220 ) to a local client DNS (LDNS) 170 , step 420 .
- LDNS local client DNS
- domain name servers typically translate textual names, or the like into IP addresses. If the LDNS does not know how to resolve the name, the DNS may route the request to another DNS.
- client DNS 170 passes ( 230 ) the name to an authoritative NameServer server (ANDS) 110 , step 430 .
- ANDS authoritative NameServer server
- NameServer server 110 typically uses the latency and traffic load information associated with the customer's web sites that was determined in step 390 , to select an appropriate customer web server to return to the user, step 440 .
- NameServer server 110 determines that the west coast customer web server 45 is very heavily loaded with requests, but the east coast customer web server 40 has light traffic.
- NameServer server 110 determines that the user should be directed to customer web server 40 .
- NameServer server 110 determines the IP address of customer web server 40 , step 450 , and then sends the IP address to the user, step 460 .
- NameServer server 110 may use latency information from multiple NetProbe servers such as NetProbe server 670 and 675 . Further, NameServer server 110 may use this information in addition to latencies between the NameServer server and NetProbe servers 670 and 675 in step 440 .
- NetProbe server 670 reports the latency of customer web server 45 to NameServer 110 because NetProbe server 670 may be the closest NetProbe server; further NetProbe server 675 reports the latency of customer web server 40 to NameServer 110 because NetProbe server 675 may be the closest NetProbe server.
- NameServer 110 would resolve the domain name to customer web server 45 because the additional latency between NetProbe server 670 and NameServer 110 is smaller than the latency between NetProbe server 675 and NameServer 110 .
- the sum of the latencies is used to determine how to resolve the IP address.
- user 150 receives the IP address, and then sends requests for a web page, or the like, at the received IP address, step 470 .
- the web page request typically includes static content and dynamic content.
- static content may include graphics and text that typically do not change between web page accesses, for example, corporate logos, archival images, documents, and the like.
- dynamic content may include graphics and text that do change between web page accesses, for example, stock quotes, search results, live web cameras, and the like.
- the web page requested from customer web server 40 includes static data, such as HTML text and URL addresses of static content, such as images, and dynamic data, such as stock quotes.
- static data typically resides on web server 130
- dynamic data is resides within server 140 .
- this data is also typically mirrored on web server 135 and server 145 in customer web server 45 .
- the customer does not want web server 130 to have the burden of providing static content to many different users.
- the POP network provides the content hosting of the static content. Accordingly, the URL addresses of the static content typically include textual domain names specifying the POP server network.
- web server 130 In response to the request from user 150 , web server 130 sends the HTML text, or the like, and the URL address of images to user 150 , step 480 . Additionally, server 140 may process the request from user 150 , determine the responsive data dynamically, and send the dynamic data back to user 150 , step 490 .
- the user's 150 client software receives the HTML text, dynamic data, URL address of static content, and the like from customer web server 40 . Similar to above, the URL address is passed ( 220 ) to client DNS (LDNS) 170 for resolution, step 500 . In this example, in response, client DNS 170 passes ( 230 ) the URL address to NameServer server (ADNS) 110 , step 510 .
- ADNS NameServer server
- NameServer server 110 uses the service metrics information associated with the other POP servers that was determined in step 400 , to select an appropriate POP server that includes the static content, step 520 .
- NameServer server 110 determines that the west coast POP server 10 is very heavily loaded with content requests, but the east coast POP server 30 has light few requests.
- NameServer server 110 determines that the user should retrieve data from POP server 30 .
- NameServer server 110 then recalls the IP address of POP server 40 , step 530 , and then sends the IP address to the user, step 540 .
- user 150 receives the IP address of POP server 30 , and then sends requests ( 250 ) for the static content from POP server 30 , step 550 .
- POP server 30 routes the request to WebCache server 280 .
- WebCache server 280 retrieves the static content from memory, and sends the requested static content back to user 150 , step 560 .
- the customer's web server may also be considered for providing the static content.
- the latency and traffic load information for the customer web server may be considered at the same time as the other POP servers. If the customer's web server is lightly loaded compared to the POP servers, the IP of the customer's web server may be retrieved in step 530 , and passed to the user in step 540 . Accordingly, in step 560 , the customer's web server provides the static content back to the user.
- the client can view the HTML text and dynamic data from customer web server 40 , as well as view the static content from POP server 30 , step 570 .
- the source of the static content may be specified as being provided at a specific server or a limited set of servers.
- FIG. 4 illustrates a flow chart according to another embodiment of the present invention.
- FIG. 4 illustrates a more detailed block diagram of step 560 , above.
- WebCache server 280 determines whether it has the requested static content in memory, step 600 . In one embodiment of the present invention, this step may include determining whether the file requested is resident in memory. If the requested static content is not cached within WebCache server 280 , WebCache server 280 sends a request ( 260 ) for the static content to WebSever server 290 , step 610 .
- WebServer server 290 determines whether it has the requested static content on disk, or the like, 620 . In one embodiment of the present invention, this step may include determining whether the file requested is resident in on a disk or database. If the requested static content is not stored within WebServer server 290 , WebServer server 290 determines sends a request ( 270 ) for the static content to a customer web server, step 630 .
- the appropriate customer web server selected is also determined based upon the traffic load and latency of the multiple customer web servers to POP server 30 . As an example, since POP server 30 is on the east coast and close to customer web server 40 . As a result, the request for the static content is directed to customer web server 40 . In an alternative embodiment, the customer web server from which static content is retrieved is predetermined.
- customer web server 40 provides the static content to WebServer server 290 , which in turn stores the static content to disk, or the like, step 640 .
- WebCache server 280 returns the static content to the user, step 660 .
- FIG. 5 illustrates a more detailed block diagram according to one embodiment.
- FIG. 5 illustrates are more detailed description of the flow of data between software components on the POP network.
- FIG. 5 includes a reduced number of software components on servers on the POP network, including a NameServer server 700 , a WebCache server 710 , a WebServer server 720 , NetProbes 730 , LogServer server 740 , and NetView server 750 .
- communication between the components is performed using a packetized format such as TCP, UDP, or the like.
- FIG. 5 also illustrates a customer web site 760 .
- the configuration of the POP network is maintained in a single global configuration file.
- This file is known as the “global configuration” file.
- every POP server in the POP network determines configuration information by the copy of the current Speedera configuration file stored locally.
- the configuration file includes a list of servers allowed to change the configuration; a list of domains the network is responsible for (i.e. customers' web sites); list of software components and services available in each POP server; a list of probes that perform latency checks at each POP server; and the like. Other similar types of information are also included.
- a new configuration file can be pushed to all POP servers by using the AdminTools software, mentioned above.
- the configuration file in the present embodiment is in a “registry tree” type format. Typically few statistics, status or extended information is kept in the configuration file. Such data is typically stored in server 740 , as will be described below. In the present example, the configuration file is kept small to reduce the amount of time required for updating a configuration file across the POP network. Further, a tree-type format is used to allow the configuration to be easily extended without having to change its structure.
- the configuration file is not necessarily sent to all POP servers in the POP network. Instead, only POP servers including NameServers, NetProbes and LogServers are updated. In the present embodiment, POP servers only including a WebCache or a WebServers are not updated, because WebCache and WebServers access NameServers to find services on the POP network. For example, when a WebCache needs to send information to a log server, it will make a request to: “log.name.speedera.com.” In response, a request is generated to a NameServer and in response the NameServer returns the appropriate IP address. Because the configuration file does not need to be sent to all the POP servers in the network, any configuration file update is performed efficiently.
- the domain name uniquely identifies the POP server.
- the name is “name.pop.speedera.net”, “dp1.westusa.speedera.net”, or the like.
- the NameServer software is embodied as a DNS server that performs name to IP address mapping.
- the software receives requests containing textual names and returns numeric IP addresses typically in the form of xxx.xxx.xxx.xxx, associated with those names.
- the software is also responsible for receiving and storing latency, POP server status information, and the like from the NetProbe servers.
- Other types of data include the source IP address, the availability of the POP server, the traffic load, and the like are also stored.
- the DNS servers should be designed to handle upwards of 1000 hits per second.
- the 10 DNS servers will handle all the DNS requests for all users on the Internet that are serviced by the POP network. For example, users that require the POP network to determine the least loaded customer web site, and users that require content stored on the POP network both require services from the DNS servers. In alternative embodiments, a greater number of lesser number of DNS servers may be used according to specific application.
- the NameServer replies to DNS queries and does not return any other information.
- the DNS server may uses the following information: the configuration file to determine what machines have the content corresponding to the request; a table containing latency information for each POP to each client DNS (traffic load); a table containing service metrics (load/availability) information for each POP server, and the like.
- the data received from NetProbe servers comprise UDP traffic.
- the NameServer software transmits log information to the LogServer software, also via UDP traffic.
- other schemes for transferring packetized data is contemplated.
- the NameServer receives the service and latency information data from the NetProbe servers. In addition, in this embodiment, timestamp is also received so the Name Server software knows how stale the performance information is. The NameServer software stores this information to disk, to RAM, or the like. In this embodiment, the NameServer data is typically stored on disk to reduce the effects of a crash or a reboot. In this way, the latency and probe information is maintained. Further, in some cases, data such as persistence information should be maintained even if the system is rebooted.
- the NameServers log the requests they get and the replies they give, i.e. IP addresses.
- the NameServer sends its latest statistics (e.g. number of hits it has taken per domain name, etc.) to the various NetProbe servers and appropriate log analysis servers via UDP.
- log analysis servers are assigned based on the domain name served.
- the log analysis is a distributed process.
- the DNS software is proprietary and supports all features of BIND.
- the WebCache software is typically embodied as a caching web server. As described above, the WebCache server accepts HTTP or URL requests and checks memory for the requested content. As discussed in the flow diagram above, the content is typically static content from a customer's web page, or the like. If the content is not in the memory, the WebCache server contacts a WebServer server that may have the web page stored using HTTP.
- WebCache is a customized caching server.
- WebCache may include hardware cache boxes available from companies such as CacheFlow, Inktomi, or the like.
- the WebCache server compresses and sends the logs of the content it stores, and sends the logs to log analysis servers. This transfer is typically via UDP traffic. This information provided by the WebCache server is typically used for billing purpose as well as by customers for auditing and log analysis. In the case where a hardware cache box is used, the box must also be configured to send the logs to the log analysis servers.
- the WebCache software is proprietary but could be integrated with off the shelf caching products.
- a WebCache server when a WebCache server cannot provide the content requested, it forwards the request to a server running WebServer software it believes has the content. As discussed above, the WebServer software processes the request by looking on its local disk for the content. If the content exists on the local disk, the WebServer will pass the data to the WebCache. Further, if the content in not on the disk, the WebServer contacts the customers web site to retrieve the content.
- the WebServer typically does not provide log data. Instead, the WebCache provides the cache miss information to the log analysis servers. WebServer, along with many of the other software modules do report error conditions to the log server.
- the WebServer and WebCache may exist as one program. In alternative embodiments, these pieces of software may be separate and even reside on different machines.
- the NetProbes software performs service availability/metric and latency probes and sends the results via UDP to NameServer servers. There are two distinct types of probes in the present embodiment, service probes and latency probes.
- service probes determine service availability and load (metrics) for each content delivery machine in the network.
- Content delivery machines include the POP servers including WebCache and WebServer modules, and may also include the customer's web site(s).
- Service probes monitor data such as HTTP total response time, FTP total response time, and the like.
- service probes run constantly, and send current metric and availability information to all DNS servers in the POP network.
- the timing of the probe intervals and configuration of the service probes is typically speechified in the global configuration file.
- Latency probes determine latency from the POP server hosting the NetProbe to the client DNS servers that sent the requests to Speedera DNS servers.
- the Speedera DNS servers typically drive the latency probes.
- a DNS server determines that it needs latency information from a probe, it sends a request to the probe.
- the latency probe probes the client DNS server and returns with the result.
- the DNS servers send a number of requests in a single UDP packet to a latency probe.
- the NetProbe servers typically do not store the results of the probes, but simply sends them to other servers via UDP. Each piece of probe information has a timestamp of when the probe occurred so the receiving server can determine how stale the probe information is.
- LogServer servers receive data from machines running NameServer, NetProbes and WebCache software.
- the data is typically transmitted to one or more log analysis servers where the data is stored and analyzed.
- the data is typically stored by customer name to facilitate billing and preparation of audit and historical statistics.
- the LogServer software also gets requests for information from the NetView software. Such a request may be made when an administrator, or the like wants to graphically view or view the table of data for current or historical status of a web site (hits, open connections, etc.).
- the configuration file will have a list of log servers and the customer domains they manage, however, LogServers will only receive data for the customer domains they manage, not for other domains.
- the NetView software referred to above is typically an HTML user-interface providing customers and administrators to use a web browser to view real-time and historical information.
- the NetView software includes a web server and CGI or web server plug-in modules written in Perl or C.
- NetView servers contact LogServers or the LogServer database to get the underlying data.
- the raw data from LogServers and formats and displays it to customers, or the like in the form of tables and/or graphs.
- the NetView software also provides an interface that allows a customer to flush content from the POP network when they publish new content to their servers. To perform the action of flushing content, the NetView software executes the AdminTool software that has the ability to flush content from the system.
- the AdminTools software includes tools used to administer the Speedera Network. It contains two main tools, one to push a new configuration file to servers in the network and another to cause content to be flushed from the network.
- the configuration administration tool sends the global configuration file to servers in the network in a hierarchical fashion.
- a list of servers will get the configuration file and send it to another list of servers and so on.
- the list of servers to receive the configuration file and what servers they control is typically specified by the configuration file itself.
- the configuration system is written such that it does not allow configuration files to get out of sync, when machines are down or if a socket connection breaks while transmission is in process, or the like.
- the administration tool opens sockets to all the master configuration servers, sends the configuration file and waits for confirmation that they and everyone they send the file to receives it and then send a command to tell everyone to switch to use that configuration file.
- the configuration administration tool uses TCP and not UDP because of the increased security. Additionally, password protection and encryption may also be used.
- the Shared software includes software that will exist on all servers in the network. This includes a configuration daemon that listens for the transmission of a new configuration file, stores it locally and sends a SIGHUP to local processes to notify them the configuration has changed.
- steps 460 and 470 are not explicitly performed. Instead, after the DNS server resolves the IP address of the customer web server in step 450 , the IP address is automatically used to address the customer web server. Similarly, in some embodiments, steps 540 and 550 are not explicitly performed. Instead, after the DNS server resolves the IP address of the POP server in step 530 , the IP address is automatically used to address the POP server. Details of additional embodiments of the present invention may be found in the documents in the attached appendix.
- the static content stored on the web caches may include movies, audio, images, text, plug-in program data, programs, and the like.
- Other types of data can be stored within the web caches, for example, streaming audio data, video data, and the like.
- embodiments have discussed providing data across wide area networks, such as the Internet.
- embodiments of the above described invention may be applied to other types of networks including wireless networks, local area networks, and the like.
Abstract
A method for a computer network includes a plurality of customer web servers, each of the customer web servers storing a web page, using a POP DNS server to determine a customer web server from the plurality of customer web servers, the customer web server having a traffic load lower than traffic loads of other customer web servers in the plurality of customer web servers, requesting the web page from the customer web server, the web page including static content represented by an embedded URL, resolving the URL to a POP DNS server within a POP server network, using the POP DNS server to determine a web cache from a plurality of web caches to provide static content for the URL.
Description
- This application is a continuation of U.S. patent application Ser. No. 11/754,352, filed May 28, 2007, which is a continuation of U.S. patent application Ser. No. 10/774,246 filed Feb. 6, 2004, now U.S. Pat. No. 7,225,254, issued May 29, 2007, which is a continuation of U.S. patent application Ser. No. 09/645,067, filed Aug. 23, 2000, now U.S. Pat. No. 6,694,358, issued Feb. 17, 2004, which claims priority to U.S. Provisional Patent Application Ser. No. 60/166,906, filed Nov. 22, 1999, the entire contents of which are incorporated herein by this reference.
- The applicant(s) hereby rescind any disclaimer of claim scope in the parent application(s) or the prosecution history thereof and advise the USPTO that the claims in this application may be broader than any claim in the parent application(s).
- The present invention relates to world wide area networking. More particularly, the invention provides a technique including a method and system for using a global traffic management system coupled to a plurality of content servers for a service fee. But it would be recognized that the invention has a much broader range of applicability. For example, the invention can also be applied to operation on a private network, and the like.
- The Internet is a world wide “super-network” which connects together millions of individual computer networks and computers. The Internet is generally not a single entity. It is an extremely diffuse and complex system over where no single entity has complete authority or control. Although the Internet is widely know for one of its ways of presenting information through the World Wide Web (herein “Web”), there are many other services currently available based upon the general Internet protocols and infrastructure.
- The Web is often easy to use for people inexperienced with computers. Information on the Web often is presented on “pages” of graphics and text that contain “links” to other pages either within the same set of data files (i.e., Web site) or within data files located on other computer networks. Users often access information on the Web using a “browser” program such as one made by Netscape Communications Corporation (now America Online, Inc.) of Mountain View, Calif. or Explorer™ from Microsoft Corporation of Redmond, Wash. Browser programs can process information from Web sites and display the information using graphics, text, sound, and animation. Accordingly, the Web has become a popular medium for advertising goods and services directly to consumers.
- As time progressed, usage of the Internet has exploded. There are literally millions of users on the Internet. Usage of the Internet is increasing daily and will eventually be in the billions of users. As usage increases so does traffic on the Internet. Traffic generally refers to the transfer of information from a Web site at a server computer to a user at a client computer. The traffic generally travels through the world wide network of computers using a packetized communication protocol, such as TCP/IP. Tiny packets of information travel from the server computer through the network to the client computer. Like automobiles during “rush hour” on Highway 101 in Silicon Valley, the tiny packets of information traveling through the Internet become congested. Here, traffic jams that cause a delay in the information from the server to the client occur during high usage hours on the Internet. These traffic jams lead to long wait times at the client location. Here, a user of the client computer may wait for a long time for a graphical object to load onto his/her computer.
- From the above, it is seen that an improved way to transfer information over a network is highly desirable.
- The present invention relates to a computer server network. More particularly, the present invention relates to an integrated load balancing and content delivery computer network.
- Embodiments of the present invention include a number of Linux machines (on other operating machines) running software available from the current assignee. This software currently includes eight separate software components that are delivered as a single product. When deployed across a large number of machines, the software creates a network of point of presence (POP) computers that provides a solution for integrated content hosting and traffic management.
- Customers using the POP network, according to one embodiment, can store content such as HTML, images, video, sound, software, or the like on the network for fast and highly available access by clients (end users). The network also provides load balancing and high availability for servers outside the network. Customers with generated content, such as search engines, auctions and shopping carts, can use the latter feature to add their own content servers to the network.
- The computer network may be monitored using a standard web browser in some embodiments. In particular, HTML interfaces are provided that display the computer networks current status as well as historical statistics.
- According to one embodiment of the invention a method for operating a network of point of presence servers sharing a hostname is disclosed. The method includes a user making a request for a web page with a domain name the POP network is authoritative for. The user's computer sends a request for name resolution of the domain name they are requesting content from to the configured local DNS server (LDNS) for that user's computer. The LDNS is typically configured in close proximity to the user's computer. The LDNS resolves the IP address of the domain name the user's computer has queried for by sending a query to the Authoritative DNS server (ADNS) for that domain name.
- The POP network DNS servers (SPDNS) is designated as an ADNS for all domains the POP network provides service for. On being asked to resolve the domain name from the LDNS on behalf of the user, the SPDNS first determines from the plurality of POP network servers and customer web servers the subset of servers addressable by the requested domain name. In this embodiment, addressable servers are servers that have been configured by either the customer or the POP network to satisfy user requests for content within the requested domain name. These servers have been defined in the POP network configuration as such.
- From this subset of servers, the POP network selects the optimal server/servers for the user based on rules defined in the POP network configuration. These rules define how criteria such as POP/customer server health, latency from POP/customer servers to the user making the request, packet loss experienced at each POP, cost associated with each POP/customer server, and the like. These factors are then combined to define the optimal server for a given user making a request for a given domain name. In addition, persistence is defined in embodiments of the present invention for a domain name so that the user is returned to the same POP/customer server on subsequent requests within a definable time. These rules for defining the optimal server are created on a per domain name basis allowing each domain name to be configured independently. The next step includes the SPDNS returning the IP address of the optimal servers to the LDNS making the request, and the LDNS resolving the domain name for the user computer making the request for content with the IPs provided by the SPDNS.
- In the present embodiment, the POP network servers are defined in the POP network configuration to be addressable by a requested domain names that represent a customer's static or cacheable content, a static domain name. The customer's servers are defined as addressable for domain names that represent dynamic or non-cacheable content, a dynamic domain name. Resolution for either domain name type is performed by the same set of servers controlled and operated by the POP network, the SPDNS. In addition, both domain name types leverage the same infrastructure for determining network and service load as well as configuration.
- This technique allows the customer to organize their web site by functions where functions are mapped into domain names. The functions have requirements that define what is needed by a server to satisfy the function. Some functions may only be limited by the ability to access a collection of static content while others require a proprietary application and access to a customer's database. The domain names are then mapped into resources or servers that can be addressed by the domain name and that satisfy requests for the function that domain name has been defined to support. This method of organization allows individual elements of a web page to be retrieved from different resources. Further, such embodiments provide the SPDNS the control to direct users to an available and optimal server for a given resource. This greatly improves the user experience by reducing connection time, download time, errors, and the like.
- According to one aspect of the invention, a method for a computer network is disclosed. The method includes sending a first request from a web client for resolving a first web address of a web page to a client DNS server, sending the first request from the client DNS server to a POP DNS server within a POP server network, using a probe server in the POP server network to determine traffic loads of a plurality of customer web servers, each of the customer web servers storing the web page, using the POP DNS server to determine a customer web server from the plurality of customer web servers, the customer web server having a traffic load lower than traffic loads of other customer web servers in the plurality of customer web servers.
- The technique may also include requesting the web page from the customer web server, the web page including static content represented by an embedded URL, sending the web page from the customer web server to the web client, sending a second request from the web client for resolving the URL to the client DNS server, and sending the second request from the client DNS server to the POP DNS server within a POP server network. In one embodiment, the method includes using the probe server to determine service metrics of a plurality of web caches within the POP server network, using the POP DNS server to determine a web cache from the plurality of web caches, the web cache having service metrics more appropriate for the second request than service metrics of other web caches in the plurality of web caches, and requesting the static content from the web cache. Sending the static content to the web client, and outputting the static content with the web client are also contemplated.
- According to another aspect of the invention, a method for a computer network is described. The method includes using a web client to enter a first web address of a web page, sending a first request from the web client to a client DNS server to resolve the first web address, sending the first request from the client DNS server to a POP DNS server within a POP server network, using a probe server in the POP server network to determine latencies between the probe server to a plurality of customer web servers, each of the customer web servers having the web page, and using the POP DNS server to determine a customer web server from the plurality of customer web servers in response to the latencies, the customer web server having a latency lower than latencies of other customer web servers in the plurality of customer web servers.
- In some cases the steps of requesting the web page from the customer web server, the web page including an embedded URL representing static content, sending the web page from the customer web server to the web client, sending a second request from the web client to the client DNS server for resolving the URL, sending the second request from the client DNS server to the POP DNS server within the POP server network are also included. In the current technique using the probe server to determine loads of a plurality of web caches within the POP server network, using the POP DNS server to determine a web cache from the plurality of web caches in response to the loads, the web cache having a load lower than loads of other web caches in the plurality of web caches, retrieving the static content from the web cache, sending the static content to the web client, and utputting the static content with the web client are also included.
- In order to more fully understand the present invention, reference is made to the accompanying drawings. Understanding that these drawings are not to be considered limitations in the scope of the invention, the presently preferred embodiments and the presently understood best mode of the invention are described with additional detail through use of the accompanying drawings in which:
-
FIG. 1 is an overview block diagram of an embodiment of the present invention; -
FIG. 2 illustrates a block diagram of a typical server machine according to an embodiment of the present invention; -
FIGS. 3A-3C illustrate a flow chart according to an embodiment of the present invention; -
FIG. 4 illustrates a flow chart according to another embodiment of the present invention; and -
FIG. 5 illustrates a more detailed block diagram according to one embodiment. -
FIG. 1 is an overview block diagram of an embodiment of the present invention. The invention provides a technique including a method and system for using a global traffic management system coupled to a plurality of content servers for a service fee.FIG. 1 illustrates a series of “point of presence” (POP)servers monitoring POP server 50, and anISP cluster 60. InFIG. 1 , the servers 10-50, andISP 60 are typically coupled via acomputer network 70, such as the Internet. In other embodiments, other types of computer networks may include other wide area networks, local area networks, such as intranets, and the like. - In the present embodiment, POP servers 10-30 are typically distributed around the world and together they form a POP network. In a typical embodiment, each POP server will include a plurality of dedicated servers, providing functionality as will be described below. For example,
POP server 20 includesservers 65, 80-100. In this example,server 65 operates as a probing server according to NetProbe software described below;server server 100 operates as a content server according to WebServer software described below. As illustrated inFIG. 1 ,server server - In the present embodiment, NetProbe server software performs probes across
computer network 70 to determine server load and availability (metrics), to perform content checks to ensure servers are delivering correct content, to determine latency between customer web sites and POP servers, and the like. As will be described further below, NetProbe software may operate continuously and typically sends results to POP servers running NameServer software, such asPOP server - In embodiments of the present invention, measurements of server metrics may include response times for HTTP service, FTP service, customer web server CPU load, customer web server memory load and/or utilization, or the like. In other embodiment, other types of measurements are contemplated.
- In this embodiment, the WebCache server software responds to requests for static web content from clients, such as web browsers from memory. In this example, if the requested content does not exist in server memory, the WebCache software will generate a request to a WebServer. When WebServer sends the requested content, the WebCache software caches the content in memory.
- As described above, the WebServer software responds to requests for content from WebCache servers. If the content requested does not exist on disk, the WebServer software will generate a request to a web server that is known to include the content, for example,
web server 130. Once the content is provided byweb server 130, the WebServer software stores the content to disk and also returns the content to the WebCache. In this embodiment, this server only gets request for WebCache “misses” so it does not require caching functionality. - In the present embodiment, DNS software performs a mapping from domain name to IP address. As an example, the DNS software is queried to resolve a hostname, or the like, and returns an IP address of a web server that has the bandwidth to respond to the request. Further, in response to a query, the DNS software returns an IP address of a web server that can quickly provide web content.
- In
FIG. 1 , the dedicated servers are typically coupled to thecomputer network 70 via a router. In alternative embodiments, a fewer number of physical servers may be used to implement functionality ofservers 65, 80-100, or the like. For example, a physical server may have multiple software packages operating upon it at one time. As an example, WebCache software and WebServer software may operate as two different processes on a single server. Generally, each POP server will include NetProbe, WebCache, and WebServer software. In one embodiment, only a limited number of POP servers will include DNS software, however, in other embodiments, the number of servers with DNS software may be increased. - As shown in
FIG. 1 ,customer web servers web servers servers web servers further servers servers POP web servers -
ISP 60 is illustrated including users 150-160, and aclient DNS server 170. In this embodiment,ISP 60 may be a conventional ISP such as Earthlink, AOL, or the like. Accordingly,users ISP 60. As illustrated,client DNS server 170 is typically provided withinISP 60. In the present embodiment,client DNS server 170 is typically used to resolve a host name into an IP address. Ifclient DNS server 170 does not know the IP address,client DNS server 170 may pass the request to other DNS servers, such as DNS servers 110-120, or the like. - In the example in
FIG. 1 , amonitoring POP server 50 may include a plurality of dedicated servers, providing functionality described herein. For example, monitoringPOP server 50 includes servers 180-210. In this example,server 180 operates as an monitoring display server according to NetView software described below;server 190 operates as an administration server according to tools, together termed AdminTool software, described below; andservers 200 and 210 operate as logging servers according to LogServer software described below. As illustrated inFIG. 1 ,POP server server - In the present embodiment, NetView software provides an HTML interface to current and historical statistics for customers and network administrators. The statistics about the POP network and the like are typically derived from servers running LogServer software, such as
servers 200 and 210, described below. In this embodiment, NetView software includes web server CGI programs to provide the HTML output. The NetView software also provides an interface that allows customers to flush content from the POP network as they update the content on their web servers. - LogServer software, in this embodiment, receives log file data from servers running NameServer, WebCache, WebServer and NetProbes software, and the like. In this example, LogServer software, receives the log file data, and stores the data onto disk. Next, in response to requests for current and historical information from NetView software servers, the LogServer software separates the data into appropriate categories and processes the data to generate statistics. As mentioned above, the data is thus used for monitoring the state of POP servers on the network.
- In the present embodiment, various administrator tools, termed AdminTool software are also typically provided. These tools are used by the administrator to configure and administer the network of POP servers. In one example, tools provide tools that “spider” a customer web site and load WebServers and caches with content.
- In the present embodiment, a single
monitoring POP server 50 is contemplated, however, multiple monitoring servers may be provided in alternative embodiments of the present invention. - In the present embodiment, POP servers 10-30, and
monitoring POP server 50 includes shared software. This set of client and server software programs includes a server that receives a global configuration file that specifies the architecture of the POP servers, and stores it locally. - In the present embodiment, in a typical deployment, POP servers will include multiple machines, each with a single purpose (DNS name server, for instance). However, it should be understood that virtually any combination of the software components described above can be installed on a single machine in alternative embodiments of the present invention. Further details regarding the software components will be given below.
- In the present embodiment, POP servers 10-30 and
customer web server user 150 coupled toISP 60. The POP network illustrated inFIG. 1 provides content hosting for static content, such as images, video, software, etc. The POP network also provides for load balancing and traffic management for services, and dynamic content that cannot be stored. Further detail regarding the process will be described below. - In the embodiment illustrated in
FIG. 1 , it should be noted that the POP server network may simultaneously provide traffic management, as well as content hosting to more than one specific customer. For example, customer1 and customer2 share the POP server network. In one example, POP server network may provide traffic load management by directing traffic to eithercustomer1 web server 40 orcustomer1 web server 45. At the same time, POP server network may be used to host static content for customer2. Still further POP server may provide both traffic management and content hosting, as will be illustrated and discussed below. Accordingly, the POP server network may be termed a “shared” server network. -
FIG. 2 illustrates a block diagram of atypical server machine 300 according to an embodiment of the present invention.Server machine 300 typically includes amonitor 330, acomputer 340, akeyboard 350, aninput device 360, and anetwork interface 370.Computer 340 includes familiar computer components such as aprocessor 310, and memory storage devices, such as a random access memory (RAM) 320, adisk drive 380, and asystem bus 390 interconnecting the above components.Network interface 370 is illustrated coupled to anetwork 395, or the like - In the present embodiment, a mouse is but one example of an
input device 360, also known as a pointing device. Other types of input devices may include trackballs, drawing tablets, microphones (for voice activated input), and the like. In the present embodiment,network interface 370 may be an Ethernet card, a modem, or the like. -
RAM 320 anddisk drive 380 are examples of tangible media for storage of data, files, log data, computer programs, drivers, embodiments of the herein described methods, and the like. Other types of tangible media include floppy disks, removable hard disks, optical storage media such as CD-ROMS and bar codes, and semiconductor memories such as flash memories, read-only-memories (ROMS), battery-backed memories, and the like. - In a preferred embodiment,
Server 300 includes a PC compatible computer having '586 or '686 class based microprocessors, such as the Athlon™ microprocessor from AMD. Further, in the present embodiment,Server 300 utilizes LINUX, and runs software provided by Speedera Networks, Inc., the assignee of the present invention. -
FIG. 2 is representative of but one type of system for embodying the present invention. It will be readily apparent to one of ordinary skill in the art that many types of hardware and software configurations are suitable for use in conjunction with the present invention. For example, processors such as the G4 from Motorola, Pentiumlll, Pentium4, Itanium from Intel, and the like may be used; further any computer communications bus may be used in alternative embodiments of the present invention. In other embodiments,server 300 may operate under the WindowsNT operating system, may operate under MAC OS from Apple Computer, BeOS from Be, Incorporated, and the like. -
FIGS. 3A-3C illustrate a flow chart according to an embodiment of the present invention. In particular,FIGS. 3A-3C illustrate a method for a network of POP servers to service a request from a user. In the flow chart below, reference are made to the system inFIG. 1 for convenience. - Initially,
NetProbe servers customer web server 40 andcustomer web server 45,step 390. Latency may also be determined betweenNetProbe servers NetProbe servers - In the present embodiment, the latencies may include a measurement of the amount of traffic and the load on the customer web servers at that moment in time. Further, the latency may include a measurement of response times between the
particular NetProbe server 670 and the different customer web servers. In embodiments of the present invention, measurements of latency may include response times for HTTP service, FTP service, streaming media service. Additionally, factors such as customer web server CPU load, customer web server memory load and/or utilization, or the like may also be considered. In other embodiments, other types of measurements are contemplated, for example performance metrics, availability, persistence data, client weighting factors, and the like. - Because
NetProbe servers POP server 10, this step may be repeated at regular intervals, for example, every hour or the like. In embodiments of the present invention, it is envisioned that some customers may have many more than two web servers, thusNetProbe servers -
NetProbe servers POP server - Because
NetProbe servers POP server 10, this step may be repeated at regular intervals, for example, every hour or the like. - Next a user, such as
user 150 enters the name of a customer's web site,step 410. In one embodiment, a user can type-in the name of a customer's web site via keyboard, and in another embodiment, the user can select a hyperlink to the customer's web site from a page the user is viewing, or the like. In the example, the customer's web site is “customer1.com.” - In response to the user entry, the name of the customer's web site is passed (220) to a local client DNS (LDNS) 170,
step 420. As discussed above, domain name servers typically translate textual names, or the like into IP addresses. If the LDNS does not know how to resolve the name, the DNS may route the request to another DNS. In this example,client DNS 170 passes (230) the name to an authoritative NameServer server (ANDS) 110,step 430. - In the present embodiment,
NameServer server 110 typically uses the latency and traffic load information associated with the customer's web sites that was determined instep 390, to select an appropriate customer web server to return to the user, step 440. In this example,NameServer server 110 determines that the west coastcustomer web server 45 is very heavily loaded with requests, but the east coastcustomer web server 40 has light traffic. Thus, in response to the user's request,NameServer server 110 determines that the user should be directed tocustomer web server 40.NameServer server 110 then determines the IP address ofcustomer web server 40,step 450, and then sends the IP address to the user,step 460. - In an alternative embodiment of the present embodiment,
NameServer server 110 may use latency information from multiple NetProbe servers such asNetProbe server NameServer server 110 may use this information in addition to latencies between the NameServer server andNetProbe servers NetProbe server 670 reports the latency ofcustomer web server 45 toNameServer 110 becauseNetProbe server 670 may be the closest NetProbe server;further NetProbe server 675 reports the latency ofcustomer web server 40 toNameServer 110 becauseNetProbe server 675 may be the closest NetProbe server. In an example, if the reported latencies are the same,NameServer 110 would resolve the domain name tocustomer web server 45 because the additional latency betweenNetProbe server 670 andNameServer 110 is smaller than the latency betweenNetProbe server 675 andNameServer 110. In other words, the sum of the latencies is used to determine how to resolve the IP address. In this example,user 150 receives the IP address, and then sends requests for a web page, or the like, at the received IP address,step 470. The web page request typically includes static content and dynamic content. In this example, static content may include graphics and text that typically do not change between web page accesses, for example, corporate logos, archival images, documents, and the like. In this example, dynamic content may include graphics and text that do change between web page accesses, for example, stock quotes, search results, live web cameras, and the like. - In the present example, the web page requested from
customer web server 40 includes static data, such as HTML text and URL addresses of static content, such as images, and dynamic data, such as stock quotes. InFIG. 1 , the static data typically resides onweb server 130, and the dynamic data is resides withinserver 140. As discussed above, this data is also typically mirrored onweb server 135 andserver 145 incustomer web server 45. - In the present embodiment, the customer does not want
web server 130 to have the burden of providing static content to many different users. In this embodiment, the POP network provides the content hosting of the static content. Accordingly, the URL addresses of the static content typically include textual domain names specifying the POP server network. - In response to the request from
user 150,web server 130 sends the HTML text, or the like, and the URL address of images touser 150,step 480. Additionally,server 140 may process the request fromuser 150, determine the responsive data dynamically, and send the dynamic data back touser 150,step 490. - In the present embodiment, the user's 150 client software receives the HTML text, dynamic data, URL address of static content, and the like from
customer web server 40. Similar to above, the URL address is passed (220) to client DNS (LDNS) 170 for resolution,step 500. In this example, in response,client DNS 170 passes (230) the URL address to NameServer server (ADNS) 110,step 510. - In the present embodiment,
NameServer server 110 uses the service metrics information associated with the other POP servers that was determined in step 400, to select an appropriate POP server that includes the static content,step 520. In this example,NameServer server 110 determines that the westcoast POP server 10 is very heavily loaded with content requests, but the eastcoast POP server 30 has light few requests. Thus, in response to the user's request,NameServer server 110 determines that the user should retrieve data fromPOP server 30.NameServer server 110 then recalls the IP address ofPOP server 40,step 530, and then sends the IP address to the user,step 540. - Next,
user 150 receives the IP address ofPOP server 30, and then sends requests (250) for the static content fromPOP server 30,step 550. In response to the request,POP server 30 routes the request toWebCache server 280. Next,WebCache server 280 retrieves the static content from memory, and sends the requested static content back touser 150,step 560. - In an important embodiment of the present invention, the customer's web server may also be considered for providing the static content. In such an embodiment, in
step 520, above, the latency and traffic load information for the customer web server may be considered at the same time as the other POP servers. If the customer's web server is lightly loaded compared to the POP servers, the IP of the customer's web server may be retrieved instep 530, and passed to the user instep 540. Accordingly, instep 560, the customer's web server provides the static content back to the user. - Once the client receives the static content, the user can view the HTML text and dynamic data from
customer web server 40, as well as view the static content fromPOP server 30,step 570. In one embodiment, the source of the static content may be specified as being provided at a specific server or a limited set of servers. -
FIG. 4 illustrates a flow chart according to another embodiment of the present invention. In particular,FIG. 4 illustrates a more detailed block diagram ofstep 560, above. - Initially,
WebCache server 280 determines whether it has the requested static content in memory,step 600. In one embodiment of the present invention, this step may include determining whether the file requested is resident in memory. If the requested static content is not cached withinWebCache server 280,WebCache server 280 sends a request (260) for the static content toWebSever server 290,step 610. - In response,
WebServer server 290 determines whether it has the requested static content on disk, or the like, 620. In one embodiment of the present invention, this step may include determining whether the file requested is resident in on a disk or database. If the requested static content is not stored withinWebServer server 290,WebServer server 290 determines sends a request (270) for the static content to a customer web server,step 630. - In embodiments of the present invention, the appropriate customer web server selected is also determined based upon the traffic load and latency of the multiple customer web servers to
POP server 30. As an example, sincePOP server 30 is on the east coast and close tocustomer web server 40. As a result, the request for the static content is directed tocustomer web server 40. In an alternative embodiment, the customer web server from which static content is retrieved is predetermined. - In this example,
customer web server 40 provides the static content toWebServer server 290, which in turn stores the static content to disk, or the like,step 640. - Once the data is stored within
WebServer server 290, the static content is copied into the memory ofWebCache server 280,step 650. Next,WebCache server 280 returns the static content to the user,step 660. -
FIG. 5 illustrates a more detailed block diagram according to one embodiment. In particular,FIG. 5 illustrates are more detailed description of the flow of data between software components on the POP network. -
FIG. 5 includes a reduced number of software components on servers on the POP network, including aNameServer server 700, aWebCache server 710, aWebServer server 720,NetProbes 730,LogServer server 740, andNetView server 750. As illustrated, in the present embodiment, communication between the components is performed using a packetized format such as TCP, UDP, or the like.FIG. 5 also illustrates acustomer web site 760. - In the present embodiment, the configuration of the POP network is maintained in a single global configuration file. This file is known as the “global configuration” file. In this example, every POP server in the POP network determines configuration information by the copy of the current Speedera configuration file stored locally.
- In this embodiment, the configuration file includes a list of servers allowed to change the configuration; a list of domains the network is responsible for (i.e. customers' web sites); list of software components and services available in each POP server; a list of probes that perform latency checks at each POP server; and the like. Other similar types of information are also included.
- In the present example, a new configuration file can be pushed to all POP servers by using the AdminTools software, mentioned above.
- The configuration file in the present embodiment is in a “registry tree” type format. Typically few statistics, status or extended information is kept in the configuration file. Such data is typically stored in
server 740, as will be described below. In the present example, the configuration file is kept small to reduce the amount of time required for updating a configuration file across the POP network. Further, a tree-type format is used to allow the configuration to be easily extended without having to change its structure. - In this embodiment, the configuration file is not necessarily sent to all POP servers in the POP network. Instead, only POP servers including NameServers, NetProbes and LogServers are updated. In the present embodiment, POP servers only including a WebCache or a WebServers are not updated, because WebCache and WebServers access NameServers to find services on the POP network. For example, when a WebCache needs to send information to a log server, it will make a request to: “log.name.speedera.com.” In response, a request is generated to a NameServer and in response the NameServer returns the appropriate IP address. Because the configuration file does not need to be sent to all the POP servers in the network, any configuration file update is performed efficiently.
- With this configuration file scheme, to install a new POP server, an administrator uses the AdminTools software tools, to register the unique domain name and the services or software components installed on the new POP server. These data are added to the configuration file. Subsequently, the configuration file is copied across the POP network.
- In the present embodiment, as mentioned above, the domain name uniquely identifies the POP server. In one example, the name is “name.pop.speedera.net”, “dp1.westusa.speedera.net”, or the like.
- As mentioned above, the NameServer software is embodied as a DNS server that performs name to IP address mapping. In particular, the software receives requests containing textual names and returns numeric IP addresses typically in the form of xxx.xxx.xxx.xxx, associated with those names. In the present embodiment, the software is also responsible for receiving and storing latency, POP server status information, and the like from the NetProbe servers. Other types of data include the source IP address, the availability of the POP server, the traffic load, and the like are also stored.
- In the present embodiment, approximately 10 servers including the NameServer software will operate on the POP network. Typically, the NameServer software is installed onto its own machine to increase the performance of the software. In one embodiment, the DNS servers should be designed to handle upwards of 1000 hits per second.
- It is contemplated that the 10 DNS servers will handle all the DNS requests for all users on the Internet that are serviced by the POP network. For example, users that require the POP network to determine the least loaded customer web site, and users that require content stored on the POP network both require services from the DNS servers. In alternative embodiments, a greater number of lesser number of DNS servers may be used according to specific application.
- In this embodiment, in operation, the NameServer replies to DNS queries and does not return any other information. Specifically, to generate a reply to a DNS query, the DNS server may uses the following information: the configuration file to determine what machines have the content corresponding to the request; a table containing latency information for each POP to each client DNS (traffic load); a table containing service metrics (load/availability) information for each POP server, and the like.
- In this embodiment, the data received from NetProbe servers comprise UDP traffic. Further the NameServer software transmits log information to the LogServer software, also via UDP traffic. In other embodiments, other schemes for transferring packetized data is contemplated.
- The NameServer receives the service and latency information data from the NetProbe servers. In addition, in this embodiment, timestamp is also received so the Name Server software knows how stale the performance information is. The NameServer software stores this information to disk, to RAM, or the like. In this embodiment, the NameServer data is typically stored on disk to reduce the effects of a crash or a reboot. In this way, the latency and probe information is maintained. Further, in some cases, data such as persistence information should be maintained even if the system is rebooted.
- In this embodiment, the NameServers log the requests they get and the replies they give, i.e. IP addresses. In operation, at regular intervals (specified by the global configuration file), the NameServer sends its latest statistics (e.g. number of hits it has taken per domain name, etc.) to the various NetProbe servers and appropriate log analysis servers via UDP. In the global configuration file, log analysis servers are assigned based on the domain name served. In the present embodiment, the log analysis is a distributed process.
- In the present embodiment, the DNS software is proprietary and supports all features of BIND.
- The WebCache software is typically embodied as a caching web server. As described above, the WebCache server accepts HTTP or URL requests and checks memory for the requested content. As discussed in the flow diagram above, the content is typically static content from a customer's web page, or the like. If the content is not in the memory, the WebCache server contacts a WebServer server that may have the web page stored using HTTP.
- In one embodiment, WebCache is a customized caching server. In other embodiments, WebCache may include hardware cache boxes available from companies such as CacheFlow, Inktomi, or the like.
- In this example, at a regular fixed intervals, the WebCache server compresses and sends the logs of the content it stores, and sends the logs to log analysis servers. This transfer is typically via UDP traffic. This information provided by the WebCache server is typically used for billing purpose as well as by customers for auditing and log analysis. In the case where a hardware cache box is used, the box must also be configured to send the logs to the log analysis servers.
- In the present embodiment, the WebCache software is proprietary but could be integrated with off the shelf caching products.
- In the present embodiment, when a WebCache server cannot provide the content requested, it forwards the request to a server running WebServer software it believes has the content. As discussed above, the WebServer software processes the request by looking on its local disk for the content. If the content exists on the local disk, the WebServer will pass the data to the WebCache. Further, if the content in not on the disk, the WebServer contacts the customers web site to retrieve the content.
- In this embodiment, the WebServer typically does not provide log data. Instead, the WebCache provides the cache miss information to the log analysis servers. WebServer, along with many of the other software modules do report error conditions to the log server.
- In the present embodiment, the WebServer and WebCache may exist as one program. In alternative embodiments, these pieces of software may be separate and even reside on different machines.
- The NetProbes software performs service availability/metric and latency probes and sends the results via UDP to NameServer servers. There are two distinct types of probes in the present embodiment, service probes and latency probes.
- In this example, service probes determine service availability and load (metrics) for each content delivery machine in the network. Content delivery machines include the POP servers including WebCache and WebServer modules, and may also include the customer's web site(s). Service probes monitor data such as HTTP total response time, FTP total response time, and the like.
- In the present embodiment, service probes run constantly, and send current metric and availability information to all DNS servers in the POP network. The timing of the probe intervals and configuration of the service probes is typically speechified in the global configuration file.
- Latency probes determine latency from the POP server hosting the NetProbe to the client DNS servers that sent the requests to Speedera DNS servers. The Speedera DNS servers typically drive the latency probes. In particular, when a DNS server determines that it needs latency information from a probe, it sends a request to the probe. In response, the latency probe probes the client DNS server and returns with the result. In one embodiment, the DNS servers send a number of requests in a single UDP packet to a latency probe.
- The NetProbe servers typically do not store the results of the probes, but simply sends them to other servers via UDP. Each piece of probe information has a timestamp of when the probe occurred so the receiving server can determine how stale the probe information is.
- In the present embodiment, LogServer servers receive data from machines running NameServer, NetProbes and WebCache software. The data is typically transmitted to one or more log analysis servers where the data is stored and analyzed. As mentioned above, the data is typically stored by customer name to facilitate billing and preparation of audit and historical statistics. Additionally, The LogServer software also gets requests for information from the NetView software. Such a request may be made when an administrator, or the like wants to graphically view or view the table of data for current or historical status of a web site (hits, open connections, etc.).
- The configuration file will have a list of log servers and the customer domains they manage, however, LogServers will only receive data for the customer domains they manage, not for other domains.
- The NetView software referred to above is typically an HTML user-interface providing customers and administrators to use a web browser to view real-time and historical information. The NetView software includes a web server and CGI or web server plug-in modules written in Perl or C.
- In operation, NetView servers contact LogServers or the LogServer database to get the underlying data. The raw data from LogServers and formats and displays it to customers, or the like in the form of tables and/or graphs.
- The NetView software also provides an interface that allows a customer to flush content from the POP network when they publish new content to their servers. To perform the action of flushing content, the NetView software executes the AdminTool software that has the ability to flush content from the system.
- In the present embodiment, the AdminTools software includes tools used to administer the Speedera Network. It contains two main tools, one to push a new configuration file to servers in the network and another to cause content to be flushed from the network.
- The configuration administration tool sends the global configuration file to servers in the network in a hierarchical fashion. A list of servers will get the configuration file and send it to another list of servers and so on. The list of servers to receive the configuration file and what servers they control is typically specified by the configuration file itself.
- In this embodiment, the configuration system is written such that it does not allow configuration files to get out of sync, when machines are down or if a socket connection breaks while transmission is in process, or the like. For example, in one embodiment, the administration tool opens sockets to all the master configuration servers, sends the configuration file and waits for confirmation that they and everyone they send the file to receives it and then send a command to tell everyone to switch to use that configuration file.
- In this embodiment, the configuration administration tool uses TCP and not UDP because of the increased security. Additionally, password protection and encryption may also be used.
- The Shared software includes software that will exist on all servers in the network. This includes a configuration daemon that listens for the transmission of a new configuration file, stores it locally and sends a SIGHUP to local processes to notify them the configuration has changed.
- In the foregoing specification, the invention has been described with reference to specific exemplary embodiments thereof. Many changes or modifications are readily envisioned. For example, in some embodiments,
steps step 450, the IP address is automatically used to address the customer web server. Similarly, in some embodiments,steps step 530, the IP address is automatically used to address the POP server. Details of additional embodiments of the present invention may be found in the documents in the attached appendix. - In embodiments of the present invention, the static content stored on the web caches may include movies, audio, images, text, plug-in program data, programs, and the like. Other types of data can be stored within the web caches, for example, streaming audio data, video data, and the like.
- Further, the embodiments have discussed providing data across wide area networks, such as the Internet. In other embodiments, embodiments of the above described invention may be applied to other types of networks including wireless networks, local area networks, and the like.
- The block diagrams of the architecture and flow charts are grouped for ease of understanding. However it should be understood that combinations of blocks, additions of new blocks, re-arrangement of blocks, and the like are contemplated in alternative embodiments of the present invention. Further, the above names of servers, software modules, and the like are arbitrary, and may be changed.
- The specification and drawings are, accordingly, to be regarded in an illustrative rather than a restrictive sense. It will, however, be evident that various modifications and changes may be made thereunto without departing from the broader spirit and scope of the invention as set forth in the claims.
Claims (1)
1. A system, comprising:
a graphical interface that allows a customer to view current and/or historical statistics of a Web site resident on the customer's Web server;
a Web page resident on the customer's Web server, said Web page including static content represented by an embedded URL;
wherein the static content is resident on a plurality of Web caches within a POP server network; and
a global traffic manager that manages traffic across a plurality of the customer's Web servers and the plurality of Web caches, the global traffic manager gathering data for the graphical interface.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/471,209 US20090228588A1 (en) | 1999-11-22 | 2009-05-22 | Performance computer network method |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16690699P | 1999-11-22 | 1999-11-22 | |
US09/645,067 US6694358B1 (en) | 1999-11-22 | 2000-08-23 | Performance computer network method |
US10/774,246 US7225254B1 (en) | 1999-11-22 | 2004-02-06 | Performance computer network method |
US11/754,352 US7539757B2 (en) | 1999-11-22 | 2007-05-28 | Performance computer network method |
US12/471,209 US20090228588A1 (en) | 1999-11-22 | 2009-05-22 | Performance computer network method |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/754,352 Continuation US7539757B2 (en) | 1999-11-22 | 2007-05-28 | Performance computer network method |
Publications (1)
Publication Number | Publication Date |
---|---|
US20090228588A1 true US20090228588A1 (en) | 2009-09-10 |
Family
ID=31190640
Family Applications (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/645,067 Expired - Lifetime US6694358B1 (en) | 1999-11-22 | 2000-08-23 | Performance computer network method |
US10/774,246 Expired - Lifetime US7225254B1 (en) | 1999-11-22 | 2004-02-06 | Performance computer network method |
US11/754,352 Expired - Fee Related US7539757B2 (en) | 1999-11-22 | 2007-05-28 | Performance computer network method |
US12/471,209 Abandoned US20090228588A1 (en) | 1999-11-22 | 2009-05-22 | Performance computer network method |
Family Applications Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US09/645,067 Expired - Lifetime US6694358B1 (en) | 1999-11-22 | 2000-08-23 | Performance computer network method |
US10/774,246 Expired - Lifetime US7225254B1 (en) | 1999-11-22 | 2004-02-06 | Performance computer network method |
US11/754,352 Expired - Fee Related US7539757B2 (en) | 1999-11-22 | 2007-05-28 | Performance computer network method |
Country Status (1)
Country | Link |
---|---|
US (4) | US6694358B1 (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110022689A1 (en) * | 2009-07-21 | 2011-01-27 | At&T Intellectual Property I, L.P. | Managing linear multimedia content delivery |
US20120311057A1 (en) * | 2010-02-09 | 2012-12-06 | Zte Corporation | Mobile terminal and method for switching e-mail accounts on mobile terminal |
CN109194500A (en) * | 2018-08-08 | 2019-01-11 | 新华三技术有限公司 | Forwarding table state switching method, device and communication equipment |
AU2019204122B2 (en) * | 2012-09-25 | 2020-06-04 | Mx Technologies Inc. | Aggregation source routing |
US10904235B2 (en) | 2015-11-12 | 2021-01-26 | Mx Technologies, Inc. | Predicting input locations for data aggregation using machine learning |
Families Citing this family (143)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1018084B1 (en) * | 1996-07-25 | 2011-12-07 | Xcelera Inc. | Web serving system with primary and secondary servers |
US6275470B1 (en) * | 1999-06-18 | 2001-08-14 | Digital Island, Inc. | On-demand overlay routing for computer-based communication networks |
US8543901B1 (en) | 1999-11-01 | 2013-09-24 | Level 3 Communications, Llc | Verification of content stored in a network |
US7925713B1 (en) * | 1999-11-22 | 2011-04-12 | Akamai Technologies, Inc. | Method for operating an integrated point of presence server network |
US6694358B1 (en) * | 1999-11-22 | 2004-02-17 | Speedera Networks, Inc. | Performance computer network method |
US6405252B1 (en) | 1999-11-22 | 2002-06-11 | Speedera Networks, Inc. | Integrated point of presence server network |
US7251688B2 (en) * | 2000-05-26 | 2007-07-31 | Akamai Technologies, Inc. | Method for generating a network map |
US7028083B2 (en) * | 2000-05-26 | 2006-04-11 | Akomai Technologies, Inc. | Method for extending a network map |
US7165116B2 (en) * | 2000-07-10 | 2007-01-16 | Netli, Inc. | Method for network discovery using name servers |
US6886004B2 (en) * | 2000-08-24 | 2005-04-26 | Red Hat, Inc. | Method and apparatus for atomic file look-up |
US7340505B2 (en) * | 2001-04-02 | 2008-03-04 | Akamai Technologies, Inc. | Content storage and replication in a managed internet content storage environment |
US6959333B2 (en) * | 2001-05-08 | 2005-10-25 | Lucent Technologies Inc. | Technique for content delivery over the internet |
US20020184362A1 (en) * | 2001-05-31 | 2002-12-05 | International Business Machines Corporation | System and method for extending server security through monitored load management |
US20020188717A1 (en) * | 2001-06-08 | 2002-12-12 | International Business Machines Corporation | Method and apparatus for modeling the performance of Web page retrieval |
US7009938B2 (en) * | 2001-06-27 | 2006-03-07 | International Business Machines Corporation | Reduction of server overload |
US20030004998A1 (en) * | 2001-06-29 | 2003-01-02 | Chutney Technologies, Inc. | Proxy-based acceleration of dynamically generated content |
KR100930190B1 (en) * | 2001-09-28 | 2009-12-07 | 레벨 3 시디엔 인터내셔널 | Configurable Adaptive Global Traffic Control and Management |
US7860964B2 (en) | 2001-09-28 | 2010-12-28 | Level 3 Communications, Llc | Policy-based content delivery network selection |
US7373644B2 (en) * | 2001-10-02 | 2008-05-13 | Level 3 Communications, Llc | Automated server replication |
US20030079027A1 (en) | 2001-10-18 | 2003-04-24 | Michael Slocombe | Content request routing and load balancing for content distribution networks |
US20080279222A1 (en) * | 2001-10-18 | 2008-11-13 | Level 3 Communications Llc | Distribution of traffic across a computer network |
TW544601B (en) * | 2001-11-20 | 2003-08-01 | Ind Tech Res Inst | Method and structure for forming web server cluster by conversion and dispatching of web page documents |
US7734726B2 (en) * | 2001-11-27 | 2010-06-08 | International Business Machines Corporation | System and method for dynamically allocating processing on a network amongst multiple network servers |
US9167036B2 (en) | 2002-02-14 | 2015-10-20 | Level 3 Communications, Llc | Managed object replication and delivery |
US7130923B2 (en) * | 2002-07-01 | 2006-10-31 | Avaya Technology Corp. | Method and apparatus for guessing correct URLs using tree matching |
GB2391346A (en) * | 2002-07-31 | 2004-02-04 | Hewlett Packard Co | On-line recognition of robots |
US7136922B2 (en) | 2002-10-15 | 2006-11-14 | Akamai Technologies, Inc. | Method and system for providing on-demand content delivery for an origin server |
US9069815B1 (en) * | 2002-11-06 | 2015-06-30 | The Travelers Indemnity Company | Method and system for responding to queries |
US20040260710A1 (en) * | 2003-02-28 | 2004-12-23 | Marston Justin P. | Messaging system |
US7143170B2 (en) * | 2003-04-30 | 2006-11-28 | Akamai Technologies, Inc. | Automatic migration of data via a distributed computer network |
US20050144242A1 (en) * | 2003-10-31 | 2005-06-30 | Justin Marston | Caching in an electronic messaging system |
US20050198168A1 (en) * | 2003-12-04 | 2005-09-08 | Justin Marston | Messaging protocol discovery |
US7657622B1 (en) * | 2003-12-23 | 2010-02-02 | At&T Intellectual Property Ii, L.P. | Unified web hosting and content distribution system and method for assuring predetermined performance levels |
US8073911B2 (en) | 2004-05-12 | 2011-12-06 | Bluespace Software Corporation | Enforcing compliance policies in a messaging system |
US20060031352A1 (en) * | 2004-05-12 | 2006-02-09 | Justin Marston | Tamper-proof electronic messaging |
US7603131B2 (en) | 2005-08-12 | 2009-10-13 | Sellerbid, Inc. | System and method for providing locally applicable internet content with secure action requests and item condition alerts |
US20060069700A1 (en) * | 2004-09-22 | 2006-03-30 | Justin Marston | Generating relational structure for non-relational messages |
US8024483B1 (en) * | 2004-10-01 | 2011-09-20 | F5 Networks, Inc. | Selective compression for network connections |
WO2007082308A2 (en) * | 2006-01-13 | 2007-07-19 | Bluespace Software Corp. | Determining relevance of electronic content |
US7873065B1 (en) | 2006-02-01 | 2011-01-18 | F5 Networks, Inc. | Selectively enabling network packet concatenation based on metrics |
US9071506B2 (en) * | 2006-07-31 | 2015-06-30 | Hewlett-Packard Development Company, L.P. | Accessing web services using network management information |
US9219705B2 (en) * | 2007-06-25 | 2015-12-22 | Microsoft Technology Licensing, Llc | Scaling network services using DNS |
US8028090B2 (en) | 2008-11-17 | 2011-09-27 | Amazon Technologies, Inc. | Request routing utilizing client location information |
US7991910B2 (en) * | 2008-11-17 | 2011-08-02 | Amazon Technologies, Inc. | Updating routing information based on client location |
US8082290B2 (en) * | 2008-03-19 | 2011-12-20 | Verizon Patent And Licensing Inc. | Intelligent establishment of peer-to-peer communication |
US8606996B2 (en) | 2008-03-31 | 2013-12-10 | Amazon Technologies, Inc. | Cache optimization |
US8447831B1 (en) | 2008-03-31 | 2013-05-21 | Amazon Technologies, Inc. | Incentive driven content delivery |
US8321568B2 (en) | 2008-03-31 | 2012-11-27 | Amazon Technologies, Inc. | Content management |
US7970820B1 (en) | 2008-03-31 | 2011-06-28 | Amazon Technologies, Inc. | Locality based content distribution |
US8601090B1 (en) | 2008-03-31 | 2013-12-03 | Amazon Technologies, Inc. | Network resource identification |
US7962597B2 (en) | 2008-03-31 | 2011-06-14 | Amazon Technologies, Inc. | Request routing based on class |
US8156243B2 (en) * | 2008-03-31 | 2012-04-10 | Amazon Technologies, Inc. | Request routing |
US8533293B1 (en) | 2008-03-31 | 2013-09-10 | Amazon Technologies, Inc. | Client side cache management |
US10924573B2 (en) | 2008-04-04 | 2021-02-16 | Level 3 Communications, Llc | Handling long-tail content in a content delivery network (CDN) |
EP2274684A4 (en) | 2008-04-04 | 2012-12-05 | Level 3 Communications Llc | Handling long-tail content in a content delivery network (cdn) |
US9762692B2 (en) | 2008-04-04 | 2017-09-12 | Level 3 Communications, Llc | Handling long-tail content in a content delivery network (CDN) |
US7925782B2 (en) | 2008-06-30 | 2011-04-12 | Amazon Technologies, Inc. | Request routing using network computing components |
US9407681B1 (en) | 2010-09-28 | 2016-08-02 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US9912740B2 (en) | 2008-06-30 | 2018-03-06 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US8082358B2 (en) * | 2008-09-30 | 2011-12-20 | Microsoft Corporation | ISP-friendly rate allocation for P2P applications |
US8732309B1 (en) | 2008-11-17 | 2014-05-20 | Amazon Technologies, Inc. | Request routing utilizing cost information |
US8521880B1 (en) | 2008-11-17 | 2013-08-27 | Amazon Technologies, Inc. | Managing content delivery network service providers |
US8073940B1 (en) | 2008-11-17 | 2011-12-06 | Amazon Technologies, Inc. | Managing content delivery network service providers |
US8065417B1 (en) | 2008-11-17 | 2011-11-22 | Amazon Technologies, Inc. | Service provider registration by a content broker |
US8122098B1 (en) | 2008-11-17 | 2012-02-21 | Amazon Technologies, Inc. | Managing content delivery network service providers by a content broker |
US8060616B1 (en) | 2008-11-17 | 2011-11-15 | Amazon Technologies, Inc. | Managing CDN registration by a storage provider |
US8756341B1 (en) | 2009-03-27 | 2014-06-17 | Amazon Technologies, Inc. | Request routing utilizing popularity information |
US8521851B1 (en) | 2009-03-27 | 2013-08-27 | Amazon Technologies, Inc. | DNS query processing using resource identifiers specifying an application broker |
US8412823B1 (en) | 2009-03-27 | 2013-04-02 | Amazon Technologies, Inc. | Managing tracking information entries in resource cache components |
US8688837B1 (en) | 2009-03-27 | 2014-04-01 | Amazon Technologies, Inc. | Dynamically translating resource identifiers for request routing using popularity information |
US8782236B1 (en) | 2009-06-16 | 2014-07-15 | Amazon Technologies, Inc. | Managing resources using resource expiration data |
US9245263B2 (en) * | 2009-06-23 | 2016-01-26 | Jwl Ip Holdings Llc | Systems and methods for scripted content delivery |
US8966033B2 (en) * | 2009-08-17 | 2015-02-24 | At&T Intellectual Property I, L.P. | Integrated proximity routing for content distribution |
US8397073B1 (en) | 2009-09-04 | 2013-03-12 | Amazon Technologies, Inc. | Managing secure content in a content delivery network |
US8433771B1 (en) | 2009-10-02 | 2013-04-30 | Amazon Technologies, Inc. | Distribution network with forward resource propagation |
US9495338B1 (en) | 2010-01-28 | 2016-11-15 | Amazon Technologies, Inc. | Content distribution network |
US8756272B1 (en) | 2010-08-26 | 2014-06-17 | Amazon Technologies, Inc. | Processing encoded content |
US10958501B1 (en) | 2010-09-28 | 2021-03-23 | Amazon Technologies, Inc. | Request routing information based on client IP groupings |
US10097398B1 (en) | 2010-09-28 | 2018-10-09 | Amazon Technologies, Inc. | Point of presence management in request routing |
US8930513B1 (en) * | 2010-09-28 | 2015-01-06 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US8924528B1 (en) | 2010-09-28 | 2014-12-30 | Amazon Technologies, Inc. | Latency measurement in resource requests |
US8938526B1 (en) | 2010-09-28 | 2015-01-20 | Amazon Technologies, Inc. | Request routing management based on network components |
US9712484B1 (en) | 2010-09-28 | 2017-07-18 | Amazon Technologies, Inc. | Managing request routing information utilizing client identifiers |
US8577992B1 (en) | 2010-09-28 | 2013-11-05 | Amazon Technologies, Inc. | Request routing management based on network components |
US8819283B2 (en) | 2010-09-28 | 2014-08-26 | Amazon Technologies, Inc. | Request routing in a networked environment |
US9003035B1 (en) | 2010-09-28 | 2015-04-07 | Amazon Technologies, Inc. | Point of presence management in request routing |
US8468247B1 (en) | 2010-09-28 | 2013-06-18 | Amazon Technologies, Inc. | Point of presence management in request routing |
US8452874B2 (en) | 2010-11-22 | 2013-05-28 | Amazon Technologies, Inc. | Request routing processing |
US9391949B1 (en) | 2010-12-03 | 2016-07-12 | Amazon Technologies, Inc. | Request routing processing |
US8626950B1 (en) | 2010-12-03 | 2014-01-07 | Amazon Technologies, Inc. | Request routing processing |
US8867337B2 (en) | 2011-04-26 | 2014-10-21 | International Business Machines Corporation | Structure-aware caching |
US10467042B1 (en) | 2011-04-27 | 2019-11-05 | Amazon Technologies, Inc. | Optimized deployment based upon customer locality |
US8584211B1 (en) | 2011-05-18 | 2013-11-12 | Bluespace Software Corporation | Server-based architecture for securely providing multi-domain applications |
EP2717540B1 (en) * | 2011-06-30 | 2015-04-15 | Huawei Technologies Co., Ltd. | Method, apparatus, and system for transmitting media data based on over the top (ott) |
US8904009B1 (en) | 2012-02-10 | 2014-12-02 | Amazon Technologies, Inc. | Dynamic content delivery |
US10021179B1 (en) | 2012-02-21 | 2018-07-10 | Amazon Technologies, Inc. | Local resource delivery network |
US9172674B1 (en) | 2012-03-21 | 2015-10-27 | Amazon Technologies, Inc. | Managing request routing information utilizing performance information |
US10623408B1 (en) | 2012-04-02 | 2020-04-14 | Amazon Technologies, Inc. | Context sensitive object management |
US9154551B1 (en) | 2012-06-11 | 2015-10-06 | Amazon Technologies, Inc. | Processing DNS queries to identify pre-processing information |
US9525659B1 (en) | 2012-09-04 | 2016-12-20 | Amazon Technologies, Inc. | Request routing utilizing point of presence load information |
US9135048B2 (en) | 2012-09-20 | 2015-09-15 | Amazon Technologies, Inc. | Automated profiling of resource usage |
US9323577B2 (en) | 2012-09-20 | 2016-04-26 | Amazon Technologies, Inc. | Automated profiling of resource usage |
US10205698B1 (en) | 2012-12-19 | 2019-02-12 | Amazon Technologies, Inc. | Source-dependent address resolution |
US9294391B1 (en) | 2013-06-04 | 2016-03-22 | Amazon Technologies, Inc. | Managing network computing components utilizing request routing |
FR3018411A1 (en) * | 2014-03-04 | 2015-09-11 | Orange | METHOD AND SYSTEM FOR PROCESSING A DNS QUERY ISSUED BY A NETWORK NODE DURING A DACCE ATTEMPT BY A CLIENT APPLICATION TO A REMOTE SERVER OVER AN IP NETWORK |
US10097448B1 (en) | 2014-12-18 | 2018-10-09 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10033627B1 (en) | 2014-12-18 | 2018-07-24 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10091096B1 (en) | 2014-12-18 | 2018-10-02 | Amazon Technologies, Inc. | Routing mode and point-of-presence selection service |
US10225326B1 (en) | 2015-03-23 | 2019-03-05 | Amazon Technologies, Inc. | Point of presence based data uploading |
US9887932B1 (en) | 2015-03-30 | 2018-02-06 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9819567B1 (en) | 2015-03-30 | 2017-11-14 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9887931B1 (en) | 2015-03-30 | 2018-02-06 | Amazon Technologies, Inc. | Traffic surge management for points of presence |
US9832141B1 (en) | 2015-05-13 | 2017-11-28 | Amazon Technologies, Inc. | Routing based request correlation |
US10616179B1 (en) | 2015-06-25 | 2020-04-07 | Amazon Technologies, Inc. | Selective routing of domain name system (DNS) requests |
US10097566B1 (en) | 2015-07-31 | 2018-10-09 | Amazon Technologies, Inc. | Identifying targets of network attacks |
US9794281B1 (en) | 2015-09-24 | 2017-10-17 | Amazon Technologies, Inc. | Identifying sources of network attacks |
US9742795B1 (en) | 2015-09-24 | 2017-08-22 | Amazon Technologies, Inc. | Mitigating network attacks |
US9774619B1 (en) | 2015-09-24 | 2017-09-26 | Amazon Technologies, Inc. | Mitigating network attacks |
US20170099345A1 (en) * | 2015-10-01 | 2017-04-06 | Fastly, Inc. | Content delivery network load balancing |
US9954816B2 (en) | 2015-11-02 | 2018-04-24 | Nominum, Inc. | Delegation of content delivery to a local service |
US10270878B1 (en) | 2015-11-10 | 2019-04-23 | Amazon Technologies, Inc. | Routing for origin-facing points of presence |
US10257307B1 (en) | 2015-12-11 | 2019-04-09 | Amazon Technologies, Inc. | Reserved cache space in content delivery networks |
US10049051B1 (en) | 2015-12-11 | 2018-08-14 | Amazon Technologies, Inc. | Reserved cache space in content delivery networks |
US10348639B2 (en) | 2015-12-18 | 2019-07-09 | Amazon Technologies, Inc. | Use of virtual endpoints to improve data transmission rates |
US10075551B1 (en) | 2016-06-06 | 2018-09-11 | Amazon Technologies, Inc. | Request management for hierarchical cache |
US10110694B1 (en) | 2016-06-29 | 2018-10-23 | Amazon Technologies, Inc. | Adaptive transfer rate for retrieving content from a server |
US9992086B1 (en) | 2016-08-23 | 2018-06-05 | Amazon Technologies, Inc. | External health checking of virtual private cloud network environments |
US10033691B1 (en) | 2016-08-24 | 2018-07-24 | Amazon Technologies, Inc. | Adaptive resolution of domain name requests in virtual private cloud network environments |
US10469513B2 (en) | 2016-10-05 | 2019-11-05 | Amazon Technologies, Inc. | Encrypted network addresses |
CN106598648A (en) * | 2016-11-10 | 2017-04-26 | 北京三快在线科技有限公司 | Control method and device for upgrade of server program |
US10372499B1 (en) | 2016-12-27 | 2019-08-06 | Amazon Technologies, Inc. | Efficient region selection system for executing request-driven code |
US10831549B1 (en) | 2016-12-27 | 2020-11-10 | Amazon Technologies, Inc. | Multi-region request-driven code execution system |
US10938884B1 (en) | 2017-01-30 | 2021-03-02 | Amazon Technologies, Inc. | Origin server cloaking using virtual private cloud network environments |
US10503613B1 (en) | 2017-04-21 | 2019-12-10 | Amazon Technologies, Inc. | Efficient serving of resources during server unavailability |
US11075987B1 (en) | 2017-06-12 | 2021-07-27 | Amazon Technologies, Inc. | Load estimating content delivery network |
US10447648B2 (en) * | 2017-06-19 | 2019-10-15 | Amazon Technologies, Inc. | Assignment of a POP to a DNS resolver based on volume of communications over a link between client devices and the POP |
US10742593B1 (en) * | 2017-09-25 | 2020-08-11 | Amazon Technologies, Inc. | Hybrid content request routing system |
US10592578B1 (en) | 2018-03-07 | 2020-03-17 | Amazon Technologies, Inc. | Predictive content push-enabled content delivery network |
US10681001B2 (en) | 2018-03-29 | 2020-06-09 | Akamai Technologies, Inc. | High precision mapping with intermediary DNS filtering |
US10862852B1 (en) | 2018-11-16 | 2020-12-08 | Amazon Technologies, Inc. | Resolution of domain name requests in heterogeneous network environments |
US11025747B1 (en) | 2018-12-12 | 2021-06-01 | Amazon Technologies, Inc. | Content request pattern-based routing system |
CN110750747B (en) * | 2019-10-22 | 2022-08-12 | 杭州安恒信息技术股份有限公司 | Page jump method, device, equipment and readable storage medium |
US20230059940A1 (en) * | 2021-08-18 | 2023-02-23 | Citrix Systems, Inc. | Systems and methods for application health based network traffic routing in a geographically distributed cloud service |
Citations (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5892914A (en) * | 1994-11-28 | 1999-04-06 | Pitts; William Michael | System for accessing distributed data cache at each network node to pass requests and data |
US5924116A (en) * | 1997-04-02 | 1999-07-13 | International Business Machines Corporation | Collaborative caching of a requested object by a lower level node as a function of the caching status of the object at a higher level node |
US5933849A (en) * | 1997-04-10 | 1999-08-03 | At&T Corp | Scalable distributed caching system and method |
US6003030A (en) * | 1995-06-07 | 1999-12-14 | Intervu, Inc. | System and method for optimized storage and retrieval of data on a distributed computer network |
US6026452A (en) * | 1997-02-26 | 2000-02-15 | Pitts; William Michael | Network distributed site cache RAM claimed as up/down stream request/reply channel for storing anticipated data and meta data |
US6038601A (en) * | 1997-07-21 | 2000-03-14 | Tibco, Inc. | Method and apparatus for storing and delivering documents on the internet |
US6088721A (en) * | 1998-10-20 | 2000-07-11 | Lucent Technologies, Inc. | Efficient unified replication and caching protocol |
US6108703A (en) * | 1998-07-14 | 2000-08-22 | Massachusetts Institute Of Technology | Global hosting system |
US6112279A (en) * | 1998-03-31 | 2000-08-29 | Lucent Technologies, Inc. | Virtual web caching system |
US6167438A (en) * | 1997-05-22 | 2000-12-26 | Trustees Of Boston University | Method and system for distributed caching, prefetching and replication |
US6182133B1 (en) * | 1998-02-06 | 2001-01-30 | Microsoft Corporation | Method and apparatus for display of information prefetching and cache status having variable visual indication based on a period of time since prefetching |
US6240461B1 (en) * | 1997-09-25 | 2001-05-29 | Cisco Technology, Inc. | Methods and apparatus for caching network data traffic |
US6247050B1 (en) * | 1997-09-12 | 2001-06-12 | Intel Corporation | System for collecting and displaying performance improvement information for a computer |
US6330602B1 (en) * | 1997-04-14 | 2001-12-11 | Nortel Networks Limited | Scaleable web server and method of efficiently managing multiple servers |
US20010052016A1 (en) * | 1999-12-13 | 2001-12-13 | Skene Bryan D. | Method and system for balancing load distrubution on a wide area network |
US20020007413A1 (en) * | 2000-03-16 | 2002-01-17 | Garcia-Luna-Aceves Jj | System and method for using a mapping between client addresses and addresses of caches to support content delivery |
US20020010798A1 (en) * | 2000-04-20 | 2002-01-24 | Israel Ben-Shaul | Differentiated content and application delivery via internet |
US20020009079A1 (en) * | 2000-06-23 | 2002-01-24 | Jungck Peder J. | Edge adapter apparatus and method |
US6389462B1 (en) * | 1998-12-16 | 2002-05-14 | Lucent Technologies Inc. | Method and apparatus for transparently directing requests for web objects to proxy caches |
US20020065899A1 (en) * | 2000-11-30 | 2002-05-30 | Smith Erik Richard | System and method for delivering dynamic content |
US20020069420A1 (en) * | 2000-04-07 | 2002-06-06 | Chris Russell | System and process for delivery of content over a network |
US6405252B1 (en) * | 1999-11-22 | 2002-06-11 | Speedera Networks, Inc. | Integrated point of presence server network |
US20020092026A1 (en) * | 2001-01-09 | 2002-07-11 | International Business Machines Corporation | Method and apparatus for broadcast delivery of content to a client-side cache based on user preferences |
US20020129116A1 (en) * | 1998-03-16 | 2002-09-12 | Douglas E. Humphrey | Network broadcasting system and method of distrituting information from a master cache to local caches |
US20020152318A1 (en) * | 2001-03-02 | 2002-10-17 | Menon Satish N. | Metadata enabled push-pull model for efficient low-latency video-content distribution over a network |
US6484143B1 (en) * | 1999-11-22 | 2002-11-19 | Speedera Networks, Inc. | User device and system for traffic management and content distribution over a world wide area network |
US6542964B1 (en) * | 1999-06-02 | 2003-04-01 | Blue Coat Systems | Cost-based optimization for content distribution using dynamic protocol selection and query resolution for cache server |
US20030065810A1 (en) * | 2001-10-03 | 2003-04-03 | International Business Machines Corporation | Selective edge processing of dynamically generated content |
US20030112792A1 (en) * | 2001-12-14 | 2003-06-19 | At &T Corp. | Method for content-aware redirection and content renaming |
US6640239B1 (en) * | 1999-11-10 | 2003-10-28 | Garuda Network Corporation | Apparatus and method for intelligent scalable switching network |
US6647466B2 (en) * | 2001-01-25 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | Method and apparatus for adaptively bypassing one or more levels of a cache hierarchy |
US6654807B2 (en) * | 1998-02-10 | 2003-11-25 | Cable & Wireless Internet Services, Inc. | Internet content delivery network |
US6694358B1 (en) * | 1999-11-22 | 2004-02-17 | Speedera Networks, Inc. | Performance computer network method |
US6704781B1 (en) * | 2000-06-27 | 2004-03-09 | Intel Corporation | System and method for content caching implementing compensation for providing caching services |
US6754699B2 (en) * | 2000-07-19 | 2004-06-22 | Speedera Networks, Inc. | Content delivery and global traffic management network system |
US6785704B1 (en) * | 1999-12-20 | 2004-08-31 | Fastforward Networks | Content distribution system for operation over an internetwork including content peering arrangements |
US6820133B1 (en) * | 2000-02-07 | 2004-11-16 | Netli, Inc. | System and method for high-performance delivery of web content using high-performance communications protocol between the first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination |
US6829654B1 (en) * | 2000-06-23 | 2004-12-07 | Cloudshield Technologies, Inc. | Apparatus and method for virtual edge placement of web sites |
US20050124382A1 (en) * | 2003-12-09 | 2005-06-09 | Nokia Corporation | System and method for service naming and related directory structure in a mobile data network |
US6959318B1 (en) * | 1998-03-06 | 2005-10-25 | Intel Corporation | Method of proxy-assisted predictive pre-fetching with transcoding |
US7133905B2 (en) * | 2002-04-09 | 2006-11-07 | Akamai Technologies, Inc. | Method and system for tiered distribution in a content delivery network |
US7136922B2 (en) * | 2002-10-15 | 2006-11-14 | Akamai Technologies, Inc. | Method and system for providing on-demand content delivery for an origin server |
US7200681B1 (en) * | 2001-07-30 | 2007-04-03 | Akamai Technologies, Inc. | Edge side components and application programming environment for building and delivering highly distributed heterogenous component-based web applications |
US7213071B2 (en) * | 2001-04-03 | 2007-05-01 | International Business Machines Corporation | Quality of service improvements for network transactions |
US7240100B1 (en) * | 2000-04-14 | 2007-07-03 | Akamai Technologies, Inc. | Content delivery network (CDN) content server request handling mechanism with metadata framework support |
US7254634B1 (en) * | 2002-03-08 | 2007-08-07 | Akamai Technologies, Inc. | Managing web tier session state objects in a content delivery network (CDN) |
US7274658B2 (en) * | 2001-03-01 | 2007-09-25 | Akamai Technologies, Inc. | Optimal route selection in a content delivery network |
US7293093B2 (en) * | 2000-04-17 | 2007-11-06 | Akamai Technologies, Inc. | HTML delivery from edge-of-network servers in a content delivery network (CDN) |
US7299291B1 (en) * | 2000-05-18 | 2007-11-20 | Akamai Technologies, Inc. | Client-side method for identifying an optimum server |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5459837A (en) | 1993-04-21 | 1995-10-17 | Digital Equipment Corporation | System to facilitate efficient utilization of network resources in a computer network |
US5664106A (en) | 1993-06-04 | 1997-09-02 | Digital Equipment Corporation | Phase-space surface representation of server computer performance in a computer network |
GB2281793A (en) | 1993-09-11 | 1995-03-15 | Ibm | A data processing system for providing user load levelling in a network |
US5894554A (en) | 1996-04-23 | 1999-04-13 | 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 |
US5935207A (en) | 1996-06-03 | 1999-08-10 | Webtv Networks, Inc. | Method and apparatus for providing remote site administrators with user hits on mirrored web sites |
US6134583A (en) | 1996-07-01 | 2000-10-17 | Sun Microsystems, Inc. | Method, system, apparatus and article of manufacture for providing identity-based caching services to a plurality of computer systems (#16) |
US5884038A (en) | 1997-05-02 | 1999-03-16 | Whowhere? Inc. | Method for providing an Internet protocol address with a domain name server |
US6351775B1 (en) | 1997-05-30 | 2002-02-26 | International Business Machines Corporation | Loading balancing across servers in a computer network |
US6128279A (en) * | 1997-10-06 | 2000-10-03 | Web Balance, Inc. | System for balancing loads among network servers |
US6070191A (en) | 1997-10-17 | 2000-05-30 | Lucent Technologies Inc. | Data distribution techniques for load-balanced fault-tolerant web access |
US6167427A (en) | 1997-11-28 | 2000-12-26 | Lucent Technologies Inc. | Replication service system and method for directing the replication of information servers based on selected plurality of servers load |
US6178160B1 (en) | 1997-12-23 | 2001-01-23 | Cisco Technology, Inc. | Load balancing of client connections across a network using server based algorithms |
US6560639B1 (en) | 1998-02-13 | 2003-05-06 | 3565 Acquisition Corporation | System for web content management based on server-side application |
US6122666A (en) | 1998-02-23 | 2000-09-19 | International Business Machines Corporation | Method for collaborative transformation and caching of web objects in a proxy network |
US6205481B1 (en) | 1998-03-17 | 2001-03-20 | Infolibria, Inc. | Protocol for distributing fresh content among networked cache servers |
US6115752A (en) | 1998-05-21 | 2000-09-05 | Sun Microsystems, Inc. | System and method for server selection for mirrored sites |
US6260070B1 (en) | 1998-06-30 | 2001-07-10 | Dhaval N. Shah | System and method for determining a preferred mirrored service in a network by evaluating a border gateway protocol |
US6154849A (en) | 1998-06-30 | 2000-11-28 | Sun Microsystems, Inc. | Method and apparatus for resource dependency relaxation |
US6427187B2 (en) | 1998-07-31 | 2002-07-30 | Cache Flow, Inc. | Multiple cache communication |
US6092178A (en) | 1998-09-03 | 2000-07-18 | Sun Microsystems, Inc. | System for responding to a resource request |
JP2002524979A (en) | 1998-09-09 | 2002-08-06 | サン・マイクロシステムズ・インコーポレーテッド | Method and apparatus for handling DNS traffic transparently |
US6381627B1 (en) | 1998-09-21 | 2002-04-30 | Microsoft Corporation | Method and computer readable medium for discovering master DNS server computers for a given domain name in multiple master and multiple namespace configurations |
US6578066B1 (en) | 1999-09-17 | 2003-06-10 | Alteon Websystems | Distributed load-balancing internet servers |
US6535509B2 (en) | 1998-09-28 | 2003-03-18 | Infolibria, Inc. | Tagging for demultiplexing in a network traffic server |
US6438652B1 (en) | 1998-10-09 | 2002-08-20 | International Business Machines Corporation | Load balancing cooperating cache servers by shifting forwarded request |
US6304913B1 (en) | 1998-11-09 | 2001-10-16 | Telefonaktiebolaget L M Ericsson (Publ) | Internet system and method for selecting a closest server from a plurality of alternative servers |
US6553376B1 (en) | 1998-11-18 | 2003-04-22 | Infolibria, Inc. | Efficient content server using request redirection |
US6795434B1 (en) | 1998-11-18 | 2004-09-21 | Intel Corporation | Replicated server discovery in client-proxy servers |
US6442165B1 (en) * | 1998-12-02 | 2002-08-27 | Cisco Technology, Inc. | Load balancing between service component instances |
US6427170B1 (en) | 1998-12-08 | 2002-07-30 | Cisco Technology, Inc. | Integrated IP address management |
US6564193B1 (en) | 1999-01-14 | 2003-05-13 | Fax4Free.Com, Inc. | System for, and method of, using the internet system to provide for the transmission of a facsimile message |
US6393458B1 (en) | 1999-01-28 | 2002-05-21 | Genrad, Inc. | Method and apparatus for load balancing in a distributed object architecture |
US6487555B1 (en) | 1999-05-07 | 2002-11-26 | Alta Vista Company | Method and apparatus for finding mirrored hosts by analyzing connectivity and IP addresses |
US6374297B1 (en) | 1999-08-16 | 2002-04-16 | International Business Machines Corporation | Method and apparatus for load balancing of web cluster farms |
US6415323B1 (en) * | 1999-09-03 | 2002-07-02 | Fastforward Networks | Proximity-based redirection system for robust and scalable service-node location in an internetwork |
US6724733B1 (en) | 1999-11-02 | 2004-04-20 | Sun Microsystems, Inc. | Method and apparatus for determining approximate network distances using reference locations |
US6351776B1 (en) | 1999-11-04 | 2002-02-26 | Xdrive, Inc. | Shared internet storage resource, user interface system, and method |
US6560717B1 (en) | 1999-12-10 | 2003-05-06 | Art Technology Group, Inc. | Method and system for load balancing and management |
US6754706B1 (en) | 1999-12-16 | 2004-06-22 | Speedera Networks, Inc. | Scalable domain name system with persistence and load balancing |
US6606643B1 (en) | 2000-01-04 | 2003-08-12 | International Business Machines Corporation | Method of automatically selecting a mirror server for web-based client-host interaction |
JP2001356972A (en) * | 2000-06-15 | 2001-12-26 | Fast Net Kk | Network monitoring system and method |
US6785769B1 (en) | 2001-08-04 | 2004-08-31 | Oracle International Corporation | Multi-version data caching |
-
2000
- 2000-08-23 US US09/645,067 patent/US6694358B1/en not_active Expired - Lifetime
-
2004
- 2004-02-06 US US10/774,246 patent/US7225254B1/en not_active Expired - Lifetime
-
2007
- 2007-05-28 US US11/754,352 patent/US7539757B2/en not_active Expired - Fee Related
-
2009
- 2009-05-22 US US12/471,209 patent/US20090228588A1/en not_active Abandoned
Patent Citations (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5892914A (en) * | 1994-11-28 | 1999-04-06 | Pitts; William Michael | System for accessing distributed data cache at each network node to pass requests and data |
US6003030A (en) * | 1995-06-07 | 1999-12-14 | Intervu, Inc. | System and method for optimized storage and retrieval of data on a distributed computer network |
US6502125B1 (en) * | 1995-06-07 | 2002-12-31 | Akamai Technologies, Inc. | System and method for optimized storage and retrieval of data on a distributed computer network |
US6665706B2 (en) * | 1995-06-07 | 2003-12-16 | Akamai Technologies, Inc. | System and method for optimized storage and retrieval of data on a distributed computer network |
US6026452A (en) * | 1997-02-26 | 2000-02-15 | Pitts; William Michael | Network distributed site cache RAM claimed as up/down stream request/reply channel for storing anticipated data and meta data |
US5924116A (en) * | 1997-04-02 | 1999-07-13 | International Business Machines Corporation | Collaborative caching of a requested object by a lower level node as a function of the caching status of the object at a higher level node |
US5933849A (en) * | 1997-04-10 | 1999-08-03 | At&T Corp | Scalable distributed caching system and method |
US6330602B1 (en) * | 1997-04-14 | 2001-12-11 | Nortel Networks Limited | Scaleable web server and method of efficiently managing multiple servers |
US6167438A (en) * | 1997-05-22 | 2000-12-26 | Trustees Of Boston University | Method and system for distributed caching, prefetching and replication |
US6038601A (en) * | 1997-07-21 | 2000-03-14 | Tibco, Inc. | Method and apparatus for storing and delivering documents on the internet |
US6247050B1 (en) * | 1997-09-12 | 2001-06-12 | Intel Corporation | System for collecting and displaying performance improvement information for a computer |
US6240461B1 (en) * | 1997-09-25 | 2001-05-29 | Cisco Technology, Inc. | Methods and apparatus for caching network data traffic |
US6182133B1 (en) * | 1998-02-06 | 2001-01-30 | Microsoft Corporation | Method and apparatus for display of information prefetching and cache status having variable visual indication based on a period of time since prefetching |
US6654807B2 (en) * | 1998-02-10 | 2003-11-25 | Cable & Wireless Internet Services, Inc. | Internet content delivery network |
US6959318B1 (en) * | 1998-03-06 | 2005-10-25 | Intel Corporation | Method of proxy-assisted predictive pre-fetching with transcoding |
US20020129116A1 (en) * | 1998-03-16 | 2002-09-12 | Douglas E. Humphrey | Network broadcasting system and method of distrituting information from a master cache to local caches |
US6112279A (en) * | 1998-03-31 | 2000-08-29 | Lucent Technologies, Inc. | Virtual web caching system |
US6108703A (en) * | 1998-07-14 | 2000-08-22 | Massachusetts Institute Of Technology | Global hosting system |
US6553413B1 (en) * | 1998-07-14 | 2003-04-22 | Massachusetts Institute Of Technology | Content delivery network using edge-of-network servers for providing content delivery to a set of participating content providers |
US6088721A (en) * | 1998-10-20 | 2000-07-11 | Lucent Technologies, Inc. | Efficient unified replication and caching protocol |
US6389462B1 (en) * | 1998-12-16 | 2002-05-14 | Lucent Technologies Inc. | Method and apparatus for transparently directing requests for web objects to proxy caches |
US6542964B1 (en) * | 1999-06-02 | 2003-04-01 | Blue Coat Systems | Cost-based optimization for content distribution using dynamic protocol selection and query resolution for cache server |
US20050010653A1 (en) * | 1999-09-03 | 2005-01-13 | Fastforward Networks, Inc. | Content distribution system for operation over an internetwork including content peering arrangements |
US6640239B1 (en) * | 1999-11-10 | 2003-10-28 | Garuda Network Corporation | Apparatus and method for intelligent scalable switching network |
US7539757B2 (en) * | 1999-11-22 | 2009-05-26 | Akamai Technologies, Inc. | Performance computer network method |
US6484143B1 (en) * | 1999-11-22 | 2002-11-19 | Speedera Networks, Inc. | User device and system for traffic management and content distribution over a world wide area network |
US6405252B1 (en) * | 1999-11-22 | 2002-06-11 | Speedera Networks, Inc. | Integrated point of presence server network |
US7225254B1 (en) * | 1999-11-22 | 2007-05-29 | Akamai Technologies, Inc. | Performance computer network method |
US6694358B1 (en) * | 1999-11-22 | 2004-02-17 | Speedera Networks, Inc. | Performance computer network method |
US20010052016A1 (en) * | 1999-12-13 | 2001-12-13 | Skene Bryan D. | Method and system for balancing load distrubution on a wide area network |
US6785704B1 (en) * | 1999-12-20 | 2004-08-31 | Fastforward Networks | Content distribution system for operation over an internetwork including content peering arrangements |
US6820133B1 (en) * | 2000-02-07 | 2004-11-16 | Netli, Inc. | System and method for high-performance delivery of web content using high-performance communications protocol between the first and second specialized intermediate nodes to optimize a measure of communications performance between the source and the destination |
US20020007413A1 (en) * | 2000-03-16 | 2002-01-17 | Garcia-Luna-Aceves Jj | System and method for using a mapping between client addresses and addresses of caches to support content delivery |
US20020069420A1 (en) * | 2000-04-07 | 2002-06-06 | Chris Russell | System and process for delivery of content over a network |
US7240100B1 (en) * | 2000-04-14 | 2007-07-03 | Akamai Technologies, Inc. | Content delivery network (CDN) content server request handling mechanism with metadata framework support |
US7293093B2 (en) * | 2000-04-17 | 2007-11-06 | Akamai Technologies, Inc. | HTML delivery from edge-of-network servers in a content delivery network (CDN) |
US20020010798A1 (en) * | 2000-04-20 | 2002-01-24 | Israel Ben-Shaul | Differentiated content and application delivery via internet |
US7299291B1 (en) * | 2000-05-18 | 2007-11-20 | Akamai Technologies, Inc. | Client-side method for identifying an optimum server |
US6829654B1 (en) * | 2000-06-23 | 2004-12-07 | Cloudshield Technologies, Inc. | Apparatus and method for virtual edge placement of web sites |
US20020009079A1 (en) * | 2000-06-23 | 2002-01-24 | Jungck Peder J. | Edge adapter apparatus and method |
US6704781B1 (en) * | 2000-06-27 | 2004-03-09 | Intel Corporation | System and method for content caching implementing compensation for providing caching services |
US6754699B2 (en) * | 2000-07-19 | 2004-06-22 | Speedera Networks, Inc. | Content delivery and global traffic management network system |
US20020065899A1 (en) * | 2000-11-30 | 2002-05-30 | Smith Erik Richard | System and method for delivering dynamic content |
US20020092026A1 (en) * | 2001-01-09 | 2002-07-11 | International Business Machines Corporation | Method and apparatus for broadcast delivery of content to a client-side cache based on user preferences |
US6647466B2 (en) * | 2001-01-25 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | Method and apparatus for adaptively bypassing one or more levels of a cache hierarchy |
US7274658B2 (en) * | 2001-03-01 | 2007-09-25 | Akamai Technologies, Inc. | Optimal route selection in a content delivery network |
US20020152318A1 (en) * | 2001-03-02 | 2002-10-17 | Menon Satish N. | Metadata enabled push-pull model for efficient low-latency video-content distribution over a network |
US7213071B2 (en) * | 2001-04-03 | 2007-05-01 | International Business Machines Corporation | Quality of service improvements for network transactions |
US7200681B1 (en) * | 2001-07-30 | 2007-04-03 | Akamai Technologies, Inc. | Edge side components and application programming environment for building and delivering highly distributed heterogenous component-based web applications |
US20030065810A1 (en) * | 2001-10-03 | 2003-04-03 | International Business Machines Corporation | Selective edge processing of dynamically generated content |
US20030112792A1 (en) * | 2001-12-14 | 2003-06-19 | At &T Corp. | Method for content-aware redirection and content renaming |
US7254634B1 (en) * | 2002-03-08 | 2007-08-07 | Akamai Technologies, Inc. | Managing web tier session state objects in a content delivery network (CDN) |
US7133905B2 (en) * | 2002-04-09 | 2006-11-07 | Akamai Technologies, Inc. | Method and system for tiered distribution in a content delivery network |
US7376716B2 (en) * | 2002-04-09 | 2008-05-20 | Akamai Technologies, Inc. | Method and system for tiered distribution in a content delivery network |
US7603439B2 (en) * | 2002-04-09 | 2009-10-13 | Akamai Technologies, Inc. | System for tiered distribution in a content delivery network |
US7136922B2 (en) * | 2002-10-15 | 2006-11-14 | Akamai Technologies, Inc. | Method and system for providing on-demand content delivery for an origin server |
US20050124382A1 (en) * | 2003-12-09 | 2005-06-09 | Nokia Corporation | System and method for service naming and related directory structure in a mobile data network |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9154331B2 (en) | 2009-07-21 | 2015-10-06 | At&T Intellectual Property I, L.P. | Managing linear multimedia content delivery |
US9516103B2 (en) | 2009-07-21 | 2016-12-06 | At&T Intellectual Property I, L.P. | Managing linear multimedia content delivery |
US20110022689A1 (en) * | 2009-07-21 | 2011-01-27 | At&T Intellectual Property I, L.P. | Managing linear multimedia content delivery |
US20120311057A1 (en) * | 2010-02-09 | 2012-12-06 | Zte Corporation | Mobile terminal and method for switching e-mail accounts on mobile terminal |
AU2019204122B2 (en) * | 2012-09-25 | 2020-06-04 | Mx Technologies Inc. | Aggregation source routing |
US10904235B2 (en) | 2015-11-12 | 2021-01-26 | Mx Technologies, Inc. | Predicting input locations for data aggregation using machine learning |
US11005832B2 (en) | 2015-11-12 | 2021-05-11 | Mx Technologies, Inc. | Distributed, decentralized data aggregation |
US11005833B2 (en) | 2015-11-12 | 2021-05-11 | Mx Technologies, Inc. | Distributed, decentralized data aggregation |
US11165763B2 (en) | 2015-11-12 | 2021-11-02 | Mx Technologies, Inc. | Distributed, decentralized data aggregation |
US11190500B2 (en) | 2015-11-12 | 2021-11-30 | Mx Technologies, Inc. | Distributed, decentralized data aggregation |
US11277393B2 (en) | 2015-11-12 | 2022-03-15 | Mx Technologies, Inc. | Scrape repair |
US11522846B2 (en) | 2015-11-12 | 2022-12-06 | Mx Technologies, Inc. | Distributed, decentralized data aggregation |
CN109194500A (en) * | 2018-08-08 | 2019-01-11 | 新华三技术有限公司 | Forwarding table state switching method, device and communication equipment |
Also Published As
Publication number | Publication date |
---|---|
US20070261004A1 (en) | 2007-11-08 |
US7539757B2 (en) | 2009-05-26 |
US7225254B1 (en) | 2007-05-29 |
US6694358B1 (en) | 2004-02-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8041818B2 (en) | Integrated point of presence server network and functionally organized web sites | |
US7539757B2 (en) | Performance computer network method | |
US7925713B1 (en) | Method for operating an integrated point of presence server network | |
EP1493094B1 (en) | Method and system for tiered distribution in a content delivery network | |
US8806008B2 (en) | HTML delivery from edge-of-network servers in a content delivery network (CDN) | |
US8903950B2 (en) | Personalized content delivery using peer-to-peer precaching | |
US20170163755A1 (en) | Content request routing and load balancing for content distribution networks | |
CA2413943C (en) | Viewer object proxy | |
CA2410860C (en) | Reverse content harvester | |
JP2002503001A (en) | Optimized network resource location | |
WO2001080004A2 (en) | Http redirector | |
CA2410850A1 (en) | A qos based content distribution network | |
AU2001265352A1 (en) | Self-publishing network directory | |
WO2001039003A1 (en) | Method for operating an integrated point of presence server network | |
WO1999060459A2 (en) | Method and apparatus for effective traffic localization through domain name system | |
KR100375121B1 (en) | Web contents transmission method | |
CA2413886A1 (en) | Client side holistic health check | |
WO2002039699A1 (en) | Domain name system extensions to support reverse proxy operations and layer-7 redirection | |
AU2001272931A1 (en) | Client side address routing analysis | |
CA2410866C (en) | Client side deterministic routing and transparent redirection |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |