<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML Strict//EN">
<html><head><title>
The Network Time Protocol (NTP) Distribution
</title></head><body><h3>
The Network Time Protocol (NTP) Distribution
</h3><hr>

<p><h4>Introduction</h4>

<p>Note: The software contained in this distribution is available
without charge under the conditions set forth in the <a href =
"copyright.html"> 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 client
accuracies typically within a millisecond on LANs and up to a few tens
of milliseconds on WANs relative to a primary server synchronized 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.
Information on the NTP architecture, protocol and algorithms can be
found in the <a href = "biblio.html"> Further Information and
Bibliography</a> page.

<p><h4>Building and Installing NTP</h4>

<p>The <a href = "build.html"> 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.html"> Configuration Options </a>
and <a href = "release.html"> Release Notes </a> pages.

<p>Bringing up a NTP primary server requires a radio or satellite
receiver or modem. The distribution includes hardware drivers for over
two dozen radio clocks and modem services. A list of the particular
receivers and modem drivers supported in the distribution is given in
the <a href = "refclock.html"> Reference Clock Drivers </a> page. For
most popular workstations marketed by DEC, Sun and Hewlett Packard, 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 special
scripts.

<p><h4>Configuring Clients and Servers</h4>

<p>In order to participate in the existing NTP synchronization subnet
and obtain accurate, reliable time, it is necessary to construct an
appropriate configuration file, usually called <code>ntp.conf</code>,
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.html"> Notes on Configuring NTP and Setting
up a NTP Subnet </a> page.

<p>The most important factor in providing accurate, reliable time is the
selection of modes and servers to be used in the configuration file. 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>The NTP subnet presently includes over 50 public primary servers
synchronized directly to UTC by radio, satellite or modem and located in
North America, Europe and Asia. Normally, client workstations and
servers with a relatively small number of clients do not synchronize to
primary servers. There are about 100 public secondary 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/servers.html"> List of Public NTP
Servers </a> page, which is updated frequently. There are numerous
private primary and secondary servers not normally available to the
public as well.

<p><h4>Resolving Problems</h4>

<p>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.html"> NTP Debugging Techniques </a> and <a href = "hints.html">
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.html"> Patching
Procedures </a> page suggests procedures which greatly simplify
distribution updates, while the <a href = "porting.html"> Porting Hints
</a> 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.html"> 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>

<p><a href = "xntpd.html"> <code>xntpd</code> - Network Time Protocol
(NTP) daemon </a>
<br><a href = "ntpq.html"> <code>ntpq</code> - standard NTP query
program </a>
<br><a href = "xntpdc.html"> <code>xntpdc</code> - special NTP query
program </a>
<br><a href = "ntpdate.html"> <code>ntpdate</code> - set the date and
time via NTP </a>
<br><a href = "ntptrace.html"> <code>ntptrace</code> - trace a chain of
NTP servers back to the primary source </a>
<br><a href = "tickadj.html"> <code>tickadj</code> - set time-related
kernel variables </a>
<br><a href = "ntptime.html"> <code>ntptime</code> - read kernel time
variables </a>
<br><a href = "authspeed.html"> <code>authspeed</code> - determine
authentication delays </a>
<br><a href = "authcert.html"> <code>authcert</code> - DES validation
program </a>
<br><a href = "md5cert.html"> <code>md5</code> - generate message digest
</a>

<p><h4>Supporting Documentation</h4>
<p><a href = "copyright.html"> Copyright Notice </a>
<br><a href = "notes.html"> Notes on Configuring NTP and Setting up a
NTP Subnet </a>
<br><a href = "release.html"> Release Notes </a>
<br><a href = "build.html"> Building and Installing the Distribution
</a>
<br><a href = "config.html"> Configuration Options </a>
<br><a href = "debug.html"> NTP Debugging Techniques </a>
<br><a href = "refclock.html"> Reference Clock Drivers </a>
<br><a href = "biblio.html"> Further Information and Bibliography
 </a>
<br><a href = "patches.html"> Patching Procedures </a>
<br><a href = "hints.html"> Hints and Kinks </a>
<br><a href = "porting.html"> Porting Hints </a>

<p><h4>Application Notes</h4>

<p><a href = "prefer.html"> Mitigation Rules and the <code>prefer</code>
Keyword </a>
<br><a href = "gadget.html"> Gadget Box PPS Level Converter and CHU
Modem </a>
<br><a href = "irig.html"> IRIG Support Using Sun SPARC Audio </a>
<br><a href = "measure.html"> Time and Time Interval Measurement with
Application to Computer and Network Performance Evaluation </a>
<br><a href = "kern.html"> A Kernel Model for Precision Timekeeping </a>
<br><a href = "kernpps.html"> A Kernel Programming Interface for
Precision Time Signals </a>

<hr><address>David L. Mills (mills@udel.edu)</address></body></html>
