WO2001088761A2 - A system and method for an internet cache - Google Patents
A system and method for an internet cache Download PDFInfo
- Publication number
- WO2001088761A2 WO2001088761A2 PCT/US2001/015575 US0115575W WO0188761A2 WO 2001088761 A2 WO2001088761 A2 WO 2001088761A2 US 0115575 W US0115575 W US 0115575W WO 0188761 A2 WO0188761 A2 WO 0188761A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- component
- http
- node
- http request
- network
- 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.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/289—Intermediate processing functionally located close to the data consumer application, e.g. in same machine, in same home or in same sub-network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/565—Conversion or adaptation of application format or content
- H04L67/5651—Reducing the amount or size of exchanged application data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04B—TRANSMISSION
- H04B7/00—Radio transmission systems, i.e. using radiation field
- H04B7/14—Relay systems
- H04B7/15—Active relay systems
- H04B7/185—Space-based or airborne stations; Stations for satellite systems
- H04B7/18523—Satellite systems for providing broadcast service to terrestrial stations, i.e. broadcast satellite service
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2212/00—Encapsulation of packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Definitions
- the Passive Internet Cache system pertains to data caches in "star topology", dual channel (send and receive), and single channel (receive only, or “broadcast”), networks that use the HyperText Transfer Protocol (“HTTP”).
- HTTP is very commonly used with Transmission Control Protocol/Internet Protocol (“TCP/IP") over the Internet or private networks that have a client/server architecture in which client software operated by an end user requests and receives information from one or more server computers.
- TCP/IP Transmission Control Protocol/Internet Protocol
- the structure of such requests and responses conforms with the specifications for HTTP.
- HTTP specifications are currently promulgated by the World Wide Web Consortium, Cambridge, Massachusetts.
- An "HTTP request" from a World Wide Web browser, or other software application that uses HTTP messages, to a server computer contains a Uniform Resource Locator ("URL") to identify the requested information.
- the data contents at the address specified by a URL can be a complete Webpage, or components of a Webpage (text, graphics, sound, video, or other type of file).
- the "HTTP response" from the server to the browser contains the "contents" of the URL, but normally does not restate the URL.
- the cache that is included with commonly available Web browsers interoperates with the browser as follows: (a) an end-user clicks on a URL displayed in a browser or other window of the display of an electronic device, usually a computer, connected to the Internet; (b) the browser acts in conformity with the cache configuration settings of the browser, e.g., if the URL is stored in the built-in browser cache, the cache provides the contents of the stored URL to the browser unless required by the configuration settings to verify that the cached URL has not changed; if verification is required, or if the URL is not stored in browser cache, the cache sends an HTTP request message (usually including a "GET", or "GET IF-MODIFIED-SINCE" command) to request the URL from the host computer specified in the URL; (c) if the disk space used by browser cache exceeds a user- defined size, the cache deletes the oldest URLs in cache to accommodate the newest URLs and their contents; and (d) upon receipt of the HTTP response to the HTTP request, the cache provides the response
- the IP packet of an HTTP request includes, among other things, a GET (or other permitted) command, the requested URL, the IP address and TCP port number (collectively called the "source socket") of the end-user's computer, and the destination IP address and TCP port number (collectively called the "destination socket") of the Webserver on which the URL resides.
- the source socket of the HTTP request becomes the destination socket of the HTTP response, and the destination socket of the HTTP request becomes the source socket of the HTTP response.
- An HTTP request causes the Webserver identified in the request message (i.e., the host computer at the domain name specified in the URL in the HTTP request) to send a Webpage (or Webpage component) identified by the file component of the URL to the requesting browser.
- the Webpage (or Webpage component) sent by the identified Webserver is the payload of the HTTP response message.
- “Browser” in this document means any end-user application software that uses HTTP.
- "HTTP” includes any equivalent or successor protocol to HTTP that performs "applications and services" functions at OSI layers 5 to 7 substantially similar to those of HTTP.
- TCP IP includes any equivalent or successor protocol to TCP/IP that uses methods of message addressing, routing, transport, and headers that are substantially similar to those of TCP/IP.
- a Web browser In normal operation, a Web browser (or other software application that uses HTTP) only receives the contents of TCP/IP packets that contain (a) the destination IP address of the electronic device on which the browser is running, and (b) a TCP port number assigned to the Web browser application for the duration of the TCP connection by the operating system of the electronic device (or by other software controlling the allocation of TCP ports on the device).
- "Electronic device” or "end-user node” means herein any type of computational device (a) under the control of an operating system, such as a personal computer (“PC"), set-top box, or Internet appliance, and (b) that is interfaced with a dual channel or single channel network.
- An end-user node can be used by a human operator or be an unmanned processing node in a computer network.
- End-user means herein the client application (typically a browser) that originates HTTP requests and is the final recipient of HTTP responses.
- the most common network interfaces are network interface cards and dial-up networking adapters.
- a Web browser opens a TCP port, sends an HTTP request on that TCP port, and waits for an HTTP response on that TCP port. More accurately, the browser (or other client application software) requests that the operating system assign to the browser (or other client application software) an unused, unreserved TCP port number. The browser then uses that TCP port for a communications session.
- the browser When the browser no longer needs the TCP port, the browser relinquishes the TCP port number (and therefore the TCP port the TCP port number identifies) back to the operating system, and the TCP port number can be reassigned to another application.
- TCP port number Approximately sixty-four thousand TCP ports are available, which enables a browser to obtain multiple, concurrent TCP ports and to conduct multiple, concurrent HTTP sessions.
- the operating system assigns TCP port numbers in an ascending, sequential manner. When a TCP session is closed and the TCP port is released back to the operating system, the same port number will normally not be used again until the operating system has cycled through the remaining (approximately 64,000) TCP ports.
- the network interface normally ignores or discards the packet. If the IP destination address does match the (or an) IP address of such network interface, the TCP/IP stack rvjrrning in the electronic device forwards the contents of the packet to the application (e.g., browser) that opened the TCP port identified in the TCP packet header. If the specified TCP port is not open, the packet is ignored or discarded.
- a traditional standalone cache (not part of a Web browser) matches an HTTP request with the HTTP response generated as a reply to the HTTP request, and stores the contents of the HTTP response under the URL specified in the HTTP request.
- the traditional standalone cache design requires collocation of the cache at a network access point where the cache can monitor and buffer traffic as required to provide the caching function. Being located at such a network access point permits a cache to monitor, copy and respond to HTTP requests and to store or cache HTTP responses that transit the access point.
- the caching device causes each HTTP request and each HTTP response to be stored in buffer memory and/or on a disk drive or other storage.
- the caching device accesses the buffered or cached information and responds to an HTTP request with the contents of the requested URL.
- the cache opens a TCP/IP connection to the designated Webserver (on a separate TCP port managed by the TCP/IP stack serving the cache) and returns an appropriate HTTP response to the originator of the HTTP request after receiving the HTTP response from the Webserver.
- the Webserver receives HTTP requests with IP headers containing the IP address and TCP port numbers assigned by the caching device rather than those of the originating device, such as an end-user node.
- star topology, dual channel network means satellite and terrestrial network architectures in which a plurality of transmit/receive ("TR") remote terminals share a return channel (called the outbound channel) transmitted from a central switching, or "hub", node to the remote terminals, and in which each TR remote terminal uses a uniquely assigned forward communications channel (called the inbound channel) that is transmitted from a TR remote terminal to the hub node and is not shared with (and is not received by) other remote terminals.
- NSAT transmitry small aperture terminal
- the inbound channel from a TR remote terminal to a hub node serving the TR remote terminal can be through a terrestrial network, such as by use of terrestrial microwave, copper pair, or fiberoptic media; the outbound channel can also be through a terrestrial network, such as in digital cablecast networks. All TR remote terminals can communicate interactively with a hub node.
- star topology, single channel network means satellite and terrestrial network architectures in which a plurality of receive-only ("RO") remote terminals share a return channel (called the "broadcast” or outbound channel) from a hub node, and in which each RO remote terminal lacks any inbound channel, direct or indirect, from an RO remote terminal to a hub node.
- NSAT satellite networks with receive-only ("one-way") remote terminals are a common example of a star topology, single channel network.
- a "star topology" network, without qualification as to channels, means star topology network with a population of TR remote terminals, RO remote terminals, or a mixed population of TR and RO remote terminals.
- a "remote terminal” means a device that uses radio frequency, electrical, photonic, or other communications technologies for one-way (RO) or two-way (TR) communications between that device and a hub node.
- a remote terminal can be interfaced with one or more local area networks, or equivalent connectivity, shared by end-user nodes and other types of nodes.
- a traditional, standalone cache interfaced with a TR remote terminal in a star topology, dual channel network can monitor (a) only the locally originated, remote terminal-to-hub node, inbound channel, and (b) a hub node-to-remote terminals, outbound channel.
- the locally originated inbound channel contains HTTP requests from end-users interfaced with the remote terminal.
- the outbound channel contains HTTP responses to a plurality of remote terminals and the end-users interfaced with such remote terminals.
- a TR remote terminal in a star topology, dual channel NSAT network cannot directly monitor the inbound channels from other TR remote terminals to the hub node.
- An RO remote terminal in a star topology, single channel (broadcast) network does not have an inbound channel; there are no transmissions from the RO remote terminal to a hub node and therefore no inbound HTTP requests to monitor.
- An RO remote terminal also cannot directly monitor the inbound channels from other TR remote terminals to the hub node.
- An RO remote terminal may be interfaced with a local area network on which local HTTP requests are carried; a cache associated with an RO remote terminal can provide HTTP responses to local HTTP requests. Assuming a TR or RO remote terminal could receive HTTP responses addressed to other remote terminals, except in extremely rare instances described below, a traditional, standalone cache associated with such remote terminal can not determine the URLs of such HTTP responses.
- caching technologies There are a great variety of caching technologies taught by prior art. Some caching methods are optimized for use in computer systems (U.S. Patent No. 5,930,515, issued to Ducharme, et al.), in Internet service provider operations (U.S. Patent No. 5,991,306, issued to Burns, et al.), or in satellite broadcasting (U.S. Patent No. 5,987,233, issued to Humphrey).
- the related art generally uses a "store and forward" approach in which files or data from a source device (e.g., a Webserver) are replicated on one or more other storage devices, or caches.
- a source device e.g., a Webserver
- Cache refresh can be either by the source initiating a refresh and "pushing" files and data out to cache storage, or by a destination initiating a refresh and "pulling" files and data from the source.
- Existing caching methods can be configured using various rules for refreshing cache contents, for using drive space, for blocking specified URLs, etc.
- Such caches can also be configured for use as proxy servers, in which case an HTTP request generated by an end-user' s browser uses a destination TCP port defined for the proxy server rather than using a well-known TCP port defined for public Webservers.
- TCP port 80 is a well-known port used by public Webservers for receiving HTTP requests.
- Caches can be cascaded, in which case each cache in series either contains the requested URL and returns the appropriate HTTP response to the requesting browser, or opens a TCP/IP connection to the next cache in series and sends an HTTP request to the next cache for the URL.
- the cache In a cascaded cache architecture, when a cache does not contain a requested URL, the cache generates an HTTP request to the next device in series, and upon receipt of the HTTP response (which may come from the next or subsequent cascaded caching device, or from the Webserver at the end of the cascade), forwards the HTTP response to the end-user, or to a previous cache in a cascaded series of caches.
- HTTP versions prior to HTTP 1.1 did not provide a field for the URL in the header of an HTTP response.
- a device that monitors HTTP responses will not have access to the URL of the payload of an HTTP response when earlier versions of HTTP are used. This being the case, the URL and its contents cannot be cached when the HTTP request that generated the HTTP response is not available.
- the Content Location header (a field reserved in an HTTP response for the URL of the payload of the response) is an optional field, and Webserver programmers are not required to include the field in the HTTP response.
- the use of the Content Location header is extremely rare; even when the Content Location header is included, the URL field may be missing or incorrect. When programmers do not include this field or the stated URL is missing or incorrect, an HTTP response cannot be matched to the corresponding URL unless the HTTP request is available.
- FIG.l depicts the current system of caching in a star topology, dual channel network.
- FIG 1 A illustrates message exchange when a URL is in a local cache.
- FIG IB illustrates message exchange when a URL is not in local cache or in a traditional hub cache.
- a traditional cache at a hub node of a satellite network provides a proxy function that "intercepts" end-users' HTTP requests for URLs, responds with those URLs cached at the hub node (which avoids Internet propagation delays), but does nothing to avoid the deterioration of response time due to satellite propagation delays between the end-user's node and the hub node.
- the contents of a "global" cache at a hub node reflect the activities of all end-users served by the hub node(s).
- a "central" or “master” hub periodically collects the cache content from all other hub caches by pulling the contents from the hubs and creating an aggregate cache.
- the aggregate cache is then periodically pushed to the other hubs to replicate the aggregate cache at all hubs.
- the hub locations are generally terrestrial hubs, e.g. an internet service provider point of presence, with end-users supported via terrestrial (usually dial-up) access to the hub node. Locating a global cache at a hub node has been necessary because only a hub node provides a network access point that permits the monitoring of all HTTP requests from, and corresponding HTTP responses to, all remote terminals. Such caches generate, or obtain and relay, HTTP responses on behalf of client applications running on end-user nodes.
- An "intermediate node” is a node between the hub node and an end-user node in a star topology network. Accordingly, there is a need for a more efficient and cost effective method and system of building a global cache at intermediate nodes and at end-user nodes in star topology networks.
- the Passive Internet Cache system overcomes the limitation of having to collocate a global cache with the hub node(s) of a star topology network, and the limitation imposed by the omission of the URL in HTTP responses.
- the Passive Internet Cache system uses an innovative, "passive listening" method to construct a global cache at any intermediate node, at a series of cascaded intermediate nodes, or at end-user node in star topology networks.
- the Passive Internet Cache system's provision of an HTTP response from a global cache at or very near an end-user node means higher cache "hit" rates for the end- user, faster response times, and a corresponding reduction in the use of inbound and outbound communication channels.
- the Passive Internet Cache (“PIC”) system meets the need for a more efficient and cost effective global cache in intermediate nodes or end-user nodes in star topology networks.
- the PIC system builds a global cache at or near end-user nodes, and substantially avoids response delays at end-user nodes arising from the exchange of request and response messages between a remote terminal and a hub node.
- the PIC system operates in the background and enables end-user nodes interfaced with remote terminals to use the contents of all HTTP responses in an outbound channel, reduces the repetitive transmission of the same HTTP response payloads over an outbound channel, and in dual channel networks also reduces the need to send HTTP requests over an inbound channel.
- Suitable dual channel networks include NSAT systems with inbound and outbound channels by satellite, or with outbound channel by satellite and inbound channel by terrestrial network; Direct-to-Home (“DTH”) satellite systems that have a broadcast outbound satellite channel and a terrestrial inbound channel (dial-up, leased line, cable modem, etc.); and terrestrial systems such as multichannel multipoint distribution service (“MMDS”), local multipoint distribution service (“LMDS”), instructional television fixed service (“ITFS”), digital television broadcasting, and digital cablecasting systems that have a terrestrial "broadcast” or “multicast” outbound channel and various types of inbound channels.
- DTH Direct-to-Home
- MMDS multichannel multipoint distribution service
- LMDS local multipoint distribution service
- ITFS instructional television fixed service
- digital television broadcasting and digital cablecasting systems that have a terrestrial "broadcast” or “multicast” outbound channel and various types of inbound channels.
- Broadcast means a single message in the outbound channel can be addressed to and received by all remote terminals.
- Multicast means a single message in the outbound channel can be addressed to and received by a portion of, but not all, remote terminals.
- the PIC system is effective in networks with single channel, receive only terminals, such as receive-only NSAT and DTH satellite terminals.
- the PIC system is also effective with MMDS, LMDS, ITFS, digital television broadcasting, and digital cablecasting terminals that may have two-way (transmit/receive) or one-way (receive only) capabilities, whether wireline and/or wireless.
- a PIC system can be configured to serve a mixed population of TR remote terminals and RO remote terminals, and can be configured to use concurrently wireline outbound channels, wireless outbound channels, wireline inbound channels, and/or wireless inbound channels.
- end-users are associated with remote terminals and originate HTTP requests
- Webservers which may be on a local area network at the hub node, or may be accessed through other networks serving the hub node
- provide HTTP responses to the hub node and the hub node transmits such HTTP responses in the outbound channel to the remote terminals.
- the Passive Internet Cache system has five primary components: a monitoring component, an encapsulating component, a buffering component, an unencapsulating ("decapsulating") component, and a global cache (called a "PIC Webcache").
- a primary monitoring component and an encapsulation component are implemented at a hub node.
- a buffering component can be implemented at a hub node, intermediate node, and/or end- user node.
- the decapsulating component and the PIC Webcache are implemented at an intermediate node or at an end-user node of a star topology network.
- the decapsulating component is interfaced or integral with a buffering component at an intermediate node or at an end-user node.
- An example of an intermediate node is a computer or set-top box interfaced with, or integral with, a NSAT, DTH, MMDS, LMDS, ITFS, digital television broadcasting, or digital cablecasting remote terminal and also interfaced with one or more end-user nodes; the interfaces can be a local area network, a system bus, universal serial bus ("USB"), or similar connectivity.
- the distribution of the components of a PIC system defines the various embodiments of the invention. All embodiments of the PIC system require that a remote terminal output all HTTP responses received in the outbound channel, not just those HTTP responses with IP addresses assigned to intermediate nodes and end- user nodes interfaced with such remote terminal, to each instance of a secondary monitoring component associated with or interfaced with such remote terminal.
- Such output can be obtained by setting configuration options with some commonly available remote terminal or hub node systems. If a remote terminal and hub node system does not support reception of HTTP responses for nodes other than those attached to a given remote terminal, additional hardware and/or software components, such as a signal splitter and separate receiver/decoder, must be added to provide the ability to receive all HTTP responses in an outbound channel at a remote terminal.
- additional hardware and/or software components such as a signal splitter and separate receiver/decoder, must be added to provide the ability to receive all HTTP responses in an outbound channel at a remote terminal.
- One embodiment of the PIC system in the context of a star topology, dual channel NSAT network, implements a primary monitoring component and an encapsulating component at a hub earth station, and implements a secondary monitoring component, a decapsulating component, a buffering component, and a PIC Webcache on an end-user node interfaced with a NSAT remote terminal.
- the PIC Webcache On the end-user node, the PIC Webcache is configured as a proxy server cache and the Web browser is configured to use such proxy server cache.
- the primary monitoring component of the PIC system at the hub earth station monitors all inbound channels from all the NSAT remote terminals to the hub earth station.
- the primary monitoring component copies all HTTP requests from the monitored inbound channels, forwards the HTTP requests to the encapsulating component at the hub earth station where the HTTP requests are immediately encapsulated in a User Datagram Protocol ("UDP") message.
- UDP User Datagram Protocol
- Such UDP messages are then immediately transmitted in the outbound channel using a broadcast IP address and UDP port monitored by all remote terminals that receive such outbound channel and are interfaced with an end-user node that has a PIC Webcache.
- the secondary monitoring component at the end-user node communicates through a network interface on the end-user node with the NSAT remote terminal.
- the secondary monitoring component at the end-user node also communicates with the decapsulation component and with the buffering component on the end-user node.
- the secondary monitoring component copies from the NSAT remote terminal to the decapsulation component all UDP messages, and to the buffering component all HTTP messages, received by the remote terminal, not just those packets with an IP destination address of the end-user node.
- the secondary monitoring component on the end-user node receives a UDP packet containing an encapsulated HTTP request, it provides such packet to the decapsulation component.
- the decapsulation component removes the UDP encapsulation ("decapsulation"), and forwards the decapsulated HTTP request to the buffering component on the end-user node.
- the buffering component on the end-user node communicates with disk drive(s) or other read/write storage device(s) associated with the end user node that are used by the PIC Webcache for storage.
- the buffering component at the end-user node stores the decapsulated HTTP request in buffer memory, and opens a file (or database record) tagged with the source socket (source IP address and TCP port number) and the destination socket (destination IP address and TCP port number) specified in the decapsulated HTTP request.
- the tagged file (or database record) awaits the arrival of the relevant HTTP response to be delivered later by the buffering component.
- the hub earth station Upon receipt at the hub earth station of an HTTP response from a Webserver, the hub earth station transmits the HTTP response in the outbound channel. If a browser rurming on a end-user node interfaced with a VSAT remote terminal originated the HTTP request that generated the HTTP response, the HTTP response is received in the outbound channel by that NSAT remote terminal, forwarded to the PIC Webcache in the normal manner, and delivered by the PIC Webcache, operating as a proxy server cache, to the requesting browser.
- the secondary monitoring component at the end-user node also forwards every HTTP response in the outbound channel to the buffering component running on the end-user node.
- the buffering component examines the HTTP response to determine the source and destination sockets and stores the contents of the HTTP response in the file (or database record) previously tagged with those sockets (but with source and destination sockets reversed in the HTTP request as compared with the HTTP response).
- the buffering component at the end-user node can match the HTTP request with the correct HTTP response, extract the URL identity from the HTTP request, and create a file (or database record) for the URL on the storage device(s) used by the PIC Webcache as if the browser itself had caused the PIC Webcache to cache the URL and its contents, but without displaying the URL contents and without issuing an HTTP request.
- the PIC system does not obtain or use a TCP port number allocated by the end-user node or interfere with normal browser operation. If the browser requests a PIC-cached URL in the future, the contents of the URL will already be in the PIC Webcache, and will be delivered instantly from the PIC Webcache to the browser.
- the Passive Internet Cache system without buffering at a hub node comprises a hub node of a star topology network that receives HTTP requests from one or more remote terminals, which hub node is interfaced with at least one external server computer and transmits UDP datagrams, HTTP requests, and HTTP responses in an outbound channel from said hub node of the star topology network, and one or more intermediate or end-user nodes of said network that receive said UDP datagrams, HTTP requests, and HTTP responses and which one or more intermediate or end-user nodes are associated with or interfaced with a means for socket-matching HTTP requests and HTTP responses and for storing in an end-user accessible cache the contents of a given HTTP response under the URL extracted from a correctly matched HTTP request.
- the Passive Internet Cache system with buffering at a hub node comprises a hub node of a star topology network that receives HTTP requests from one or more remote terminals, which hub node is interfaced with at least one external server computer, has a first means for socket-matching, and transmits UDP datagrams, HTTP requests, and HTTP responses in an outbound channel from said hub node of the star topology network, and one or more intermediate or end-user nodes of said network that receive said UDP datagrams, HTTP requests, and HTTP responses and which one or more intermediate or end-user nodes are associated with or interfaced with a second means for socket-matching HTTP requests and HTTP responses and for storing in an end-user accessible cache the contents of a given HTTP response under the URL extracted from a correctly matched HTTP request.
- FIG. 1 illustrates the current system of caching in a star topology, dual channel network.
- FIG 1 A illustrates message exchange when a URL is in a local cache.
- FIG IB illustrates message exchange when a URL is not in local or hub cache.
- FIG.2 illustrates the Passive Internet Cache embodiment with socket matching and PIC Webcache at an end-user node in a star topology, dual channel network (first embodiment).
- FIG. 2A illustrates the distribution of PIC components in the first embodiment.
- FIG. 2B illustrates passive listening and encapsulation at a hub node.
- FIG. 2C illustrates socket matching.
- FIG. 2D illustrates message exchange using socket matching to store URLs and
- FIG. 3 illustrates the Passive Internet Cache embodiment with socket matching at an intermediate node and with PIC Webcache at an end-user node in a star topology, dual channel network (second embodiment).
- FIG. 3 A illustrates the distribution of PIC components in the second embodiment.
- FIG.4 illustrates the Passive Internet Cache embodiment with socket matching and PIC Webcache at an intermediate node in a star topology, dual channel network (third embodiment).
- FIG. 4A illustrates the distribution of PIC components in the third embodiment.
- FIG. 5 illustrates the Passive Internet Cache embodiment with socket matching at the hub node and with secondary buffering and PIC Webcache at an end-user node in a star topology, dual channel network (fourth embodiment).
- FIG. 5 A illustrates the distribution of PIC components in the fourth embodiment.
- FIG. 6 illustrates the Passive Internet Cache embodiment with socket matching at the hub node, with secondary buffering at an intermediate node, and with PIC Webcache at an end-user node in a star topology, dual channel network (fifth embodiment).
- FIG. 6 A illustrates the distribution of PIC components in the fifth embodiment.
- FIG. 7 illustrates the Passive Internet Cache embodiment with socket matching at the hub node and with PIC Webcache at an intermediate node in a star topology, dual channel network (sixth embodiment).
- FIG. 7 A illustrates the distribution of PIC components in the sixth embodiment.
- FIG.8 illustrates the Passive Internet Cache embodiment with socket matching and PIC Webcache at an end-user node in a star topology, single channel network (seventh embodiment).
- FIG. 8 A illustrates the distribution of PIC components in the seventh embodiment.
- FIG. 9 illustrates the Passive Internet Cache embodiment with socket matching at an intermediate node and with PIC Webcache at an end-user node in a star topology, single channel network (eighth embodiment).
- FIG. 9A illustrates the distribution of PIC components in the eighth embodiment.
- FIG. 10 illustrates the Passive Internet Cache embodiment with socket matching and PIC Webcache at an intermediate node in a star topology, single channel network (ninth embodiment).
- FIG. 10A illustrates the distribution of PIC components in the ninth embodiment.
- FIG. 11 illustrates the Passive Internet Cache embodiment with socket matching at the hub node and with secondary buffering and PIC Webcache at an end-user node in a star topology, single channel network (tenth embodiment).
- FIG. 11 A illustrates the distribution of PIC components in the tenth embodiment.
- FIG. 12 illustrates the Passive Internet Cache embodiment with socket matching at the hub node, with secondary buffering at an intermediate node, and with PIC Webcache at an end-user node in a star topology, single channel network (eleventh embodiment).
- FIG. 12A illustrates the distribution of PIC components in the eleventh embodiment.
- FIG. 13 illustrates the Passive Internet Cache embodiment with socket matching at the hub node and with secondary buffering and PIC Webcache and at an intermediate node in a star topology, single channel network (twelfth embodiment).
- FIG. 13 A illustrates the distribution of PIC components in the twelfth embodiment.
- FIG. 14 is a block diagram of intermediate node and end-user node functional modules in a star topology, dual channel network.
- FIG. 14A is a block diagram of hub node functional modules node in a star topology, dual channel network.
- FIG. 15 is a block diagram of intermediate node and end-user node functional modules in a star topology, single channel network.
- FIG. 15A is a block diagram of hub node functional modules node in a star topology, single channel network.
- FIG. 16 is a block diagram of a PIC system with content authorization.
- FIG. 17 is a block diagram of error correction by a buffering component based on continuity of TCP sequence numbers. DESCRIPTION OF THE PREFERRED EMBODIMENTS
- FIGS. 1 to 17 Preferred embodiments of the invention will now be described with reference to FIGS. 1 to 17. It will be appreciated by those of ordinary skill in the art that the description given herein with respect to those figures is for exemplary purposes only and is not intended in any way to limit the scope of the invention.
- the Passive Internet Cache has five components, some of which may be distributed among hub, intermediate, and/or end-user nodes, as described below.
- the five component are: a monitoring component, an encapsulating component, a buffering component, an unencapsulating ("decapsulating") component, and a global cache (called a "PIC Webcache").
- a primary monitoring component and an encapsulation component are implemented at hub node(s) in all embodiments.
- a buffering component can be implemented at a hub node, intermediate node, and/or end-user node.
- the primary monitoring component at a hub node monitors all IP addresses and TCP ports involved in HTTP sessions in use by all nodes using inbound and outbound channels handled by such hub node, and provides those addresses and ports to the various implemented buffering component(s) to enable tracking of all IP addresses and TCP ports involved in HTTP sessions; such buffering and tracking enables the matching of source sockets and destination sockets used in each of the embodiments.
- the encapsulating component encapsulates HTTP requests in broadcast UDP (or other connectionless protocol suitable for broadcast or multicast transmission) messages that are transmitted from a hub node through an outbound channel and are addressed to all remote terminals that can receive that outbound channel.
- a secondary monitoring component, a decapsulating component, a buffering component, and a PIC Webcache can be implemented at an intermediate node or at an end-user node.
- the decapsulating component is interfaced or integral with a buffering component at an intermediate node or at an end-user node.
- An example of an intermediate node is a computer or set-top box interfaced with, or integral with, a remote terminal and also interfaced with one or more end-user nodes; the interfaces can be a local area network, a system bus, USB, or similar connectivity.
- "Associated with" means two hardware or software devices are either integral or very closely interfaced, as through a system bus, proximate area network, USB, high speed local area network, or other close range connectivity, for message exchange.
- Interfaced with means two hardware or software devices are closer in distance to each other than to the hub node, normally have a higher datarate connection between such devices than to the hub node, and are interconnected through a local area network, or other medium range connectivity, for message exchange.
- Buffer or “buffer memory” means random access memory, disk storage, or equivalent read/write technology suitable for the short term storage and retrieval of digital information.
- passive listening and encapsulation is implemented at a hub node of a dual channel, star topology network by providing a primary monitoring component (201) with unlimited, or "promiscuous,” access to all HTTP messages inbound from remote terminals.
- a hub node in such a star topology network typically has a plurality of remote terminals whose inbound channels (each denoted “Rev” in FIG. 2B) are received at the hub node, and whose TCP/IP messages are routed to the Internet, a private network, and/or a traditional cache.
- the primary monitoring component (201) listens to all inbound HTTP messages in such TCP/IP messages, and provides HTTP requests to the encapsulation component (202).
- the encapsulation component (202) encapsulates each HTTP request as a broadcast UDP (or other connectionless protocol suitable for broadcast or multicast transmission) message and provides each such message to the outbound channel of the hub node (denoted as "Xmit" in FIG. 2B).
- the distribution of the components of a PIC system within a star topology network defines the various embodiments of the invention. All embodiments of the PIC system require that a remote terminal output all HTTP responses received through the outbound channel, not just those HTTP responses with IP addresses assigned to intermediate nodes and end-user nodes interfaced with such remote terminal, to each instance of a secondary monitoring component associated with or interfaced with such remote terminal. Such output can be obtained by setting configuration options with some commonly available remote terminal or hub node systems.
- existing remote terminal and hub node systems may not support reception of HTTP responses by a remote terminal other than HTTP responses addressed to a specific remote terminal; in these cases, additional hardware and/or software components must be added to a remote terminal to provide the ability to receive all HTTP responses in an outbound channel.
- additional hardware and software components are required to receive all HTTP responses in an outbound channel, a signal splitter (e.g., a RF- or IF-band splitter for wireless outbound channels) and separate receiver/decoder installed at a remote terminal is usually sufficient.
- the HTTP requests and HTTP responses transmitted through the communications paths in a PIC system are not handled through a traditional TCP/IP stack and do not involve the use of TCP acknowledgements.
- the buffering component uses socket- matching to pair an HTTP request with the correct HTTP response.
- the buffering component (206) examines the packets forwarded by the secondary monitoring component (204).
- the field sequence observed in HTTP packets is: source IP address (abbreviated "IPs-" in FIG. 2C), destination IP address (abbreviated "IPd-” in FIG. 2C), source TCP port number (abbreviated "TCPs-" in FIG.
- the secondary monitoring component (204) forwards each HTTP response (the first packet in packet stream 220, in FIG 2C) directly to the buffering component (206) and forwards each UDP packet (the second packet in packet stream 220, in FIG 2C) to the decapsulation component (205, in FIG.2), which decapsulates any HTTP request contained in such packet and forwards the HTTP request so decapsulated to the buffering component (206).
- the buffering component (206) When the buffering component (206) receives an HTTP response, it examines the source and destination sockets, and checks to see if a file (or database record) in buffer memory containing an HTTP request has been tagged with those source and destination sockets. The source and destination sockets are reversed in an HTTP request as compared with the corresponding HTTP response. The buffering component compensates for the reversal of source and destination sockets when it compares HTTP requests and HTTP responses.
- the buffering component can match a received HTTP response with a buffered HTTP request, it extracts the URL identity from the HTTP request, and creates a file (or database record) for the URL on the storage device(s) (212, in FIG.2) used by the PIC Webcache (207, in FIG.2) as if the PIC Webcache itself had cached the URL. If the buffering component cannot match the a received HTTP response with a buffered HTTP request, the buffering component creates a file (or database record) tagged with the sockets of the HTTP response, and stores such file (or database record) in buffer memory.
- the HTTP response with addressing of "IPsb, IPda, TCPsb, TCPda,” in the first portion of packet stream (220) would be buffered and subsequently matched with the decapsulated HTTP request with addressing of "IPsa, IPdb, TCPsa, TCPdb,” in the second portion of packet stream (220).
- the buffering component (206) receives the HTTP request in the first packet in packet stream (221) that contains source and destination sockets that the buffering component cannot match with a previously buffered HTTP response, the buffering component creates a file (or database record) tagged with the sockets of that HTTP request, and buffers such file (or database record).
- the buffering component When the buffering component subsequently receives the HTTP response in the second portion of packet stream (221), it examines the source and destination sockets of that HTTP response, matches those sockets with the previously buffered file (or database record) tagged with those source and destination sockets (compensating for the reversal of source and destination sockets), extracts the URL identity from the HTTP request, and creates a file (or database record) for the URL on the storage device(s) (212) used by the PIC Webcache (207) as if the PIC Webcache itself had cached the URL. Regardless of whether the HTTP request or the HTTP response is received first, to receive and store the URL and the contents of the URL, the PIC system does not obtain or use a TCP port number allocated by the end-user node.
- FIG.2D illustrates the messages exchanged in the operation of a PIC Webcache in a PIC embodiment with buffering and PIC Webcache at an end-user node.
- an unseen remote terminal transmits an HTTP request that is monitored by the primary monitoring component at a hub node and handled as described above and as depicted in the upper, leftward message flows in FIG. 2D. That HTTP request is also sent in the customary manner from the hub node to a traditional proxy or cache as depicted in the upper, rightward message flows in FIG. 2D; if the URL is not found in the traditional proxy or cache, the HTTP request is forwarded to the Webserver identified in the URL.
- the buffering component in the first embodiment only proceeds with writing the contents of the HTTP response in the PIC Webcache under the URL contained in the HTTP request if no errors are detected in the HTTP response and HTTP request.
- the buffering component uses the error detection techniques of TCP, such as confirming a continuous series of TCP header sequence numbers, to detect errors. If no errors are detected, the buffering component writes the contents of the matched HTTP response in the PIC Webcache under the URL contained in the matching HTTP request. If errors are detected in an HTTP request, the request is discarded, and any HTTP responses that have not been matched after the expiration of an operator-controlled time period are also discarded.
- the buffering component can issue an HTTP request for a replacement HTTP response. If errors are detected in the HTTP response, and the intermediate node or end-user node does not have access to an inbound channel by which to issue an HTTP request, the matched but defective HTTP response and matching HTTP request are discarded. Normally, any single end-user node would only request a small portion of the contents of a PIC Webcache within a given time period, so such discarding of corrupted or missing HTTP responses and HTTP requests should have an insignificant impact on the overall performance improvements afforded by use of a PIC Webcache.
- FIGS. 14 and 14A are block diagrams of intermediate node, end-user node, and hub node functional modules in a star topology, dual channel network.
- FIGS. 15 and 15A are block diagrams of intermediate node, end-user node, and hub node functional modules in a star topology, single channel network.
- each sub-category there are three basic embodiments that are distinguished by whether a buffering component is implemented at an intermediate node or at an end-user node, and by whether a PIC Webcache is implemented at an intermediate node or at an end-user node, as illustrated in FIGS. 14 and 15 for dual channel and single channel networks, respectively.
- FIG.2 illustrates the Passive Internet Cache embodiment with socket matching and PIC Webcache at an end-user node in a star topology, dual channel network.
- FIG. 2A illustrates the distribution of PIC components in the first embodiment.
- FIG.2B illustrates passive listening and encapsulation.
- FIG. 2C illustrates socket matching.
- FIG. 2D illustrates message exchange using socket matching to store URLs and URL contents in a PIC Webcache in the first embodiment.
- Reference numerals for the first embodiment are to Fig. 2 unless otherwise noted.
- a first embodiment of the Passive Internet Cache system in a star topology, dual channel network implements a primary monitoring component (201) and an encapsulation component (202) at a hub node (203 in Fig.
- this embodiment of the Passive Internet Cache system provides the lowest cost end-user node for a PIC system. Assuming a remote terminal can output all HTTP responses by the use of configuration settings, the typical PIC components at the. end-user node are software modules installed on an end-user PC and, as such, require no hardware investment to implement.
- the PIC Webcache is configured as a proxy server cache and the Web browser on the end-user node is configured to use such proxy server cache.
- the primary monitoring component (201) at the hub node (203) monitors all inbound channels transmitted from all the remote terminals (209, 213) to the hub node (203).
- the primary monitoring component (201) copies all HTTP requests from the monitored inbound channels (214, 215), provides each HTTP request to the encapsulating component (202), and the encapsulating component (202) immediately encapsulates each copied HTTP request in a UDP (or other connectionless protocol suitable for broadcast or multicast transmission) message.
- the encapsulating component provides each UDP message to the outbound channel (216) for transmission in the outbound channel using a broadcast IP address and UDP port (or other suitable protocol, address, and port) monitored by all remote terminals that receive such outbound channel and are interfaced with PIC components on end-user nodes.
- the secondary monitoring component (204) on the end-user node (208) communicates through a network interface on the end-user node with the remote terminal (209). Using a first communications path (210) on the end-user node (208), the secondary monitoring component (204) also communicates with the decapsulation component (205), and the decapsulation component (205) communicates with the buffering component (206).
- the secondary monitoring component (204) copies all of the encapsulated UDP packets from the remote terminal (209) to the decapsulation component (205) through a first portion of the first communications path (210).
- the decapsulation component (205) removes the UDP encapsulation ("decapsulation"), and forwards each decapsulated HTTP request to the buffering component (206) at the end-user node (208 in FIG.2A) through a second portion of the first communications path (210).
- the buffering component (206) at the end-user node communicates with disk drive(s) (212) or other read/write storage device(s) associated with the end user node that are used by the PIC Webcache (207) for storage.
- the buffering component (206) stores the decapsulated HTTP request in buffer memory, and opens a file (or database record) tagged with the source socket (source IP address and TCP port number) and the destination socket (destination IP address and TCP port number) specified in the decapsulated HTTP request.
- the tagged file (or database record) would normally be on the storage device(s) used by the PIC Webcache.
- the tagged file (or database record) awaits the arrival of the contents of the relevant HTTP response to be delivered later from the buffering component.
- the hub node Upon receipt at the hub node of an HTTP response, the hub node (203 in FIG. 2 A) transmits the HTTP response in the outbound broadcast channel (216 in FIG. 2). If a browser running on a end-user node interfaced with a remote terminal originated the HTTP request that generated the HTTP response, the HTTP response is received in the outbound channel by that remote terminal, forwarded to the PIC Webcache in the normal manner, and delivered by the PIC Webcache, operating as a proxy server cache, to the requesting browser.
- the secondary monitoring component (204) forwards through a second communications path (211) to the buffering component on the end- user node all HTTP packets received by the remote terminal (209), not just those packets with an IP destination address of the end-user node (208).
- the buffering component on the end-user node examines the HTTP response to determine the source and destination sockets and stores the contents of the HTTP response in the file (or database record) previously tagged with those sockets (the source and destination sockets are reversed in the HTTP request as compared with the HTTP response).
- the buffering component at the end-user node can match the HTTP request with the correct HTTP response, extract the URL identity from the HTTP request, and create a file (or database record) for the URL on the storage device(s) (212) used by the PIC Webcache as if the PIC Webcache itself had cached the URL.
- the PIC system does not obtain or use a TCP port number allocated by the end-user node. If the browser requests that URL in the future, the contents of the URL will already be in the PIC Webcache serving the browser, and will be delivered instantly from the PIC Webcache to the browser.
- the buffering component at the end-user node stores the HTTP response in buffer memory, tagged by source socket and destination socket, until the associated HTTP request arrives via a UDP message from the hub node.
- the buffering component can match the HTTP request with the correct HTTP response, extract the URL identity from the HTTP request, and create a file (or database record) for the URL on the storage device(s) used by the PIC Webcache as if the PIC Webcache itself had cached the URL and its contents.
- FIG. 3 illustrates the Passive Internet Cache embodiment with socket matching at an intermediate node and with PIC Webcache at an end-user node in a star topology, dual channel network.
- FIG. 3 A illustrates the distribution of PIC components in the second embodiment. Reference numerals are to FIG. 3 unless otherwise noted.
- a second embodiment of the Passive Internet Cache system in a star topology, dual channel network implements a buffering component (306) at an intermediate node (317 in FIGS. 3 and 3A) and a PIC Webcache (307) at an end-user node (308 in FIGS. 3 and 3A.
- the second embodiment has the advantage of requiring only one instance of a buffering component interfaced with a given remote terminal; the buffering component serves all end-user nodes on one or more local area networks (or other local connectivity) served by that remote terminal.
- This embodiment provides fast end-user response times through the use of PIC Webcaches at end-user nodes.
- the use of a separate processor for the monitoring and buffering components at an intermediate node permits higher performance memory and a dedicated processor or processors to handle these functions, off-loading those processing requirements from the end-user nodes.
- TCP/IP is used in the local area network (or other connectivity) between the buffering component at the intermediate node and the PIC Webcache in end-user nodes.
- the second embodiment of the Passive Internet Cache system implements a primary monitoring component (301) and an encapsulation component (302) at a hub node, a secondary monitoring component (304) , a decapsulation component (305), and a buffering component (306) at a computer or set-top box that is interfaced with, or is an integral part of, a remote terminal (309) and is also interfaced with a local area network (318) (or other connectivity) that serves one or more end-user nodes, and the PIC Webcache (307) component atone or more end-user nodes (308).
- the end-user nodes may also communicate directly with a remote terminal for communications unrelated to the PIC system.
- the PIC Webcache in this embodiment is configured as a proxy server cache and the Web browser on the end-user node is configured to use such proxy server cache.
- the primary monitoring component (301) and the encapsulation component (302) of the PIC system at the hub node (303) function as described above.
- the secondary monitoring component (304) at the intermediate node communicates through a network, internal bus or other interface with the remote terminal.
- the secondary monitoring component (304) also communicates with the decapsulation component (305), and with the buffering component (306), at the intermediate node.
- the secondary monitoring component (304) copies from the remote terminal (309) to the decapsulation component (305) on the intermediate node all encapsulated UDP packets, and to the buffering component (306) on the intermediate node, all HTTP packets, received by the remote terminal, not just those packets with an IP destination address of the intermediate node or of end-user nodes served by that remote terminal.
- the secondary monitoring component (304) receives a UDP packet containing an encapsulated HTTP request, it provides such packet through a first portion of a first communications path (310) to the decapsulation component (305) at the intermediate node.
- the decapsulation component (305) decapsulates the HTTP request, and forwards each decapsulated HTTP request through a second portion of the first communications path (310) to the buffering component (306) at the intermediate node.
- the buffering component (306) at the intermediate node communicates with disk drive(s) or other read/write storage device(s) (312) associated with each end user node that are used by one or more end-user nodes' PIC Webcaches (307) for storage.
- the buffering component at the intermediate node stores the decapsulated HTTP request in buffer memory, and opens a file (or database record) tagged with the source socket (source IP address and TCP port number) and the destination socket (destination IP address and TCP port number) specified in the decapsulated HTTP request.
- the tagged file (or database record) would normally be on the storage device(s) used by each PIC Webcache interfaced with the intermediate node.
- the tagged file awaits the arrival of the contents of the relevant HTTP response to be delivered later by the buffering component.
- the hub node Upon receipt at the hub node of an HTTP response, the hub node (303 in FIG 3A) transmits the HTTP response in the outbound broadcast channel (316 in FIG. 3). If a browser running on a end-user node interfaced with a remote terminal originated the HTTP request that generated the HTTP response, the HTTP response is received in the outbound channel by that remote terminal, forwarded to the PIC Webcache in the normal manner, and delivered by the PIC Webcache, operating as a proxy server cache, to the requesting browser.
- the secondary monitoring component at the intermediate node forwards through a second communications path (311) every HTTP response in the outbound channel to the buffering component running on the intermediate node.
- the buffering component on the intermediate node examines the HTTP response to determine the source and destination sockets and stores the contents of the HTTP response in the file (or database record) previously tagged with those sockets (the source and destination sockets are reversed in the HTTP request as compared with the HTTP response).
- the buffering component at the intermediate node can match the HTTP request with the correct HTTP response, extract the URL identity from the HTTP request, and create a file (or database record) for the URL on the storage device(s) used by each PIC Webcache as if each PIC Webcache itself had cached the URL.
- the PIC system typically uses a local area network (318) and may use TCP port numbers allocated by end-user nodes interfaced with the intermediate node for the purpose of directly accessing and updating the PIC Webcache on the disk(s) of the end-user PCs. If the browser requests that URL in the future, the contents of the URL will already be in the PIC Webcache serving the browser, and will be delivered instantly from the PIC Webcache to the browser.
- the buffering component at the intermediate node stores the HTTP response in buffer memory, tagged by source socket and destination socket, until the correct (matchable sockets) HTTP request arrives via an encapsulated UDP message from the hub node.
- the buffering component can match the HTTP request with the correct HTTP response, extract the URL identity from the HTTP request, and create a file (or database record) for the URL on the storage device(s) used by a PIC Webcache as if the PIC Webcache itself had cached the URL and its contents.
- FIG.4 illustrates the Passive Internet Cache embodiment with socket matching and PIC Webcache at an intermediate node in a star topology, dual channel network.
- FIG.4A illustrates the distribution of PIC components in the third embodiment. Reference numerals are to FIG. 4 unless otherwise noted.
- a third embodiment of the Passive Internet Cache system in a star topology, dual channel network implements a buffering component (406) and a PIC Webcache (407) an intermediate node (417).
- This embodiment has the advantage of requiring only one instance of the secondary monitoring component, buffering component, and PIC Webcache to serve all end-user nodes on one or more local area networks (418) (or other local connectivity) interfaced with the intermediate node, and providing improved response time without the expense of have end-user nodes equipped with caching devices.
- high performance memory, storage, and dedicated processor(s) can provide performance improvements by off-loading processing and storage requirements from the end-user nodes.
- TCP/IP is used in the local area network (or other connectivity) between the intermediate node and the end-user nodes.
- the third embodiment of the Passive Internet Cache system implements a primary monitoring (401) and an encapsulation component (402) at a hub node, a secondary monitoring component (404), decapsulation component (405), buffering component (406), and PIC Webcache (407) at a computer or set-top box that is interfaced with, or is an integral part of, a remote terminal (409) and is also interfaced with a local area network (418) (or other connectivity) that serves one or more end-user nodes.
- the end-user nodes may also communicate directly with a remote terminal for communications unrelated to the PIC system.
- the PIC Webcache in this embodiment may be configured as a proxy server cache (i.e., browsers configured to use a TCP port for HTTP that is uniquely allocated to the PIC Webcache) or as a caching appliance (i.e., browsers need not be configured to use a TCP port for HTTP that is uniquely allocated to the PIC Webcache, and would normally use well-known TCP port 80).
- the Web browser on the end-user node must be configured for proxy server cache if the proxy configuration is implemented. If the PIC Webcache is configured as a caching appliance, it is not necessary to configure browsers on end-user nodes to use a caching appliance, since using well-known TCP port 80 in the destination socket directs HTTP requests through the caching appliance.
- the secondary monitoring component (404), and the decapsulation component (405), at the intermediate node communicate and function as described in the second embodiment.
- the buffering component (406) at the intermediate node communicates with disk drive(s) (412) or other read/write storage device(s) associated with the intermediate node that are used by one or more PIC Webcaches (407) at the intermediate node for storage.
- the buffering component at the intermediate node stores the decapsulated HTTP request in buffer memory, and opens a file (or database record) tagged with the source socket (source IP address and TCP port number) and the destination socket (destination IP address and TCP port number) specified in the decapsulated HTTP request.
- Multiple PIC Webcaches may be associated with the intermediate node to enable load-sharing or redundancy.
- the tagged file (or database record) would normally be on the storage device(s) used by the PIC Webcache at the intermediate node.
- the tagged file (or database record) awaits the arrival of the contents of the relevant HTTP response to be delivered later by the buffering component.
- the hub node Upon receipt at the hub node of an HTTP response, the hub node (403 in FIG 4A) transmits the HTTP response in the outbound broadcast channel (416 in FIG. 4). If a browser running on a end-user node interfaced through a PIC-equipped intermediate node to a remote terminal originated the HTTP request that generated the HTTP response, the HTTP response is received in the outbound channel by that remote terminal, forwarded to the PIC Webcache in the normal manner, and delivered by the PIC Webcache, operating either as a proxy server cache or as a caching appliance, to the requesting browser.
- the secondary monitoring component at the intermediate node forwards through a second communications path (411 ) every HTTP response in the outbound channel to the buffering component ninning on the intermediate node.
- the buffering component on the intermediate node examines the HTTP response to determine the source and destination sockets and stores the contents of the HTTP response in the file (or database record) previously tagged with those sockets (the source and destination sockets are reversed in the HTTP request as compared with the HTTP response).
- the buffering component at the intermediate node can match the HTTP request with the correct HTTP response, extract the URL identity from the HTTP request, and create a file (or database record) for the URL on the storage device(s) used by the PIC Webcache(s) at the intermediate node as if the relevant PIC Webcache itself had cached the URL.
- the PIC system does not obtain or use a TCP port number allocated by end-user nodes interfaced with the intermediate node. If a browser on an end-user node requests that URL in the future, the contents of the URL will already be in the PIC Webcache, and will be delivered from the PIC Webcache to the browser.
- the buffering component at the intermediate node stores the HTTP response in buffer memory, tagged by source socket and destination socket, until the correct (matchable sockets) HTTP request arrives via an encapsulated UDP message from the hub node.
- the buffering component can match the HTTP request with the correct HTTP response, extract the URL identity from the HTTP request, and create a file (or database record) for the URL on the storage device(s) used by the PIC Webcache(s) on the intermediate node as if the relevant PIC Webcache itself had cached the URL and its contents.
- FIG. 5 illustrates the Passive Internet Cache embodiment with socket matching at the hub node and with secondary buffering and PIC Webcache at an end-user node in a star topology, dual channel network.
- FIG. 5 A illustrates the distribution of PIC components in the fourth embodiment. Reference numerals are to FIG. 5 unless otherwise noted.
- a fourth embodiment of the Passive Internet Cache system in a star topology, dual channel network implements a primary monitoring component (501), an encapsulation component (502), and a primary buffering component (519) at a hub node, an initial socket matching function in the primary buffering component (519) at the hub node, and a secondary monitoring component (504), a secondary buffering component (506), a decapsulation component (505), and a PIC Webcache (507) at an end-user node (508 in FIG. 5 A).
- the use of a primary buffering component at the hub node permits a smaller buffer memory, lower performance storage, and a lower performance processor to be used by the secondary buffering component at the end-user node.
- the typical PIC components at the end user node are software modules installed on an end-user PC and, as such, require no hardware investment to implement.
- the PIC Webcache is configured as a proxy server cache and the Web browser on the end-user computer is configured to use such proxy server cache.
- the primary monitoring component (501) at the hub node monitors all inbound channels transmitted from all the remote terminals (509, 513) to the hub node .
- the primary monitoring component (501) copies all HTTP requests from the monitored inbound channels (514, 515), and forwards each HTTP request to the encapsulation component (502).
- the encapsulation component creates a UDP packet containing the HTTP request using a broadcast IP address and port as described above, and forwards the encapsulated packet to the primary buffering component (519) at the hub node.
- the primary buffering component (519) stores the encapsulated HTTP request in buffer memory, tagged with the source socket (source IP address and TCP port number) and the destination socket (destination IP address and TCP port number) specified in the HTTP request.
- the primary buffering component at the hub node examines the source and destination sockets in the IP packet containing the HTTP response and matches them with the destination and source sockets in the appropriate previously UDP-encapsulated IP packet containing the HTTP request.
- the primary monitoring component (501) Upon receipt at the hub node of an HTTP response, the primary monitoring component (501) provides the HTTP response to the primary buffering component (519) at the hub node.
- the HTTP response is not immediately broadcast by the hub node in the outbound channel.
- the primary buffering component (519) at the hub node examines the source and destination sockets in the IP packet containing the HTTP response and matches them with the destination and source sockets in the corresponding, previously UDP-encapsulated IP packet containing the HTTP request (the source and destination sockets are reversed in the HTTP request as compared with the HTTP response).
- the primary buffering component (519) soon after providing the encapsulated HTTP request to the outbound channel (516), provides the corresponding HTTP response to the outbound channel (516) for transmission to the remote terminals (509, 513).
- the secondary monitoring component (504) at the end-user node (508, in FIG.5 A) communicates through a network interface on the end-user node with the remote terminal (509).
- the secondary monitoring component (504) also communicates through a first communications path (510) with the decapsulation component (505), and thence with the secondary buffering component (506), at the end-user node.
- the secondary monitoring component (504) copies from the remote terminal through the first communications path (510) to the decapsulation component (505) on the end-user node all encapsulated UDP packets, and through a second communications path (511) to the secondary buffering component on the end-user node all HTTP packets, received by the remote terminal, not just those packets with an IP destination address of the end-user node.
- the secondary monitoring component (504) on the end-user node When the secondary monitoring component (504) on the end-user node receives a UDP packet containing an encapsulated HTTP request, it provides through a first portion of the first communications path (510) such packet to the decapsulation component.
- the decapsulation component removes the UDP encapsulation ("decapsulation"), and forwards through a second portion of the first communications path (510) each decapsulated HTTP request to the buffering component at the end-user node.
- the buffering component at the end-user node communicates with disk drive(s) or other read/write storage device(s) associated with the end user node that are used by the PIC Webcache for storage.
- the buffering component stores the decapsulated HTTP request in buffer memory, and opens a file (or database record) tagged with the source socket (source IP address and TCP port number) and the destination socket (destination IP address and TCP port number) specified in the decapsulated HTTP request.
- the tagged file (or database record) would normally be on the storage device(s) used by the PIC Webcache.
- the tagged file (or database record) awaits the arrival of the contents of the relevant HTTP response from the buffering component.
- the HTTP response is received in the outbound channel by that remote terminal, forwarded to the PIC Webcache in the normal manner, and delivered by the PIC Webcache, operating as a proxy server cache, to the requesting browser.
- the secondary monitoring component (504) at the end- user node also forwards through the second communications path (511) every HTTP response in the outbound channel to the secondary buffering component (506) running on the end-user node. If a browser running on an end-user node interfaced with a remote terminal did not originate the HTTP request that generated the HTTP response, the contents of the HTTP response are not passed to the browser upon receipt.
- the secondary buffering component on the end-user node examines the HTTP response to determine the source and destination sockets and stores the contents of the HTTP response in the file (or database record) previously tagged with those sockets (the source and destination sockets are reversed in the HTTP request as compared with the HTTP response).
- the secondary buffering component at the end-user node can match the HTTP request with the correct HTTP response, extract the URL identity from the HTTP request, and create a file (or database record) for the URL on the storage device(s) (512) used by the PIC Webcache (507) as if the PIC Webcache itself had cached the URL.
- the PIC system does not obtain or use a TCP port number allocated by the end- user node. If the browser requests that URL in the future, the contents of the URL will already be in the PIC Webcache serving the browser, and will be delivered instantly from the PIC Webcache to the browser.
- FIG. 6 illustrates the Passive Internet Cache embodiment with socket matching at the hub node, with secondary buffering at an intermediate node, and with PIC Webcache at an end-user node in a star topology, dual channel network.
- FIG. 6A illustrates the distribution of PIC components in the fifth embodiment. Reference numerals are to FIG. 6 unless otherwise noted.
- a fifth embodiment of the Passive Internet Cache system in a star topology dual channel network implements a primary monitoring component (601), an encapsulation component (602), and a primary buffering component (619) at the hub node, an initial socket matching function in the primary buffering component at the hub node, and a secondary monitoring component (604), a secondary buffering component (606), and a decapsulation component (605) at an intermediate node, and a PIC Webcache (607) at an end-user node.
- a primary buffering component at the hub node permits smaller buffer memory and lower performance storage and processor to be used by the secondary buffering component at the intermediate node.
- the primary buffering component (619) stores the encapsulated HTTP request in buffer memory at the hub node, tagged with the source socket (source IP address and TCP port number) and the destination socket (destination IP address and TCP port number) specified in the HTTP request.
- the primary monitoring component (601) Upon receipt at the hub node of an HTTP response, the primary monitoring component (601) provides the HTTP response to the primary buffering component (619) at the hub node.
- the HTTP response is not immediately broadcast by the hub node in the outbound channel.
- the primary buffering component (619) at the hub node examines the source and destination sockets in the IP packet containing the HTTP response and matches them with the destination and source sockets in the associated, previously UDP-encapsulated IP packet containing the HTTP request (the source and destination sockets are reversed in the HTTP request as compared with the HTTP response). After receiving both the HTTP request and the HTTP response, the primary buffering component (619) provides the HTTP request to the outbound channel (616) for transmission in the outbound channel using a broadcast IP address and UDP port (or other suitable protocol, address, and port) monitored by all remote terminals that receive such outbound channel and are interfaced with local PIC components. The primary buffering component (619), soon after providing the encapsulated HTTP request to the outbound channel (616), provides the corresponding HTTP response to the outbound channel (616) for transmission to the remote terminals (609, 613).
- the secondary monitoring component (604) at the intermediate node (617 in FIG. 6A) communicates through a network interface on the intermediate node with the remote terminal.
- the secondary monitoring component (604) also communicates with the decapsulation component (605), and with the secondary buffering component (606), at the intermediate node.
- the secondary monitoring component (604) copies from the remote terminal (603) and forwards through a first portion of a first communications path (610) to the decapsulation component (605) on the intermediate node all encapsulated UDP packets, and through a second communications path (611) to the secondary buffering component on the intermediate node all HTTP packets, received by the remote terminal, not just those packets with an IP destination address of the intermediate node or of end- user nodes served by that remote terminal.
- the secondary monitoring component (604) on the intermediate node When the secondary monitoring component (604) on the intermediate node receives a UDP packet containing an encapsulated HTTP request, it provides such packet to the decapsulation component through the first portion of the first communications path (610).
- the decapsulation component removes the UDP encapsulation ("decapsulation"), and forwards through a second portion of the first communications path (611) each decapsulated HTTP request to the secondary buffering component (606) at the intermediate node.
- the secondary buffering component (606) at the intermediate node communicates with disk drive(s) (612) or other read/write storage device(s) associated with each end user node that are used by one or more end-user nodes' PIC Webcaches for storage.
- the secondary buffering component stores the decapsulated HTTP request in buffer memory, and opens a file (or database record) tagged with the source socket (source IP address and TCP port number) and the destination socket (destination IP address and TCP port number) specified in the decapsulated HTTP request.
- the tagged file (or database record) would normally be on the storage device(s) used by each PIC Webcache interfaced with the intermediate node.
- the tagged file (or database record) awaits the arrival of the contents of the relevant HTTP response from the buffering component.
- the HTTP response is received in the outbound channel by that remote terminal, forwarded to each PIC Webcache in the normal manner, and delivered by the PIC Webcache associated with an end-user node, operating as a proxy server cache, to the requesting browser.
- the secondary monitoring component (604) at the intermediate node also forwards through the second communications path (611) every HTTP response in the outbound channel to the secondary buffering component (606) running on the intermediate node. If a browser running on an end-user node interfaced with a remote terminal did not originate the HTTP request that generated the HTTP response, the contents of the HTTP response are not passed to the browser upon receipt.
- the secondary buffering component on the intermediate node examines the HTTP response to determine the source and destination sockets and stores the contents of the HTTP response in the file (or database record) previously tagged with those sockets (the source and destination sockets are reversed in the HTTP request as compared with the HTTP response).
- the secondary buffering component at the intermediate node can match the HTTP request with the correct HTTP response, extract the URL identity from the HTTP request, and create a file (or database record) for the URL on the storage device(s) used by each PIC Webcache as if each PIC Webcache itself had cached the URL.
- the PIC system To receive and store the HTTP response, the PIC system typically uses a local area network (618) and may use a TCP port number allocated by an end-user node for the purpose of directly accessing the disk area of the PIC Webcache on the end-user node. If a browser requests that URL in the future, the contents of the URL will already be in the PIC Webcache serving the browser, and will be delivered instantly from the PIC Webcache to the browser.
- a local area network (618) and may use a TCP port number allocated by an end-user node for the purpose of directly accessing the disk area of the PIC Webcache on the end-user node.
- FIG. 7 illustrates the Passive Internet Cache embodiment with socket matching at the hub node and with PIC Webcache at an intermediate node in a star topology, dual channel network.
- FIG. 7A illustrates the distribution of PIC components in the sixth embodiment. Reference numerals are to FIG. 7 unless otherwise noted.
- a sixth embodiment of the Passive Internet Cache system in a star topology dual channel network implements a primary monitoring component (701), an encapsulation component (702), and a primary buffering component (719) at a hub node, an initial socket matching function in the primary buffering component (719) at the hub node, and a secondary monitoring component (704), a secondary buffering component (706), a decapsulation component (705), and a PIC Webcache (707) at an intermediate node (717 in FIG. 7A).
- the use of a primary buffering component at the hub node permits smaller buffer memory and lower performance storage and processor to be used by the secondary buffering component at the intermediate node.
- This embodiment has the advantage of requiring only one instance of the secondary monitoring component, buffering component, and PIC Webcache to serve all end-user nodes on one or more local area networks (or other local connectivity) interfaced with the intermediate node, and providing improved response time without the expense of have end-user nodes equipped with caching devices. Additionally, high performance memory, storage, and dedicated processor can provide performance improvements by off-loading processing and storage requirements from the end-user nodes. The end-user nodes may also communicate directly with a remote terminal for communications unrelated to the PIC system.
- the PIC Webcache in this embodiment may be configured as a proxy server cache (i.e., browsers configured to use a TCP port for HTTP that is uniquely allocated to the PIC Webcache) or as a caching appliance (i.e., browsers need not be configured to use a TCP port for HTTP that is uniquely allocated to the PIC Webcache, and would normally use well- known TCP port 80).
- the Web browser on the end-user node must be configured for proxy server cache if the proxy configuration is implemented. If the PIC Webcache is configured as a caching appliance, it is not necessary to configure browsers on end-user nodes to use the caching appliance, since using well-known TCP port 80 in the destination socket directs HTTP requests through the caching appliance.
- the primary momtoring component (701 ), the primary buffering component (719), and the encapsulation component (702) of the PIC system at the hub node function as described above for the fourth and fifth embodiments.
- the secondary monitoring component (704), the decapsulation component (705), first communications path (710), and second communications path (711) at the intermediate node function as described above for the fifth embodiment.
- the secondary buffering component (706) at the intermediate node communicates with disk drive(s) (712) or other read/write storage device(s) located at the intermediate node that are used by one or more PIC Webcaches at the intermediate node for storage.
- the secondary buffering component (706) at the intermediate node stores the decapsulated HTTP request in buffer memory, and opens a file (or database record) tagged with the source socket (source IP address and TCP port number) and the destination socket (destination IP address and TCP port number) specified in the decapsulated HTTP request.
- the tagged file (or database record) would normally be on the storage device(s) used by a given PIC Webcache at the intermediate node. Multiple PIC Webcaches may be associated with the intermediate node to enable load-sharing or redundancy.
- the tagged file awaits the arrival of the contents of the relevant HTTP response from the buffering component.
- the HTTP response is received in the outbound channel by that remote terminal, forwarded to the relevant PIC Webcache in the normal manner, and delivered by the PIC Webcache, operating either as a proxy server cache or as a cascaded caching appliance, to the requesting browser.
- the secondary monitoring component at the intermediate node forwards every HTTP response in the outbound channel to the secondary buffering component running on the intermediate node. If a browser running on an end-user node interfaced with a remote terminal did not originate the HTTP request that generated the HTTP response, the contents of the HTTP response are not passed to the browser upon receipt.
- the secondary buffering component on the intermediate node examines the HTTP response to determine the source and destination sockets and stores the contents of the HTTP response in the file (or database record) previously tagged with those sockets (the source and destination sockets are reversed in the HTTP request as compared with the HTTP response).
- the secondary buffering component at the intermediate node can match the HTTP request with the correct HTTP response, extract the URL identity from the HTTP request, and create a file (or database record) for the URL on the storage device(s) used by one or more PIC Webcaches at the intermediate node as if the PIC Webcache itself had cached the URL and its contents.
- the PIC system does not obtain or use a TCP port number allocated by end-user nodes interfaced with the intermediate node. If a browser on an end-user node requests that URL in the future, the contents of the URL will already be in the relevant PIC Webcache, and will be delivered from the PIC Webcache to the browser. Seventh Embodiment: Buffering and PIC Webcache at end-user node (RO: Socket Matching at EUN)
- FIG.8 illustrates the Passive Internet Cache embodiment with socket matching and PIC Webcache at an end-user node in a star topology, single channel network.
- FIG. 8 A illustrates the distribution of PIC components in the seventh embodiment. Reference numerals are to FIG. 8 unless otherwise noted.
- a seventh embodiment of the PIC system is structurally and functionally identical the first embodiment, except the remote terminal is receive only and cannot initiate HTTP requests.
- the inability to initiate HTTP requests, or other return channel messages, does not prevent or impair the operation of the components of the PIC system.
- the PIC Webcache built at an end-user node reflects the HTTP requests initiated by other end-user nodes that have an inbound channel.
- FIG. 9 illustrates the Passive Internet Cache embodiment with socket matching at an intermediate node and with PIC Webcache at an end-user node in a star topology, single channel network.
- FIG. 9A illustrates the distribution of PIC components in the eighth embodiment. Reference numerals are to FIG. 9 unless otherwise noted.
- An eighth embodiment of the PIC system is structurally and functionally identical the second embodiment, except the remote terminal is receive only and cannot initiate HTTP requests.
- the inability to initiate HTTP requests, or other return channel messages, does not prevent or impair the operation of the components of the PIC system.
- the PIC Webcache built at an end-user node reflects the HTTP requests initiated by other end-user nodes that have an inbound channel.
- FIG. 10 illustrates the Passive Internet Cache embodiment with socket matching and PIC Webcache at an intermediate node in a star topology, single channel network.
- FIG. 10A illustrates the distribution of PIC components in the ninth embodiment. Reference numerals are to FIG. 10 unless otherwise noted.
- a ninth embodiment of the PIC system is structurally and functionally identical the third embodiment, except the remote terminal is receive only and cannot initiate HTTP requests.
- the inability to initiate HTTP requests, or other return channel messages, does not prevent or impair the operation of the components of the PIC system.
- the PIC Webcache built at an intermediate node reflects the HTTP requests initiated by other end- user nodes that have an inbound channel.
- FIG. 11 illustrates the Passive Internet Cache embodiment with socket matching at the hub node and with secondary buffering and PIC Webcache at an end-user node in a star topology, single channel network.
- FIG. 11A illustrates the distribution of PIC components in the tenth embodiment. Reference numerals are to FIG. 11 unless otherwise noted.
- a tenth embodiment of the PIC system is structurally and functionally identical the fourth embodiment, except the remote terminal is receive only and cannot initiate HTTP requests.
- the inability to initiate HTTP requests, or other return channel messages, does not prevent or impair the operation of the components of the PIC system.
- the PIC Webcache built at an end-user node reflects the HTTP requests initiated by other end-user nodes that have an inbound channel.
- Split Buffering hub node and intermediate node
- PIC Webcache at end-user node RO: Socket Matching at HN
- FIG. 12 illustrates the Passive Internet Cache embodiment with socket matching at the hub node, with secondary buffering at an intermediate node, and with PIC Webcache at an end-user node in a star topology, single channel network.
- FIG. 12A illustrates the distribution of PIC components in the eleventh embodiment. Reference numerals are to FIG. 12 unless otherwise noted.
- An eleventh embodiment of the PIC system is structurally and functionally identical the fifth embodiment, except the remote terminal is receive only and cannot initiate HTTP requests.
- the inability to initiate HTTP requests, or other return channel messages, does not prevent or impair the operation of the components of the PIC system.
- the PIC Webcache built at an end-user node reflects the HTTP requests initiated by other end-user nodes that have an inbound channel.
- FIG. 13 illustrates the Passive Internet Cache embodiment with socket matching at the hub node and with secondary buffering and PIC Webcache and at an intermediate node in a star topology, single channel network.
- FIG. 13 A illustrates the distribution of PIC components in the twelfth embodiment. Reference numerals are to FIG. 13 unless otherwise noted.
- a twelfth embodiment of the PIC system is structurally and functionally identical the sixth embodiment, except the remote terminal is receive only and cannot initiate HTTP requests. The inability to initiate HTTP requests, or other return channel messages, does not prevent or impair the operation of the components of the PIC system.
- the PIC Webcache built at an intermediate node reflects the HTTP requests initiated by other end- user nodes that have an inbound channel.
- a PIC system would normally be configured so that the same HTTP request after being decapsulated from a UDP message, after receipt of the socket-matched HTTP response, causes an overwrite of the URL in the PIC Webcache that was already written in response to the HTTP response addressed directly to that end-user node's IP address and TCP port number (rather than through the PIC system).
- Such an implementation is said to have "exhaustive writing" of HTTP requests received by the PIC buffering component through UDP messages (i.e., does not need to recognize local addresses before writing the URL processed through the PIC system).
- a PIC buffering component on an end-user node can be designed for "selective writing" so that it does not write any HTTP request received by the PIC monitoring component through UDP messages to the PIC Webcache if the destination IP address of the HTTP response is that of the node on which the PIC Webcache is running.
- a PIC system can work with encrypted HTTP messages. If encrypted HTTP messages are exchanged, and the necessary decryption key is not available to a PIC system, the PIC system is unable to use (or possibly detect) HTTP messages that are encrypted. In all embodiments of the PIC system, encrypted payloads are simply handled as any other message, i.e. cached in the encrypted form if TCP/IP header information is available and HTTP commands are decipherable, or discarded if not. Independently of the PIC system components, encrypted HTTP messages are processed in a normal manner, so that a browser sending an encrypted HTTP request can still receive an encrypted HTTP response.
- the return channel from a hub node through one or more monitoring components, encapsulating component, decapsulating component, one or more buffering components, to each PIC Webcache can also carry UDP messages that can be used to control HTTP content cached by a PIC Webcache based on the URL in an HTTP request or the source IP address of an HTTP response.
- Such access control can be used to permit or prevent caching of URLs and their content in a PIC Webcache in order to implement a subscription authorization system, or simply to block content from objectionable network domains, hosts, etc.
- implementation of access control using a PIC system requires a content authorization program and database associated with or interfaced with the hub node (1620), preparation of content authorization messages addressed to one or more buffering components associated with remote terminals by the content authorization program, encapsulation of the authorization control messages by the encapsulating component (1602) at a hub node, transmission of the encapsulated authorization control messages in the outbound channel (1616), delivery of the decapsulated authorization control messages to the each buffering component in the same manner as delivery of decapsulated HTTP requests as described above, and execution of the authorization control message by an intermediate node content authorization component (1621) associated with a buffering component (1606) and/or by an end-user node content authorization component (1622) associated with a PIC Webcache (1607).
- the authorization control message determines what URLs are cached in a given PIC Webcaches; messages exchanged between the buffering component (1606) and a given intermediate node or end-user node content authorization component determine what URLs are blocked from caching.
- Content authorization components (1621, 1622) associated with or interfaced with a remote terminal prevent a PIC Webcache from caching a URL or source IP address that is specified as unauthorized ("blocked") for a given PIG Webcache.
- Content authorization through a content authorization program and database is known in the art, but its use in conjunction with a PIC system is novel.
- a content authorization component at different end-user nodes can be used to create end-user PIC Webcaches with different content, but associated with a single intermediate node (1617) and intermediate node content authorization component (1621).
- a content authorization component (1621) at an intermediate node (1617) an additional point of content control is introduced.
- Content authorization at an intermediate node PIC Webcache (not illustrated) can be implemented in networks that have some end-user nodes equipped with PIC Webcaches and some that are not equipped with PIC Webcaches. Different end-user nodes can also be assigned to use different PIC Webcaches, and thereby have access to different content.
- the buffering component at an intermediate node or at an end-user node can contain a program that monitors whether the payload of an HTTP request or HTTP response has errors based on common error checking methods, such as packet sequence number continuity.
- a given HTTP message may require multiple TCP/IP packets for transmission.
- TCP inserts a sequence number into each packet used to transmit a given HTTP message.
- a PIC buffering component associated with or interfaced with a remote terminal can be configured to discard HTTP messages determined by the buffering component to have missing TCP sequence numbers. If the remote terminal associated with or interfaced with a buffering component has inbound channel capability, and the buffering component determines that an HTTP response has a corrupted payload, the buffering component can (optionally) use the URL in the decapsulated HTTP request to generate an HTTP request from the end-user node (using normal TCP/IP procedures) for the URL at issue, and obtain another HTTP response from the relevant Webserver.
- a first end-to-end communications path exists through a primary monitoring component and encapsulating component at a hub node, then through an outbound channel from the hub node, then through a remote terminal to a secondary monitoring component and decapsulating component to a buffering component; for HTTP responses, a second end-to-end communications path exists from external server computers or traditional caches through the outbound channel of the hub node, then through the remote terminal to the secondary monitoring component, and then to the buffering component.
- a first end-to-end communications path exists through a primary monitoring component, encapsulating component, and primary buffering component at a hub node, through the outbound channel from the hub node, then through a remote terminal to a secondary monitoring component and decapsulating component, then to a secondary buffering component; for HTTP responses, a second end-to-end communications path exists from external server computers or traditional caches through the primary buffering component at a hub node, then through the outbound channel from the hub node, then through a remote terminal to the secondary monitoring component and then to the secondary buffering component.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Radio Relay Systems (AREA)
Abstract
Description
Claims
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| AU2001263118A AU2001263118A1 (en) | 2000-05-15 | 2001-05-15 | A system and method for an internet cache |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US57105300A | 2000-05-15 | 2000-05-15 | |
| US09/571,053 | 2000-05-15 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| WO2001088761A2 true WO2001088761A2 (en) | 2001-11-22 |
| WO2001088761A3 WO2001088761A3 (en) | 2002-10-10 |
Family
ID=24282137
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/US2001/015575 Ceased WO2001088761A2 (en) | 2000-05-15 | 2001-05-15 | A system and method for an internet cache |
Country Status (2)
| Country | Link |
|---|---|
| AU (1) | AU2001263118A1 (en) |
| WO (1) | WO2001088761A2 (en) |
Cited By (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2003056718A1 (en) * | 2002-01-04 | 2003-07-10 | Klaus Rock | Method for the reduction of latency during interactive data communication via a satellite network |
| WO2004088949A3 (en) * | 2003-04-02 | 2005-01-27 | Klaus Rock | Method for reducing latency periods during interactive data communication between a terminal server and a terminal server client in a geostationary satellite network |
| US7389243B2 (en) | 2003-01-31 | 2008-06-17 | Gross John N | Notification system and method for media queue |
| US8006281B2 (en) | 2006-12-21 | 2011-08-23 | Microsoft Corporation | Network accessible trusted code |
| CN101414838B (en) * | 2008-12-02 | 2012-07-04 | 中国电子科技集团公司第十四研究所 | Passive microwave interception system |
| US8433622B2 (en) | 2003-05-28 | 2013-04-30 | Media Queue, Llc | Method of controlling electronic commerce queue |
| US8738541B2 (en) | 2003-06-25 | 2014-05-27 | Media Queue, Llc | Method of processing rental requests and returns |
| TWI896253B (en) | 2024-02-20 | 2025-09-01 | 日商鎧俠股份有限公司 | cache server |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5959989A (en) * | 1997-06-25 | 1999-09-28 | Cisco Technology, Inc. | System for efficient multicast distribution in a virtual local area network environment |
| US5987233A (en) * | 1998-03-16 | 1999-11-16 | Skycache Inc. | Comprehensive global information network broadcasting system and implementation thereof |
| US6392993B1 (en) * | 1998-06-29 | 2002-05-21 | Microsoft Corporation | Method and computer program product for efficiently and reliably sending small data messages from a sending system to a large number of receiving systems |
-
2001
- 2001-05-15 WO PCT/US2001/015575 patent/WO2001088761A2/en not_active Ceased
- 2001-05-15 AU AU2001263118A patent/AU2001263118A1/en not_active Abandoned
Cited By (9)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2003056718A1 (en) * | 2002-01-04 | 2003-07-10 | Klaus Rock | Method for the reduction of latency during interactive data communication via a satellite network |
| US8082357B2 (en) | 2002-01-04 | 2011-12-20 | Klaus Rock | Method for reducing the latency time for interactive data communication via a satellite network |
| US7389243B2 (en) | 2003-01-31 | 2008-06-17 | Gross John N | Notification system and method for media queue |
| WO2004088949A3 (en) * | 2003-04-02 | 2005-01-27 | Klaus Rock | Method for reducing latency periods during interactive data communication between a terminal server and a terminal server client in a geostationary satellite network |
| US8433622B2 (en) | 2003-05-28 | 2013-04-30 | Media Queue, Llc | Method of controlling electronic commerce queue |
| US8738541B2 (en) | 2003-06-25 | 2014-05-27 | Media Queue, Llc | Method of processing rental requests and returns |
| US8006281B2 (en) | 2006-12-21 | 2011-08-23 | Microsoft Corporation | Network accessible trusted code |
| CN101414838B (en) * | 2008-12-02 | 2012-07-04 | 中国电子科技集团公司第十四研究所 | Passive microwave interception system |
| TWI896253B (en) | 2024-02-20 | 2025-09-01 | 日商鎧俠股份有限公司 | cache server |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2001088761A3 (en) | 2002-10-10 |
| AU2001263118A1 (en) | 2001-11-26 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US9264512B2 (en) | Performance enhancing proxy | |
| US20040177158A1 (en) | Network address translation techniques for selective network traffic diversion | |
| US6473406B1 (en) | Method and apparatus for transparently proxying a connection | |
| US6894981B1 (en) | Method and apparatus for transparently proxying a connection | |
| US8938553B2 (en) | Cooperative proxy auto-discovery and connection interception through network address translation | |
| US7376715B2 (en) | Asynchronous hypertext messaging system and method | |
| US8762478B2 (en) | System and method for acceleration of a secure transmission over satellite | |
| US7948921B1 (en) | Automatic network optimization | |
| US6138162A (en) | Method and apparatus for configuring a client to redirect requests to a caching proxy server based on a category ID with the request | |
| KR100342975B1 (en) | A system and method for providing internet broadcasting data based on hierarchical structure and distributed IP multicasting | |
| US9172620B2 (en) | Cooperative proxy auto-discovery and connection interception | |
| CN100508478C (en) | Universal plug and play mirroring device, system and method | |
| US8254307B2 (en) | Method and apparatus for improving utilization efficiency of wireless links for web-based applications | |
| US7318100B2 (en) | Cooperative proxy auto-discovery and connection interception | |
| US7136359B1 (en) | Method and apparatus for transparently proxying a connection | |
| US20010052015A1 (en) | Push-pull sevices for the internet | |
| CA2408766A1 (en) | Content delivery network bypass system | |
| ES2315415T3 (en) | PROCEDURE AND DEVICE FOR SUPERVISION THROUGH FILTERS FOR IP MULTIDIFUSION SERVICES. | |
| WO2001088761A2 (en) | A system and method for an internet cache | |
| US8914480B1 (en) | Method and device for transparent interception of socket connections | |
| US10051092B2 (en) | Method and device for transparent interception of socket connections | |
| van Renesse et al. | Connecting RPC-based distributed systems using wide-area networks | |
| Baras et al. | Fast asymmetric Internet over wireless satellite-terrestrial networks | |
| Bauer et al. | A reliable multicast transport protocol for a global broadcast service-based network | |
| US8630298B2 (en) | Dispersed high level devices in a network environment |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AK | Designated states |
Kind code of ref document: A2 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW |
|
| AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
| AK | Designated states |
Kind code of ref document: A3 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG US UZ VN YU ZA ZW |
|
| AL | Designated countries for regional patents |
Kind code of ref document: A3 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
| REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
| 122 | Ep: pct application non-entry in european phase | ||
| NENP | Non-entry into the national phase |
Ref country code: JP |