index.htm   [plain text]


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<meta name="generator" content="HTML Tidy, see www.w3.org">
<title>The Network Time Protocol (NTP) Distribution</title>
</head>
<body>
<h3>The Network Time Protocol (NTP) Distribution</h3>

<img align="left" src="pic/barnstable.gif" alt="gif"><a href=
"http://www.eecis.udel.edu/~mills/pictures.htm"><i>P.T. Bridgeport
Bear</i>; from <i>Pogo</i>, Walt Kelly</a> 

<p>Pleased to meet you.<br clear="left">
</p>

<hr>
<h4>Introduction</h4>

Note: The software contained in this distribution is available
without charge under the conditions set forth in the <a href=
"copyright.htm">Copyright Notice</a>. 

<p>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 and up to a few
tens of milliseconds on WANs relative to Coordinated Universal Time
(UTC) via 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
and some provide automatic server discovery using IP multicast.</p>

<p>Background information on computer network time synchronization
can be found on the <a href="exec.htm">Executive Summary - Computer
Network Time Synchronization</a> page. Discussion on protocol
conformance issues and interoperability with previous NTP versions
can be found in the <a href="biblio.htm">Protocol Conformance
Statement</a> page. Discussion on how NTP reckons the time can be
found in the <a href="leap.htm">NTP Timescale and Leap Seconds</a>
page. Background information, bibliography and briefing slides
suitable for presentations can be found in the <a href=
"http://www.eecis.udel.edu/~mills/ntp.htm">Network Time
Synchronization Project</a> page. Additional information can be
found at the NTP web site <a href="http://www.ntp.org">
www.ntp.org</a>. Please send bug reports to <a href=
"mailto:bugs@mail.ntp.org">&lt;bugs@mail.ntp.org&gt;</a>.</p>

<h4>Building and Installing NTP</h4>

NTP supports Unix and Windows (NT4 and 2000) systems. The <a href=
"build.htm">Building and Installing the Distribution</a> page
presents an overview of the procedures for compiling the
distribution and installing it on a typical client or server. The
build procedures inspect the system hardware and software
environment and automatically select the appropriate options for
that environment. While these procedures work with most computers
and operating systems marketed today, exceptions requiring manual
intervention do exist, as documented in the <a href="config.htm">
Configuration Options</a> and <a href="release.htm">Release
Notes</a> pages. Note that support for strong cryptography requires
cryptographic libraries not included in this distribution. 

<p>Bringing up a NTP primary server requires a radio or satellite
receiver or modem. It is also possible to configure a machine on an
isolated network with the local clock driver and have other
machines synchronize to it. The distribution includes hardware
drivers for the local clock and over three dozen radio clocks and
modem services. A list of supported drivers is given in the <a
href="refclock.htm">Reference Clock Drivers</a> page. For most
popular workstations marketed by Digital/Compaq, Sun and Hewlett
Packard, as well as widely available Unix clones such as FreeBSD
and Linux, the automatic build procedures select all drivers that
run on the target machine. While this increases the size of the
executable binary somewhat, individual drivers can be included or
excluded using the configure utility documented in the
Configuration Options page.</p>

<h4>Configuring Clients and Servers</h4>

<p>NTP is by its very nature a complex distributed network
application and can be configured and used for a great many widely
divergent timekeeping scenarios. The documentation presented on
these pages attempts to cover the entire suite of configuration,
operation and maintenance facilities which this distribution
supports. However, most applications will need only a few of these
facilities. If this is the case, the <a href="quick.htm">Quick
Start</a> page may be useful to get a simple workstation on the air
with an existing server.</p>

<p>However, in order to participate in the existing NTP
synchronization subnet and obtain accurate, reliable time, it is
usually necessary to construct an appropriate configuration file,
commonly called <tt>ntp.conf</tt>, which establishes the servers
and/or external receivers or modems to be used by this particular
machine. Directions for constructing this file are in the <a href=
"notes.htm">Notes on Configuring NTP and Setting up a NTP
Subnet</a> page. However, in many common cases involving simple
network topologies and workstations, the configuration data can be
specified entirely on the command line for the <a href="ntpd.htm">
<tt>ntpd</tt> - Network Time Protocol (NTP) daemon</a>.</p>

<p>The most important factor in providing accurate, reliable time
is the selection of modes and servers to be used in the
configuration file. A discussion on the available modes is on the
<a href="assoc.htm">Association Management</a> page. NTP support
for one or more computers is normally engineered as part of the
existing NTP synchronization subnet. The existing NTP subnet
consists of a multiply redundant hierarchy of servers and clients,
with each level in the hierarchy identified by stratum number.
Primary servers operate at stratum one and provide synchronization
to secondary servers operating at stratum two and so on to higher
strata. In this hierarchy, clients are simply servers that have no
dependents.</p>

