Jump to content

Network Time Protocol: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
No edit summary
Fixed spelling mistakes ahoy!
Line 26: Line 26:


*'''Stratum 1'''
*'''Stratum 1'''
These are computers attached to Stratum 0 devices. Normally they act as servers for timing requests from Stratum 2 servers via NTP. These computers are also referred to as [[timeserver]]s. Many Stratum 1 servers (for NTP v3 and earlyer versions) may not actually be operating with Stratum 1 percsion. As the NTP protocol is devloped, it will become less and less possble for misleading Stratum 1 servers to run -- instead the protocol would automatically bump the server Stratum level down accordingly.
These are computers attached to Stratum 0 devices. Normally they act as servers for timing requests from Stratum 2 servers via NTP. These computers are also referred to as [[timeserver]]s. Many Stratum 1 servers (for NTP v3 and earlyer versions) may not actually be operating with Stratum 1 precision. As the NTP protocol is developed, it will become less and less possible for misleading Stratum 1 servers to run -- instead the protocol would automatically bump the server Stratum level down accordingly.


*'''Stratum 2'''
*'''Stratum 2'''

Revision as of 07:32, 3 January 2007

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 (Jitter).

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.

NTP is not related to the much simpler DAYTIME (RFC 867) and TIME (RFC 868) protocols.

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.

Windows 2000/XP includes the ability to sync the computer clock to a NTP server.

The operational details of NTP are illustrated in RFC 778, RFC 891, RFC 956, RFC 958, and RFC 1305. The current reference implementation is version 4 (NTPv4); however, as of 2005, only versions up to 3 (1992) have been documented in RFCs. The IETF NTP Working Group has formed to standardize 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.

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.

  • Stratum 0

These are devices such as atomic (cæsium, rubidium) clocks, GPS clocks or other radio clocks. Stratum-0 devices are not attached to the network; instead they are locally connected to computers (e.g. via an RS-232 connection using a Pulse per second signal).

  • Stratum 1

These are computers attached to Stratum 0 devices. Normally they act as servers for timing requests from Stratum 2 servers via NTP. These computers are also referred to as timeservers. Many Stratum 1 servers (for NTP v3 and earlyer versions) may not actually be operating with Stratum 1 precision. As the NTP protocol is developed, it will become less and less possible for misleading Stratum 1 servers to run -- instead the protocol would automatically bump the server Stratum level down accordingly.

  • Stratum 2

These are computers that send NTP requests to Stratum 1 servers. Normally a Stratum 2 computer will reference a number of Stratum 1 servers and use the NTP algorithm to gather the best data sample, dropping any Stratum 1 servers that seem obviously wrong. Stratum 2 computers will peer with other Stratum 2 computers to provide more stable and robust time for all devices in the peer group. Stratum 2 computers normally act as servers for Stratum 3 NTP requests.

  • Stratum 3 and higher

These computers employ exactly the same NTP functions of peering and data sampling as Stratum 2, and can themselves act as servers for higher strata, potentially up to 16 levels. NTP (depending on what version of NTP protocol in use) supports up to 256 strata. It is hoped that in NTP 5 (a protocol still in devlopment) that only 8 or 16 stratas will be permitted.

Strata illustration


File:Ntp.png
NTP Stratum Levels


NTP timestamps

The 64-bit timestamps used by NTP consist of a 32-bit seconds part and a 32-bit fractional second part with an epoch of January 1, 1900, giving NTP a time scale of 232 seconds (136 years) and 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 unlikely to ever be a problem in general use.

Even so, future versions of NTP will extend the time representation to 128 bits: 64 bits for the second and 64 bits for the fractional-second. 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."[1] Indeed, 2−64 seconds is about 54 zettoseconds, and 264 seconds is about 585 billion years.

References

  1. ^ Digital Systems Seminar presen tation by David Mills, April 26, 2006

Bibliography

See also

Other time synchronization protocols