Preface
This document describes Version 3 of the Network Time Protocol (NTP). It supersedes Version 2
of the protocol described in RFC-1119 dated September 1989. However, it neither changes the
protocol in any significant way nor obsoletes previous versions or existing implementations. The
main motivation for the new version is to refine the analysis and implementation models for new
applications at much higher network speeds to the gigabit-per-second regime and to provide for the
enhanced stability, accuracy and precision required at such speeds. In particular, the sources of time
and frequency errors have been rigorously examined and error bounds established in order to
improve performance, provide a model for correctness assertions and indicate timekeeping quality
to the user. The revision also incorporates two new optional features, (1) an algorithm to combine
the offsets of a number of peer time servers in order to enhance accuracy and (2) improved
local-clock algorithms which allow the poll intervals on all synchronization paths to be substantially
increased in order to reduce network overhead. An overview of the changes, which are described
in detail in Appendix D, follows:
1. In Version 3 The local-clock algorithm has been overhauled to improve stability and accuracy.
Appendix G presents a detailed mathematical model and design example which has been refined
with the aid of feedback-control analysis and extensive simulation using data collected over
ordinary Internet paths. Section 5 of RFC-1119 on the NTP local clock has been completely
rewritten to describe the new algorithm. Since the new algorithm can result in message rates far
below the old ones, it is highly recommended that they be used in new implementations. Note
that use of the new algorithm does not affect interoperability with previous versions or existing
implementations.
2. In Version 3 a new algorithm to combine the offsets of a number of peer time servers is presented
in Appendix F. This algorithm is modelled on those used by national standards laboratories to
combine the weighted offsets from a number of standard clocks to construct a synthetic
laboratory timescale more accurate than that of any clock separately. It can be used in an NTP
implementation to improve accuracy and stability and reduce errors due to asymmetric paths in
the Internet. The new algorithm has been simulated using data collected over ordinary Internet
paths and, along with the new local-clock algorithm, implemented and tested in the Fuzzball
time servers now running in the Internet. Note that use of the new algorithm does not affect
interoperability with previous versions or existing implementations.
3. Several inconsistencies and minor errors in previous versions have been corrected in Version
3. The description of the procedures has been rewritten in pseudo-code augmented by English
commentary for clarity and to avoid ambiguity. Appendix I has been added to illustrate
C-language implementations of the various filtering and selection algorithms suggested for NTP.
Additional information is included in Section 5 and in Appendix E, which includes the tutorial
material formerly included in Section 2 of RFC-1119, as well as much new material clarifying
the interpretation of timescales and leap seconds.
4. Minor changes have been made in the Version-3 local-clock algorithms to avoid problems
observed when leap seconds are introduced in the UTC timescale and also to support an auxiliary
RFC-1305 Network Time Protocol (Version 3) March 1992
Mills Page ii