TCP timestamp synchronization for network connections that are offloaded to network interface devices
First Claim
1. A method for communication over a network between a local host and a remote host, the local host having a first processing mechanism and a second processing mechanism, the first processing mechanism having a first clock and the second processing mechanism having a second clock, the method comprising:
- establishing a transport transmission control protocol (TCP) connection between the local host and the remote host;
transferring the TCP connection from the first processing mechanism to the second processing mechanism; and
transferring a clock value from the first processing mechanism to the second processing mechanism, thereby synchronizing the first and second clocks, wherein synchronizing the first and second clocks comprises;
comparing the clock value transferred by the first processing mechanism with a second clock value for the second processing mechanism; and
choosing, based upon the comparing, whether to update the second clock.
3 Assignments
0 Petitions
Accused Products
Abstract
A host computer running a TCP connection transfers the connection to a TCP offload network interface device (NID) which performs certain network processes, thereby reducing the load on the host CPU. The NID later transfers the connection back to the host. The host and the NID maintain separate timestamp clocks which provide timestamp values for connections using the TCP Timestamp option. Synchronization of the host and NID timestamp clocks can be realized by transfer of a clock value. The NID or host receives the transferred TCP connection and the transferred clock value, and decides whether to update its own clock to equal the transferred clock value, the decision being guided by the requirement to never allow the timestamp clock to run backward. Acceleration of the timestamp clocks is prevented so that RTT measurements are accurate. Synchronization of the host and NID timestamp clocks improves performance and reduces erroneous connection drops.
236 Citations
20 Claims
-
1. A method for communication over a network between a local host and a remote host, the local host having a first processing mechanism and a second processing mechanism, the first processing mechanism having a first clock and the second processing mechanism having a second clock, the method comprising:
-
establishing a transport transmission control protocol (TCP) connection between the local host and the remote host; transferring the TCP connection from the first processing mechanism to the second processing mechanism; and transferring a clock value from the first processing mechanism to the second processing mechanism, thereby synchronizing the first and second clocks, wherein synchronizing the first and second clocks comprises; comparing the clock value transferred by the first processing mechanism with a second clock value for the second processing mechanism; and choosing, based upon the comparing, whether to update the second clock. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A system for communication over a network, the system comprising:
-
a first processing mechanism that has a first clock; a second processing mechanism that has a second clock; a Transmission Control Protocol (TCP) connection that has been transferred from the first processing mechanism to the second processing mechanism; and a clock value that has been transferred from the first processing mechanism to the second processing mechanism to synchronize the second clock with the first clock, wherein synchronizing the first and second clocks comprises; comparing the clock value transferred by the first processing mechanism with a second clock value for the second processing mechanism; and choosing, based upon the comparing, whether to update the second clock. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A system for communication over a network, the system comprising:
-
a first processing mechanism that has a first clock; a second processing mechanism that has a second clock; a Transmission Control Protocol (TCP) connection that has been transferred from the first processing mechanism to the second processing mechanism; and means for synchronizing the second clock with the first clock, wherein synchronizing the first and second clocks comprises; comparing the clock value transferred by the first processing mechanism with a second clock value for the second processing mechanism; and choosing, based upon the comparing, whether to update the second clock. - View Dependent Claims (19, 20)
-
Specification