Making accurate clock signals available has been an ongoing challenge for mankind for millenniums (ref wikipedia). We have increased accuracy gradually, from half hours (sundials) down to nanosecond (atomic clocks) over all those years.
But an accurate clock is worth little if it is not synchronized with other clocks relevant in a certain setting, i.e. a group of people with a meeting coming up or computer systems registering and sharing transactions.
Network Time Protocol (NTP) is a standardized Internet protocol (ref rfc1305) for clock synchronization between clients and servers. Practically all modern desktops, tablets, smart-phones, front-end and back-end servers apply NTP today.
NTP infrastructure is hierarchical (see Figure). Top units, “stratum 1”, synchronize with external source of extreme accuracy, e.g. GPS or atomic clocks. Other units apply the NTP protocol to synchronize their internal (crystal based) clocks to the parent or neighbor unit.
Units send NTP-requests upward in the hierarchy at certain interval. NTP-replies are applied to gracefully adjust the local clock taking into account potential timing disturbance added to the requests replies by the network between the peers.
The default request interval for Linux and FreeBSD servers and desktops is 2¹⁰ seconds, ie. around 17 minutes. With this interval a stratum 2 server at UNINETT achieves an accuracy within 1ms, i.e. the local clock is out of sync with the stratum 1 server with +- 0.5ms. Accuracy oscillates a few times per hour. See figure.
In 2016 a request interval of 17 minutes seem rather conservative given todays CPU and network capacities. Hence in the evening April 21th UNINETT decided to shorten the request interval to 2⁶ seconds, i.e. from 17 minutes down to 1 minute. As the the figure above illustrates, this update made a significant increase in clock accuracy. The stratum 2 clock server in question has now stable sub-millisecond accuracy and stays in sync with its stratum 1 servers with less than 200 microseconds offset.
Do we need this type of accuracy…? We believe so, first in scientific and back-end settings and later in more common application. Synchronization of database transaction in distributed systems is already relaying in tight clock synchronization.