<p>The NTP subnet in late 2000 includes over a hundred public
primary (stratum 1) servers synchronized directly to UTC by radio,
satellite or modem and located in every continent of the globe,
including Antarctica. Normally, client workstations and servers
with a relatively small number of clients do not synchronize to
primary servers. There are over a hundred public secondary (stratum
2) servers synchronized to the primary servers and providing
synchronization to a total in excess of 100,000 clients and servers
in the Internet. The current lists are maintained in the <a href=
"http://www.eecis.udel.edu/~mills/ntp/index.htm">Information on
Time and Frequency Services</a> page, which is updated frequently.
There are numerous private primary and secondary servers not
normally available to the public as well. You are strongly
discouraged from using these servers, since they sometimes hide in
little ghettos behind dinky links to the outside world and your
traffic can bring up expensive ISDN lines, causing much grief and
frustration.</p>

<h4>Resolving Problems</h4>

Like other things Internet, the NTP synchronization subnets tend to
be large and devilishly intricate, with many opportunities for
misconfiguration and network problems. The NTP engineering model is
specifically designed to help isolate and repair such problems
using an integrated management protocol, together with a suite of
monitoring and debugging tools. There is an optional data recording
facility which can be used to record normal and aberrant operation,
log problems to the system log facility, and retain records of
client access. The <a href="debug.htm">NTP Debugging Techniques</a>
and <a href="hints.htm">Hints and Kinks</a> pages contain useful
information for identifying problems and devising solutions. 

<p>Users are requested to report bugs, offer suggestions and
contribute additions to this distribution. The <a href=
"patches.htm">Patching Procedures</a> page suggests procedures
which greatly simplify distribution updates, while the <a href=
"porting.htm">Porting Hints</a> page suggest ways to make porting
this code to new hardware and operating systems easier. Additional
information on reference clock driver construction and debugging
can be found in the <a href="refclock.htm">Reference Clock
Drivers</a> page. Further information on NTP in the Internet can be
found in the <a href="http://www.eecis.udel.edu/~ntp">NTP web
page</a>.</p>

<h4>Program Manual Pages</h4>

<ul>
<li><a href="ntpd.htm"><tt>ntpd</tt> - Network Time Protocol (NTP)
daemon</a></li>

<li><a href="ntpq.htm"><tt>ntpq</tt> - standard NTP query
program</a></li>

<li><a href="ntpdc.htm"><tt>ntpdc</tt> - special NTP query
program</a></li>

<li><a href="ntpdate.htm"><tt>ntpdate</tt> - set the date and time
via NTP</a></li>

<li><a href="ntptrace.htm"><tt>ntptrace</tt> - trace a chain of NTP
servers back to the primary source</a></li>

<li><a href="tickadj.htm"><tt>tickadj</tt> - set time-related
kernel variables</a></li>

<li><a href="ntptime.htm"><tt>ntptime</tt> - read kernel time
variables</a></li>

<li><a href="genkeys.htm"><tt>ntp-genkeys</tt> - generate public
and private keys</a></li>
</ul>

<h4>Supporting Documentation</h4>

<ul>
<li><a href="http://www.eecis.udel.edu/~mills/ntp.htm">NTP Project
and Reference Library</a></li>

<li><a href="copyright.htm">Copyright Notice</a></li>

<li><a href="exec.htm">Executive Summary - Computer Network Time
Synchronization</a></li>

<li><a href="biblio.htm">Protocol Conformance Statement</a></li>

<li><a href="leap.htm">NTP Timescale and Leap Seconds</a></li>

<li><a href="notes.htm">Notes on Configuring NTP and Setting up a
NTP Subnet</a></li>

<li><a href="release.htm">NTP Version 4 Release Notes</a></li>

<li><a href="build.htm">Building and Installing the
Distribution</a></li>

<li><a href="config.htm">Configuration Options</a></li>

<li><a href="debug.htm">NTP Debugging Techniques</a></li>

<li><a href="refclock.htm">Reference Clock Drivers</a></li>

<li><a href="patches.htm">Patching Procedures</a></li>

<li><a href="hints.htm">Hints and Kinks</a></li>

<li><a href="porting.htm">Porting Hints</a></li>
</ul>

<h4>Application Notes</h4>

<ul>
<li><a href="prefer.htm">Mitigation Rules and the <tt>prefer</tt>
Keyword</a></li>

<li><a href="assoc.htm">Association Management</a></li>

<li><a href="pps.htm">Pulse-per-second (PPS) Signal
Interfacing</a></li>

<li><a href="gadget.htm">Gadget Box PPS Level Converter and CHU
Modem</a></li>

<li><a href="measure.htm">Time and Time Interval Measurement with
Application to Computer and Network Performance Evaluation</a></li>

<li><a href="kern.htm">Kernel Model for Precision
Timekeeping</a></li>

<li><a href="kernpps.htm">Kernel Programming Interface for
Precision Time Signals</a></li>
</ul>

<hr>
<center><img src="pic/pogo1a.gif" alt="gif"></center>

<br>
<a href="index.htm"><img align="left" src="pic/home.gif" alt=
"gif"></a> 

<address><a href="mailto:mills@udel.edu">David L. Mills
&lt;mills@udel.edu&gt;</a></address>
</body>
</html>