TCP offload device that batches session layer headers to reduce interrupts as well as CPU copies
First Claim
1. A method comprising:
- running an application on a device having an interface;
running, on the interface, a transmission control protocol (TCP) connection for the application, including maintaining a TCP control block (TCB) by the interface;
receiving, by the interface, a packet including a TCP header, an upper layer header corresponding to a protocol higher than TCP, and application data, wherein the upper layer header is separated from the TCP header by the application data;
associating, by the interface, the packet with the TCP connection, including processing the packet against the TCB;
providing the upper layer header to the device;
processing the upper layer header by the application; and
providing, by the interface to the device, the application data, after the processing of the upper layer header.
1 Assignment
0 Petitions
Accused Products
Abstract
A TCP offload system is disclosed including apparatuses and methods for batching session (sometimes called application) layer headers to reduce interrupts as well as CPU copies. One embodiment includes receiving a plurality of TCP packets, comprising processing the packets by TCP, including removing TCP headers from TCP data, associating the TCP data with a TCP connection for an application, and updating a TCP control block (TCB) that defines the TCP connection; locating a plurality of upper layer headers in the TCP data, the headers each corresponding to application data contained in the packets, wherein the plurality of upper layer headers correspond to a protocol that is higher than TCP; processing the plurality of upper layer headers by the application to obtain memory locations for the application data; and placing the application data in the locations, after the processing of the plurality of upper layer headers by the application.
-
Citations
22 Claims
-
1. A method comprising:
-
running an application on a device having an interface; running, on the interface, a transmission control protocol (TCP) connection for the application, including maintaining a TCP control block (TCB) by the interface; receiving, by the interface, a packet including a TCP header, an upper layer header corresponding to a protocol higher than TCP, and application data, wherein the upper layer header is separated from the TCP header by the application data; associating, by the interface, the packet with the TCP connection, including processing the packet against the TCB; providing the upper layer header to the device; processing the upper layer header by the application; and providing, by the interface to the device, the application data, after the processing of the upper layer header. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method comprising:
-
running an application on a device having an interface; running, on the interface, a transmission control protocol (TCP) connection for the application, including maintaining a TCP control block (TCB) by the interface; receiving, by the interface, a plurality of packets each including a TCP header, wherein a first of the packets contains a first upper layer header and corresponding first data, a second of the packets contains a second upper layer header and corresponding second data, and the upper layer headers correspond to a protocol higher than TCP; associating, by the interface, the packets with the TCP connection, including processing the packets against the TCB; providing, by the interface to the device, the first and second upper layer headers; processing the first upper layer header by the application, including allocating a first destination for the first data; then processing the second upper layer header by the application, including allocating a second destination for the second data; and providing, by the interface to the first destination, the first data, after the processing of the second upper layer header. - View Dependent Claims (16, 17, 18)
-
-
19. An apparatus comprising:
-
a device including a processor running an application; an interface for the device, the interface running a Transmission Control Protocol (TCP) connection for the application; and a memory structure that is accessible by the device and the interface, the memory structure storing a plurality of upper layer headers in an order in which they were received by the interface, such that the plurality of upper layer headers are present simultaneously in the memory structure, wherein the upper layer headers are separated from received data that they refer to and the upper layer headers correspond to a protocol higher than TCP. - View Dependent Claims (20, 21, 22)
-
Specification