Freeing transmit memory on a network interface device prior to receiving an acknowledgement that transmit data has been received by a remote device
First Claim
1. A method for communication involving a computer, a network, and a device that is coupled between the computer and the network, the method comprising:
- sending, from the computer to the device, a command to transmit application data from the computer to the network;
sending, by the device to the network, data corresponding to the command; and
sending, from the device to the computer, a response to the command indicating that the data has been sent from the device to the network, prior to receiving, by the device from the network, an acknowledgement (ACK) that all the data corresponding to the command has been received.
3 Assignments
0 Petitions
Accused Products
Abstract
A transmit offload engine (TOE) such as an intelligent network interface device (INIC), video controller or host bus adapter (HBA) that can communicate data over transport protocols such as Transport Control Protocol (TCP) for a host. Such a device can send and receive data for the host to and from a remote host, over a TCP connection maintained by the device. For sending data, the device can indicate to the host that data has been transmitted from the device to a network, prior to receiving, by the device from the network, an acknowledgement (ACK) for all the data, accelerating data transmission. The greatest sequence number for which all previous bytes have been ACKed can be provided with a response to a subsequent command, with the host maintaining a table of ACK values to complete commands when appropriate.
-
Citations
48 Claims
-
1. A method for communication involving a computer, a network, and a device that is coupled between the computer and the network, the method comprising:
-
sending, from the computer to the device, a command to transmit application data from the computer to the network;
sending, by the device to the network, data corresponding to the command; and
sending, from the device to the computer, a response to the command indicating that the data has been sent from the device to the network, prior to receiving, by the device from the network, an acknowledgement (ACK) that all the data corresponding to the command has been received. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. A method for communication involving a computer, a network, and a device that is coupled between the computer and the network, the method comprising:
-
sending, from the computer to the device, a pointer to a command to transmit data from the computer to the network;
sending, by the device to the network, data corresponding to the command; and
sending, from the device to the computer, a response to the command indicating that the data has been sent from the device to the network, prior to receiving, by the device from the network, an acknowledgement (ACK) that all the data has been received. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A method for communication involving a computer, a network, and a device that is coupled between the computer and the network, the method comprising:
-
sending, from the device to the network, data corresponding to a Transport Connection Protocol (TCP) connection that is being controlled by the device; and
sending, from the device to the computer, an indication that the data has been sent from the device to the network, prior to receiving, by the device from the network, an acknowledgement (ACK) that all the data has been received. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45)
-
-
46. A method for communication involving a computer, a network, and a device that is coupled between the computer and the network, the method comprising:
-
sending, from the computer to the device, a series of commands to transmit application data from the computer to the network;
sending, by the device to the network, data corresponding to the commands; and
sending, from the device to the computer, a response to the commands, each response including a sequence number beyond which the data has not been acknowledged (ACKed).
-
-
47. A system for communication involving a computer, a network, and a device that is coupled between the computer and the network, the system comprising:
-
means for sending, from the computer to the device, a command to transmit data from the computer to the network;
means for sending, by the device to the network, data corresponding to the command; and
means for sending, from the device to the computer, an indication that the data has been sent from the device to the network, prior to receiving, by the device from the network, an acknowledgement (ACK) that the data has been received.
-
-
48. A data structure for use with a host that is connected to a network by a device, the data structure stored on at least one computer readable medium of the host and device, the data structure comprising:
-
instructions to send, from the host to the device, a command to transmit data from the host to the network;
instructions to send, from the device to the network, data corresponding to the command; and
instructions to send, from the device to the host, an indication that the data has been sent from the device to the network, prior to receiving, by the device from the network, an acknowledgement (ACK) that the data has been received.
-
Specification