TCP offload send optimization
First Claim
1. A method comprising:
- running an application on a computer having a network interface and a corresponding driver;
running, on the network interface, a transmission control protocol (TCP) connection for the application;
providing, by the driver to the network interface, a series of commands to transmit data from the application by the network interface, wherein a plurality of commands of the series of commands together denote an amount of the data that is less than the amount denoted by one commands of the series of commands;
providing, by the network interface to the driver, a notification that the one command of the series of commands has been completed by the network interface, andproviding, by the network interface to the driver, a single notification that the plurality of commands of the series of commands have been completed by the network interface.
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.
303 Citations
15 Claims
-
1. A method comprising:
-
running an application on a computer having a network interface and a corresponding driver; running, on the network interface, a transmission control protocol (TCP) connection for the application; providing, by the driver to the network interface, a series of commands to transmit data from the application by the network interface, wherein a plurality of commands of the series of commands together denote an amount of the data that is less than the amount denoted by one commands of the series of commands; providing, by the network interface to the driver, a notification that the one command of the series of commands has been completed by the network interface, and providing, by the network interface to the driver, a single notification that the plurality of commands of the series of commands have been completed by the network interface. - 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 computer having a network interface and a corresponding driver, 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 to the driver a command to send data from the application; if a second command to send data is not outstanding at the network interface, not providing a SndUna threshold from the driver to the network interface; otherwise, if a SndUna threshold is outstanding on the network interface, not providing a second SndUna threshold from the driver to the network interface; and otherwise, providing a SndUna threshold from the computer to the network interface, the SndUna threshold being equal to or one sequence number greater than an ending sequence number of a first command to send data that is outstanding at the network interface.
-
Specification