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.
- 2. The method of claim 1, wherein sending the response to the command is prompted by sending, from the computer to the device, a subsequent command to transmit additional application data from the computer to the network.
- 3. The method of claim 1, further comprising sending a sequence number for the ACK with the response to the command.
- 4. The method of claim 1, further comprising:
sending, from the computer to the device, a subsequent command to transmit additional application data from the computer to the network; and sending, from the device to the computer, a command response after receiving, by the device from the network, an ACK for all the additional data.
- 5. The method of claim 1, further comprising:
sending, from the computer to the device, a subsequent command to transmit additional application data from the computer to the network; and sending, from the device to the computer, information indicating completion of the subsequent command after receiving, by the device from the network, an ACK for all the additional data.
- 6. The method of claim 1, further comprising:
receiving, by the device, the ACK; sending, from the device to the computer, an indication that the ACK has been received; and completing, by the computer and in response to receiving the indication, the command.
- 7. The method of claim 1, further comprising maintaining, by the computer, a table of ACK values including a value that corresponds to the ACK.
- 8. The method of claim 1, further comprising:
calculating, by the computer, a sequence number corresponding to the ACK; and completing the command by the computer, in response to receiving an indication from the device that the ACK has been received by the device.
- 9. The method of claim 1, further comprising:
receiving, by the computer, the response to the command; and sending a subsequent command to transmit additional application data from the computer to the network, the subsequent command being sent from the computer to the device and prompted by receiving the response to the command.
- 10. The method of claim 1, further comprising:
storing a pointer to the command in a memory space of the device; and freeing the memory space upon sending, from the device to the computer, the command response indicating that the data has been sent from the device to the network.
- 11. The method of claim 1, wherein sending a command to transmit data includes sending, from the computer to the device, a pointer to the command.
- 12. The method of claim 1, further comprising sending, with the response to the command, a sequence number beyond which previous data has not been acknowledged (ACKed).
- 13. The method of claim 1, further comprising sending, with the response to the command, an indication that all data has been received for a previous command.
- 14. The method of claim 1, further comprising maintaining, by the device, a Transport Control Protocol (TCP) connection that the command, the data and the ACK correspond to.
- 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.
- 16. The method of claim 15, wherein sending the response to the command is prompted by sending, from the computer to the device, a subsequent pointer to a subsequent command to transmit additional application data from the computer to the network.
- 17. The method of claim 15, further comprising sending a sequence number for the ACK with the response to the command.
- 18. The method of claim 15, further comprising:
sending, from the computer to the device, a subsequent pointer to a subsequent command to transmit additional application data from the computer to the network; and sending, from the device to the computer, a command response after receiving, by the device from the network, an ACK for the additional data.
- 19. The method of claim 15, further comprising:
sending, from the computer to the device, a subsequent pointer to a subsequent command to transmit additional application data from the computer to the network; and sending, from the device to the computer, information indicating completion of the subsequent command after receiving, by the device from the network, an ACK for the additional data.
- 20. The method of claim 15, further comprising:
receiving, by the device, the ACK; sending, from the device to the computer, an indication that the ACK has been received; and completing, by the computer and in response to receiving the indication, the command.
- 21. The method of claim 15, further comprising maintaining, by the computer, a table of ACK values including a value that corresponds to the ACK.
- 22. The method of claim 15, further comprising:
calculating, by the computer, a sequence number corresponding to the ACK; and completing the command by the computer, in response to receiving an indication from the device that the ACK has been received by the device.
- 23. The method of claim 15, further comprising:
receiving, by the computer, the command response from the device; and sending a subsequent pointer to a subsequent command to transmit additional application data from the computer to the network, the subsequent pointer being sent from the computer to the device and prompted by receiving the command response.
- 24. The method of claim 15, further comprising:
storing the pointer to the command in a memory space of the device; and freeing the memory space upon sending, from the device to the computer, the command response indicating that the data has been sent from the device to the network.
- 25. The method of claim 15, further comprising determining that a memory space of the device in which the pointer is stored is full, prior to sending the response to the command.
- 26. The method of claim 15, further comprising sending, with the response to the command, a sequence number beyond which previous data has not been acknowledged (ACKed).
- 27. The method of claim 15, further comprising sending, with the response to the command, an indication that all data has been received for a previous command.
- 28. The method of claim 15, further comprising maintaining, by the device, a Transport Control Protocol (TCP) connection that the command, the data and the ACK correspond to.
- 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.
- 30. The method of claim 29, further comprising sending, from the computer to the device, a command to transmit the data.
- 31. The method of claim 30, wherein sending the indication includes sending a response to the command.
- 32. The method of claim 31, further comprising sending, with the response to the command, a sequence number beyond which previous data has not been acknowledged (ACKed).
- 33. The method of claim 31, further comprising sending, with the response to the command, an indication that all data has been received for a previous command.
- 34. The method of claim 29, further comprising sending, from the computer to the device, a pointer to a command to transmit the data.
- 35. The method of claim 34, wherein sending the indication includes sending a response to the command.
- 36. The method of claim 29, wherein sending the indication is prompted by sending, from the computer to the device, a command to transmit additional data from the computer to the network.
- 37. The method of claim 29, further comprising sending a sequence number for the ACK with the indication.
- 38. The method of claim 29, further comprising:
sending, from the computer to the device, a command to transmit additional data from the computer to the network; and sending, from the device to the computer, a response to the command after receiving, by the device from the network, an ACK for the additional data.
- 39. The method of claim 29, further comprising:
sending, from the computer to the device, a command to transmit additional application data from the computer to the network; and sending, from the device to the computer, information indicating completion of the command after receiving, by the device from the network, an ACK for the additional data.
- 40. The method of claim 29, further comprising:
sending, from the computer to the device, a command to transmit the data from the computer to the network; receiving, by the device, the ACK; sending, from the device to the computer, information that the ACK has been received; and completing, by the computer and in response to receiving the information, the command.
- 41. The method of claim 29, further comprising maintaining, by the computer, a table of ACK values including a value that corresponds to the ACK.
- 42. The method of claim 29, further comprising:
sending, from the computer to the device, a command to transmit the data from the computer to the network; calculating, by the computer, a sequence number corresponding to the ACK; and completing the command by the computer, in response to receiving information from the device that the ACK has been received by the device.
- 43. The method of claim 29, further comprising:
sending, from the computer to the device, a command to transmit additional data from the computer to the network, wherein sending the command is prompted by receiving the indication.
- 44. The method of claim 29, further comprising:
sending, from the computer to the device, a pointer to a command to transmit additional data from the computer to the network, wherein sending the pointer is prompted by receiving the indication.
- 45. The method of claim 29, further comprising:
storing, in a memory space of the device, a pointer to a command to transmit the data from the computer to the network; and freeing the memory space upon sending, from the device to the computer, the indication.
- 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.
CROSS-REFERENCE TO RELATED APPLICATION
[0001] The present application claims priority under 35 U.S.C. §119(e) to Provisional Patent Application Serial No. 60/374,788, filed Apr. 22, 2002, entitled “TCP/IP Offload Device,” which is incorporated by reference herein.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60374788 |
Apr 2002 |
US |