TCP offload send optimization
First Claim
1. A method comprising:
- running, on a computer, an application;
running, on a network interface for the computer, a transmission control protocol (TCP) connection for the application;
providing, by the computer to the network interface, a plurality of transmit commands to send data for the TCP connection, wherein the transmit commands vary in an amount of data that they denote; and
providing, by the network interface to the computer, a plurality of notifications that the transmit commands have been completed by the network interface, including batching notifications that transmit commands denoting relatively small amounts of data have completed, and not batching notifications that transmit commands denoting relatively large amounts of data have completed.
1 Assignment
0 Petitions
Accused Products
Abstract
A host with a network interface that offloads a TCP connection is disclosed in which the notification that relatively small data transmit commands have completed is batched whereas the notification that relatively large data transmit commands have completed are not batched. The notification that data transmit commands have completed may be intrinsically modulated by the size and frequency of the commands and the processing of the data transfer by the TCP connection. One embodiment involves a method comprising: running an application on a computer having a network interface; running, on the network interface, a TCP connection for the application; providing, by the computer to the network interface, a command to send data from the application; updating, by the network interface, a SndUna value for the TCP connection; and providing, by the network interface to the computer, the SndUna value, thereby indicating to the computer that the command has been completed.
305 Citations
20 Claims
-
1. A method comprising:
-
running, on a computer, an application; running, on a network interface for the computer, a transmission control protocol (TCP) connection for the application; providing, by the computer to the network interface, a plurality of transmit commands to send data for the TCP connection, wherein the transmit commands vary in an amount of data that they denote; and providing, by the network interface to the computer, a plurality of notifications that the transmit commands have been completed by the network interface, including batching notifications that transmit commands denoting relatively small amounts of data have completed, and not batching notifications that transmit commands denoting relatively large amounts of data have completed. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. An apparatus comprising:
-
a computer that is adapted to run an application; a network interface for the computer, the network interface adapted to run a transmission control protocol (TCP) connection for the application; means for providing, by the computer to the network interface, a plurality of transmit commands to send data for the TCP connection, including means for providing, by the computer to the network interface, transmit commands that vary in the amount of data they denote; means for providing, by the network interface to the computer, a plurality of notifications that the transmit commands have been completed by the network interface, including means for batching notifications that transmit commands denoting relatively small amounts of data have completed and not batching notifications that transmit commands denoting relatively large amounts of data have completed. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
15. An apparatus comprising:
-
a computer that is adapted to run an application; a network interface for the computer, the network interface adapted to run a transmission control protocol (TCP) connection for the application; a first program that is adapted to run on the computer and provide to the network interface a plurality of transmit commands to send data for the TCP connection, wherein the transmit commands vary in an amount of data that they denote; a second program that is adapted to run on the network interface and provide to the computer a plurality of notifications that the transmit commands have been completed by the network interface, wherein notifications that transmit commands denoting relatively small amounts of data have completed are batched and notifications that transmit commands denoting relatively large amounts of data have completed are not batched. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification