NTP (Network Time Protocol)

The Network Time Protocol (NTP) is the protocol used to synchronize computer clocks across the Internet. It works by having clients exchange timestamped messages with time servers, measuring the round-trip delay, and adjusting the local clock toward the server’s more accurate time. It is one of the oldest Internet protocols still in everyday use, originated by David Mills at the University of Delaware and developed over more than three decades.

NTP servers are organized into a hierarchy of levels called strata. Stratum 0 is a reference clock such as an atomic clock or GPS receiver; stratum 1 servers are directly attached to those references; stratum 2 servers synchronize from stratum 1, and so on down the tree. This layering lets a small number of highly accurate sources distribute time to a vast number of clients without every machine needing its own reference clock. Mills’s NTP project pages describe a deployed population numbering in the tens of millions of computers.

The current version, NTPv4, is specified in RFC 5905 (June 2010), authored by D. Mills, J. Martin, J. Burbank, and W. Kasch. That document obsoletes the earlier NTPv3 (RFC 1305) and defines the protocol’s on-the-wire format along with the algorithms for filtering samples, selecting trustworthy servers, and disciplining the local clock. According to Mills’s pages, NTP achieves accuracies generally around a tenth of a millisecond on fast local networks and tens of milliseconds over intercontinental links.

NTP solves the physical clock-synchronization problem that distributed systems would otherwise have to confront directly. By keeping wall-clock time reasonably consistent across machines, it underpins log timestamps, security certificate validity, scheduled jobs, and countless other functions that quietly assume every computer roughly agrees on what time it is.