Caching content and state data at a network element
First Claim
1. 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 in the one or more first data packets and is within the payload portions of the one or more first data packets, 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 the 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 in the one or more second data packets and is within the payload portions of the one or more second data packets;
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 messages;
wherein the method is performed by one or more computing devices.
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 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 in the one or more first data packets and is within the payload portions of the one or more first data packets, 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 the 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 in the one or more second data packets and is within the payload portions of the one or more second data packets; 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 messages; wherein the method is performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A volatile or non-volatile 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 in the one or more first data packets and is within the payload portions of the one or more first data packets, 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 the 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 in the one or more second data packets and is within the payload portions of the one or more second data packets; 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 (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. An apparatus 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 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 in the one or more first data packets and is within the payload portions of the one or more first data packets, 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 the 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 in the one or more second data packets and is within the payload portions of the one or more second data packets; 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 (30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42)
-
-
43. An apparatus comprising:
-
one or more processors; means for 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; means for 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 in the one or more first data packets and is within the payload portions of the one or more first data packets, and wherein the content of the first application layer message specifies a particular request for specified data from the server application; means for generating a cache key based on at least a portion of the content of the first application layer message; means for intercepting, at the first network element, one or more second data packets that the server application addressed to the client application in response to the particular request; means for 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 in the one or more second data packets and is within the payload portions of the one or more second data packets; means for storing at least a portion of the content of the second application layer message within a particular cache at the first network element; and means for 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 (44, 45, 46, 47, 48, 49, 50, 51, 52, 53)
-
Specification