Caching content and state data at a network element
First Claim
1. A method of responding to a request using server response data that is cached at a network element, the method comprising the computer-implemented steps of:
- intercepting, at the network element, one or more data packets that a client application addressed to a server application that is hosted on a device other than the network element;
determining an application layer message that is contained in one or more payload portions of the one or more data packets, wherein the application layer message specifies a particular request for specified data from the server application;
determining a portion of the specified data that is contained in a cache maintained at the network element;
sending, toward the server application, a particular message that requests dynamically generated data that is not contained in the cache, wherein the particular message does not request the portion of the specified data that is contained in the cache;
receiving, from the server application, a first response that contains the dynamically generated data; and
sending, toward the client application, a second response that contains both the dynamically generated data and the portion of the specified data that is contained in the cache.
2 Assignments
0 Petitions
Accused Products
Abstract
Methods are disclosed for caching content and state data at a network element. In one embodiment, data packets are intercepted at a network element. An application layer message, which specifies a request for specified data from a server application, is determined from the data packets. A first portion of the specified data contained in the network element'"'"'s cache is determined. A message that requests a second portion of the data not contained in the cache is sent toward a server application. A first response that contains the second portion, but not the first portion, is received. A second response, which contains the first and second portions, is sent toward a client application. In one embodiment, data packets are intercepted at the network element. An application layer message, which specifies session or database connection state information, is determined from the data packets. The state information is cached at the network element.
-
Citations
53 Claims
-
1. A method of responding to a request using server response data that is cached at a network element, the method comprising the computer-implemented steps of:
-
intercepting, at the network element, one or more data packets that a client application addressed to a server application that is hosted on a device other than the network element;
determining an application layer message that is contained in one or more payload portions of the one or more data packets, wherein the application layer message specifies a particular request for specified data from the server application;
determining a portion of the specified data that is contained in a cache maintained at the network element;
sending, toward the server application, a particular message that requests dynamically generated data that is not contained in the cache, wherein the particular message does not request the portion of the specified data that is contained in the cache;
receiving, from the server application, a first response that contains the dynamically generated data; and
sending, toward the client application, a second response that contains both the dynamically generated data and the portion of the specified data that is contained in the cache. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 12)
-
-
11. A method of caching state information at a router in a packet-switched network, the method comprising the computer-implemented steps of:
-
intercepting, at the router, one or more data packets that are not destined for the router;
determining an application layer message that is contained in one or more payload portions of the one or more data packets, wherein the application layer message specifies state information; and
storing the state information in a cache of application-oriented data at the router. - View Dependent Claims (13, 14)
-
-
15. A method of responding to a request using data cached at a network element, the method comprising the computer-implemented steps of:
-
intercepting, at the network element, one or more data packets that a client application addressed to a server application that is hosted on a device other than the network element;
determining an application layer message that is contained in one or more payload portions of the one or more data packets, wherein content of the application layer message follows one or more headers within the payload portions, and wherein the content of the application layer message specifies a particular request for specified data from the server application;
generating a cache key based on at least a portion of the content of the application layer message;
locating, within a cache at the network element, data that is associated, in the cache, with the cache key; and
sending, toward the client application, a response that contains the data that is associated with the cache key. - View Dependent Claims (16, 17, 18, 19)
-
-
20. A method of caching data at a network element, the method comprising the computer-implemented steps of:
-
intercepting, at a first network element, one or more first data packets that a client application addressed to a server application that is hosted on a device other than the first network element;
determining a first application layer message that is contained in one or more payload portions of the one or more first data packets, wherein content of the first application layer message follows one or more headers within the payload portions, and wherein the content of the first application layer message specifies a particular request for specified data from the server application;
generating a cache key based on at least a portion of the content of the first application layer message;
intercepting, at the first network element, one or more second data packets that a server application addressed to the client application in response to the particular request;
determining a second application layer message that is contained in one or more payload portions of the one or more second data packets, wherein content of the second application layer message follows one or more headers within the payload portions;
storing at least a portion of the content of the second application layer message within a particular cache at the first network element; and
storing, in the particular cache, an association between the cache key and the portion of the content of the second application layer message. - View Dependent Claims (21, 22, 23, 24)
-
-
25. A computer-readable medium carrying one or more sequences of instructions for responding to a request using server response data that is cached at a network element, which instructions, when executed by one or more processors, cause the one or more processors to carry out the steps of:
-
intercepting, at the network element, one or more data packets that a client application addressed to a server application that is hosted on a device other than the network element;
determining an application layer message that is contained in one or more payload portions of the one or more data packets, wherein the application layer message specifies a particular request for specified data from the server application;
determining a portion of the specified data that is contained in a cache maintained at the network element;
sending, toward the server application, a particular message that requests dynamically generated data that is not contained in the cache, wherein the particular message does not request the portion of the specified data that is contained in the cache;
receiving, from the server application, a first response that contains the dynamically generated data; and
sending, toward the client application, a second response that contains both the dynamically generated data and the portion of the specified data that is contained in the cache. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32, 33, 34)
-
-
35. A computer-readable medium carrying one or more sequences of instructions for responding to a request using data cached at a network element, which instructions, when executed by one or more processors, cause the one or more processors to carry out the steps of:
-
intercepting, at the network element, one or more data packets that a client application addressed to a server application that is hosted on a device other than the network element;
determining an application layer message that is contained in one or more payload portions of the one or more data packets, wherein content of the application layer message follows one or more headers within the payload portions, and wherein the content of the application layer message specifies a particular request for specified data from the server application;
generating a cache key based on at least a portion of the content of the application layer message;
locating, within a cache at the network element, data that is associated, in the cache, with the cache key; and
sending, toward the client application, a response that contains the data that is associated with the cache key. - View Dependent Claims (36, 37, 38, 39)
-
-
40. A computer-readable medium carrying one or more sequences of instructions for caching data at a network element, which instructions, when executed by one or more processors, cause the one or more processors to carry out the steps of:
-
intercepting, at a first network element, one or more first data packets that a client application addressed to a server application that is hosted on a device other than the first network element;
determining a first application layer message that is contained in one or more payload portions of the one or more first data packets, wherein content of the first application layer message follows one or more headers within the payload portions, and wherein the content of the first application layer message specifies a particular request for specified data from the server application;
generating a cache key based on at least a portion of the content of the first application layer message;
intercepting, at the first network element, one or more second data packets that a server application addressed to the client application in response to the particular request;
determining a second application layer message that is contained in one or more payload portions of the one or more second data packets, wherein content of the second application layer message follows one or more headers within the payload portions;
storing at least a portion of the content of the second application layer message within a particular cache at the first network element; and
storing, in the particular cache, an association between the cache key and the portion of the content of the second application layer message. comprise;
determining a message classification based on the content of the second application layer message;
wherein storing the portion of the content of the second application layer message comprises storing a portion that is designated by a user-programmed policy that is associated with the message classification. - View Dependent Claims (42, 43, 44)
-
-
45. A computer-readable medium carrying one or more sequences of instructions for caching state information at a router in a packet-switched network, which instructions, when executed by one or more processors, cause the one or more processors to carry out the steps of:
-
intercepting, at the router, one or more data packets that are not destined for the router;
determining an application layer message that is contained in one or more payload portions of the one or more data packets, wherein the application layer message specifies state information; and
storing the state information in a cache of application-oriented data at the router. storing the state information in a cache of application-oriented data at the router. - View Dependent Claims (46, 47, 48)
-
-
49. An apparatus for responding to a request using server response data that is cached at a network element, the apparatus comprising:
-
means for intercepting, at the network element, one or more data packets that a client application addressed to a server application that is hosted on a device other than the network element;
means for determining an application layer message that is contained in one or more payload portions of the one or more data packets, wherein the application layer message specifies a particular request for specified data from the server application;
means for determining a portion of the specified data that is contained in a cache maintained at the network element;
means for sending, toward the server application, a particular message that requests dynamically generated data that is not contained in the cache, wherein the particular message does not request the portion of the specified data that is contained in the cache;
means for receiving, from the server application, a first response that contains the dynamically generated data; and
means for sending, toward the client application, a second response that contains both the dynamically generated data and the portion of the specified data that is contained in the cache.
-
-
50. A router in a packet-switched network configured for caching state information, the router comprising:
-
means for intercepting one or more data packets that are not destined for the router;
means for determining an application layer message that is contained in one or more payload portions of the one or more data packets, wherein the application layer message specifies state information; and
means for storing the state information in a cache of application-oriented data at the router.
-
-
51. An apparatus for responding to a request using server response data that is cached at a network element, comprising:
-
a network interface that is coupled to a data network for receiving one or more packet flows therefrom;
a processor;
one or more stored sequences of instructions which, when executed by the processor, cause the processor to carry out the steps of;
intercepting, at the network element, one or more data packets that a client application addressed to a server application that is hosted on a device other than the network element;
determining an application layer message that is contained in one or more payload portions of the one or more data packets, wherein the application layer message specifies a particular request for specified data from the server application;
determining a portion of the specified data that is contained in a cache maintained at the network element;
sending, toward the server application, a particular message that requests dynamically generated data that is not contained in the cache, wherein the particular message does not request the portion of the specified data that is contained in the cache;
receiving, from the server application, a first response that contains the dynamically generated data; and
sending, toward the client application, a second response that contains both the dynamically generated data and the portion of the specified data that is contained in the cache.
-
-
52. A router in a packet-switched network configured for caching state information, comprising:
-
a network interface that is coupled to a data network for receiving one or more packet flows therefrom;
a processor;
one or more stored sequences of instructions which, when executed by the processor, cause the processor to carry out the steps of;
intercepting, at the router, one or more data packets that are not destined for the router;
determining an application layer message that is contained in one or more payload portions of the one or more data packets, wherein the application layer message specifies state information; and
storing the state information in a cache of application-oriented data at the router.
-
-
53. A system comprising:
-
a client application that sends an application layer message in one or more data packets toward a server application, wherein the application layer message comprises a first request for specified data;
a router in a packet-switched network that intercepts the one or more data packets, determines the application layer message from one or more payload portions of the one or more data packets, determines a first portion of the specified data that is cached at the router, sends a second request for a second portion of the specified data that is not cached at the router, and sends, toward the client application, a first response that comprises the first portion and the second portion; and
a server application that receives the second request and, in response to receiving the second request, sends, toward the router, a second response that contains the second portion and not the first portion.
-
Specification