IEEE 1588

The IEEE 1588 standard provides for a mechanism within layer 2 of the Ethernet. IT defines a protocol enabling precise synchronization of clocks in measurement and control systems implemented with technologies such as network communication, local computing and distributed objects.

rks supporting multicast messaging including but not limited to Ethernet. The protocol enables heterogeneous systems that include clocks of various inherent precision, resolution, and stability to synchronize to a grandmaster clock.

The protocol supports system-wide synchronization accuracy in the sub-microsecond range with minimal network and local clock computing resources. The default behavior of the protocol allows simple systems to be installed and operated without requiring the administrative attention of users. The standard includes mappings to UDP/IP,

Linux has full support for IEEE 1588 at the kernel level. Machines since about 2007 have high precision timers which make it possible for servers to have very precise timing.

The idea of a master clock has been adopted by the US NIST which operates a public standard by which anyone may synchronize to. Many other public time servers are available and we even use on with our cloud server primarily to accurately estimate the hysteresis of the virtual machine environment. The virtual machine checks time with several servers but the CPU is shared with many other tasks which causes the time to drift unpredictably,

Work has also been done to bridge GPS and other protocols into one overall standard to make it easier to have complete interoperability. NTP is the most widely used time standard used on the Internet which, like GPS, has the ability to deal with latency etc.

Work to make clocks more accurate has also brought some efforts to secure the system with logs and other steps to make sure the changes are documented. This is driven by regulated industrial needs such as banks and insurance companies etc.


The Linux/Windows/BSD TIME uses TCP port 37.

As a courtesy it is generally agreed not to query a time server more often than every 4 seconds. In practice servers are able to cope with checks every week to calculate the drift of internal clocks.



These are actually a group of servers and requests are dispatched round-robin to actual servers.