Patent ID: 8174975

Claim:
A computer program, disposed on a non-transitory machine readable storage medium, comprising instructions for causing a host processor to: perform a set of Transmission Control Protocol (TCP) protocol operations, the set of TCP protocol operations including at least one operation to establish a TCP connection with a remote TCP endpoint; determine if a network adapter has an ability to provide a TCP offload operation; and after the at least one operation to establish the TCP connection with the remote endpoint: send a request to offload at least one TCP operation for the TCP connection to the network adapter from the host processor, the offload of the at least one TCP operation for the TCP connection including offload of TCP transmit flow control such that the offloaded TCP transmit flow control is handled by the network adapter instead of the host processor, the offload of the at least one TCP operation for the TCP connection comprising sending to the network adapter an unacknowledged sequence number sent for the connection, a next sequence number to send for the connection, a window size for the connection, and a round trip time for the TCP connection; and at least after termination of the offload of the at least one TCP operation for the TCP connection, process TCP segments for the connection by the host processor instead of the network adapter; wherein the offload of the at least one TCP operation for the TCP connection causes the network adapter to: intercept at least some TCP acknowledgments; and handle TCP flow control based on the TCP acknowledgments.