IP Library Granted Patent US 7,711,799
Granted Patent B2
US 7,711,799 · App. 10/994,989 · Granted May 4, 2010

Method and apparatus for pre-packetized caching for network servers

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,711,799
App. No.
10/994,989
Granted
May 4, 2010
Kind
B2
Abstract

A method and apparatus for caching client node requested data stored on a network server is disclosed. The method and apparatus comprise caching server responses at the pre-packetized level thereby decreasing response time by minimizing packet processing overhead, reducing disk file reading and reducing copying of memory from disk buffers to network interfaces.

Claims (30)

1. A method for caching server response data, comprising:

retrieving from a server at least a portion of data requested by a first client node;

separating the retrieved data into a plurality of response packets comprising static fields including static content of the retrieved data and dynamic fields including dynamic content of the retrieved data wherein the dynamic fields are selected from a group comprising: an Ethernet destination MAC address; an IP destination address; a TCP destination port; a TCP seciuence number: TCP headers from the client node request; and a TCP checksum;

adapting the dynamic fields for use in a subsequent response by setting at least one dynamic field of at least one response packet to a pre-defined value; and

caching the static fields and the adapted dynamic fields of the at least one response packet to a memory buffer for use in a response to a request by a second client node.

2. The method of claim 1 , wherein the pre-defined value is zero.

3. The method of claim 1 , further including setting an error detection value in a field of the at least one response packet.

4. The method of claim 3 , wherein the error detection value is a TCP checksum value.

5. The method of claim 1 , in response to the second client node request, further comprising:

updating at least one cached dynamic field with a dynamic content associated with the second client node request;

adjusting incrementally a TCP checksum value of at least one response packet wherein the at least one response packet includes the at least one updated dynamic field; and

providing to the second client node the at least one response packet having the incrementally adjusted TCP checksum value.

6. The method of claim 1 , wherein, if the dynamic fields include TCP headers, the method further comprising caching N copies of the at least one response packet, wherein each copy includes a different combination of at least some of TCP headers associated with the at least one response packet and wherein N is a number of all possible combinations of the TCP headers associated with the at least one response packet.

7. A computer-readable storage medium having computer-executable instructions stored thereon, the computer-executable instructions, when executed by a computer, causing the computer to perform a method for caching at least one response packet on a server, comprising:

retrieving data from a memory database of the server, in response to a first client node request, to include a portion of the retrieved data in the at least one response packet the at least one response packet including static fields including static content of the retrieved data and dynamic fields including dynamic content of the retrieved data wherein the dynamic fields are selected from a group comprising: an Ethernet destination MAC address; an IP destination address; a TCP destination port; a TCP sequence number; TCP headers from the client request; and a TCP checksum;

adapting one or more dynamic fields of the at least one response packet for use in a response to at least a second client node request by setting the one or more dynamic fields of the at least one response packet to a pre-defined value; and

caching the adapted one or more dynamic fields and the static fields of the resulting at least one response packet in a memory buffer of the server for use in the response to the at least second client node request.

8. The computer-readable storage medium of claim 7 , wherein the pre-defined value is zero.

9. The computer-readable storage medium of claim 7 , further including setting an error detection value in a field of the at least one response packet.

10. The computer-readable storage medium of claim 9 , wherein the error detection value is a TCP checksum value.

11. The computer-readable storage medium of claim 10 , in response to the second client node request, the method further comprising:

updating values of the one or more dynamic fields of the at least one response packet with dynamic content associated with the second client node request;

adjusting incrementally a TCP checksum value of the at least one response packet; and

providing the at least one response packet having the updated one or more dynamic fields and the incrementally adjusted TCP checksum value to the second client node.

12. The computer-readable storage medium of claim 7 , wherein, if the dynamic fields include TCP headers, the method further comprises: caching N copies of the at least one response packet, wherein each copy includes a different combination of at least some of TCP headers associated with the at least one response packet and wherein N is a number of all possible combinations of the TCP headers associated with the at least one response packet.

13. An apparatus for caching server response data, comprising:

means for retrieving data from a server requested by a first client node;

means for separating the retrieved data into a plurality of response packets comprising static fields including static content of the retrieved data and dynamic fields including dynamic content of the retrieved data wherein the dynamic fields are selected from a group comprising: an Ethernet destination MAC address; an IP destination address; a TCP destination port; a TCP sequence number; TCP headers from the client request; and a TCP checksum;

means for adapting the dynamic fields for use in a subsequent response by setting dynamic fields of at least one response packet to a pre-defined value; and

means for caching the adapted dynamic fields and the static fields of the at least one response packet to a memory buffer for use in a response to a second client node request for at least a portion of the data requested by the first client node.

Assignments (11)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 28, 2021
From: PROVENANCE ASSET GROUP LLC
To: RPX CORPORATION
Reel/Frame 059352/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: CORTLAND CAPITAL MARKETS SERVICES LLC
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058983/0104 →
RELEASE OF SECURITY INTEREST Recorded Nov 30, 2021
From: NOKIA US HOLDINGS INC.
To: PROVENANCE ASSET GROUP HOLDINGS LLC; PROVENANCE ASSET GROUP LLC
Reel/Frame 058363/0723 →
ASSIGNMENT AND ASSUMPTION AGREEMENT Recorded Feb 14, 2019
From: NOKIA USA INC.
To: NOKIA US HOLDINGS INC.
Reel/Frame 048370/0682 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP LLC
To: NOKIA USA INC.
Reel/Frame 043879/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 13, 2017
From: NOKIA TECHNOLOGIES OY; NOKIA SOLUTIONS AND NETWORKS BV; ALCATEL LUCENT SAS
To: PROVENANCE ASSET GROUP LLC
Reel/Frame 043877/0001 →
SECURITY INTEREST Recorded Sep 13, 2017
From: PROVENANCE ASSET GROUP HOLDINGS, LLC; PROVENANCE ASSET GROUP, LLC
To: CORTLAND CAPITAL MARKET SERVICES, LLC
Reel/Frame 043967/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 9, 2014
From: CREDIT SUISSE AG
To: ALCATEL-LUCENT USA INC.
Reel/Frame 033949/0531 →
SECURITY INTEREST Recorded Mar 7, 2013
From: ALCATEL-LUCENT USA INC.
To: CREDIT SUISSE AG
Reel/Frame 030510/0627 →
MERGER Recorded Mar 8, 2010
From: LUCENT TECHNOLOGIES INC.
To: ALCATEL-LUCENT USA INC.
Reel/Frame 024043/0162 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 22, 2004
From: VAN BEMMEL, JEROEN
To: LUCENT TECHNOLOGIES INC.
Reel/Frame 016027/0783 →