Notes for NTP Version 3

This version operates in much the same manner as Version 2 with the
following changes and additions:

1.   The protocol machinery operates in conformance with the RFC1305 NTP
    Version 3 specification. The most visible characteristic of this
    version is that the poll intervals for all polls, even selected
    ones, is significantly increased. This is especially desirable when
    serving a large client population. This implementation supports
    previous versions as non-configured peers; for version-2 configured
    peers a "version 2" keyword should be included on the "peer" line.

2.   The configuration file has a new keyword: statfile <file>, where
    <file> is the name of a statistics file." When present, each clock
    update generates an entry of the form:

    <day> <sec>.<frac> <addr> <status> <offset> <delay> <disp>

    where <day> is the modified Julian day, <sec>.<frac> is the time of
    day, <addr> is the peer address and <status> is the peer status.
    The <offset>, <delay> and <disp> are the measured offset, delay and
    dispersion, respectively, of the peer clock relative to the local
    clock. About once per day the current file is closed and a new one
    created with names <file>.<gen>, where <gen> starts at one and
    increments for each new generation.

3.   A number of additional platforms are supported. See ./Config file
    for details.

4.   A driver for the TrueTime 468DC GOES Synchronized Clock is
    included. This driver (refclock_goes.c) should also work for other
    TrueTime radio clocks, since all use the same format.

5.   A replacement driver for the Spectracom 8170 WWVB Synchronized
    Clock is included. This driver (refclock_wwvb.c) (a) does not
    require a 1-pulse-per-second signal, (b) supports both format 0
    (original 8170) and format 2 (Netclock/2 and upgraded 8170), (c)
    can be connected to more than one computer and (d) automatically
    compensates for all serial baud rates.

6.   A driver for the German time/frequency station DCF77 is included.
    This requires a special STREAMS module.

7.   In Version 2 special line-discipline modules were required for the
    CHU and WWVB drivers. This code continues to work in Version 3,
    although it is no longer needed for the WWVB driver. However, this
    code does not work under STREAMS, as used in SunOS 4.1.1.
    Equivalent STREAMS modules are supplied with Version 3.

8.   Support for an external 1-pulse-per-second (pps) signal is
    provided. The signal is connected to a serial port (see
    xntpd/ntp_loopfilter.c for details). When present the leading edge
    of the pulse establishes the on-time epoch within an interval
    established by the selected radio clock or other NTP time server.
    Use of the pps is indicated when the tattletale displayed by ntpq
    changes from "*" to "o".

9.   The clock-selection and poll-update procedures have been modified
    slightly in order to achieve better performance on high speed LANs
    with compromise in performance on typical WANs.

10.  In order to comply with U.S. Commerce Department regulations, the DES
    encryption routine lib/authdes.c cannot be exported. For exportable
    versions of this distribution a DES-encrypted version of this routine
    lib/authdes.c.des is included along with an unencrypted version
    lib/authdes.c.export, which allows normal operation, but without the
    NTP authentication feature. Further information is available in the
    lib/authdes.c.export file.

11.  As an alternative to the DES-based authentication mechanism, an
    implementation of the RSA Message Digest 5 algorithm is provided.
    (see applicable copyright information in the library files).

12.  A driver for the Magnavox MX4200 GPS clock.

13.  A STREAMS module which captures carrier-detect data-lead transitions to
    connect a precision source of 1-pps, yet avoid the ugly overhead in the
    usual STREAMS processing. See the ppsclock subdirectory.

14.  Support for the Apple A/UX operating system and enhanced support for the
    Hewlet-Packard HP/UX operating system. See the various README and Config
    files for further information.

See the COPYRIGHT file for authors and copyright information. Note that some
modules in this distribution contain copyright information that supersedes
the copyright information in that file.

If I missed something or neglected to give due credit, please advise.

David L. Mills
University of Delaware
31 May 1992, amended 23 July 1992, 25 October 1992

Bugs and notes

A bug in the original tty_clk_STREAMS.c module has been fixed.

The poll-interval randomization feature of poll_update (in
xntpd/ntp_proto.c) has been extended to apply when the poll interval is
increased, as well as reduced. This spreads the update messages in time
and helps avoid unpleasant bursts of messages.

In the clock_select algorithm the peers selected for combining are
limited to those survivors at the lowest stratum, not the entire list.
This helps avoid whiplash when large numbers of peers are at the same
stratum.

The number formerly displayed by ntpq as "compliance" is now the time
constant of integration.

The DNS resolver xntpd/ntp_intres.c is now integrated into xntpd, making
configuration of multiple hosts easier.

System and peer event are now written to the system log at priority
LOG_INFO.

The leap-second code was fixed to avoid broadcasting leap warnings on
all except the last day of June and December.