David L. Mills and the legacy of the Network Time Protocol (NTP)
21/02/2024
By Carlos Martinez Cagnazzo, Technology Manager at LACNIC
A few days ago, computer scientist David L. Mills, who invented the Network Time Protocol (NTP), passed away at the age of 85 at his home in Newark, Delaware (US).
The timing is right to talk about a system that allows computers connected to the Internet to synchronize their clocks, a fundamental technology upon which the entire modern Internet is built, even though it may not have the press or fame of other Internet protocols.
In the 1970s, multiple researchers were involved in constructing Arpanet, one of the earliest versions of the web sponsored by the US government, which linked numerous nodes at universities nationwide. As the network expanded and more machines became connected, the lack of a system to ensure consistent time precision began to pose issues, especially for utilizing the network for transactions or real-time communication and information flow.
Due to this unpredictable time discrepancy, Dr. Mills began working on ways to synchronize the clocks of connected computers. By the late 1970s, the NTP was finally developed and implemented.
It is worth noting that there are various contexts where temporal synchronizations are vital.
Telephone networks are one of the pioneering industries in synchronizing clocks. In fact, their temporal coordination systems were among the original data sources used the by NTP. These networks included clock synchronization messages at the control packet level. Each telephone network had a time reference, usually in the form of an atomic clock, that remains to this day the most accurate time source available.
However, TCP/IP networks lack clock control messaging to transmit synchronization information. That is precisely the role of the NTP, which is why it is used by all operating systems, including Windows, Mac OS, and the embedded operating systems in network devices.
Where do we observe the importance of time synchronization within the context of the Internet? It is crucial for the links that interconnect devices. The so-called “clock drift” or discrepancies in synchronization between endpoints can lead to link failures. In the case of routing protocols, it is also essential to have time synchronization agreements to prevent issues. Clock synchronization is also required for digital certificates and their validity windows in order to avoid responses such as “invalid certificates,” “expired,” etc.
I would like to emphasize that synchronizing a network that inherently relies on synchrony, like telephone networks, is relatively simpler compared to IP networks. IP networks are naturally asynchronous, with no inherent time requirement. Due to this asynchronous nature, one can never predict how long a data packet will take to travel from source to destination.
What is the process for implementing a time protocol when sending a packet over the Internet? The response would be the sending time (X) plus the transit time of the packet from one location to another. What is the issue? The problem is that the additional time needed is uncertain. The “magic” of the NTP algorithm lies in creating a framework that enables estimating this time with considerable accuracy through packet routing in networks with variable latency.
In order to prevent the accumulation of calculation errors, the NTP uses the Marzullo algorithm, which is based on the UTC (Coordinated Universal Time) time scale and includes support for features like leap seconds.
The server employs a hierarchical system of clock strata, where stratum 0 systems are synchronized with an external clock of exceptional precision and reliability, such as a GPS clock or an atomic clock. Stratum 1 systems pull time data from stratum 0, while stratum 2 systems derive their time from one or more stratum 1 systems, and this hierarchy continues in successive levels.
It is worth noting that operating a stratum 0 NTP server is usually quite expensive, so the common practice is to use stratum 1 or 2 systems instead. Furthermore, there is a maximum number of stratum levels, specifically up to 15, and as the stratum number increases, devices become less accurate.
It is important to highlight that NTP servers located in the region or nearby the device’s location play a significant role in enhancing clock accuracy. One can discover available servers on platforms such as the NTP Pool Project, which also extends an invitation to those interested to join the project. Additionally, the NTP Project conducts research and development in the NTP. It is a well-established community that creates an open-source reference implementation of the NTP standard, maintains implementation documentation, and develops the protocol and algorithmic standard used for communicating time between systems.
Finally, I would like to emphasize that Mills’ contribution exemplifies how the innovation process operates on the Internet, which contrasts with other technologies that are more regulated and constructed in a “top-down” manner, like telephone networks.
The history of the Internet reflects a great deal of randomness: it began with a basic set of protocols, and, as needed, protocols like HTTP or DNS were spontaneously invented along the way. Another notable case is the transition from IPv4 to IPv6, among numerous other examples. The truth is, the Internet initially operated without a time synchronization protocol until someone realized its necessity, and that contribution played a crucial role in shaping Internet functionality as we know it today. In the end, it is noteworthy how there is always someone ready to step up and make their contribution when the occasion arises, as demonstrated by David L. Mills in this case.
The views expressed by the authors of this blog are their own and do not necessarily reflect the views of LACNIC.