Science Fair Project Encyclopedia
Network Time Protocol
The Network Time Protocol (NTP) is a protocol for synchronising the clocks of computer systems over packet-switched, variable-latency data networks. NTP is a purely UDP/IP protocol, not TCP/IP. It is designed particularly to resist the effects of variable latency.
NTP uses Marzullo's algorithm with the UTC time scale, including support for features such as leap seconds. NTPv4 can usually maintain time to within 10 milliseconds (1/100 s) over the public Internet, and can achieve accuracies of 200 microseconds (1/5000 s) or better in local area networks under ideal conditions.
The NTP daemon is a user-level process that runs continuously on a machine that supports NTP, and most of the protocol is implemented in this user process. To get the best performance from NTP, it is important to have the standard NTP clock phase-locked loop implemented in the operating system kernel, rather than using only the intervention of the external NTP daemon: all recent versions of the Linux operating system have this support.
NTP uses a hierarchical system of "clock strata", where stratum 1 systems are synchronised to an accurate external clock such as a GPS clock or other radio clock. NTP stratum 2 systems derive their time from one or more stratum 1 systems, and so on (Note that this is different from the notion of clock stratum used in telecommunications systems).
The 64-bit timestamps used by NTP consist of a 32-bit seconds part and a 32-bit fractional second part, giving NTP a time scale of 232 seconds, with a theoretical resolution of 2-32 seconds. Although the NTP timescale wraps round every 232 seconds, implementations should disambiguate NTP time using a knowledge of the approximate time from other sources. Since this only requires time accurate to a few decades, this is not a problem in general use.
A less complex form of NTP that does not require storing information about previous communications is known as the Simple Network Time Protocol or SNTP. It has gained a following in embedded devices and in applications where extremely high accuracy is not required. See RFCs 1361, 1769, and 2030.
The operational details of NTP are illustrated in RFCs 778, 891, 956, 958, and 1305. (NTP should not be confused with the daytime (RFC 867) or time (RFC 868) protocols.) The current version is NTP version 4; however, as of 2005, only NTP up to version 3 has been documented in RFCs. The IETF NTP Working Group has formed to standardise the work of the NTP community since RFC 1305 et al.
Besides the reference software implementation of NTP, which can be found on the NTP homepage and for which ports to the most popular operating systems exist, a number of manufacturers offer standalone timeserver appliances like Symmetricom, Meinberg, FEI-Zyfer and others. These dedicated servers can provide accurate time to computer networks of any size.
General NTP links:
- NTP homepage Research and development on the NTP protocol and the Reference Implementation
- NTP Public Services Project Does release engineering for the Reference Implementation, provides the Community Supported Documentation for NTP, mailing list/newsgroup/irc support for NTP, and provides the mailing list resources for the IETF NTP Working Group
- Dave Mills' homepage
- NTPv4 Release Notes
- IETF NTP working group
- Windows Port of NTP Port of the reference implementation from ntp.org, including a comfortable installer
- Abouttime NTP client for Windows
- Chrony a Unix time program compatible with NTP
- OpenNTPd SNTP program developed by the OpenBSD project
- NIST Timesoftware list
Manufacturers of NTP-based timeservers:
- Symmetricom manufacturer of high performance NTP time servers
- Time & Frequency Solutions manufacturer of NTP Timeservers called NTP8, M210, M211 & TFD8000
- Meinberg Radio Clocks manufacturer of Linux-based NTP timeservers called LANTIME
- Galleon Radio Clocks manufacturer of NTP timeservers
- FEI-Zyfer manufacturer of NTP timeservers called NTPSync
The contents of this article is licensed from www.wikipedia.org under the GNU Free Documentation License. Click here to see the transparent copy and copyright details