TCP/IP offload device
First Claim
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.
3 Assignments
0 Petitions
Accused Products
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.
333 Citations
19 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
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. - View Dependent Claims (9, 10, 11, 12, 13)
-
-
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. - View Dependent Claims (15, 16, 17, 18, 19)
-
Specification