NETWORK ADAPTER WITH TCP SUPPORT
0 Assignments
0 Petitions
Accused Products
Abstract
A network adapter and corresponding method for its use are disclosed. The network adapter has an operational mode that allows a host CPU to offload transmission of a block of data to the adapter. The adapter segments the block into fragments, and builds a data packet for each fragment. The adapter transmits these packets with an adapter-implemented flow control. This flow control uses: a context engine that tracks flow control variables for a “context” established for the block; a context memory for storing the variables; and a receive filter that updates flow control information for the block based on ACK packets received from the remote endpoint receiving the data packets. Because the network adapter implements flow control for data blocks that the network adapter segments, intermediate ACK packets corresponding to that block can be intercepted by the adapter, before they pass to the host, conserving host resources. An added advantage is that the host CPU can offload data blocks larger than the remote endpoint'"'"'s receive window size, since the adapter can follow the transmit window and transmit packets at appropriate intervals. This further decreases load on the host CPU, decreases latency, and improves bandwidth utilization.
27 Citations
20 Claims
-
1. (canceled)
-
2. 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. - View Dependent Claims (3, 4, 5, 6)
-
-
7. A method, comprising
performing 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; -
determining 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; sending 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, processing TCP segments for the connection by the host processor; 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. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A system, comprising:
-
a network adapter; a host processor coupled to the network adapter; and a computer program, disposed on a machine readable storage medium, comprising instructions for causing the 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. - View Dependent Claims (13, 14, 15, 16)
-
-
17. A network adapter, comprising:
-
at least one interface to a media access controller; and logic to; receive a request to offload at least one TCP operation for a TCP connection previously established to a remote TCP endpoint, 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 receiving at the network adapter 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 terminate the offload of the at least one TCP operation for the TCP connection; wherein the network adapter comprises logic to; intercept at least some TCP acknowledgments; and handle TCP flow control based on the TCP acknowledgments. - View Dependent Claims (18, 19, 20)
-
Specification