In 2010, RFC 5905 was published containing a proposed specification for NTPv4. In subsequent years, as new features were added and algorithm improvements were made, it became apparent that a new protocol version was required.
The RFC included an analysis of all sources of error, from the reference clock down to the final client, which enabled the calculation of a metric that helps choose the best server where several candidates appear to disagree. However the design of NTPv2 was criticized for lacking formal correctness by the DTSS community, and the clock selection procedure was modified to incorporate Marzullo's algorithm for NTPv3 onwards. It introduced a management protocol and cryptographic authentication scheme which have both survived into NTPv4, along with the bulk of the algorithm. In 1989, RFC 1119 was published defining NTPv2 by means of a state machine, with pseudocode to describe its operation. Mills in the IEEE Transactions on Communications. In 1991, the NTPv1 architecture, protocol and algorithms were brought to the attention of a wider engineering community with the publication of an article by David L. It drew on the experimental results and clock filter algorithm documented in RFC 956 and was the first version to describe the client–server and peer-to-peer modes. In 1988, a much more complete specification of the NTPv1 protocol, with associated algorithms, was published in RFC 1059. Despite the relatively slow computers and networks available at the time, accuracy of better than 100 milliseconds was usually obtained on Atlantic spanning links, with accuracy of tens of milliseconds on Ethernet networks. In 1985, NTP version 0 (NTPv0) was implemented in both Fuzzball and Unix, and the NTP packet header and round-trip delay and offset calculations, which have persisted into NTPv4, were documented in RFC 958.
More complete synchronization systems, although lacking NTP's data analysis and clock disciplining algorithms, include the Unix daemon timed, which uses an election algorithm to appoint a server for all the clients and the Digital Time Synchronization Service (DTSS), which uses a hierarchy of servers similar to the NTP stratum model. They include the Daytime and Time protocols for recording the time of events, as well as the ICMP Timestamp messages and IP Timestamp option ( RFC 781). Other related network tools were available both then and now. The technology was first deployed in a local area network as part of the Hello routing protocol and implemented in the Fuzzball router, an experimental operating system used in network prototyping, where it ran for many years. The technology was later described in the 1981 Internet Engineering Note (IEN) 173 and a public protocol was developed from it that was documented in RFC 778. In 1979, network time synchronization technology was used in what was possibly the first public demonstration of Internet services running over a trans-Atlantic satellite network, at the National Computer Conference in New York. Network Time Security (NTS), a secure version of NTP with TLS and AEAD is a proposed standard and documented in RFC 8915. It is backward compatible with version 3, specified in RFC 1305. The current protocol is version 4 (NTPv4), which is a proposed standard as documented in RFC 5905. NTP supplies a warning of any impending leap second adjustment, but no information about local time zones or daylight saving time is transmitted. They can also use broadcasting or multicasting, where clients passively listen to time updates after an initial round-trip calibrating exchange. : 20 Implementations send and receive timestamps using the User Datagram Protocol (UDP) on port number 123. The protocol is usually described in terms of a client–server model, but can as easily be used in peer-to-peer relationships where both peers consider the other to be a potential time source. Asymmetric routes and network congestion can cause errors of 100 ms or more. NTP can usually maintain time to within tens of milliseconds over the public Internet, and can achieve better than one millisecond accuracy in local area networks under ideal conditions. : 3 It uses the intersection algorithm, a modified version of Marzullo's algorithm, to select accurate time servers and is designed to mitigate the effects of variable network latency.
NTP is intended to synchronize all participating computers to within a few milliseconds of Coordinated Universal Time (UTC). In operation since before 1985, NTP is one of the oldest Internet protocols in current use. The Network Time Protocol ( NTP) is a networking protocol for clock synchronization between computer systems over packet-switched, variable- latency data networks.