Network Time Protocol
Encyclopedia : N : NE : NET : Network Time Protocol
The Network Time Protocol (NTP) is a protocol for synchronizing the clocks of computer systems over packet-switched, variable-latency data networks. NTP uses UDP port 123 as its transport layer. It is designed particularly to resist the effects of variable latency.
NTP is one of the oldest internet protocols still in use (since before 1985). NTP was originally designed by Dave Mills of the University of Delaware, who still maintains it, along with a team of volunteers.
Overview
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 Unix 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 and Solaris operating systems have this support.
Clock Strata
(Note that this is different from the notion of clock strata used in telecommunications systems.)
NTP uses a hierarchical system of "clock strata". The stratum levels define the distance from the reference clock and the associated accuracy. The American National Standards Institute (ANSI) standard "Synchronization Interface Standards for Digital Networks" (ANSI/T1.101-1998) defines the stratum levels and minimum performance criteria. The table below provides a summary:
Table Showing Clock Stratum Requirements (ANSI/T1.101-1998)
| Stratum | Accuracy, Adjustment Range | Pull-In-Range | Stability | Time To First Frame Slip * |
|---|---|---|---|---|
| 1 | 1 x 10-11 | N/A | N/A | 72 Days |
| 2 | 1.6 x 10-8 | Must be capable of synchronizing to clock with accuracy of +/-1.6 x 10-8 | 1 x 10-10/day 1 | 7 Days 2 |
| 3E | 1.0 x 10-6 | Must be capable of synchronizing to clock with accuracy of +/-4.6 x 10-6 | 1 x 10-8/day | 3.5 Hours |
| 3 | 4.6 x 10-6 | Must be capable of synchronizing to clock with accuracy of +/-4.6 x 10-6 | 3.7 x 10-7/day | 6 Minutes |
| 4E | 32 x 10-6 | Must be capable of synchronizing to clock with accuracy of +/-32 x 10-6 | Same as Accuracy | Not Yet Specified |
| 4E | 32 x 10-6 | Must be capable of synchronizing to clock with accuracy of +/-32 x 10-6 | Same as Accuracy | N/A |
Notes: '* To calculate slip rate from drift, one assumes a frequency offset equal to the above drift in 24 hours, which accumulates bit slips until 193 bits have been accumulated. Drift rates for various atomic and crystal oscillators are well known, and are not usually linear or not necessarily continually increasing.
- Stratum 0
- Stratum 1
- Stratum 2
- Stratum 3
- Stratum 4
NTP Timestamps
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 (136 years), with a theoretical resolution of 2−32 seconds (0.233 nanoseconds). Although the NTP timescale wraps around 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.Future versions of NTP will extend the time representation to 128 bits - 64 bits for the second representation and 64 bits for the fractional-second repesentation. According to Mills, "The 64 bit value for the fraction is enough to resolve the amount of time it takes a proton to pass an electron. The 64 bit second value is enough to provide unambiguous time representation until the universe goes dim" Digital Systems Seminar presentation by David Mills, April 26, 2006
The operational details of NTP are illustrated in RFC 778, RFC 891, RFC 956, RFC 958, and RFC 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.
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 is used in some embedded devices and in applications where high accuracy timing is not required. See RFC 1361, RFC 1769, RFC 2030 and RFC 4330.
References
See also
- Allan variance
- Clock synchronization
- ntpd and OpenNTPD
- Synchronization
- International Atomic Time
- Timeserver
- NTP vandalism
- NTP pool
External links
- [NTP Public Services Project] This is the home for the NTP (Network Time Protocol) Public Services Project which provides public support for the NTP Project and the IETF NTP Working Group. Also a Wiki with lists of NTP servers.
- [IETF NTP working group]
- [David Mills' NTP project page]
- [NTP version 4 Release Notes]
- [Time and NTP paper]
Other time synchronization protocols
- [HTTP Time Protocol (HTP)] Time synchronization with HTTP headers
- [ICMP protocol] Time synchronization with ICMP timestamps (basis for [timed] )
- [Daytime protocol] Daytime synchronization protocol via TCP port 13
- [Time protocol] Time synchronization protocol via TCP port 37
From Wikipedia, the Free Encyclopedia. Original article here. Support Wikipedia by contributing or donating.
All text is available under the terms of the GNU Free Documentation License See Wikipedia Copyrights for details.
