ICMP Clock Synchronization

ICMP Clock Synchronization is a mechanism for synchronizing clocks on remote computers using the Internet Control Message Protocol. Machines on the internet might have the ability to communicate with each other, but they may operate with a different notion of what the current time is. This can cause confusion among users of distributed systems software. The TCP/IP protocol suite provides many solutions to the problem of clock synchronization. One of these techniques is to use an ICMP timestamp request message to obtain the current time from another computer. This ICMP message contains 3 timestamp fields which are used for both round trip time estimates and/or clock synchronization. These fields are labeled ORIGINATE TIMESTAMP, RECEIVE TIMESTAMP, TRANSMIT TIMESTAMP. When a host sends an ICMP timestamp request, the reply has the ORIGINATE TIMESTAMP field, so the host can determine how long it takes the message to get to it's destination, be transformed into a reply, and return to the sender. The reply also carries the time at which the request entered the machine and the time at which the reply was sent. Because of this the host can compute the network transit time and from that estimate the differences in remote and local clocks.

Comer, Douglas E. (2006). Internetworking with TCP/IP, 5, Prentice Hall: Upper Saddle River, NJ. .