US20080172488A1 - Reducing the impact of network latency on application performance - Google Patents

Reducing the impact of network latency on application performance Download PDF

Info

Publication number
US20080172488A1
US20080172488A1 US11/014,922 US1492204A US2008172488A1 US 20080172488 A1 US20080172488 A1 US 20080172488A1 US 1492204 A US1492204 A US 1492204A US 2008172488 A1 US2008172488 A1 US 2008172488A1
Authority
US
United States
Prior art keywords
response
network
client browser
content server
resource
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.)
Granted
Application number
US11/014,922
Other versions
US9032096B2 (en
Inventor
Janardhanan Jawahar
Balas Natarajan Kausik
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cisco Technology Inc
Original Assignee
FINEGROUD NETWORKS
Cisco Technology Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by FINEGROUD NETWORKS, Cisco Technology Inc filed Critical FINEGROUD NETWORKS
Priority to US11/014,922 priority Critical patent/US9032096B2/en
Assigned to FINEGROUD NETWORKS reassignment FINEGROUD NETWORKS ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: JAWAHAR, JANARDHANAN, KAUSIK, BALAS NATARAJAN
Publication of US20080172488A1 publication Critical patent/US20080172488A1/en
Assigned to FINEGROUND NETWORKS, INC. reassignment FINEGROUND NETWORKS, INC. CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S NAME, PREVIOUSLY RECORDED ON REEL 016109 FRAME 0577. Assignors: JAWAHAR, JANARDHANAN, KAUSIK, BALAS NATARAJAN
Assigned to FINEGROUND NETWORKS LLC reassignment FINEGROUND NETWORKS LLC CHANGE OF NAME (SEE DOCUMENT FOR DETAILS). Assignors: FINEGROUND NETWORKS, INC.
Assigned to CISCO TECHNOLOGY, INC. reassignment CISCO TECHNOLOGY, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: FINEGROUND NETWORKS LLC
Application granted granted Critical
Publication of US9032096B2 publication Critical patent/US9032096B2/en
Active legal-status Critical Current
Adjusted expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/74Admission control; Resource allocation measures in reaction to resource unavailability
    • H04L47/748Negotiation of resources, e.g. modification of a request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/80Actions related to the user profile or the type of traffic
    • H04L47/801Real time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • H04L47/83Admission control; Resource allocation based on usage prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams

Definitions

  • This patent relates generally to accessing content over a network. More specifically, this patent relates to minimizing the impact of network latency on the response time to a client's request for a resource from a remote content server.
  • Browser-based applications are deployed and managed centrally, and therefore are inexpensive in comparison to client/server applications. Specifically, in contrast to client/server applications, browser-based applications can be accessed ubiquitously from any web-browser, and therefore do not require the maintenance of specialized software on each user's desktop. On the downside, browser applications suffer from performance issues in that responding to client actions may take several network roundtrips to the server. In contrast, client/server applications carry significant computing intelligence on the client, thereby providing significantly better performance.
  • Round trips (i.e., multiple communications) on the network can take anywhere from a fraction of a millisecond to more than a second, depending on the type of network and the geographic distance between the client and the server.
  • the latency is typically 0.1 ms.
  • the latency on a high-speed land line between New York and Tokyo is ⁇ 400 ms.
  • the latency between any two terrestrial points on a satellite link is about 1.5 seconds.
  • the performance of browser-based applications depends substantially on the number of network roundtrips required to respond to a typical client action. A response that requires 16 round trips would take well over 7 seconds when the client is in Tokyo and the server is in New York. It is therefore desirable to minimize the number of network roundtrips involved in each response of the application to client action.
  • files e.g., web pages
  • a customer service application at an insurance company may includes files that, when accessed, display web pages having several frames such as an “account information” frame, a “contact information” frame, a “policy claims” frame etc.
  • This organization of the frames is convenient to the application developer because the application modules for different frames can be separately developed then the modules can be reused in multiple pages in any combination.
  • the “account info” frame may occur in every page or just in some of the company's pages. This allows the application developer to rapidly develop complex applications in a modular fashion.
  • a developer may construct an application to comprise several functional modules.
  • a content server may process the URL at a nominal control module which then redirects the client to another module for handling the request. Redirection of client requests can have severe performance impact because each client request must travel the network twice—once to the server's control module and back, and a second time to another (redirected) server module and back.
  • Network latency can have varying impact on the performance of web and other network applications involving the fetching of an object that in turn requires the fetching of other objects that are external to the originally fetched object.
  • network latency has limited impact on performance.
  • the latency is large (e.g., of the order of a second), as is the case when the client and the server are separated by a significant geographic distance, network latency can degrade application performance significantly.
  • optimization can be carried out dynamically as a client interacts with an application so that changes to the application (e.g., on the server or client computers) are not required (but may be optional depending on design choice).
  • An exemplary method performed by a proxy server located between a content server and a client browser for reducing effects of network latency therebetween comprises intercepting a request from the client browser for a resource at the content server, obtaining a response by the content server to the request, determining that the response would, if unmodified, require a plurality of communications between the content server and the client browser in the absence of the proxy server, modifying the response to reduce a network latency associated with the plurality of communications for accessing information located externally to the response, and transmitting the modified response to the client browser for use thereby.
  • FIG. 1 illustrates an exemplary network environment.
  • FIG. 2 illustrates an exemplary process for reducing network latency caused by server redirects.
  • FIG. 3 illustrates an exemplary process for reducing network latency when processing requested resources containing embedded objects.
  • FIG. 4 illustrates another exemplary process for reducing network latency when processing requested resources containing embedded objects.
  • Section II describes an exemplary network environment.
  • Section III describes an exemplary process for reducing network latency caused by a server redirect.
  • Section IV describes exemplary processes for reducing network latency when a content server's response is a resource including multiple embedded objects.
  • Section V describes other aspects and considerations.
  • FIG. 1 illustrates an exemplary environment including a client browser 100 connected over a Wide Area Network (WAN) 110 to, and accessing content from, a content server 300 .
  • WAN Wide Area Network
  • the proposed system is deployed as a transparent proxy server 200 located on the network immediately in front of the content server 300 , and connected on a high-speed low latency Local Area Network (LAN) 120 to the content server 300 .
  • LAN Local Area Network
  • the proxy server 200 intercepts the request, and forwards the request to the content server 300 .
  • the content server 300 then responds to the proxy server 200 .
  • the proxy server 200 examines and modifies the response in accordance with various embodiments to be described herein then forwards the modified response to the client browser 100 .
  • the proxy server 200 can be implemented in any combination of software and/or hardware, depending on the technical and financial requirements of the particular implementation.
  • a software implementation could be run on a general purpose computer having a processor, one or more memories or other computer-readable media, and appropriate I/O interfaces for connections to the content server 300 and the client browser 100 , via the LAN 120 or the WAN 100 , respectively.
  • a hardware implementation could be deployed using ASICs, PALs, PLAs, or still other forms of hardware now known or hereafter developed.
  • the computer-readable media can store data and logic instructions (which, when executed, implement the processes described herein) that are accessible by the computer or the processing logic within the hardware.
  • Such media might include, without limitation, hard disks, flash memory, random access memories (RAMs), read only memories (ROMs), and the like.
  • FIG. 2 illustrates an exemplary process for reducing network latency caused by server redirects.
  • Server redirects are instances where a content server's response to a client request is a redirect to another Universal Resource Locator (URL) identifying a unique resource.
  • URL Universal Resource Locator
  • a resource can be any type of data, including, without limitation, a frame, a text file, an image file, a voice file, any other types of data, and/or a combination thereof.
  • the terms resource and object may be used interchangeably throughout this patent.
  • the exemplary process begins at block 10 .
  • the proxy server 200 obtains a client request for URL 1 .
  • the client request is sent by the client browser 100 via the WAN 110 and destined for the content server 300 .
  • the proxy server 200 intercepts the client request.
  • the request interception can be transparent to the client browser 100 .
  • the proxy server 200 forwards the request to the content server 300 via the LAN 120 .
  • the proxy server 200 receives the content server's 300 response to the request.
  • the proxy server 200 examines the response after receiving it.
  • the proxy server 200 determines whether the response is a redirect to another URL (e.g., URL 2 ).
  • the proxy server 200 requests the redirect URL (e.g., URL 2 ) from a content server.
  • the content server may or may not be the same content server as the one for URL 1 (i.e., content server 300 ).
  • the process returns to block 25 , where the proxy server 200 receives a response to the redirect URL from a content server. If the new response is not yet another redirect to yet another URL (e.g., URL 3 ), then the process continues to block 40 where the new response is forwarded to the client browser 100 .
  • the proxy server 200 intercepts a redirect response from the content server 300 and requests the resource identified by the redirect URL via the high-speed low latency LAN 120 . Therefore, network latency between the client browser 100 and the content server 300 is reduced by eliminating one roundtrip between them over the higher latency WAN 110 to request the resource identified by the redirect URL.
  • Network latency can also occur when a response (e.g., a resource) from the content server 300 to a client request (e.g., made via the client browser 100 ) includes multiple embedded objects.
  • FIGS. 3 and 4 illustrate two exemplary processes for reducing network latency by modifying the response from the content server 300 .
  • FIG. 3 illustrates an exemplary process performed by the proxy server 200 that includes the same blocks 10 - 35 of FIG. 2 .
  • the proxy server 200 determines whether the response includes any embedded objects. For ease of explanation only, this response will be referred to as the original response.
  • the proxy server 200 requests the embedded objects from the content server 300 via the LAN 120 and appends the objects to the original response to form a modified response.
  • the embedded objects are separated from the parent resource by a header.
  • each object is also separated from another object by a header.
  • a header may identify the resource location of each object appended immediately following the header.
  • the modified response can be represented in any desired format, subject to the ability of the client browser 100 to recognize such format.
  • a well-known format that could be used is the so-called Multipurpose Internet Mail Extension HTML (a.k.a. MIME HTML, MHTHL or MHT).
  • MIME HTML format developed by a committee of the standards setting body known as the Internet Engineering Task Force, is well known to those skilled in the art, and need not be described in greater detail herein. For example, see the specification for this format at www.ietf.org/rfc/rfc2110.txt and www.ietf.org/rfc/rfc2557.txt. Current versions of some popular browsers, including Microsoft's Internet Explorer, are configured to recognize (and some can even write) files in this format.
  • the proxy server 200 forwards the modified response to the client browser 100 via the WAN 110 .
  • the client browser 100 can render the parent resource as well as the embedded objects by opening the modified response in accordance with the requirements of the implemented format, without having to incur additional roundtrips to request and obtain the objects embedded in the parent resource.
  • the proxy server 200 forwards the original response to the client browser 100 via the WAN 110 .
  • the proxy server 200 intercepts an original response from the content server 300 and directly requests the content server 300 for any objects embedded in the original response via the high-speed low latency LAN 120 . Therefore, network latency between the client browser 100 and the content server 300 is reduced by eliminating additional roundtrips between them over the higher latency WAN 110 for retrieving any embedded objects.
  • Client browsers 100 are typically hard-coded by the manufacturers to automatically open two parallel TCP/IP connections per uniquely named content server. Without proxy server 200 intervention, a resource having multiple embedded objects will be retrieved directly by the client browser 100 via the two connections opened for the content server 300 of the resource.
  • a first connection will be used to retrieve the parent resource
  • a second connection will be used to retrieve any embedded objects one-by-one until either the first connection becomes free or when all embedded objects have been retrieved.
  • the first connection can be used in parallel with the second connection to retrieve any remaining embedded objects. If more connections could be opened, then network latency can be correspondingly reduced.
  • FIG. 4 illustrates an exemplary process performed by the proxy server 200 to enable the client browser 100 to open additional connections.
  • FIG. 4 includes the same blocks 10 - 35 of FIG. 2 .
  • the proxy server 200 determines whether the response includes any embedded objects. For ease of explanation only, this response will be referred to as the original response.
  • the proxy server 200 creates additional unique pseudonyms of the content server 300 and modifies the addresses of the embedded objects in the original response to include the unique pseudonyms (to form a modified response).
  • the impact of this process performed by the proxy server 200 can best be illustrated by example.
  • the parent resource includes multiple embedded objects identifiable by the following URLs:
  • the client browser 100 when the client browser 100 receives the parent resource, it will attempt to fetch the embedded objects (e.g., image files) using the two connections opened for the content server www.bank.com. Assuming both connections are free (i.e., one of the connections has already finished retrieving the parent resource), the client browser 100 will fetch the first two objects “button1.jpg” and “button2.jpg” followed by the next two, “clock.jpg” and “footer.gif.”
  • embedded objects e.g., image files
  • the proxy server 200 can enable the client browser 100 to open more connections (e.g., 4 connections) to be used to retrieve the embedded objects in parallel.
  • the proxy server 200 creates two unique pseudonyms: server1.bank.com and server2.bank.com for the content server www.bank.com, and modifies the addresses of the embedded objects in the parent resource to reference the pseudonyms.
  • the embedded objects can now be identified by:
  • the client browser 100 when the client browser 100 receives the modified response (see block 75 ), it will open two connections for each of the pseudonym servers, i.e., a total of four connections to the content server, and can retrieve all four embedded objects in parallel.
  • the proxy server 200 adds additional entries into a Domain Name Server, one for each pseudonym created by the proxy server 200 so the pseudonym(s) will resolve to the same IP address as the content server (e.g., www.bank.com).
  • the proxy server 200 may add a single DNS entry having a wildcard character symbol (e.g., an asterisk) preceding (or after) the content server name instead of adding a separate entry per unique pseudonym.
  • an entry of the form “*.bank.com” can be added to refer to the content server name of “.bank.com” with any string of wild card characters preceding the name.
  • DNS entry i.e., having a wildcard character symbol
  • proxy server 200 which will resolve any address to an appropriate content server.
  • the modified response is forwarded to the client browser 100 to enable it to open additional connections (i.e., more than 2) to access the content server 300 .
  • the original response is forwarded to the client browser 100 unmodified.
  • the number of unique pseudonyms to be created by the proxy server 200 may be a default number or a dynamically determined number (e.g., based on the size of the parent resource, the number of embedded objects, and/or any other factors).
  • a parent resource identifies embedded objects by relative URLs (e.g., of the form “./button.jpg”)
  • the proxy server 200 fills in the complete root path to convert the relative URL to an absolute URL, then introduces a created pseudonym to the absolute URL.
  • the proxy server 200 will fill in the complete root path to convert the relative URL to an absolute URL www.bank.com/button.jpg, and then introduce a pseudonym of the content server to modify the absolute URL to a modified URL www.server1.bank.com/button.jpg.
  • the proxy server 200 is configured to introduce the same pseudonym for each object if the object is referenced multiple times (e.g., within the same parent resource). This feature can prevent retrieval of the same object multiple times.
  • the absolute URL (or the content) of an object can be hashed to the space of a pseudonym.
  • the proxy server 200 intercepts an original response from the content server 300 , creates additional unique pseudonyms of the content server 300 , modifies the addresses of embedded objects in the response, and sends the modified response to the client browser 100 .
  • the modified response enables the client browser 100 to open additional connections to the content server 300 to thereby retrieve the embedded objects faster. Therefore, network latency between the client browser 100 and the content server 300 is reduced.
  • the process of intercepting a file (e.g., a request from the client browser 100 or a response from the content server 300 ) at the proxy server 200 , appending external objects or otherwise form a modified file (e.g., a modified response), and transmitting that modified file to a client will involve some overhead and therefore, will introduce some latency of its own. Additional latency might be introduced by the overhead associated with reading a modified file (e.g., a MIME HTML file) at the client browser 100 computer. In most cases, the additional latency will be more than offset by the reduction in latency associated with the savings in eliminated round trips (or by opening additional server connections). However, this is not always the case.
  • the overhead may exceed the savings when requesting content from a content server 300 that is very close to the client browser 100 , or when the network is very lightly loaded.
  • it may therefore be useful to perform latency testing and condition the operation of the modification (of the original response) on the outcome of such testing.
  • the overall effect of differential network speeds between the content-server-to-proxy legs and the proxy-to-client legs might also render the modification operation moot.
  • the proxy server 200 might be configured to interrogate the client browser 100 (e.g., by sending a test message or otherwise) to determine whether the client computer can read a certain file format. If not, the proxy server 200 can either skip the modification, or transmit a supplementary application (via a plug-in, patch, applet, etc.) to invest the client computer with the missing functionality.
  • Still another optional aspect utilizes caching at the proxy server 200 to further reduce latency. For example, if a commonly requested resource can be found in the proxy server's cache, then one trip back to the content server 300 can be eliminated.
  • the proxy server 200 could even be equipped with “precomputing” technology to predict that a particular resource will be needed in the future, and to compute that resource ahead of time. This is particularly useful for dynamic content.
  • precomputing technology has been developed by FineGround Networks, Inc. and is described in pending U.S. patent application Ser. No. 10/459,365 filed on Jun. 11, 2003, which application is hereby incorporated by reference in its entirety for all purposes.

Abstract

An exemplary method performed by a proxy server located between a content server and a client browser for reducing effects of network latency therebetween comprises intercepting a request from the client browser for a resource at the content server, obtaining a response by the content server to the request, determining that the response would, if unmodified, require a plurality of communications between the content server and the client browser in the absence of the proxy server, modifying the response to reduce a network latency associated with the plurality of communications for accessing information located externally to the response, and transmitting the modified response to the client browser for use thereby.

Description

    REFERENCE TO RELATED APPLICATION
  • This application claims priority to provisional patent application filed on Dec. 17, 2003, bearing application Ser. No. 60/531,018, which is hereby incorporated by reference in its entirety for all purposes.
  • FIELD
  • This patent relates generally to accessing content over a network. More specifically, this patent relates to minimizing the impact of network latency on the response time to a client's request for a resource from a remote content server.
  • BACKGROUND
  • Browser-based applications are deployed and managed centrally, and therefore are inexpensive in comparison to client/server applications. Specifically, in contrast to client/server applications, browser-based applications can be accessed ubiquitously from any web-browser, and therefore do not require the maintenance of specialized software on each user's desktop. On the downside, browser applications suffer from performance issues in that responding to client actions may take several network roundtrips to the server. In contrast, client/server applications carry significant computing intelligence on the client, thereby providing significantly better performance.
  • Round trips (i.e., multiple communications) on the network can take anywhere from a fraction of a millisecond to more than a second, depending on the type of network and the geographic distance between the client and the server. For example, on a campus Local Area Network (LAN), the latency is typically 0.1 ms. As a second example, the latency on a high-speed land line between New York and Tokyo is ˜400 ms. As a third example, the latency between any two terrestrial points on a satellite link is about 1.5 seconds. In light of this, the performance of browser-based applications depends substantially on the number of network roundtrips required to respond to a typical client action. A response that requires 16 round trips would take well over 7 seconds when the client is in Tokyo and the server is in New York. It is therefore desirable to minimize the number of network roundtrips involved in each response of the application to client action.
  • In general, application developers tend to focus on providing the best functionality in the application, but pay little attention to performance issues. A market therefore exists for technology to optimize the performance of applications a posteriori by examining the request/response interactions between the client and the server. The situation is similar to that of application development, where application developers write software with a view to richness of functionality, leaving it to compilers and optimizing processors to deliver performance afterwards.
  • With regard to the impact of network latency on application performance, application developers often construct files (e.g., web pages) that, when displayed, involve multiple objects (e.g., frames). For example, a customer service application at an insurance company may includes files that, when accessed, display web pages having several frames such as an “account information” frame, a “contact information” frame, a “policy claims” frame etc. This organization of the frames is convenient to the application developer because the application modules for different frames can be separately developed then the modules can be reused in multiple pages in any combination. For example, the “account info” frame may occur in every page or just in some of the company's pages. This allows the application developer to rapidly develop complex applications in a modular fashion.
  • On the downside, requiring the browser to download many independent objects (e.g., frames) to complete a response to a client request can have severe negative impact on performance. In general, each object is requested by the browser independently; therefore, a web page including multiple objects will require several network roundtrips. This causes the impact of network latency to become manifold thereby leading to poor performance.
  • Other techniques used by application developers can also impact network performance. For example, application developers often implement so-called server-based redirects. A developer may construct an application to comprise several functional modules. When a client requests a URL, a content server may process the URL at a nominal control module which then redirects the client to another module for handling the request. Redirection of client requests can have severe performance impact because each client request must travel the network twice—once to the server's control module and back, and a second time to another (redirected) server module and back.
  • Network latency can have varying impact on the performance of web and other network applications involving the fetching of an object that in turn requires the fetching of other objects that are external to the originally fetched object. When the latency between the client and the server is small, network latency has limited impact on performance. When the latency is large (e.g., of the order of a second), as is the case when the client and the server are separated by a significant geographic distance, network latency can degrade application performance significantly.
  • Thus, a market exists for techniques to minimize the impact of network latency on application performance a posteriori to application development. Optimization can be carried out dynamically as a client interacts with an application so that changes to the application (e.g., on the server or client computers) are not required (but may be optional depending on design choice).
  • SUMMARY
  • An exemplary method performed by a proxy server located between a content server and a client browser for reducing effects of network latency therebetween comprises intercepting a request from the client browser for a resource at the content server, obtaining a response by the content server to the request, determining that the response would, if unmodified, require a plurality of communications between the content server and the client browser in the absence of the proxy server, modifying the response to reduce a network latency associated with the plurality of communications for accessing information located externally to the response, and transmitting the modified response to the client browser for use thereby.
  • Other embodiments and implementations are also described below.
  • BRIEF DESCRIPTION OF THE FIGURES
  • FIG. 1 illustrates an exemplary network environment.
  • FIG. 2 illustrates an exemplary process for reducing network latency caused by server redirects.
  • FIG. 3 illustrates an exemplary process for reducing network latency when processing requested resources containing embedded objects.
  • FIG. 4 illustrates another exemplary process for reducing network latency when processing requested resources containing embedded objects.
  • DETAILED DESCRIPTION I. Overview
  • Exemplary techniques for reducing network latency are disclosed herein.
  • Section II describes an exemplary network environment.
  • Section III describes an exemplary process for reducing network latency caused by a server redirect.
  • Section IV describes exemplary processes for reducing network latency when a content server's response is a resource including multiple embedded objects.
  • Section V describes other aspects and considerations.
  • II. An Exemplary Network Environment
  • FIG. 1 illustrates an exemplary environment including a client browser 100 connected over a Wide Area Network (WAN) 110 to, and accessing content from, a content server 300. In an exemplary embodiment, the proposed system is deployed as a transparent proxy server 200 located on the network immediately in front of the content server 300, and connected on a high-speed low latency Local Area Network (LAN) 120 to the content server 300.
  • When a user using the client browser 100 requests a URL, the proxy server 200 intercepts the request, and forwards the request to the content server 300. The content server 300 then responds to the proxy server 200. The proxy server 200 examines and modifies the response in accordance with various embodiments to be described herein then forwards the modified response to the client browser 100.
  • Those skilled in the art will realize that the proxy server 200 can be implemented in any combination of software and/or hardware, depending on the technical and financial requirements of the particular implementation. For example, a software implementation could be run on a general purpose computer having a processor, one or more memories or other computer-readable media, and appropriate I/O interfaces for connections to the content server 300 and the client browser 100, via the LAN 120 or the WAN 100, respectively. Or, a hardware implementation could be deployed using ASICs, PALs, PLAs, or still other forms of hardware now known or hereafter developed.
  • Further, the computer-readable media can store data and logic instructions (which, when executed, implement the processes described herein) that are accessible by the computer or the processing logic within the hardware. Such media might include, without limitation, hard disks, flash memory, random access memories (RAMs), read only memories (ROMs), and the like.
  • III. An Exemplary Process for Reducing Network Latency Caused by Server Redirects
  • FIG. 2 illustrates an exemplary process for reducing network latency caused by server redirects. Server redirects are instances where a content server's response to a client request is a redirect to another Universal Resource Locator (URL) identifying a unique resource. In general, each URL uniquely identifies a resource. A resource can be any type of data, including, without limitation, a frame, a text file, an image file, a voice file, any other types of data, and/or a combination thereof. For ease of explanation, the terms resource and object may be used interchangeably throughout this patent.
  • The exemplary process begins at block 10.
  • At block 15, the proxy server 200 obtains a client request for URL1. The client request is sent by the client browser 100 via the WAN 110 and destined for the content server 300. In an exemplary implementation, the proxy server 200 intercepts the client request. The request interception can be transparent to the client browser 100.
  • At block 20, the proxy server 200 forwards the request to the content server 300 via the LAN 120.
  • At block 25, the proxy server 200 receives the content server's 300 response to the request. In an exemplary implementation, the proxy server 200 examines the response after receiving it.
  • At block 30, the proxy server 200 determines whether the response is a redirect to another URL (e.g., URL2).
  • If so, at block 35, the proxy server 200 requests the redirect URL (e.g., URL2) from a content server. The content server may or may not be the same content server as the one for URL1 (i.e., content server 300). The process returns to block 25, where the proxy server 200 receives a response to the redirect URL from a content server. If the new response is not yet another redirect to yet another URL (e.g., URL3), then the process continues to block 40 where the new response is forwarded to the client browser 100.
  • In this exemplary embodiment, the proxy server 200 intercepts a redirect response from the content server 300 and requests the resource identified by the redirect URL via the high-speed low latency LAN 120. Therefore, network latency between the client browser 100 and the content server 300 is reduced by eliminating one roundtrip between them over the higher latency WAN 110 to request the resource identified by the redirect URL.
  • IV. Exemplary Processes for Reducing Network Latency when a Requested Resource Includes Multiple Embedded Objects
  • Network latency can also occur when a response (e.g., a resource) from the content server 300 to a client request (e.g., made via the client browser 100) includes multiple embedded objects. FIGS. 3 and 4 illustrate two exemplary processes for reducing network latency by modifying the response from the content server 300.
  • A. Reducing Network Latency by Obtaining and Appending the Embedded Objects to the Response
  • FIG. 3 illustrates an exemplary process performed by the proxy server 200 that includes the same blocks 10-35 of FIG. 2.
  • After determining that a response from the content server 300 is not a redirect to another URL, at block 45, the proxy server 200 determines whether the response includes any embedded objects. For ease of explanation only, this response will be referred to as the original response.
  • If so, at block 50, the proxy server 200 requests the embedded objects from the content server 300 via the LAN 120 and appends the objects to the original response to form a modified response. In an exemplary implementation, the embedded objects are separated from the parent resource by a header. In addition, each object is also separated from another object by a header. In an exemplary implementation, a header may identify the resource location of each object appended immediately following the header.
  • The modified response can be represented in any desired format, subject to the ability of the client browser 100 to recognize such format. For example, a well-known format that could be used is the so-called Multipurpose Internet Mail Extension HTML (a.k.a. MIME HTML, MHTHL or MHT). The MIME HTML format, developed by a committee of the standards setting body known as the Internet Engineering Task Force, is well known to those skilled in the art, and need not be described in greater detail herein. For example, see the specification for this format at www.ietf.org/rfc/rfc2110.txt and www.ietf.org/rfc/rfc2557.txt. Current versions of some popular browsers, including Microsoft's Internet Explorer, are configured to recognize (and some can even write) files in this format.
  • At block 55, the proxy server 200 forwards the modified response to the client browser 100 via the WAN 110. The client browser 100 can render the parent resource as well as the embedded objects by opening the modified response in accordance with the requirements of the implemented format, without having to incur additional roundtrips to request and obtain the objects embedded in the parent resource.
  • Referring back to block 45, if the original response from the content server 300 does not include any embedded objects, then at block 55, the proxy server 200 forwards the original response to the client browser 100 via the WAN 110.
  • In this exemplary embodiment, the proxy server 200 intercepts an original response from the content server 300 and directly requests the content server 300 for any objects embedded in the original response via the high-speed low latency LAN 120. Therefore, network latency between the client browser 100 and the content server 300 is reduced by eliminating additional roundtrips between them over the higher latency WAN 110 for retrieving any embedded objects.
  • B. Reducing Network Latency by Creating Additional Unique Pseudonyms
  • Client browsers 100 are typically hard-coded by the manufacturers to automatically open two parallel TCP/IP connections per uniquely named content server. Without proxy server 200 intervention, a resource having multiple embedded objects will be retrieved directly by the client browser 100 via the two connections opened for the content server 300 of the resource. In this example, a first connection will be used to retrieve the parent resource, and a second connection will be used to retrieve any embedded objects one-by-one until either the first connection becomes free or when all embedded objects have been retrieved. In the first scenario, the first connection can be used in parallel with the second connection to retrieve any remaining embedded objects. If more connections could be opened, then network latency can be correspondingly reduced. FIG. 4 illustrates an exemplary process performed by the proxy server 200 to enable the client browser 100 to open additional connections.
  • FIG. 4 includes the same blocks 10-35 of FIG. 2.
  • After the proxy server 200 determines that a response from the content server 300 is not a redirect to another URL, at block 60, the proxy server 200 determines whether the response includes any embedded objects. For ease of explanation only, this response will be referred to as the original response.
  • If the original response includes embedded objects, at block 65, the proxy server 200 creates additional unique pseudonyms of the content server 300 and modifies the addresses of the embedded objects in the original response to include the unique pseudonyms (to form a modified response). The impact of this process performed by the proxy server 200 can best be illustrated by example.
  • Consider a parent resource identified by the URL www.bank.com. The parent resource includes multiple embedded objects identifiable by the following URLs:
  • <img src = “http://www.bank.com/button1.jpg”>
    <img src = “ http://www.bank.com/button2.jpg”>
    <img src = “ http://www.bank.com/clock.jpg”>
    <img src =” http://www.bank.com/footer.gif “ >
  • In the absence of the proxy server 200, when the client browser 100 receives the parent resource, it will attempt to fetch the embedded objects (e.g., image files) using the two connections opened for the content server www.bank.com. Assuming both connections are free (i.e., one of the connections has already finished retrieving the parent resource), the client browser 100 will fetch the first two objects “button1.jpg” and “button2.jpg” followed by the next two, “clock.jpg” and “footer.gif.”
  • By creating additional unique pseudonyms for the content server 300, the proxy server 200 can enable the client browser 100 to open more connections (e.g., 4 connections) to be used to retrieve the embedded objects in parallel. For example, the proxy server 200 creates two unique pseudonyms: server1.bank.com and server2.bank.com for the content server www.bank.com, and modifies the addresses of the embedded objects in the parent resource to reference the pseudonyms. Thus, the embedded objects can now be identified by:
  • <img src = “http://www.server1.bank.com/button1.jpg”>
    <img src = “http://www.server1.bank.com/button1.jpg”>
    <img src = “http://www.server2.bank.com/clock.jpg”>
    <img src = “http://www.server2.bank.com/footer.gif”>
  • In this example, when the client browser 100 receives the modified response (see block 75), it will open two connections for each of the pseudonym servers, i.e., a total of four connections to the content server, and can retrieve all four embedded objects in parallel.
  • In order for pseudonyms created by the proxy server 200 for a content server to resolve to the content server, at block 70, the proxy server 200 adds additional entries into a Domain Name Server, one for each pseudonym created by the proxy server 200 so the pseudonym(s) will resolve to the same IP address as the content server (e.g., www.bank.com). In an exemplary implementation, the proxy server 200 may add a single DNS entry having a wildcard character symbol (e.g., an asterisk) preceding (or after) the content server name instead of adding a separate entry per unique pseudonym. In the above example, an entry of the form “*.bank.com” can be added to refer to the content server name of “.bank.com” with any string of wild card characters preceding the name. Alternatively, such DNS entry (i.e., having a wildcard character symbol) can refer to the proxy server 200 which will resolve any address to an appropriate content server.
  • At block 75, the modified response is forwarded to the client browser 100 to enable it to open additional connections (i.e., more than 2) to access the content server 300.
  • Referring back to block 60, if the original response does not include any embedded objects, then at block 75, the original response is forwarded to the client browser 100 unmodified.
  • One skilled in the art will recognize that, depending on design choice, the number of unique pseudonyms to be created by the proxy server 200 may be a default number or a dynamically determined number (e.g., based on the size of the parent resource, the number of embedded objects, and/or any other factors).
  • In an exemplary implementation, when a parent resource identifies embedded objects by relative URLs (e.g., of the form “./button.jpg”), the proxy server 200 fills in the complete root path to convert the relative URL to an absolute URL, then introduces a created pseudonym to the absolute URL. To illustrate using the above example, if the parent resource makes a reference to an embedded object by a relative URL “button.jpg,” the proxy server 200 will fill in the complete root path to convert the relative URL to an absolute URL www.bank.com/button.jpg, and then introduce a pseudonym of the content server to modify the absolute URL to a modified URL www.server1.bank.com/button.jpg.
  • In other exemplary implementations, the proxy server 200 is configured to introduce the same pseudonym for each object if the object is referenced multiple times (e.g., within the same parent resource). This feature can prevent retrieval of the same object multiple times. In one implementation, the absolute URL (or the content) of an object can be hashed to the space of a pseudonym.
  • In this exemplary embodiment, the proxy server 200 intercepts an original response from the content server 300, creates additional unique pseudonyms of the content server 300, modifies the addresses of embedded objects in the response, and sends the modified response to the client browser 100. The modified response enables the client browser 100 to open additional connections to the content server 300 to thereby retrieve the embedded objects faster. Therefore, network latency between the client browser 100 and the content server 300 is reduced.
  • V. Other Aspects and Considerations
  • A. Latency Testing
  • The process of intercepting a file (e.g., a request from the client browser 100 or a response from the content server 300) at the proxy server 200, appending external objects or otherwise form a modified file (e.g., a modified response), and transmitting that modified file to a client will involve some overhead and therefore, will introduce some latency of its own. Additional latency might be introduced by the overhead associated with reading a modified file (e.g., a MIME HTML file) at the client browser 100 computer. In most cases, the additional latency will be more than offset by the reduction in latency associated with the savings in eliminated round trips (or by opening additional server connections). However, this is not always the case. For example, the overhead may exceed the savings when requesting content from a content server 300 that is very close to the client browser 100, or when the network is very lightly loaded. As one optional aspect, it may therefore be useful to perform latency testing and condition the operation of the modification (of the original response) on the outcome of such testing. In other situations, the overall effect of differential network speeds between the content-server-to-proxy legs and the proxy-to-client legs might also render the modification operation moot.
  • B. Client Application Testing
  • As mentioned above, some response modifications may require the client browser 100 to be able to read a modified response. If a modified response is sent to a client browser that cannot read it, not only will no savings result, but the original response may have to be retransmitted in any case. Thus, in another exemplary embodiment, the proxy server 200 might be configured to interrogate the client browser 100 (e.g., by sending a test message or otherwise) to determine whether the client computer can read a certain file format. If not, the proxy server 200 can either skip the modification, or transmit a supplementary application (via a plug-in, patch, applet, etc.) to invest the client computer with the missing functionality.
  • C. Caching
  • Still another optional aspect utilizes caching at the proxy server 200 to further reduce latency. For example, if a commonly requested resource can be found in the proxy server's cache, then one trip back to the content server 300 can be eliminated.
  • In an optional embodiment, the proxy server 200 could even be equipped with “precomputing” technology to predict that a particular resource will be needed in the future, and to compute that resource ahead of time. This is particularly useful for dynamic content. An exemplary such precomputing technology has been developed by FineGround Networks, Inc. and is described in pending U.S. patent application Ser. No. 10/459,365 filed on Jun. 11, 2003, which application is hereby incorporated by reference in its entirety for all purposes.
  • VI. Conclusion
  • As a matter of convenience, the techniques of this patent have been disclosed in the exemplary context of a web-based system in which the user accesses content identified by URLs from a client browser. However, those skilled in the art will readily appreciate that other user access devices, and content identifiers, may also be used. Similarly, it should be appreciated that the proposed techniques will operate on any networked computer, including without limitation, wireless networks, handheld devices, and personal computers. Therefore, exemplary terms such as resource, web, browser, URL and the like should be interpreted broadly to include known substitutes and other equivalents, counterparts, and extensions thereof. Indeed, it should be understood that the technologies disclosed herein are more generally applicable to obtaining virtually any form of resource over a network. Accordingly, the specific exemplary embodiments and aspects disclosed herein are not to be construed as limiting in scope.
  • Therefore, the inventions should not be limited to the particular embodiments discussed above, but rather are defined by the claims. Furthermore, some of the claims may include alphanumeric identifiers to distinguish the elements thereof. Such identifiers are merely provided for convenience in reading, and should not necessarily be construed as requiring or implying a particular order of elements, or a particular sequential relationship among the claim elements.

Claims (69)

1. A method for reducing effects of latency on a network connecting at least a content server and a client browser, comprising:
at a proxy server between said content server and said client browser:
(a) intercepting a request from said client browser for a resource at said content server;
(b) obtaining a response by said content server to said request;
(c) determining that said response would, if unmodified, require a plurality of communications between said content server and said client browser in the absence of said proxy server;
(d) modifying said response to reduce a network latency associated with said plurality of communications for accessing information located externally to said response; and
(e) transmitting said modified response to said client browser for use thereby.
2. The method of claim 1, wherein:
(i) said (b) performed over a first network that is relatively faster than a second network; and
(ii) said (e) is performed over said second network that is relatively slower than said first network.
3. The method of claim 2, wherein said first network is a LAN, and said second network is a WAN.
4. The method of claim 1, wherein said reduce a network latency includes reducing said plurality of communications by eliminating a need to separately access said information.
5. The method of claim 1, wherein said (d) includes:
obtaining said external information; and
modifying said response to include said external information.
6. The method of claim 1, wherein said response includes a redirection to another resource at a resource location distinct from a resource location from which said response was received.
7. The method of claim 6 where said resource locations are URLs.
8. The method of claim 1, wherein said response includes references to a plurality of additional resources.
9. The method of claim 8 further comprising:
appending resource locations of said additional resources to said response.
10. The method of claim 8, wherein said (d) includes:
enabling said client browser to open a plurality of connections to servers containing said additional resources, beyond those connections ordinarily available without modifying said response, in order to download said additional resources in a parallel fashion.
11. The method of claim 8, wherein said (d) includes:
creating one or more unique pseudonyms for a source of said additional resources; and
modifying resource locations of said additional resources in said response to include said unique pseudonyms.
12. The method of claim 11, further comprising:
adding one or more entries into a domain name server to link said unique pseudonyms to said proxy server.
13. The method of claim 11, further comprising:
adding one or more entries into a domain name server to link said unique pseudonyms to said source.
14. The method of claim 13, wherein said source is said content server.
15. The method of claim 11, wherein at least one of said additional resources is multiply referenced, and further comprising using a common pseudonym for said multiply-referenced additional resource.
16. The method of claim 11, wherein at least one of said additional resources is multiply referenced, and further comprising generating a common pseudonym for said multiply-referenced additional resource based on its content.
17. The method of claim 11, wherein at least one of said additional resources is multiply referenced, and further comprising generating a common pseudonym for said multiply-referenced additional resource based on its URL.
18. The method of claim 11, wherein at least one of said additional resources is referenced by a relative URL, and further comprising:
converting said relative URL to an absolute URL; and
introducing a unique pseudonym to said absolute URL.
19. The method of claim 1, conditioned upon latency testing, including determining and taking into account the effect of differential latency between a server-to-proxy network segment and a proxy-to-client network segment.
20. The method of claim 1, conditioned upon latency testing, including determining that an expected latency reduction exceeds an expected proxy server processing time.
21. The method of claim 1, wherein said (b) includes obtaining said response from a cache.
22. The method of claim 21, wherein said response was cached from a previous communication.
23. The method of claim 21, wherein said response is precomputed from an expected communication.
24. The method of claim 1, wherein said modified response is in a so-called MIME HTML format.
25. The method of claim 1, conditioned upon determining that said client browser can recognize said modified response.
26. The method of claim 25, further comprising downloading a supplementary application to said client upon determining that said client browser cannot recognize said modified response.
27. A proxy server to be disposed between a content server and a client browser, for reducing effects of latency on a network communication therebetween, comprising:
(a) a processor; and
(b) a computer-readable memory including computer-readable instructions that, when executed using said processor:
(i) intercept a request from said client browser for a resource at said content server;
(ii) obtain a response by said content server to said request;
(iii) determine that said response would, if unmodified, require a plurality of communications between said content server and said client browser in the absence of said proxy server;
(iv) modify said response to reduce a network latency associated with said plurality of communications for accessing information located externally to said response; and
(v) transmit said modified response to said client browser for use thereby.
28. The proxy server of claim 27, wherein:
(A) said (ii) performed over a first network that is relatively faster than a second network; and
(B) said (v) is performed over said second network that is relatively slower than said first network.
29. The proxy server of claim 28, wherein said first network is a LAN, and said second network is a WAN.
30. The proxy server of claim 27, wherein said reduce a network latency includes reducing said plurality of communications by eliminating a need to separately access said information.
31. The proxy server of claim 27, wherein said (iv) includes computer-readable instructions that, when executed using said processor:
obtain said external information; and
modify said response to include said external information.
32. The proxy server of claim 27, wherein said response includes a redirection to another resource at a resource location distinct from a resource location from which said response was received.
33. The proxy server of claim 27, wherein said response includes a reference to a plurality of additional resources.
34. The proxy server of claim 33, wherein said (iv) includes computer-readable instructions that, when executed using said processor:
enable said client browser to open a plurality of connections to servers containing said additional resources, beyond those connections ordinarily available without modifying said response, in order to download said additional resources in a parallel fashion.
35. The proxy server of claim 33, wherein said (iv) includes computer-readable instructions that, when executed using said processor:
create one or more unique pseudonyms for a source of said additional resources; and
modify resource locations of said additional resources in said response to include said unique pseudonyms.
36. A computer-readable medium on a proxy server located between a content server and a client browser for reducing effects of latency on a network connecting at least said content server and said client browser, comprising logic instructions capable of being executed to:
(a) intercept a request from said client browser for a resource at said content server;
(b) obtain a response by said content server to said request;
(c) determine that said response would, if umodified, require a plurality of communications between said content server and said client browser in the absence of said proxy server;
(d) modify said response to reduce a network latency associated with said plurality of communications for accessing information located externally to said response; and
(e) transmit said modified response to said client browser for use thereby.
37. The computer-readable medium of claim 36, wherein:
(i) said (b) performed over a first network that is relatively faster than a second network; and
(ii) said (e) is performed over said second network that is relatively slower than said first network.
38. The computer-readable medium of claim 37, wherein said first network is a LAN, and said second network is a WAN.
39. The computer-readable medium of claim 36, wherein said reduce a network latency includes reducing said plurality of communications by eliminating a need to separately access said information.
40. The computer-readable medium of claim 36, wherein said (d) includes computer-readable instructions that, when executed using said processor:
obtain said external information; and
modify said response to include said external information.
41. The computer-readable medium of claim 36, wherein said response includes a redirection to another resource at a resource location distinct from a resource location from which said response was received.
42. The computer-readable medium of claim 36, wherein said response includes a reference to a plurality of additional resources.
43. The computer-readable medium of claim 42, wherein said (d) includes computer-readable instructions that, when executed using said processor:
enable said client browser to open a plurality of connections to servers containing said additional resources, beyond those connections ordinarily available without modifying said response, in order to download said additional resources in a parallel fashion.
44. The computer-readable medium of claim 42, wherein said (d) includes computer-readable instructions that, when executed using said processor:
create one or more unique pseudonyms for a source of said additional resources; and
modify resource locations of said additional resources in said response to include said unique pseudonyms.
45. Apparatus for reducing effects of latency on a network communication between a content server and a client browser, comprising:
at a proxy server between said content server and said client browser:
(a) means for obtaining a response to a request from said client browser for a resource from said content server;
(b) means for determining that said response would, if unmodified, require a plurality of communications between said content server and said client browser in the absence of said proxy server;
(c) means for modifying said response to reduce a network latency associated with said plurality of communications for accessing information located externally to said response; and
(d) means for forwarding said modified response to said client browser for use thereby.
46. A method for reducing network latency on a network connecting a content server to a client browser, comprising:
at a proxy server between said content server and said client browser:
(a) intercepting a request from said client browser for a resource at said content server;
(b) obtaining a response from said content server to said request;
(c) determining that said response is a redirection to another resource;
(d) obtaining said another resource; and
(e) sending said another resource to said client browser.
47. The method of claim 46, wherein:
(i) said (d) performed over a first network that is relatively faster than a second network; and
(ii) said (e) is performed over said second network that is relatively slower than said first network.
48. The method of claim 47, wherein said first network is a LAN, and said second network is a WAN.
49. The method of claim 46, further comprising between said (d) and (e):
modifying said response to include said another resource.
50. A method for reducing network latency on a network connecting a content server to a client browser, comprising:
at a proxy server between said content server and said client browser:
(a) intercepting a request from said client browser for a resource at said content server;
(b) obtaining a response from said content server to said request;
(c) determining that said response includes a reference to at least one additional resource external to said response;
(d) obtaining said additional resource;
(e) modifying said response to include said additional resource; and
(f) sending said modified response to said client browser.
51. The method of claim 50, wherein:
(i) said (d) performed over a first network that is relatively faster than a second network; and
(ii) said (f) is performed over said second network that is relatively slower than said first network.
52. The method of claim 51, wherein said first network is a LAN, and said second network is a WAN.
53. The method of claim 50, wherein said (e) includes:
appending said additional resources to said response.
54. The method of claim 53 further comprising:
appending resource locations of said additional resources to said response.
55. The method of claim 50, conditioned upon latency testing, including determining and taking into account the effect of differential latency between a server-to-proxy network segment and a proxy-to-client network segment.
56. The method of claim 50, conditioned upon latency testing, including determining that an expected latency reduction exceeds an expected proxy server processing time.
57. The method of claim 50, wherein said (b) includes obtaining said response from a cache.
58. The method of claim 50, wherein said modified response is in a so-called MIME HTML format.
59. The method of claim 50, conditioned upon determining that said client browser can recognize said modified response.
60. The method of claim 59, further comprising downloading a supplementary application to said client upon determining that said client browser cannot recognize said modified response.
61. A method for reducing network latency on a network connecting a content server to a client browser, comprising:
at a proxy server between said content server and said client browser:
(a) intercepting a request from said client browser for a resource at said content server;
(b) obtaining a response from said content server to said request;
(c) determining that said response includes a reference to more than two additional resources external to said response;
(d) modifying said response to enable said client browser to download said additional resources at substantially the same time; and
(e) sending said modified response to said client browser.
62. The method of claim 61, wherein said (d) includes:
creating one or more unique pseudonyms for a source of said additional resources; and
modifying resource locations of said additional resources in said response to include said unique pseudonyms.
63. The method of claim 62, further comprising:
adding one or more entries into a domain name server to link said unique pseudonyms to said proxy server.
64. The method of claim 62, further comprising:
adding one or more entries into a domain name server to link said unique pseudonyms to said source.
65. The method of claim 64, wherein said source is said content server.
66. The method of claim 61, wherein at least one of said additional resources is multiply referenced, and further comprising using a common pseudonym for said multiply-referenced additional resource.
67. The method of claim 61, wherein at least one of said additional resources is multiply referenced, and further comprising generating a common pseudonym for said multiply-referenced additional resource based on its content.
68. The method of claim 61, wherein at least one of said additional resources is multiply referenced, and further comprising generating a common pseudonym for said multiply-referenced additional resource based on its URL.
69. The method of claim 61, wherein at least one of said additional resources is referenced by a relative URL, and further comprising:
converting said relative URL to an absolute URL; and
introducing a unique pseudonym to said absolute URL.
US11/014,922 2003-12-17 2004-12-17 Reducing the impact of network latency on application performance Active 2032-10-27 US9032096B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US11/014,922 US9032096B2 (en) 2003-12-17 2004-12-17 Reducing the impact of network latency on application performance

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US53101803P 2003-12-17 2003-12-17
US11/014,922 US9032096B2 (en) 2003-12-17 2004-12-17 Reducing the impact of network latency on application performance

Publications (2)

Publication Number Publication Date
US20080172488A1 true US20080172488A1 (en) 2008-07-17
US9032096B2 US9032096B2 (en) 2015-05-12

Family

ID=39618617

Family Applications (1)

Application Number Title Priority Date Filing Date
US11/014,922 Active 2032-10-27 US9032096B2 (en) 2003-12-17 2004-12-17 Reducing the impact of network latency on application performance

Country Status (1)

Country Link
US (1) US9032096B2 (en)

Cited By (127)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070260748A1 (en) * 2006-05-05 2007-11-08 Talkington Jerry L Method and apparatus to reduce the size of objects transmitted over a network
US20080091812A1 (en) * 2006-10-12 2008-04-17 Etai Lev-Ran Automatic proxy registration and discovery in a multi-proxy communication system
US20080219155A1 (en) * 2007-03-06 2008-09-11 Canon Kabushiki Kaisha Relay apparatus and relay method
US20090094377A1 (en) * 2006-08-03 2009-04-09 Yoram Zahavi Method and system for accelerating browsing sessions
US20090313602A1 (en) * 2008-06-13 2009-12-17 Microsoft Corporation Designer for web pages at a local machine
WO2010025185A1 (en) 2008-08-26 2010-03-04 Alibaba Group Holding Limited In-server redirection of http requests
US20100095208A1 (en) * 2008-04-15 2010-04-15 White Alexei R Systems and Methods for Remote Tracking and Replay of User Interaction with a Webpage
US20110109643A1 (en) * 2009-03-24 2011-05-12 Amazon Technologies, Inc. Monitoring web site content
US20110149964A1 (en) * 2009-12-17 2011-06-23 Judge Alan M Distributed routing architecture
US20110149963A1 (en) * 2009-12-17 2011-06-23 Hamilton James R Distributed routing architecture
US20110149965A1 (en) * 2009-12-17 2011-06-23 Judge Alan M Distributed routing architecture
US8051166B1 (en) 2008-09-29 2011-11-01 Amazon Technologies, Inc. Service provider optimization of content management
US8117306B1 (en) * 2008-09-29 2012-02-14 Amazon Technologies, Inc. Optimizing content management
US8122124B1 (en) 2008-09-29 2012-02-21 Amazon Technologies, Inc. Monitoring performance and operation of data exchanges
US8122098B1 (en) 2008-11-17 2012-02-21 Amazon Technologies, Inc. Managing content delivery network service providers by a content broker
US20120117253A1 (en) * 2010-11-09 2012-05-10 Usablenet Inc. Methods for reducing latency in network connections and systems thereof
US8185634B2 (en) 2008-09-29 2012-05-22 Amazon Technologies, Inc. Managing resource consolidation configurations
WO2012064857A3 (en) * 2010-11-09 2012-09-27 Usablenet Inc. Methods for ruducing latency in network connections using automatic redirects and systems thereof
US8286176B1 (en) 2008-09-29 2012-10-09 Amazon Technologies, Inc. Optimizing resource configurations
US8316124B1 (en) 2008-09-29 2012-11-20 Amazon Technologies, Inc. Managing network data display
US20120311017A1 (en) * 2011-06-06 2012-12-06 Google Inc. Reducing Redirects
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US8452870B2 (en) 2008-09-29 2013-05-28 Amazon Technologies, Inc. Monitoring domain allocation performance
US8468247B1 (en) 2010-09-28 2013-06-18 Amazon Technologies, Inc. Point of presence management in request routing
US8495220B2 (en) 2008-11-17 2013-07-23 Amazon Technologies, Inc. Managing CDN registration by a storage provider
US8510448B2 (en) 2008-11-17 2013-08-13 Amazon Technologies, Inc. Service provider registration by a content broker
US8521885B1 (en) 2009-03-27 2013-08-27 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularity information
US8521851B1 (en) 2009-03-27 2013-08-27 Amazon Technologies, Inc. DNS query processing using resource identifiers specifying an application broker
US8521880B1 (en) 2008-11-17 2013-08-27 Amazon Technologies, Inc. Managing content delivery network service providers
US8533293B1 (en) 2008-03-31 2013-09-10 Amazon Technologies, Inc. Client side cache management
US8543702B1 (en) 2009-06-16 2013-09-24 Amazon Technologies, Inc. Managing resources using resource expiration data
US8577992B1 (en) 2010-09-28 2013-11-05 Amazon Technologies, Inc. Request routing management based on network components
US8583776B2 (en) 2008-11-17 2013-11-12 Amazon Technologies, Inc. Managing content delivery network service providers
US20130311593A1 (en) * 2012-05-17 2013-11-21 Matthew Browning Prince Incorporating web applications into web pages at the network level
US8601090B1 (en) 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US8626950B1 (en) 2010-12-03 2014-01-07 Amazon Technologies, Inc. Request routing processing
US20140013301A1 (en) * 2009-02-02 2014-01-09 Enterpriseweb Llc Resource Processing Using an Intermediary for Context-Based Customization of Interaction Deliverables
US8639817B2 (en) 2008-03-31 2014-01-28 Amazon Technologies, Inc. Content management
US20140067996A1 (en) * 2012-08-30 2014-03-06 Yahoo! Inc. Method and system for reducing network latency
US8713156B2 (en) 2008-03-31 2014-04-29 Amazon Technologies, Inc. Request routing based on class
US8732309B1 (en) 2008-11-17 2014-05-20 Amazon Technologies, Inc. Request routing utilizing cost information
US20140143375A1 (en) * 2012-04-27 2014-05-22 F5 Networks, Inc. Methods for optimizing service of content requests and devices thereof
US8756341B1 (en) * 2009-03-27 2014-06-17 Amazon Technologies, Inc. Request routing utilizing popularity information
WO2014093699A1 (en) * 2012-12-13 2014-06-19 Qualcomm Incorporated Loading a re-directed web page on a web browser of a client device in a communications system
US8819283B2 (en) 2010-09-28 2014-08-26 Amazon Technologies, Inc. Request routing in a networked environment
US8924528B1 (en) * 2010-09-28 2014-12-30 Amazon Technologies, Inc. Latency measurement in resource requests
US20150007006A1 (en) * 2013-06-27 2015-01-01 International Business Machines Corporation Normalizing a page flow
US8930513B1 (en) 2010-09-28 2015-01-06 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
US9003035B1 (en) 2010-09-28 2015-04-07 Amazon Technologies, Inc. Point of presence management in request routing
US9009286B2 (en) 2008-03-31 2015-04-14 Amazon Technologies, Inc. Locality based content distribution
US9021128B2 (en) 2008-06-30 2015-04-28 Amazon Technologies, Inc. Request routing using network computing components
US9021129B2 (en) 2007-06-29 2015-04-28 Amazon Technologies, Inc. Request routing utilizing client location information
US9021127B2 (en) 2007-06-29 2015-04-28 Amazon Technologies, Inc. Updating routing information based on client location
US9026616B2 (en) 2008-03-31 2015-05-05 Amazon Technologies, Inc. Content delivery reconciliation
US9083743B1 (en) 2012-03-21 2015-07-14 Amazon Technologies, Inc. Managing request routing information utilizing performance information
US20150244751A1 (en) * 2012-09-07 2015-08-27 Airplug Inc. Apparatus and method for relaying data of a media content of which section information is carried by list information
US9130756B2 (en) 2009-09-04 2015-09-08 Amazon Technologies, Inc. Managing secure content in a content delivery network
US9135048B2 (en) 2012-09-20 2015-09-15 Amazon Technologies, Inc. Automated profiling of resource usage
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US9237114B2 (en) 2009-03-27 2016-01-12 Amazon Technologies, Inc. Managing resources in resource cache components
US9246776B2 (en) 2009-10-02 2016-01-26 Amazon Technologies, Inc. Forward-based resource delivery network management techniques
US9288153B2 (en) 2010-08-26 2016-03-15 Amazon Technologies, Inc. Processing encoded content
US9294391B1 (en) 2013-06-04 2016-03-22 Amazon Technologies, Inc. Managing network computing components utilizing request routing
US9313296B1 (en) 2007-02-12 2016-04-12 Amazon Technologies, Inc. Method and system for a hosted mobile management service architecture
US9323577B2 (en) 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US9391949B1 (en) 2010-12-03 2016-07-12 Amazon Technologies, Inc. Request routing processing
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
EP3054650A4 (en) * 2013-10-28 2016-10-12 Huawei Tech Co Ltd Method, device and system for redirecting data service proxy
US9479476B2 (en) 2008-03-31 2016-10-25 Amazon Technologies, Inc. Processing of DNS queries
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US9525659B1 (en) 2012-09-04 2016-12-20 Amazon Technologies, Inc. Request routing utilizing point of presence load information
US9628554B2 (en) 2012-02-10 2017-04-18 Amazon Technologies, Inc. Dynamic content delivery
US9712484B1 (en) 2010-09-28 2017-07-18 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US9742795B1 (en) 2015-09-24 2017-08-22 Amazon Technologies, Inc. Mitigating network attacks
US9769248B1 (en) 2014-12-16 2017-09-19 Amazon Technologies, Inc. Performance-based content delivery
US9774619B1 (en) 2015-09-24 2017-09-26 Amazon Technologies, Inc. Mitigating network attacks
US9787775B1 (en) 2010-09-28 2017-10-10 Amazon Technologies, Inc. Point of presence management in request routing
US9794281B1 (en) 2015-09-24 2017-10-17 Amazon Technologies, Inc. Identifying sources of network attacks
US9819567B1 (en) 2015-03-30 2017-11-14 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
US9887932B1 (en) 2015-03-30 2018-02-06 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
US9912740B2 (en) 2008-06-30 2018-03-06 Amazon Technologies, Inc. Latency measurement in resource requests
US9992086B1 (en) 2016-08-23 2018-06-05 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US10021179B1 (en) 2012-02-21 2018-07-10 Amazon Technologies, Inc. Local resource delivery network
US10027731B2 (en) 2013-10-25 2018-07-17 Louis Gurtowski Selective capture with rapid sharing of user computer or mixed reality actions, states using interactive virtual streaming
US10027739B1 (en) 2014-12-16 2018-07-17 Amazon Technologies, Inc. Performance-based content delivery
US10033691B1 (en) 2016-08-24 2018-07-24 Amazon Technologies, Inc. Adaptive resolution of domain name requests in virtual private cloud network environments
US10033627B1 (en) 2014-12-18 2018-07-24 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10049051B1 (en) 2015-12-11 2018-08-14 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10075551B1 (en) 2016-06-06 2018-09-11 Amazon Technologies, Inc. Request management for hierarchical cache
US10091096B1 (en) 2014-12-18 2018-10-02 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10097566B1 (en) 2015-07-31 2018-10-09 Amazon Technologies, Inc. Identifying targets of network attacks
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US10187317B1 (en) 2013-11-15 2019-01-22 F5 Networks, Inc. Methods for traffic rate control and devices thereof
US10205698B1 (en) 2012-12-19 2019-02-12 Amazon Technologies, Inc. Source-dependent address resolution
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US10225365B1 (en) 2014-12-19 2019-03-05 Amazon Technologies, Inc. Machine learning based content delivery
US10230566B1 (en) 2012-02-17 2019-03-12 F5 Networks, Inc. Methods for dynamically constructing a service principal name and devices thereof
US20190097941A1 (en) * 2017-09-26 2019-03-28 Facebook, Inc. Systems and methods for providing predicted web page resources
US10257307B1 (en) 2015-12-11 2019-04-09 Amazon Technologies, Inc. Reserved cache space in content delivery networks
US10270878B1 (en) 2015-11-10 2019-04-23 Amazon Technologies, Inc. Routing for origin-facing points of presence
US10311372B1 (en) 2014-12-19 2019-06-04 Amazon Technologies, Inc. Machine learning based content delivery
US10311371B1 (en) 2014-12-19 2019-06-04 Amazon Technologies, Inc. Machine learning based content delivery
US10348639B2 (en) 2015-12-18 2019-07-09 Amazon Technologies, Inc. Use of virtual endpoints to improve data transmission rates
US10372499B1 (en) 2016-12-27 2019-08-06 Amazon Technologies, Inc. Efficient region selection system for executing request-driven code
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
US10460098B1 (en) 2014-08-20 2019-10-29 Google Llc Linking devices using encrypted account identifiers
US10469513B2 (en) 2016-10-05 2019-11-05 Amazon Technologies, Inc. Encrypted network addresses
US10503613B1 (en) 2017-04-21 2019-12-10 Amazon Technologies, Inc. Efficient serving of resources during server unavailability
US10592578B1 (en) 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
US10616179B1 (en) 2015-06-25 2020-04-07 Amazon Technologies, Inc. Selective routing of domain name system (DNS) requests
US10623408B1 (en) 2012-04-02 2020-04-14 Amazon Technologies, Inc. Context sensitive object management
US20200244743A1 (en) * 2018-09-12 2020-07-30 Citrix Systems, Inc. Systems and methods for integrated service discovery for network applications
US10831549B1 (en) 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10862852B1 (en) 2018-11-16 2020-12-08 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
US10938884B1 (en) 2017-01-30 2021-03-02 Amazon Technologies, Inc. Origin server cloaking using virtual private cloud network environments
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US11025747B1 (en) 2018-12-12 2021-06-01 Amazon Technologies, Inc. Content request pattern-based routing system
US11075987B1 (en) 2017-06-12 2021-07-27 Amazon Technologies, Inc. Load estimating content delivery network
US11165842B2 (en) 2013-10-25 2021-11-02 Louis Gurtowski Selective capture with rapid sharing of user or mixed reality actions and states using interactive virtual streaming
CN113965571A (en) * 2021-10-29 2022-01-21 北京锐安科技有限公司 Management method, device, equipment and medium for distributed embedded equipment
US11290418B2 (en) 2017-09-25 2022-03-29 Amazon Technologies, Inc. Hybrid content request routing system
US11604667B2 (en) 2011-04-27 2023-03-14 Amazon Technologies, Inc. Optimized deployment based upon customer locality

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10187283B2 (en) * 2013-11-19 2019-01-22 Telefonaktiebolaget Lm Ericsson (Publ) Testing the performance of a layer 3 proxy device using traffic amplification
EP3286624B1 (en) 2016-02-12 2022-01-12 Hewlett Packard Enterprise Development LP Keyboard data
US10678605B2 (en) * 2016-04-12 2020-06-09 Google Llc Reducing latency in downloading electronic resources using multiple threads

Citations (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5727159A (en) * 1996-04-10 1998-03-10 Kikinis; Dan System in which a Proxy-Server translates information received from the Internet into a form/format readily usable by low power portable computers
US6073168A (en) * 1996-06-03 2000-06-06 Webtv Networks, Inc. Method for reducing delivery latency of an image or other secondary information associated with a file
US6085234A (en) * 1994-11-28 2000-07-04 Inca Technology, Inc. Remote file services network-infrastructure cache
US6272536B1 (en) * 1996-07-24 2001-08-07 Marimba, Inc. System and method for the distribution of code and data
US6317885B1 (en) * 1997-06-26 2001-11-13 Microsoft Corporation Interactive entertainment and information system using television set-top box
US20010054084A1 (en) * 1999-12-31 2001-12-20 Arkadi Kosmynin Method and system for communication in the usenet
US20020010761A1 (en) * 1997-08-06 2002-01-24 Carneal Bruce L. Distributed system and method for prefetching objects
US20020099850A1 (en) * 1998-02-10 2002-07-25 Digital Island, Inc. Internet content delivery network
US20030034905A1 (en) * 2001-05-17 2003-02-20 Cyber Operations, Llc System and method for encoding and decoding data files
US20030120752A1 (en) * 2000-07-11 2003-06-26 Michael Corcoran Dynamic web page caching system and method
US20030137522A1 (en) * 2001-05-02 2003-07-24 Kaasila Sampo J. Innovations for the display of web pages
US20040049737A1 (en) * 2000-04-26 2004-03-11 Novarra, Inc. System and method for displaying information content with selective horizontal scrolling
US20040133848A1 (en) * 2000-04-26 2004-07-08 Novarra, Inc. System and method for providing and displaying information content
US20040205149A1 (en) * 2002-09-11 2004-10-14 Hughes Electronics System and method for pre-fetching content in a proxy architecture
US20040255048A1 (en) * 2001-08-01 2004-12-16 Etai Lev Ran Virtual file-sharing network
US20050021863A1 (en) * 2000-06-23 2005-01-27 Cloudshield Technologies, Inc. Apparatus and method for virtual edge placement of web sites
US20050108517A1 (en) * 2003-11-19 2005-05-19 Doug Dillon Pre-fetching secure content using proxy architecture
US7013322B2 (en) * 2000-01-28 2006-03-14 Wiltel Communications Group, Llc System and method for rewriting a media resource request and/or response between origin server and client
US7072984B1 (en) * 2000-04-26 2006-07-04 Novarra, Inc. System and method for accessing customized information over the internet using a browser for a plurality of electronic devices
US7082476B1 (en) * 2000-05-24 2006-07-25 Cisco Technology, Inc. System and method of optimizing retrieval of network resources by identifying and substituting embedded symbolic host name references with network addresses in accordance with substitution policies
US20060200503A1 (en) * 2005-03-03 2006-09-07 Nokia Corporation Modifying back-end web server documents at an intermediary server using directives
US20060218304A1 (en) * 2005-03-22 2006-09-28 Sarit Mukherjee Session level technique for improving web browsing performance on low speed links
US7428573B2 (en) * 2002-10-30 2008-09-23 Riverbed Technology, Inc. Transaction accelerator for client-server communication systems
US20080320151A1 (en) * 2002-10-30 2008-12-25 Riverbed Technology, Inc. Transaction accelerator for client-server communications systems
US7500188B1 (en) * 2000-04-26 2009-03-03 Novarra, Inc. System and method for adapting information content for an electronic device
US7840707B2 (en) * 2004-08-18 2010-11-23 International Business Machines Corporation Reverse proxy portlet with rule-based, instance level configuration
US8069225B2 (en) * 2003-04-14 2011-11-29 Riverbed Technology, Inc. Transparent client-server transaction accelerator
US20120135726A1 (en) * 2010-07-26 2012-05-31 Michael Luna Mobile application traffic optimization

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0434041B1 (en) 1989-12-20 1996-09-11 Canon Kabushiki Kaisha Polarized illuminating device

Patent Citations (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6085234A (en) * 1994-11-28 2000-07-04 Inca Technology, Inc. Remote file services network-infrastructure cache
US5727159A (en) * 1996-04-10 1998-03-10 Kikinis; Dan System in which a Proxy-Server translates information received from the Internet into a form/format readily usable by low power portable computers
US6073168A (en) * 1996-06-03 2000-06-06 Webtv Networks, Inc. Method for reducing delivery latency of an image or other secondary information associated with a file
US6272536B1 (en) * 1996-07-24 2001-08-07 Marimba, Inc. System and method for the distribution of code and data
US6317885B1 (en) * 1997-06-26 2001-11-13 Microsoft Corporation Interactive entertainment and information system using television set-top box
US20020010761A1 (en) * 1997-08-06 2002-01-24 Carneal Bruce L. Distributed system and method for prefetching objects
US20020099850A1 (en) * 1998-02-10 2002-07-25 Digital Island, Inc. Internet content delivery network
US20010054084A1 (en) * 1999-12-31 2001-12-20 Arkadi Kosmynin Method and system for communication in the usenet
US7013322B2 (en) * 2000-01-28 2006-03-14 Wiltel Communications Group, Llc System and method for rewriting a media resource request and/or response between origin server and client
US7072984B1 (en) * 2000-04-26 2006-07-04 Novarra, Inc. System and method for accessing customized information over the internet using a browser for a plurality of electronic devices
US7500188B1 (en) * 2000-04-26 2009-03-03 Novarra, Inc. System and method for adapting information content for an electronic device
US20040049737A1 (en) * 2000-04-26 2004-03-11 Novarra, Inc. System and method for displaying information content with selective horizontal scrolling
US20040133848A1 (en) * 2000-04-26 2004-07-08 Novarra, Inc. System and method for providing and displaying information content
US20100268773A1 (en) * 2000-04-26 2010-10-21 Novarra, Inc. System and Method for Displaying Information Content with Selective Horizontal Scrolling
US20090125809A1 (en) * 2000-04-26 2009-05-14 Novarra, Inc. System and Method for Adapting Information Content for an Electronic Device
US7082476B1 (en) * 2000-05-24 2006-07-25 Cisco Technology, Inc. System and method of optimizing retrieval of network resources by identifying and substituting embedded symbolic host name references with network addresses in accordance with substitution policies
US20050021863A1 (en) * 2000-06-23 2005-01-27 Cloudshield Technologies, Inc. Apparatus and method for virtual edge placement of web sites
US20030120752A1 (en) * 2000-07-11 2003-06-26 Michael Corcoran Dynamic web page caching system and method
US20030137522A1 (en) * 2001-05-02 2003-07-24 Kaasila Sampo J. Innovations for the display of web pages
US20030034905A1 (en) * 2001-05-17 2003-02-20 Cyber Operations, Llc System and method for encoding and decoding data files
US20070174428A1 (en) * 2001-08-01 2007-07-26 Actona Technologies Ltd. Double-proxy remote data access system
US7139811B2 (en) * 2001-08-01 2006-11-21 Actona Technologies Ltd. Double-proxy remote data access system
US20040255048A1 (en) * 2001-08-01 2004-12-16 Etai Lev Ran Virtual file-sharing network
US20050044242A1 (en) * 2002-09-11 2005-02-24 Hughes Electronics Method and system for providing enhanced performance of web browsing
US20040205149A1 (en) * 2002-09-11 2004-10-14 Hughes Electronics System and method for pre-fetching content in a proxy architecture
US7428573B2 (en) * 2002-10-30 2008-09-23 Riverbed Technology, Inc. Transaction accelerator for client-server communication systems
US20080320151A1 (en) * 2002-10-30 2008-12-25 Riverbed Technology, Inc. Transaction accelerator for client-server communications systems
US8069225B2 (en) * 2003-04-14 2011-11-29 Riverbed Technology, Inc. Transparent client-server transaction accelerator
US20050108517A1 (en) * 2003-11-19 2005-05-19 Doug Dillon Pre-fetching secure content using proxy architecture
US7840707B2 (en) * 2004-08-18 2010-11-23 International Business Machines Corporation Reverse proxy portlet with rule-based, instance level configuration
US20060200503A1 (en) * 2005-03-03 2006-09-07 Nokia Corporation Modifying back-end web server documents at an intermediary server using directives
US20060218304A1 (en) * 2005-03-22 2006-09-28 Sarit Mukherjee Session level technique for improving web browsing performance on low speed links
US20120135726A1 (en) * 2010-07-26 2012-05-31 Michael Luna Mobile application traffic optimization

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Kendrick, James. "Bitstream ThunderHawk Browser". 4 December 2003. BostonPocketPC. Pages 1-7. *

Cited By (317)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070260748A1 (en) * 2006-05-05 2007-11-08 Talkington Jerry L Method and apparatus to reduce the size of objects transmitted over a network
US20090094377A1 (en) * 2006-08-03 2009-04-09 Yoram Zahavi Method and system for accelerating browsing sessions
US9602613B2 (en) * 2006-08-03 2017-03-21 Flash Networks, Ltd Method and system for accelerating browsing sessions
US20080091812A1 (en) * 2006-10-12 2008-04-17 Etai Lev-Ran Automatic proxy registration and discovery in a multi-proxy communication system
US9154557B2 (en) * 2006-10-12 2015-10-06 Cisco Technology, Inc. Automatic proxy registration and discovery in a multi-proxy communication system
US9313296B1 (en) 2007-02-12 2016-04-12 Amazon Technologies, Inc. Method and system for a hosted mobile management service architecture
US20080219155A1 (en) * 2007-03-06 2008-09-11 Canon Kabushiki Kaisha Relay apparatus and relay method
US8249085B2 (en) * 2007-03-06 2012-08-21 Canon Kabushiki Kaisha Relay apparatus and relay method
US10027582B2 (en) 2007-06-29 2018-07-17 Amazon Technologies, Inc. Updating routing information based on client location
US9021129B2 (en) 2007-06-29 2015-04-28 Amazon Technologies, Inc. Request routing utilizing client location information
US9021127B2 (en) 2007-06-29 2015-04-28 Amazon Technologies, Inc. Updating routing information based on client location
US9992303B2 (en) 2007-06-29 2018-06-05 Amazon Technologies, Inc. Request routing utilizing client location information
US9544394B2 (en) 2008-03-31 2017-01-10 Amazon Technologies, Inc. Network resource identification
US10645149B2 (en) 2008-03-31 2020-05-05 Amazon Technologies, Inc. Content delivery reconciliation
US9210235B2 (en) 2008-03-31 2015-12-08 Amazon Technologies, Inc. Client side cache management
US8713156B2 (en) 2008-03-31 2014-04-29 Amazon Technologies, Inc. Request routing based on class
US11909639B2 (en) 2008-03-31 2024-02-20 Amazon Technologies, Inc. Request routing based on class
US10554748B2 (en) 2008-03-31 2020-02-04 Amazon Technologies, Inc. Content management
US10158729B2 (en) 2008-03-31 2018-12-18 Amazon Technologies, Inc. Locality based content distribution
US9621660B2 (en) 2008-03-31 2017-04-11 Amazon Technologies, Inc. Locality based content distribution
US11451472B2 (en) 2008-03-31 2022-09-20 Amazon Technologies, Inc. Request routing based on class
US10530874B2 (en) 2008-03-31 2020-01-07 Amazon Technologies, Inc. Locality based content distribution
US10157135B2 (en) 2008-03-31 2018-12-18 Amazon Technologies, Inc. Cache optimization
US9332078B2 (en) 2008-03-31 2016-05-03 Amazon Technologies, Inc. Locality based content distribution
US9208097B2 (en) 2008-03-31 2015-12-08 Amazon Technologies, Inc. Cache optimization
US8756325B2 (en) 2008-03-31 2014-06-17 Amazon Technologies, Inc. Content management
US10771552B2 (en) 2008-03-31 2020-09-08 Amazon Technologies, Inc. Content management
US11245770B2 (en) 2008-03-31 2022-02-08 Amazon Technologies, Inc. Locality based content distribution
US9954934B2 (en) 2008-03-31 2018-04-24 Amazon Technologies, Inc. Content delivery reconciliation
US9571389B2 (en) 2008-03-31 2017-02-14 Amazon Technologies, Inc. Request routing based on class
US9479476B2 (en) 2008-03-31 2016-10-25 Amazon Technologies, Inc. Processing of DNS queries
US8639817B2 (en) 2008-03-31 2014-01-28 Amazon Technologies, Inc. Content management
US9026616B2 (en) 2008-03-31 2015-05-05 Amazon Technologies, Inc. Content delivery reconciliation
US11194719B2 (en) 2008-03-31 2021-12-07 Amazon Technologies, Inc. Cache optimization
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
US9888089B2 (en) 2008-03-31 2018-02-06 Amazon Technologies, Inc. Client side cache management
US8601090B1 (en) 2008-03-31 2013-12-03 Amazon Technologies, Inc. Network resource identification
US9009286B2 (en) 2008-03-31 2015-04-14 Amazon Technologies, Inc. Locality based content distribution
US10305797B2 (en) 2008-03-31 2019-05-28 Amazon Technologies, Inc. Request routing based on class
US10797995B2 (en) 2008-03-31 2020-10-06 Amazon Technologies, Inc. Request routing based on class
US8533293B1 (en) 2008-03-31 2013-09-10 Amazon Technologies, Inc. Client side cache management
US9894168B2 (en) 2008-03-31 2018-02-13 Amazon Technologies, Inc. Locality based content distribution
US10511567B2 (en) 2008-03-31 2019-12-17 Amazon Technologies, Inc. Network resource identification
US8930544B2 (en) 2008-03-31 2015-01-06 Amazon Technologies, Inc. Network resource identification
US9407699B2 (en) 2008-03-31 2016-08-02 Amazon Technologies, Inc. Content management
US20100095208A1 (en) * 2008-04-15 2010-04-15 White Alexei R Systems and Methods for Remote Tracking and Replay of User Interaction with a Webpage
US9418172B2 (en) * 2008-04-15 2016-08-16 Foresee Results, Inc. Systems and methods for remote tracking and replay of user interaction with a webpage
US20090313602A1 (en) * 2008-06-13 2009-12-17 Microsoft Corporation Designer for web pages at a local machine
US8745582B2 (en) * 2008-06-13 2014-06-03 Microsoft Corporation Designer for web pages at a local machine
US9912740B2 (en) 2008-06-30 2018-03-06 Amazon Technologies, Inc. Latency measurement in resource requests
US9021128B2 (en) 2008-06-30 2015-04-28 Amazon Technologies, Inc. Request routing using network computing components
US9608957B2 (en) 2008-06-30 2017-03-28 Amazon Technologies, Inc. Request routing using network computing components
US9344513B2 (en) 2008-08-26 2016-05-17 Alibaba Group Holding Limited In-server redirection of HTTP requests
US20160294968A1 (en) * 2008-08-26 2016-10-06 Alibaba Group Holding Limited In-server redirection of http requests
WO2010025185A1 (en) 2008-08-26 2010-03-04 Alibaba Group Holding Limited In-server redirection of http requests
US9065865B2 (en) * 2008-08-26 2015-06-23 Alibaba Group Holding Limited In-server redirection of HTTP requests
EP2318948A4 (en) * 2008-08-26 2016-02-24 Alibaba Group Holding Ltd In-server redirection of http requests
US9986056B2 (en) * 2008-08-26 2018-05-29 Alibaba Group Holding Limited In-server redirection of HTTP requests
US9241042B2 (en) 2008-08-26 2016-01-19 Alibaba Group Holding Limited In-server redirection of HTTP requests
US20110231511A1 (en) * 2008-08-26 2011-09-22 Alibaba Group Holding Limited In-Server Redirection of HTTP Requests
US8429265B2 (en) 2008-09-29 2013-04-23 Amazon Technologies, Inc. Managing resource consolidation configurations
US9160641B2 (en) 2008-09-29 2015-10-13 Amazon Technologies, Inc. Monitoring domain allocation performance
US9491073B2 (en) 2008-09-29 2016-11-08 Amazon Technologies, Inc. Monitoring domain allocation performance
US9628403B2 (en) 2008-09-29 2017-04-18 Amazon Technologies, Inc. Managing network data display
US9825831B2 (en) 2008-09-29 2017-11-21 Amazon Technologies, Inc. Monitoring domain allocation performance
US8051166B1 (en) 2008-09-29 2011-11-01 Amazon Technologies, Inc. Service provider optimization of content management
US20140047118A1 (en) * 2008-09-29 2014-02-13 Amazon Technologies, Inc. Optimizing resource configurations
US8762526B2 (en) 2008-09-29 2014-06-24 Amazon Technologies, Inc. Optimizing content management
US9210099B2 (en) * 2008-09-29 2015-12-08 Amazon Technologies, Inc. Optimizing resource configurations
US8117306B1 (en) * 2008-09-29 2012-02-14 Amazon Technologies, Inc. Optimizing content management
US8631129B2 (en) 2008-09-29 2014-01-14 Amazon Technologies, Inc. Service provider optimization of content management
US8843625B2 (en) 2008-09-29 2014-09-23 Amazon Technologies, Inc. Managing network data display
US8122124B1 (en) 2008-09-29 2012-02-21 Amazon Technologies, Inc. Monitoring performance and operation of data exchanges
US10104009B2 (en) 2008-09-29 2018-10-16 Amazon Technologies, Inc. Managing resource consolidation configurations
US10148542B2 (en) 2008-09-29 2018-12-04 Amazon Technologies, Inc. Monitoring domain allocation performance
US9503389B2 (en) 2008-09-29 2016-11-22 Amazon Technologies, Inc. Managing resource consolidation configurations
US8185634B2 (en) 2008-09-29 2012-05-22 Amazon Technologies, Inc. Managing resource consolidation configurations
US8286176B1 (en) 2008-09-29 2012-10-09 Amazon Technologies, Inc. Optimizing resource configurations
US8549531B2 (en) 2008-09-29 2013-10-01 Amazon Technologies, Inc. Optimizing resource configurations
US9660890B2 (en) 2008-09-29 2017-05-23 Amazon Technologies, Inc. Service provider optimization of content management
US10205644B2 (en) 2008-09-29 2019-02-12 Amazon Technologies, Inc. Managing network data display
US8296429B2 (en) 2008-09-29 2012-10-23 Amazon Technologies, Inc. Optimizing content management
US10462025B2 (en) 2008-09-29 2019-10-29 Amazon Technologies, Inc. Monitoring performance and operation of data exchanges
US8307078B2 (en) 2008-09-29 2012-11-06 Amazon Technologies, Inc. Service provider optimization of content management
US9118543B2 (en) 2008-09-29 2015-08-25 Amazon Technologies, Inc. Managing network data display
US8316124B1 (en) 2008-09-29 2012-11-20 Amazon Technologies, Inc. Managing network data display
US9088460B2 (en) 2008-09-29 2015-07-21 Amazon Technologies, Inc. Managing resource consolidation configurations
US10284446B2 (en) 2008-09-29 2019-05-07 Amazon Technologies, Inc. Optimizing content management
US9071502B2 (en) 2008-09-29 2015-06-30 Amazon Technologies, Inc. Service provider optimization of content management
US8489737B2 (en) 2008-09-29 2013-07-16 Amazon Technologies, Inc. Monitoring performance and operation of data exchanges
US8452870B2 (en) 2008-09-29 2013-05-28 Amazon Technologies, Inc. Monitoring domain allocation performance
US10523783B2 (en) 2008-11-17 2019-12-31 Amazon Technologies, Inc. Request routing utilizing client location information
US9985927B2 (en) 2008-11-17 2018-05-29 Amazon Technologies, Inc. Managing content delivery network service providers by a content broker
US8510448B2 (en) 2008-11-17 2013-08-13 Amazon Technologies, Inc. Service provider registration by a content broker
US11283715B2 (en) 2008-11-17 2022-03-22 Amazon Technologies, Inc. Updating routing information based on client location
US9734472B2 (en) 2008-11-17 2017-08-15 Amazon Technologies, Inc. Request routing utilizing cost information
US9590946B2 (en) 2008-11-17 2017-03-07 Amazon Technologies, Inc. Managing content delivery network service providers
US9787599B2 (en) 2008-11-17 2017-10-10 Amazon Technologies, Inc. Managing content delivery network service providers
US8495220B2 (en) 2008-11-17 2013-07-23 Amazon Technologies, Inc. Managing CDN registration by a storage provider
US8521880B1 (en) 2008-11-17 2013-08-27 Amazon Technologies, Inc. Managing content delivery network service providers
US11115500B2 (en) 2008-11-17 2021-09-07 Amazon Technologies, Inc. Request routing utilizing client location information
US9515949B2 (en) 2008-11-17 2016-12-06 Amazon Technologies, Inc. Managing content delivery network service providers
US8788671B2 (en) 2008-11-17 2014-07-22 Amazon Technologies, Inc. Managing content delivery network service providers by a content broker
US10742550B2 (en) 2008-11-17 2020-08-11 Amazon Technologies, Inc. Updating routing information based on client location
US8732309B1 (en) 2008-11-17 2014-05-20 Amazon Technologies, Inc. Request routing utilizing cost information
US9251112B2 (en) 2008-11-17 2016-02-02 Amazon Technologies, Inc. Managing content delivery network service providers
US9444759B2 (en) 2008-11-17 2016-09-13 Amazon Technologies, Inc. Service provider registration by a content broker
US9451046B2 (en) 2008-11-17 2016-09-20 Amazon Technologies, Inc. Managing CDN registration by a storage provider
US11811657B2 (en) 2008-11-17 2023-11-07 Amazon Technologies, Inc. Updating routing information based on client location
US8583776B2 (en) 2008-11-17 2013-11-12 Amazon Technologies, Inc. Managing content delivery network service providers
US10116584B2 (en) 2008-11-17 2018-10-30 Amazon Technologies, Inc. Managing content delivery network service providers
US8122098B1 (en) 2008-11-17 2012-02-21 Amazon Technologies, Inc. Managing content delivery network service providers by a content broker
US9182977B2 (en) * 2009-02-02 2015-11-10 Enterpriseweb Llc Resource processing using an intermediary for context-based customization of interaction deliverables
US20140013301A1 (en) * 2009-02-02 2014-01-09 Enterpriseweb Llc Resource Processing Using an Intermediary for Context-Based Customization of Interaction Deliverables
US10824418B2 (en) 2009-02-02 2020-11-03 Enterpriseweb Llc Resource processing using an intermediary for context-based customization of interaction deliverables
US10410085B2 (en) 2009-03-24 2019-09-10 Amazon Technologies, Inc. Monitoring web site content
US8667127B2 (en) 2009-03-24 2014-03-04 Amazon Technologies, Inc. Monitoring web site content
US20110109643A1 (en) * 2009-03-24 2011-05-12 Amazon Technologies, Inc. Monitoring web site content
US9367929B2 (en) 2009-03-24 2016-06-14 Amazon Technologies, Inc. Monitoring web site content
US10491534B2 (en) 2009-03-27 2019-11-26 Amazon Technologies, Inc. Managing resources and entries in tracking information in resource cache components
US10230819B2 (en) 2009-03-27 2019-03-12 Amazon Technologies, Inc. Translation of resource identifiers using popularity information upon client request
US10574787B2 (en) 2009-03-27 2020-02-25 Amazon Technologies, Inc. Translation of resource identifiers using popularity information upon client request
US9237114B2 (en) 2009-03-27 2016-01-12 Amazon Technologies, Inc. Managing resources in resource cache components
US8521885B1 (en) 2009-03-27 2013-08-27 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularity information
US8521851B1 (en) 2009-03-27 2013-08-27 Amazon Technologies, Inc. DNS query processing using resource identifiers specifying an application broker
US9191458B2 (en) 2009-03-27 2015-11-17 Amazon Technologies, Inc. Request routing using a popularity identifier at a DNS nameserver
US8756341B1 (en) * 2009-03-27 2014-06-17 Amazon Technologies, Inc. Request routing utilizing popularity information
US8688837B1 (en) 2009-03-27 2014-04-01 Amazon Technologies, Inc. Dynamically translating resource identifiers for request routing using popularity information
US8996664B2 (en) 2009-03-27 2015-03-31 Amazon Technologies, Inc. Translation of resource identifiers using popularity information upon client request
US9083675B2 (en) 2009-03-27 2015-07-14 Amazon Technologies, Inc. Translation of resource identifiers using popularity information upon client request
US10601767B2 (en) 2009-03-27 2020-03-24 Amazon Technologies, Inc. DNS query processing based on application information
US10264062B2 (en) 2009-03-27 2019-04-16 Amazon Technologies, Inc. Request routing using a popularity identifier to identify a cache component
US8543702B1 (en) 2009-06-16 2013-09-24 Amazon Technologies, Inc. Managing resources using resource expiration data
US10783077B2 (en) 2009-06-16 2020-09-22 Amazon Technologies, Inc. Managing resources using resource expiration data
US9176894B2 (en) 2009-06-16 2015-11-03 Amazon Technologies, Inc. Managing resources using resource expiration data
US10521348B2 (en) 2009-06-16 2019-12-31 Amazon Technologies, Inc. Managing resources using resource expiration data
US8782236B1 (en) 2009-06-16 2014-07-15 Amazon Technologies, Inc. Managing resources using resource expiration data
US9130756B2 (en) 2009-09-04 2015-09-08 Amazon Technologies, Inc. Managing secure content in a content delivery network
US10785037B2 (en) 2009-09-04 2020-09-22 Amazon Technologies, Inc. Managing secure content in a content delivery network
US10135620B2 (en) 2009-09-04 2018-11-20 Amazon Technologis, Inc. Managing secure content in a content delivery network
US9712325B2 (en) 2009-09-04 2017-07-18 Amazon Technologies, Inc. Managing secure content in a content delivery network
US10218584B2 (en) 2009-10-02 2019-02-26 Amazon Technologies, Inc. Forward-based resource delivery network management techniques
US9893957B2 (en) 2009-10-02 2018-02-13 Amazon Technologies, Inc. Forward-based resource delivery network management techniques
US9246776B2 (en) 2009-10-02 2016-01-26 Amazon Technologies, Inc. Forward-based resource delivery network management techniques
US20110149965A1 (en) * 2009-12-17 2011-06-23 Judge Alan M Distributed routing architecture
US8902897B2 (en) 2009-12-17 2014-12-02 Amazon Technologies, Inc. Distributed routing architecture
US20110149964A1 (en) * 2009-12-17 2011-06-23 Judge Alan M Distributed routing architecture
US10063459B2 (en) 2009-12-17 2018-08-28 Amazon Technologies, Inc. Distributed routing architecture
US20110149963A1 (en) * 2009-12-17 2011-06-23 Hamilton James R Distributed routing architecture
US9282032B2 (en) 2009-12-17 2016-03-08 Amazon Technologies, Inc. Distributed routing architecture
US8971328B2 (en) 2009-12-17 2015-03-03 Amazon Technologies, Inc. Distributed routing architecture
US8331371B2 (en) 2009-12-17 2012-12-11 Amazon Technologies, Inc. Distributed routing architecture
US8331370B2 (en) 2009-12-17 2012-12-11 Amazon Technologies, Inc. Distributed routing architecture
US8325730B2 (en) 2009-12-17 2012-12-04 Amazon Technologies, Inc. Distributed routing architecture
US11205037B2 (en) 2010-01-28 2021-12-21 Amazon Technologies, Inc. Content distribution network
US9495338B1 (en) 2010-01-28 2016-11-15 Amazon Technologies, Inc. Content distribution network
US10506029B2 (en) 2010-01-28 2019-12-10 Amazon Technologies, Inc. Content distribution network
US9288153B2 (en) 2010-08-26 2016-03-15 Amazon Technologies, Inc. Processing encoded content
US8938526B1 (en) 2010-09-28 2015-01-20 Amazon Technologies, Inc. Request routing management based on network components
US9106701B2 (en) 2010-09-28 2015-08-11 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
US9185012B2 (en) 2010-09-28 2015-11-10 Amazon Technologies, Inc. Latency measurement in resource requests
US8577992B1 (en) 2010-09-28 2013-11-05 Amazon Technologies, Inc. Request routing management based on network components
US8924528B1 (en) * 2010-09-28 2014-12-30 Amazon Technologies, Inc. Latency measurement in resource requests
US9191338B2 (en) 2010-09-28 2015-11-17 Amazon Technologies, Inc. Request routing in a networked environment
US9787775B1 (en) 2010-09-28 2017-10-10 Amazon Technologies, Inc. Point of presence management in request routing
US10931738B2 (en) 2010-09-28 2021-02-23 Amazon Technologies, Inc. Point of presence management in request routing
US11632420B2 (en) 2010-09-28 2023-04-18 Amazon Technologies, Inc. Point of presence management in request routing
US9794216B2 (en) 2010-09-28 2017-10-17 Amazon Technologies, Inc. Request routing in a networked environment
US9800539B2 (en) 2010-09-28 2017-10-24 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
US9497259B1 (en) 2010-09-28 2016-11-15 Amazon Technologies, Inc. Point of presence management in request routing
US10097398B1 (en) 2010-09-28 2018-10-09 Amazon Technologies, Inc. Point of presence management in request routing
US10225322B2 (en) 2010-09-28 2019-03-05 Amazon Technologies, Inc. Point of presence management in request routing
US11336712B2 (en) 2010-09-28 2022-05-17 Amazon Technologies, Inc. Point of presence management in request routing
US10958501B1 (en) 2010-09-28 2021-03-23 Amazon Technologies, Inc. Request routing information based on client IP groupings
US9407681B1 (en) 2010-09-28 2016-08-02 Amazon Technologies, Inc. Latency measurement in resource requests
US10079742B1 (en) 2010-09-28 2018-09-18 Amazon Technologies, Inc. Latency measurement in resource requests
US11108729B2 (en) 2010-09-28 2021-08-31 Amazon Technologies, Inc. Managing request routing information utilizing client identifiers
US9253065B2 (en) 2010-09-28 2016-02-02 Amazon Technologies, Inc. Latency measurement in resource requests
US10778554B2 (en) 2010-09-28 2020-09-15 Amazon Technologies, Inc. Latency measurement in resource requests
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
US9160703B2 (en) 2010-09-28 2015-10-13 Amazon Technologies, Inc. Request routing management based on network components
US8930513B1 (en) 2010-09-28 2015-01-06 Amazon Technologies, Inc. Latency measurement in resource requests
US10015237B2 (en) 2010-09-28 2018-07-03 Amazon Technologies, Inc. Point of presence management in request routing
US8676918B2 (en) 2010-09-28 2014-03-18 Amazon Technologies, Inc. Point of presence management in request routing
WO2012064857A3 (en) * 2010-11-09 2012-09-27 Usablenet Inc. Methods for ruducing latency in network connections using automatic redirects and systems thereof
WO2012064856A3 (en) * 2010-11-09 2012-10-04 Usablenet Inc. Methods for reducing latency in network connections and systems thereof
US20120117253A1 (en) * 2010-11-09 2012-05-10 Usablenet Inc. Methods for reducing latency in network connections and systems thereof
WO2012064856A2 (en) 2010-11-09 2012-05-18 Usablenet Inc. Methods for reducing latency in network connections and systems thereof
US8868638B2 (en) 2010-11-09 2014-10-21 Usablenet Inc. Methods for reducing latency in network connections using automatic redirects and systems thereof
EP2638681A2 (en) * 2010-11-09 2013-09-18 Usablenet Inc. Methods for reducing latency in network connections and systems thereof
EP2638681A4 (en) * 2010-11-09 2014-03-19 Usablenet Inc Methods for reducing latency in network connections and systems thereof
US8984164B2 (en) * 2010-11-09 2015-03-17 Usablenet Inc. Methods for reducing latency in network connections and systems thereof
US8452874B2 (en) 2010-11-22 2013-05-28 Amazon Technologies, Inc. Request routing processing
US9930131B2 (en) 2010-11-22 2018-03-27 Amazon Technologies, Inc. Request routing processing
US9003040B2 (en) 2010-11-22 2015-04-07 Amazon Technologies, Inc. Request routing processing
US10951725B2 (en) 2010-11-22 2021-03-16 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
US11604667B2 (en) 2011-04-27 2023-03-14 Amazon Technologies, Inc. Optimized deployment based upon customer locality
US10742762B2 (en) 2011-06-06 2020-08-11 Google Llc Reducing redirects
US11716402B2 (en) 2011-06-06 2023-08-01 Google Llc Reducing redirects
US9282158B2 (en) * 2011-06-06 2016-03-08 Google Inc. Reducing redirects
US20120311017A1 (en) * 2011-06-06 2012-12-06 Google Inc. Reducing Redirects
US9628554B2 (en) 2012-02-10 2017-04-18 Amazon Technologies, Inc. Dynamic content delivery
US10230566B1 (en) 2012-02-17 2019-03-12 F5 Networks, Inc. Methods for dynamically constructing a service principal name and devices thereof
US10021179B1 (en) 2012-02-21 2018-07-10 Amazon Technologies, Inc. Local resource delivery network
US9083743B1 (en) 2012-03-21 2015-07-14 Amazon Technologies, Inc. Managing request routing information utilizing performance information
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
US20140143375A1 (en) * 2012-04-27 2014-05-22 F5 Networks, Inc. Methods for optimizing service of content requests and devices thereof
US10097616B2 (en) * 2012-04-27 2018-10-09 F5 Networks, Inc. Methods for optimizing service of content requests and devices thereof
US20150019679A1 (en) * 2012-05-17 2015-01-15 Matthew Browning Prince Incorporating web applications into web pages at the network level
US8849904B2 (en) * 2012-05-17 2014-09-30 Cloudflare, Inc. Incorporating web applications into web pages at the network level
US10205674B2 (en) * 2012-05-17 2019-02-12 Cloudflare, Inc. Incorporating web applications into web pages at the network level
US20130311593A1 (en) * 2012-05-17 2013-11-21 Matthew Browning Prince Incorporating web applications into web pages at the network level
US11153226B2 (en) 2012-05-17 2021-10-19 Cloudflare, Inc. Incorporating web applications into web pages at the network level
US11621924B2 (en) 2012-05-17 2023-04-04 Cloudflare, Inc. Incorporating web applications into web pages at the network level
US11729294B2 (en) 2012-06-11 2023-08-15 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US10225362B2 (en) 2012-06-11 2019-03-05 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US9154551B1 (en) 2012-06-11 2015-10-06 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US11303717B2 (en) 2012-06-11 2022-04-12 Amazon Technologies, Inc. Processing DNS queries to identify pre-processing information
US20140067996A1 (en) * 2012-08-30 2014-03-06 Yahoo! Inc. Method and system for reducing network latency
US9363240B2 (en) * 2012-08-30 2016-06-07 Excalibur Ip, Llc Method and system for reducing network latency
US9525659B1 (en) 2012-09-04 2016-12-20 Amazon Technologies, Inc. Request routing utilizing point of presence load information
US20150244751A1 (en) * 2012-09-07 2015-08-27 Airplug Inc. Apparatus and method for relaying data of a media content of which section information is carried by list information
US9323577B2 (en) 2012-09-20 2016-04-26 Amazon Technologies, Inc. Automated profiling of resource usage
US10015241B2 (en) 2012-09-20 2018-07-03 Amazon Technologies, Inc. Automated profiling of resource usage
US9135048B2 (en) 2012-09-20 2015-09-15 Amazon Technologies, Inc. Automated profiling of resource usage
US10542079B2 (en) 2012-09-20 2020-01-21 Amazon Technologies, Inc. Automated profiling of resource usage
WO2014093704A1 (en) * 2012-12-13 2014-06-19 Qualcomm Incorporated Loading a re-directed web resource on a web browser of a client device in a communications system
CN104854843A (en) * 2012-12-13 2015-08-19 高通股份有限公司 Loading a re-directed web page on a web browser of a client device in a communications system
WO2014093699A1 (en) * 2012-12-13 2014-06-19 Qualcomm Incorporated Loading a re-directed web page on a web browser of a client device in a communications system
TWI508507B (en) * 2012-12-13 2015-11-11 Qualcomm Inc Loading a re-directed web page on a web browser of a client device in a communications system
US9374436B2 (en) 2012-12-13 2016-06-21 Qualcomm Incorporated Loading a re-directed web page on a web browser of a client device in a communications system
US9344512B2 (en) 2012-12-13 2016-05-17 Qualcomm Incorporated Loading a re-directed web resource on a web browser of a client device in a communications system
US10645056B2 (en) 2012-12-19 2020-05-05 Amazon Technologies, Inc. Source-dependent address resolution
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
US10374955B2 (en) 2013-06-04 2019-08-06 Amazon Technologies, Inc. Managing network computing components utilizing request routing
US9929959B2 (en) 2013-06-04 2018-03-27 Amazon Technologies, Inc. Managing network computing components utilizing request routing
US10255373B2 (en) * 2013-06-27 2019-04-09 International Business Machines Corporation Normalizing a page flow
US10839040B2 (en) 2013-06-27 2020-11-17 International Business Machines Corporation Normalizing a page flow
US20150007006A1 (en) * 2013-06-27 2015-01-01 International Business Machines Corporation Normalizing a page flow
US10419510B2 (en) 2013-10-25 2019-09-17 Louis Gurtowski Selective capture with rapid sharing of user or mixed reality actions and states using interactive virtual streaming
US10027731B2 (en) 2013-10-25 2018-07-17 Louis Gurtowski Selective capture with rapid sharing of user computer or mixed reality actions, states using interactive virtual streaming
US11165842B2 (en) 2013-10-25 2021-11-02 Louis Gurtowski Selective capture with rapid sharing of user or mixed reality actions and states using interactive virtual streaming
JP2016541048A (en) * 2013-10-28 2016-12-28 華為技術有限公司Huawei Technologies Co.,Ltd. Method, device and system for transferring data using service proxy
EP3054650A4 (en) * 2013-10-28 2016-10-12 Huawei Tech Co Ltd Method, device and system for redirecting data service proxy
US10187317B1 (en) 2013-11-15 2019-01-22 F5 Networks, Inc. Methods for traffic rate control and devices thereof
US10460098B1 (en) 2014-08-20 2019-10-29 Google Llc Linking devices using encrypted account identifiers
US9769248B1 (en) 2014-12-16 2017-09-19 Amazon Technologies, Inc. Performance-based content delivery
US10812358B2 (en) 2014-12-16 2020-10-20 Amazon Technologies, Inc. Performance-based content delivery
US10027739B1 (en) 2014-12-16 2018-07-17 Amazon Technologies, Inc. Performance-based content delivery
US11381487B2 (en) 2014-12-18 2022-07-05 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
US10097448B1 (en) 2014-12-18 2018-10-09 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10728133B2 (en) 2014-12-18 2020-07-28 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US11863417B2 (en) 2014-12-18 2024-01-02 Amazon Technologies, Inc. Routing mode and point-of-presence selection service
US10225365B1 (en) 2014-12-19 2019-03-05 Amazon Technologies, Inc. Machine learning based content delivery
US10311371B1 (en) 2014-12-19 2019-06-04 Amazon Technologies, Inc. Machine learning based content delivery
US10311372B1 (en) 2014-12-19 2019-06-04 Amazon Technologies, Inc. Machine learning based content delivery
US11457078B2 (en) 2014-12-19 2022-09-27 Amazon Technologies, Inc. Machine learning based content delivery
US11297140B2 (en) 2015-03-23 2022-04-05 Amazon Technologies, Inc. Point of presence based data uploading
US10225326B1 (en) 2015-03-23 2019-03-05 Amazon Technologies, Inc. Point of presence based data uploading
US9887931B1 (en) 2015-03-30 2018-02-06 Amazon Technologies, Inc. Traffic surge management for points of presence
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
US10469355B2 (en) 2015-03-30 2019-11-05 Amazon Technologies, Inc. Traffic surge management for points of presence
US10691752B2 (en) 2015-05-13 2020-06-23 Amazon Technologies, Inc. Routing based request correlation
US11461402B2 (en) 2015-05-13 2022-10-04 Amazon Technologies, Inc. Routing based request correlation
US10180993B2 (en) 2015-05-13 2019-01-15 Amazon Technologies, Inc. Routing based request correlation
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
US9742795B1 (en) 2015-09-24 2017-08-22 Amazon Technologies, Inc. Mitigating network attacks
US10200402B2 (en) 2015-09-24 2019-02-05 Amazon Technologies, Inc. Mitigating network attacks
US9794281B1 (en) 2015-09-24 2017-10-17 Amazon Technologies, Inc. Identifying sources of network attacks
US9774619B1 (en) 2015-09-24 2017-09-26 Amazon Technologies, Inc. Mitigating network attacks
US11134134B2 (en) 2015-11-10 2021-09-28 Amazon Technologies, Inc. Routing for origin-facing points of presence
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
US10666756B2 (en) 2016-06-06 2020-05-26 Amazon Technologies, Inc. Request management for hierarchical cache
US11463550B2 (en) 2016-06-06 2022-10-04 Amazon Technologies, Inc. Request management for hierarchical cache
US11457088B2 (en) 2016-06-29 2022-09-27 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US10110694B1 (en) 2016-06-29 2018-10-23 Amazon Technologies, Inc. Adaptive transfer rate for retrieving content from a server
US10516590B2 (en) 2016-08-23 2019-12-24 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US9992086B1 (en) 2016-08-23 2018-06-05 Amazon Technologies, Inc. External health checking of virtual private cloud network environments
US10469442B2 (en) 2016-08-24 2019-11-05 Amazon Technologies, Inc. Adaptive resolution of domain name requests in 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
US10616250B2 (en) 2016-10-05 2020-04-07 Amazon Technologies, Inc. Network addresses with encoded DNS-level information
US10469513B2 (en) 2016-10-05 2019-11-05 Amazon Technologies, Inc. Encrypted network addresses
US10505961B2 (en) 2016-10-05 2019-12-10 Amazon Technologies, Inc. Digitally signed network address
US11330008B2 (en) 2016-10-05 2022-05-10 Amazon Technologies, Inc. Network addresses with encoded DNS-level information
US10831549B1 (en) 2016-12-27 2020-11-10 Amazon Technologies, Inc. Multi-region request-driven code execution system
US10372499B1 (en) 2016-12-27 2019-08-06 Amazon Technologies, Inc. Efficient region selection system for executing request-driven code
US11762703B2 (en) 2016-12-27 2023-09-19 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
US11290418B2 (en) 2017-09-25 2022-03-29 Amazon Technologies, Inc. Hybrid content request routing system
US11388104B2 (en) 2017-09-26 2022-07-12 Meta Platforms, Inc. Systems and methods for providing predicted web page resources
US20190097941A1 (en) * 2017-09-26 2019-03-28 Facebook, Inc. Systems and methods for providing predicted web page resources
US10911370B2 (en) * 2017-09-26 2021-02-02 Facebook, Inc. Systems and methods for providing predicted web page resources
US10592578B1 (en) 2018-03-07 2020-03-17 Amazon Technologies, Inc. Predictive content push-enabled content delivery network
US20200244743A1 (en) * 2018-09-12 2020-07-30 Citrix Systems, Inc. Systems and methods for integrated service discovery for network applications
US11362986B2 (en) 2018-11-16 2022-06-14 Amazon Technologies, Inc. Resolution of domain name requests in heterogeneous network environments
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
CN113965571A (en) * 2021-10-29 2022-01-21 北京锐安科技有限公司 Management method, device, equipment and medium for distributed embedded equipment

Also Published As

Publication number Publication date
US9032096B2 (en) 2015-05-12

Similar Documents

Publication Publication Date Title
US9032096B2 (en) Reducing the impact of network latency on application performance
US10798203B2 (en) Method and apparatus for reducing network resource transmission size using delta compression
US8326923B1 (en) Smart prefetching of data over a network
US6598048B2 (en) Distributed system and method for prefetching objects
US8572132B2 (en) Dynamic content assembly on edge-of-network servers in a content delivery network
EP1277118B1 (en) A system and method to accelerate client/server interactions using predictive requests
US8856279B2 (en) Method and system for object prediction
US10911561B2 (en) Method and network node for caching web content
US11064043B2 (en) System and method for providing an adjunct device in a content distribution network
US20090254707A1 (en) Partial Content Caching
US9621666B2 (en) Systems and methods for enhanced delta compression
EP3175364B1 (en) Web redirection for caching
US20030084091A1 (en) Apparatus and method for offloading application components to edge servers
US6865605B1 (en) System and method for transparently redirecting client requests for content using a front-end indicator to preserve the validity of local caching at the client system
KR20040044182A (en) System and method for increasing the effective bandwidth of a communications network
US8914542B1 (en) Content caching
US20070244993A1 (en) Managing network response buffering behavior
Steinberg et al. A web middleware architecture for dynamic customization of content for wireless clients
CN117014531A (en) Access processing method and device
Danek Cooperative Browser Download Streams

Legal Events

Date Code Title Description
AS Assignment

Owner name: FINEGROUD NETWORKS, CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KAUSIK, BALAS NATARAJAN;JAWAHAR, JANARDHANAN;REEL/FRAME:016109/0577

Effective date: 20041217

AS Assignment

Owner name: FINEGROUND NETWORKS, INC., CALIFORNIA

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S NAME, PREVIOUSLY RECORDED ON REEL 016109 FRAME 0577;ASSIGNORS:KAUSIK, BALAS NATARAJAN;JAWAHAR, JANARDHANAN;REEL/FRAME:022663/0074;SIGNING DATES FROM 20090119 TO 20090121

Owner name: FINEGROUND NETWORKS, INC., CALIFORNIA

Free format text: CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE'S NAME, PREVIOUSLY RECORDED ON REEL 016109 FRAME 0577;ASSIGNORS:KAUSIK, BALAS NATARAJAN;JAWAHAR, JANARDHANAN;SIGNING DATES FROM 20090119 TO 20090121;REEL/FRAME:022663/0074

AS Assignment

Owner name: FINEGROUND NETWORKS LLC, DELAWARE

Free format text: CHANGE OF NAME;ASSIGNOR:FINEGROUND NETWORKS, INC.;REEL/FRAME:023180/0323

Effective date: 20080221

Owner name: CISCO TECHNOLOGY, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:FINEGROUND NETWORKS LLC;REEL/FRAME:023180/0327

Effective date: 20080501

STCF Information on status: patent grant

Free format text: PATENTED CASE

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 4

MAFP Maintenance fee payment

Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY

Year of fee payment: 8