TCP offload send optimization
First Claim
1. A method comprising:
- running an application on a computer having a network interface, the application controlling data;
running, on the network interface, a transmission control protocol (TCP) connection for the application, including maintaining a SndUna value for the TCP connection;
providing, by the computer to the network interface, a command to send the data;
setting a SndUna threshold at the network interface, the SndUna threshold having a sequence number that is greater than or equal to the ending sequence number of the data;
updating, by the network interface, the SndUna value; and
providing, by the network interface to the computer, the SndUna value, thereby indicating to the computer that the command has been completed;
wherein providing the SndUna value is initiated by receiving, by the network interface, an acknowledgement having a sequence number greater than or equal to the SndUna threshold.
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.
-
Citations
21 Claims
-
1. A method comprising:
-
running an application on a computer having a network interface, the application controlling data; running, on the network interface, a transmission control protocol (TCP) connection for the application, including maintaining a SndUna value for the TCP connection; providing, by the computer to the network interface, a command to send the data; setting a SndUna threshold at the network interface, the SndUna threshold having a sequence number that is greater than or equal to the ending sequence number of the data; updating, by the network interface, the SndUna value; and providing, by the network interface to the computer, the SndUna value, thereby indicating to the computer that the command has been completed; wherein providing the SndUna value is initiated by receiving, by the network interface, an acknowledgement having a sequence number greater than or equal to the SndUna threshold. - View Dependent Claims (2, 3, 5, 6, 7, 8)
-
-
4. A method comprising:
-
running an application on a computer having a network interface, the application controlling data; running, on the network interface, a transmission control protocol (TCP) connection for the application, including maintaining a SndUna value for the TCP connection; providing, by the computer to the network interface, a command to send the data; updating, by the network interface, the SndUna value; and providing, by the network interface to the computer, the SndUna value, thereby indicating to the computer that the command has been completed; if a second command to send data is not outstanding at the network interface, a SndUna threshold is not provided from the computer to the network interface; otherwise, if a SndUna threshold is outstanding on the network interface, a second SndUna threshold is not provided from the computer to the network interface; and otherwise, a SndUna threshold is provided from the computer to the network interface, the SndUna threshold set to an ending sequence number of a first command to send data that is outstanding at the network interface.
-
-
9. A method comprising:
-
running, on a network interface for a computer, a transmission control protocol (TCP) connection for an application, including maintaining a SndUna value for the TCP connection; setting a SndUna threshold at the network interface; and providing the SndUna value to the computer when the SndUna value is greater than or equal to the SndUna threshold. - View Dependent Claims (10, 11, 12, 13, 14, 15, 16, 17, 18)
-
-
19. A method comprising:
- running, on a network interface for a computer, a transmission control protocol (TCP) connection for an application, including maintaining an interface sequence number;
providing, by the computer to the network interface, a command to send data for the TCP connection;
storing, by the computer, an ending sequence number for the data corresponding to the command;
determining an offset between the ending sequence number and the interface sequence number;
setting, at the network interface, a threshold sequence number; and
notifying the computer, by the network interface, that the command has been completed by providing to the computer the interface sequence number when the interface sequence number is greater than or equal to the threshold sequence number. - View Dependent Claims (20, 21)
- running, on a network interface for a computer, a transmission control protocol (TCP) connection for an application, including maintaining an interface sequence number;
Specification