Patent ID: 7920470

Claim:
A computer program, disposed on a non-transitory computer readable storage medium, comprising instructions for causing a host processor to: provide a host Transmission Control Protocol (TCP) protocol layer, the host TCP protocol layer to establish a TCP connection with a remote TCP endpoint; automatically determine if a network adapter has an ability to provide a TCP offload operation; and if the network adapter has the ability to perform a TCP operation, 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 to the network adapter, the offload of the at least one TCP operation for the TCP connection comprising sending to the network adapter from the host 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 TCP protocol layer; 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.