A clock is a device that maintains time in a computer or other electronic system in order to synchronize the operation of various devices and programs in it. A host is a computer that is connected to a network. A router is an electronic device and/or software that connects at least two networks and forwards packets among them. Packets are the fundamental unit of information transport in all modern computer networks.
Highly accurate time is necessary for computers and networks for a number of reasons, and even divergences of a small fraction of a second can result in large reductions in efficiency or system failure. Among the many types of situations in which such accuracy is necessary are distributed database management systems that have large transactions volumes and high-performance security mechanisms.
As is the case with the Internet in general, NTP was designed to be highly fault-tolerant and scalable. It uses coordinated universal time (UTC) to synchronize clock times to a millisecond, and sometimes to a fraction of a millisecond. UTC is an international, highly accurate and stable uniform atomic time system that is corrected for seasonal variations in the earth's rotation rate. It is maintained by the US Naval Observatory.
NTP was originally developed by Dave Mills at the University of Delaware, who still maintains it, along with additional volunteers. The first version was implemented in 1985 (NTP Version 0), making NTP one of the oldest Internet protocols still in use.
NTP uses a refined version of Marzullo's algorithm. Invented by Keith Marzullo for his doctoral dissertation, this algorithm selects sources for estimating accurate time from among a number of noisy time sources. Noise refers to unwanted signals that interfere with the clarity and intelligibility of desired signals.
NTP employs UDP (user datagram protocol) as its transport mechanism. UDP, one of the core protocols of the Internet protocol suite, is a connectionless, transport layer protocol that transmits packets with minimal error recovery services and without guaranteed delivery or acknowledgment. Its low overhead (i.e., low amount of traffic and small additions to packet headers) makes it faster and more efficient than TCP (transmission control protocol) for many lightweight or time-sensitive purposes.
Simple network time protocol (SNTP) is a simplified form of NTP that does not require the storage information about previous communications. It is often used in applications for which a lower level of accuracy is sufficient and in embedded devices.
Created December 8, 2005.