IP Library Granted Patent US 8,539,112
Granted Patent B2
US 8,539,112 · App. 13/108,729 · Granted Sep 17, 2013

TCP/IP offload device

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 8,539,112
App. No.
13/108,729
Granted
Sep 17, 2013
Kind
B2
Abstract

A host CPU runs a network protocol processing stack that provides instructions not only to process network messages but also to allocate processing of certain network messages to a specialized network communication device, offloading some of the most time consuming protocol processing from the host CPU to the network communication device. By allocating common and time consuming network processes to the device, while retaining the ability to handle less time intensive and more varied processing on the host stack, the network communication device can be relatively simple and cost effective. The host CPU, operating according to instructions from the stack, and the network communication device together determine whether and to what extent a given message is processed by the host CPU or by the network communication device.

Claims (34)

1. A method comprising:

receiving, by a network interface that is coupled to a computer, a plurality of network packets that each contain data, an Internet Protocol (IP) header and a Transmission Control Protocol (TCP) header;

processing the IP and TCP headers of the packets by the network interface, including maintaining a TCP connection on the network interface corresponding to the packets and corresponding to an application running on the computer;

obtaining a destination for the data in a memory of the computer, such that information that is later stored in the destination will be controlled by the application;

providing an indication of the destination from the computer to the network interface; and

transferring the data to the destination, without transferring the IP headers or the TCP headers of the plurality of packets to the destination, and without processing the IP headers or the TCP headers by the computer.

2. The method of claim 1 , wherein the network interface and the computer both perform TCP processing for the TCP connection.

3. The method of claim 1 , wherein processing the IP and TCP headers of the packets by the network interface is performed by hardware fast-path processing.

4. The method of claim 1 , wherein obtaining the destination for the data in the memory of the computer includes providing, by the network interface to the computer, a session layer header from one of the packets.

5. The method of claim 1 , wherein obtaining the destination for the data in the memory of the computer includes analyzing a session layer header from one of the packets.

6. The method of claim 1 , wherein the application is denoted by a port number in the TCP header of the packets.

7. The method of claim 1 , wherein transferring the data to the destination is performed by direct memory access (DMA) of the network interface to a memory of the computer.

8. A method comprising:

receiving, by a network interface that is coupled to a computer, a plurality of packets that correspond to a Transmission Control Protocol (TCP) connection, each containing data, an Internet Protocol (IP) header and a TCP header, wherein the data is for a network file system application running on the computer;

processing the IP and TCP headers of the packets by the network interface, including maintaining the TCP connection on the network interface;

providing, by the network interface to the computer, a session layer header from one of the packets;

analyzing, by the computer, the session layer header, including obtaining a destination for the data in a memory of the computer, such that information that is later stored in the destination will be controlled by the application; and

transferring the data to the destination, without transferring the IP headers or the TCP headers of the plurality of packets to the destination, and without processing the IP headers or the TCP headers by the computer.

9. The method of claim 8 , wherein the network interface and the computer both perform TCP processing for the TCP connection.

10. The method of claim 8 , wherein processing the IP and TCP headers of the packets by the network interface is performed by hardware fast-path processing.

11. The method of claim 8 , further comprising storing, by the network interface, the data from the packets without the IP headers or the TCP headers prior to transferring, by the network interface, the data to the destination.

12. The method of claim 8 , wherein the application is denoted by a port number in the TCP header of the packets.

13. The method of claim 8 , wherein transferring the data to the destination is performed by direct memory access (DMA) of the network interface to a memory of the computer.

14. A method comprising:

receiving, by a network interface that is coupled to a computer, a plurality of packets that correspond to a Transmission Control Protocol (TCP) connection, each containing data, an Internet Protocol (IP) header and a TCP header, wherein the data is for an application running on the computer;

processing the IP and TCP headers of the packets by the network interface, including maintaining the TCP connection on the network interface;

providing, by the network interface to the computer, a header portion of one of the packets;

analyzing, by the computer, the header portion, including obtaining a destination for the data in a memory of the computer, such that information that is later stored in the destination will be controlled by the application; and

transferring the data to the destination, without transferring the IP headers or the TCP headers of the plurality of packets to the destination, and without processing the IP headers or the TCP headers by the computer.

15. The method of claim 14 , wherein the network interface and the computer both perform TCP processing for the TCP connection.

16. The method of claim 14 , wherein processing the IP and TCP headers of the packets by the network interface is performed by hardware fast-path processing.

17. The method of claim 14 , wherein the application is denoted by a port number in the transport layer header of the packets.

18. The method of claim 14 , wherein transferring the data to the destination is performed by direct memory access (DMA) of the network interface to a memory of the computer.

19. The method of claim 14 , wherein the header portion includes a session layer header.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 22, 2016
From: A-TECH LLC
To: ALACRITECH, INC.
Reel/Frame 039068/0884 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 15, 2013
From: ALACRITECH INC.
To: A-TECH LLC
Reel/Frame 031644/0783 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2011
From: BOUCHER, LAURENCE B.; BLIGHTMAN, STEPHEN E. J.; CRAFT, PETER K.; HIGGEN, DAVID A.; PHILBRICK, CLIVE M.; STARR, DARYL D.
To: ALACRITECH, INC.
Reel/Frame 026820/0557 →