Patentable/Patents/US-7738500
US-7738500

TCP timestamp synchronization for network connections that are offloaded to network interface devices

PublishedJune 15, 2010
Assigneenot available in USPTO data we have
Inventorsnot available in USPTO data we have
Technical 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.

Patent Claims
20 claims

Legal claims defining the scope of protection, as filed with the USPTO.

1

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.

2

2. The method of claim 1 , wherein synchronizing the first and second clocks comprises: updating the second clock, based upon the clock value transferred by the first processing mechanism.

3

3. The method of claim 1 , wherein synchronizing the first and second clocks comprises: determining whether a second TCP connection was previously transferred from the first processing mechanism to the second processing mechanism; and if no second TCP connection was previously transferred, updating the second clock, based upon the clock value transferred by the first processing mechanism.

4

4. The method of claim 1 , wherein synchronizing the first and second clocks comprises: updating the second clock when the comparing indicates that the clock value transferred by the first processing mechanism is greater than the second clock value.

5

5. The method of claim 1 , wherein synchronizing the first and second clocks comprises: determining whether the clock value transferred by the first processing mechanism is greater than a second clock value for the second processing mechanism; and choosing, based upon the determining, whether to update the second clock.

6

6. The method of claim 1 , wherein transferring the clock value from the first processing mechanism to the second processing mechanism comprises: piggybacking the transfer of the clock value on a transfer of other information from the first processing mechanism to the second processing mechanism.

7

7. The method of claim 1 , wherein transferring the clock value from the first processing mechanism to the second processing mechanism comprises: piggybacking the transfer of the clock value on the transfer of the TCP connection.

8

8. The method of claim 1 , further comprising: determining whether a second clock value for the second processing mechanism equals the value of a saved copy of the second clock value; choosing, based upon the determining, whether to increment the second clock; and updating the saved copy by setting it equal to the second clock value.

9

9. The method of claim 1 , further comprising: incrementing the second clock, wherein the incrementing occurs only if a second clock value for the second processing mechanism equals the value of a saved copy of the second clock value; and updating the saved copy by setting it equal to the second clock value.

10

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.

11

11. The system of claim 10 , wherein the first processing mechanism is contained in a computer and the second processing mechanism is contained in a network interface card.

12

12. The system of claim 10 , wherein the first processing mechanism and the second processing mechanism are disposed on a printed circuit board.

13

13. The system of claim 10 , wherein the first clock has been set using a second clock value transferred from the second processing mechanism.

14

14. The system of claim 10 , wherein a message that sends information from the first processing mechanism to the second processing mechanism also includes the transfer of the clock value.

15

15. The system of claim 10 , wherein a message which transfers the TCP connection from the first processing mechanism to the second processing mechanism also includes the transfer of the clock value.

16

16. The system of claim 10 , wherein the TCP connection includes the TCP timestamp option.

17

17. The system of claim 10 , wherein the second processing mechanism further comprises a plurality of TCP connections that reference the second clock.

18

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.

19

19. The system of claim 18 , wherein the TCP connection includes the TCP timestamp option.

20

20. The system of claim 18 , wherein the second processing mechanism further comprises a plurality of TCP connections that reference the second clock.

Classification Codes (CPC)

Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.

Patent Metadata

Filing Date

December 14, 2005

Publication Date

June 15, 2010

Want to explore more patents?

Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.

Citation & reuse

Analysis on this page is generated by Patentable — an AI-powered patent intelligence platform. AI-generated summaries, explanations, and analysis may be reused with attribution and a visible link back to the canonical URL below. Patent abstracts and claims are USPTO public domain.

Cite as: Patentable. “TCP timestamp synchronization for network connections that are offloaded to network interface devices” (US-7738500). https://patentable.app/patents/US-7738500

© 2026 Patentable. All rights reserved.

Patentable is a research and drafting-assistant tool, not a law firm, and does not provide legal advice. Documents we generate are drafts for review by a licensed patent attorney.