The Network Time Protocol (NTP) is used to synchronize the time of a
computer client or server to another server or reference time source,
such as a radio or satellite receiver or modem. It provides accuracies
typically within a millisecond on LANs up to a few tens of milliseconds
on WANs relative to Coordinated Universal Time (UTC), as provided by a
Global Positioning Service (GPS) receiver, for example. Typical NTP
configurations utilize multiple redundant servers and diverse network
paths, in order to achieve high accuracy and reliability. Some
configurations include cryptographic authentication to prevent
accidental or malicious protocol attacks. Information on the NTP
architecture, protocol and algorithms can be found in the following
articles and reports, which are available online
Mills, D.L. Internet time synchronization: the Network Time Protocol.
IEEE Trans. Communications COM-39, 10 (October 1991), 1482-1493.
(PostScript). Also in: Yang, Z., and T.A. Marsland (Eds.). Global
States and Time in Distributed Systems. IEEE Computer Society Press,
Los Alamitos, CA, 1994, 91-102. Condensed from: Ibid. Network
Working Group Report RFC-1129, University of Delaware, October 1989.
(Abstract: PostScript), (Body:
PostScript). Also published as: Electrical Engineering Department
Report 89-9-1, University of Delaware, September 1989. (Abstract:
PostScript), (Body:
PostScript).
The NTP specification and implementation has evolved over the last
fifteen years to the current Version 3 of the protocol. This version
includes significant enhancements in accuracy and reliability, as
determined by experience in an estimated total of well over 100,000
clients and servers in the Internet, while retaining backward
compatibility with previous versions. The formal specification of the NTP
Version 3 protocol is contained in:
This software distribution contains a fully compliant implementation
of the NTP Version 3 protocol, including an autonomous protocol daemon
that disciplines the local host clock, as well as a set of supporting
utility programs used to debug and manage one or more NTP servers in a
network. It includes complete sources and documentation for well over
two dozen Unix-based and Microsoft NT-based workstations and file
servers. The implementation is fully compliant with RFC-1305 and, in
addition, contains certain extensions compatible with, but not defined
by, that document. These extensions include:
Support for precision-time kernel modifications, as described in
Mills, D.L. Unix kernel modifications for precision time
synchronization. Electrical Engineering Department Report 94-10-1,
University of Delaware, October 1994, 24 pp. (Abstract:
PostScript), (Body:
PostScript). Major revision and update of: Network Working Group
Report RFC-1589, University of Delaware, March 1994. 31 pp. (ASCII).
Support for IP Multicasting, as described in
Mills, D.L, and A. Thyagarajan. Network time protocol version 4
proposed changes. Electrical Engineering Department Report 94-10-2,
University of Delaware, October 1994, 32 pp. (Abstract:
PostScript), (Body:
PostScript).
A new hybrid phase/frequency-lock clock discipline, which
replaces the RFC-1305 local clock algorithm, as described in
Engineered refinements to radio clock drivers and interface code,
as described in:
Mills, D.L. Precision synchronization of computer network clocks.
ACM Computer Communication Review 24, 2 (April 1994). 28-43.
(PostScript).
Support for over two dozen reference clock drivers for all known
national and international radio, satellite and modem standard time
services known at this time. See the
Reference Clock Drivers page.
Support for the MD5 cryptographic hash algorithm, in addition to
the DES-CBC algorithm described in RFC-1305, as described in the xntpd - Network Time Protocol (NTP)
daemon page.
A number of articles and reports have been written on the analysis,
design, implementation and performance of NTP. A representative sample
is included here, along with a short description of each. Additional
information on NTP can be found at the web sites for NTP and David L. Mills
A subset of NTP has been defined suitable for use where some
degradation in accuracy and reliability is acceptable, so that the
entire suite of specified algorithms need not be implemented. This
subset is defined in:
Mills, D.L. Simple Network Time Protocol (SNTP). Network Working
Group Report RFC-1769, University of Delaware, March 1995, 14 pp.
(ASCII). Major revision and update of: Ibid. Network Working
Group Report RFC-1361, University of Delaware, August 1992, 10 pp.
(ASCII).
An assessment of the expected accuracy of NTP operating in the
Internet is contained in the following:
Mills, D.L. Measured performance of the Network Time Protocol in the
Internet system. Network Working Group Report RFC-1128. University of
Delaware, October 1989.
(Abstract: PostScript), (Body:
PostScript). Also published as: Electrical Engineering Department
Report 89-9-3, University of Delaware, September 1989.
(Abstract: PostScript), (Body:
PostScript).
Mills, D.L. On the accuracy and stability of clocks synchronized by
the Network Time Protocol in the Internet system. ACM Computer
Communication Review 20, 1 (January 1990), 65-75. (PostScript).
The following publication explores issues involved in the
development of the NTP specification, including the development of its
timescale and the treatment of leap seconds:
Mills, D.L. On the chronology and metrology of computer network
timescales and their application to the Network Time Protocol. ACM
Computer Communications Review 21, 5 (October 1991), 8-17. (PostScript).
A comprehensive analysis of the engineering model used in the NTP
algorithms is given in the following report. This includes a performance
analysis of the clock filter and selection algorithms, clock discipline
feedback loop, and error budget.
Mills, D.L. Modelling and analysis of computer network clocks.
Electrical Engineering Department Report 92-5-2, University of Delaware,
May 1992, 29 pp. (Abstract:
PostScript), (Body:
PostScript).