Notes for NTPv3

Last update: May 4, 2022 17:05 UTC (dbea9b7d4)

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 RFC 1305 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 events 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.