Network Working Group                                         D.L. Mills
Request for Comments: 957                               M/A-COM Linkabit
                                                         September 1985

             Experiments in Network Clock Synchronization


Status of this Memo

  This RFC discusses some experiments in clock synchronization in the
  ARPA-Internet community, and requests discussion and suggestions for
  improvements.  Distribution of this memo is unlimited.

Table of Contents

  1.      Introduction
  2.      Design of the Synchronization Algorithm
  2.1.    The Logical Clock
  2.2.    Linear Phase Adjustments
  2.3.    Nonlinear Phase Adjustments
  3.      Synchronizing Network Clocks
  3.1.    Reference Clocks and Reference Hosts
  3.2.    Distribution of Timing Information
  4.      Experimental Validation of the Design
  4.1.    Experiment Design
  4.2.    Experiment Execution
  4.3.    Discussion of Results
  4.3.1.  On Power-Grid Clocks
  4.3.2.  On Clocks Synchronized via Network Links
  4.3.3.  On the Accuracy of Radio Clocks
  4.3.3.1. The Spectracom 8170 WWVB Radio Clock
  4.3.3.2. The True Time 468-DC GOES Radio Clock
  4.3.3.3. The Heath GC-1000 WWV Radio Clock
  4.3.4.  On Handling Disruptions
  4.4.    Additional Experiments
  5.      Summary and Conclusions
  6.      References

List of Figures

  Figure 1. Clock Registers
  Figure 2. Network Configuration











Mills                                                           [Page 1]



RFC 957                                                   September 1985
Experiments in Network Clock Synchronization


List of Tables

  Table 1. Experiment Hosts
  Table 2. Link Measurements
  Table 3. First Derivative of Delay
  Table 4. GOES Radio Clock Offsets
  Table 5. WWV Radio Clock Offsets
  Table 6. ISI-MCON-GW Clock Statistics
  Table 7. LL-GW Clock Statistics
  Table 8. LL-GW Clock Statistics

1.  Introduction

  One of the services frequently neglected in computer network design
  is a high-quality, time-of-day clock capable of generating accurate
  timestamps with small residual errors compared to intrinsic one-way
  network delays.  Such a service would be useful for tracing the
  progress of complex transactions, synchronizing cached data bases,
  monitoring network performance and isolating problems.

  Several mechanisms have been specified in the Internet protocol suite
  to record and transmit the time at which an event takes place,
  including the ICMP Timestamp message [6], Time Protocol [7], Daytime
  protocol [8] and IP Timestamp option [9].  A new Network Time
  Protocol [12] has been proposed as well.  Additional information on
  network time synchronization can be found in the References at the
  end of this document.  Synchronization protocols are described in [3]
  and [12] and synchronization algorithms in [2], [5], [10] and [11].
  Experimental results on measured roundtrip delays in the Internet are
  discussed in [4].  A comprehensive mathematical treatment of clock
  synchronization can be found in [1].

  Several mechanisms have been specified in the Internet protocol suite
  to record and transmit the time at which an event takes place,
  including the ICMP Timestamp message [6], Time protocol [7], Daytime
  protocol [8] and IP Timestamp option [9].  Issues on time
  synchronization are discussed in [4] and synchronization algorithms
  in [2] and [5].  Experimental results on measured roundtrip delays in
  the Internet are discussed in [2].  A comprehensive mathematical
  treatment of the subject can be found in [1], while an interesting
  discussion on mutual-synchonization techniques can be found in [10].

  There are several ways accurate timestamps can be generated.  One is
  to provide at every service point an accurate, machine-readable clock
  synchronized to a central reference, such as the National Bureau of
  Standards (NBS).  Such clocks are readily available in several models
  ranging in accuracies of a few hundred milliseconds to less than a


Mills                                                           [Page 2]



RFC 957                                                   September 1985
Experiments in Network Clock Synchronization


  millisecond and are typically synchronized to special ground-based or
  satellite-based radio broadcasts.  While the expense of the clocks
  themselves, currently in the range $300 to $3000, can often be
  justified, all require carefully sited antennas well away from
  computer-generated electromagnetic noise, as well as shielded
  connections to the clocks.  In addition, these clocks can require a
  lengthy synchonization period upon power-up, so that a battery-backup
  power supply is required for reliable service in the event of power
  interruptions.

  If the propagation delays in the network are stable or can be
  predicted accurately, timestamps can be generated by a central
  server, equipped with a clock such as described above, in response to
  requests from remote service points.  However, there are many
  instances where the trans-network delay to obtain a timestamp would
  be intolerable, such as when timestamping a message before
  transmission.  In addition, propagation delays are usually not
  predictable with precisions in the order required, due to
  probabilistic queuing and channel-contention delays.

  In principle, a clock of sufficient accuracy can be provided at each
  service point using a stable, crystal-controlled clock which is
  corrected from time to time by messages from a central server.
  Suitable inexpensive, crystal-controlled clock interfaces are
  available for virtually any computer.  The interesting problem
  remaining is the design of the synchronization algorithm and protocol
  used to transmit the corrections.  In this document one such design
  will be described and its performance assessed.  This design has been
  incorprated as an integral part of the network routing and control
  protocols of the Distributed Computer Network (DCnet) architecture
  [5], clones of which have been established at several sites in the US
  and Europe.  These protocols have been in use since 1979 and been
  continuously tested and refined since then.

2.  Design of the Synchronization Algorithm

  The synchronization algorithm is distributed in nature, with protocol
  peers maintained in every host on the network.  Peers communicate
  with each other on a pairwise basis using special control messages,
  called Hello messages, exchanged periodically over the ordinary data
  links between them.  The Hello messages contain information necessary
  for each host to calculate the delay and offset between the local
  clock of the host and the clock of every other host on the network
  and are also used to drive the routing algorithm.

  The synchronization algorithm includes several features to improve
  the accuracy and stability of the local clock in the case of host or


Mills                                                           [Page 3]



RFC 957                                                   September 1985
Experiments in Network Clock Synchronization


  link failures.  In following sections the design of the algorithm is
  summarized.  Full design details are given in [5] along with a formal
  description of the Hello protocol.

2.1.  The Logical Clock

  In the DCnet model each service point, or host, is equipped with a
  hardware clock, usually in the form of an off-the-shelf interface.
  Using this and software registers, a logical clock is constructed
  including a 48-bit Clock Register, which increments at a 1000 Hz
  rate, a 32-bit Clock-Adjust Register, which is used to slew the Clock
  Register in response to raw corrections received over the net, and a
  Counter Register, which is used in some interface designs as an
  auxilliary counter.  The configuration and decimal point of these
  registers are shown in Figure 1.

          Clock Register

          0               16               32
          +---------------+---------------+---------------+
          |               |               |               |
          +---------------+---------------+---------------+
                                          A
                                    decimal point

          Clock-Adjust Register

                          0               16
                          +---------------+---------------+
                          |               |               |
                          +---------------+---------------+
                                          A
                                    decimal point

          Counter Register

                          0              16
                          +---------------+
                          |               |
                          +---------------+
                                          A
                                    decimal point

                      Figure 1. Clock Registers

  The Clock Register and Clock-Adjust Register are implemented in
  memory.  In typical clock interface designs such as the DEC KMV11-A


Mills                                                           [Page 4]



RFC 957                                                   September 1985
Experiments in Network Clock Synchronization


  the Counter Register is implemented in the interface as a buffered
  counter driven by a crystal oscillator.  A counter overflow is
  signalled by an interrupt, which results in an increment of the Clock
  Register at bit 15 and the propagation of carries as required.  The
  time of day is determined by reading the Counter Register, which does
  not disturb its counting process, and adding its value to that of the
  Clock Register with decimal points aligned.

  In other interface designs such as the simple LSI-11 event-line
  mechanism, each tick of the clock is signalled by an interrupt at
  intervals of 10, 16-2/3 or 20 ms, depending on interface and clock
  source.  When this occurs the appropriate number of milliseconds,
  expressed to 32 bits in precision, is added to the Clock Register
  with decimal points aligned.

  It should be noted at this point that great care in operating system
  design is necessary in order to preserve the full accuracy of
  timestamps with respect to the application program, which must be
  protected from pre-emption, excessive device latencies and so forth.
  In addition, the execution times of all sequences operating with the
  interrupt system disabled must be strictly limited.  Since the PDP11
  operating system most often used in the DCnet (the "Fuzzball"
  operating system) has been constructed with these considerations
  foremost in mind, it has been especially useful for detailed network
  performance testing and evaluation.  Other systems, in particular the
  various Unix systems, have not been found sufficiently accurate for
  this purpose.

  Left uncorrected, the host logical clock runs at the rate of its
  intrinsic oscillator, whether derived from a crystal or the power
  frequency.  The correction mechanism uses the Clock-Adjust Register,
  which is updated from time to time as raw corrections are received.
  The corrections are computed using roundtrip delays and offsets
  derived from the routing algorithm, described later in this document,
  which are relatively noisy compared to the precision of the logical
  clock.  A carefully designed smoothing mechansim insures stability,
  as well as isolation from large transients that occur due to link
  retransmissions, host reboots and similar disruptions.











Mills                                                           [Page 5]



RFC 957                                                   September 1985
Experiments in Network Clock Synchronization


2.2.  Linear Phase Adjustments

  The correction is introduced as a signed 32-bit integer in
  milliseconds.  If the magnitude of the correction is less than 128
  ms, the low-order 16 bits replaces bits 0-15 in the Clock-Adjust
  register. At suitable intervals, depending on the jitter of the
  intrinsic oscillator, the value of this register is divided by a
  fixed value, forming a quotient which is first added to the Clock
  Register, then subtracted from the Clock-Adjust Register.  This
  technique has several advantages:

     1.  The clock never runs backwards;  that is, successive
         timestamps always increase monotonically.

     2.  In the event of loss of correction information, the clock
         slews to the last correction received.

     3.  The rate of slew is proportional to the magnitude of the last
         correction.  This allows rapid settling in case of large
         corrections, but provides high stability in case of small
         corrections.

     4.  The sequence of computations preserves the highest precision
         and minimizes the propagation of round-off errors.

  Experience has indicated the choice of 256 as appropriate for the
  dividend above, which yields a maximum slew-rate magnitude less than
  0.5 ms per adjustment interval and a granularity of about 2.0
  microseconds, which is of the same order as the intrinsic tolerance
  of the crystal oscillators used in typical clock interfaces.  In the
  case of crystal-derived clocks, an adjustment interval of four
  seconds has worked well, which yields a maximum slew-rate magnitude
  of 125 microseconds per second.  In the case of power-frequency
  clocks or especially noisy links, the greatly increased jitter
  requires shorter adjustment intervals in the range of 0.5 second,
  which yields a maximum slew-rate magnitude of 1.0 ms per second.

  In most cases, independent corrections are generated over each link
  at intervals of 30 seconds or less.  Using the above choices a single
  sample error of 128 ms causes an error at the next sample interval no
  greater than about 7.5 ms with the longer adjustment interval and 30
  ms with the shorter.  The number of adjustment intervals to reduce
  the residual error by half is about 177, or about 12 minutes with the
  longer interval and about 1.5 minutes with the shorter.  This
  completely characterizes the linear dynamics of the mechanism.




Mills                                                           [Page 6]



RFC 957                                                   September 1985
Experiments in Network Clock Synchronization


2.3.  Nonlinear Phase Adjustments

  When the magnitude of the correction exceeds 128 ms, the possiblity
  exists that the clock is so far out of synchronization with the
  reference host that the best action is an immediate and wholesale
  replacement of Clock Register contents, rather than a graduated
  slewing as described above.  In practice the necessity to do this is
  rare and occurs when the local host or reference host is rebooted,
  for example. This is fortunate, since step changes in the clock can
  result in the clock apparently running backward, as well as incorrect
  delay and offset measurements of the synchronization mechanism
  itself.

  However, it sometimes happens that, due to link retransmissions or
  occasional host glitches, a single correction sample will be computed
  with magnitude exceeding 128 ms.  In practice this happens often
  enough that a special procedure has been incorporated into the
  design.  If a sample exceeding the limit is received, its value is
  saved temporarily and does not affect the Clock-Adjust Register.  In
  addition, a timer is initialized, if not already running, to count
  down to zero in a specified time, currently 30 seconds.

  If the timer is already running when a new correction sample with
  magnitude exceeeding 128 ms arrives, its value and the saved sample
  value are averaged with equal weights to form a new saved sample
  value. If a new correction sample arrives with magnitude less than
  128 ms, the timer is stopped and the saved sample value discarded.
  If the timer counts down to zero, the saved sample value replaces the
  contents of the Clock Register and the Clock-Adjust Register is set
  to zero.  This procedure has the effect that occasional spikes in
  correction values are discarded, but legitimate step changes are
  prefiltered and then used to reset the clock after no more than a
  30-second delay.

3.  Synchronizing Network Clocks

  The algorithms described in the previous section are designed to
  achieve a high degree of accuracy and stability of the logical clocks
  in each participating host.  In this section algorithms will be
  described which synchronize these logical clocks to each other and to
  standard time derived from NBS broadcasts.  These algorithms are
  designed to minimize the cumulative errors using linear synchronizing
  techniques. See [10] for a discussion of algorithms using nonlinear
  techniques.





Mills                                                           [Page 7]



RFC 957                                                   September 1985
Experiments in Network Clock Synchronization


3.1.  Reference Clocks and Reference Hosts

  The accuracy of the entire network of logical clocks depends on the
  accuracy of the device used as the reference clock.  In the DCnet
  clones the reference clock takes the form of a precision crystal
  oscillator which is synchronized via radio or satellite with the NBS
  standard clocks in Boulder, CO.  The date and time derived from the
  oscillator can be sent continuously or read upon command via a serial
  asynchronous line.  Stand-alone units containing the oscillator,
  synchronizing receiver and controlling microprocessor are available
  from a number of manufacturers.

  The device driver responsible for the reference clock uses its
  serial-line protocol to derive both an "on-time" timestamp relative
  to the logical clock of the reference host and an absolute time
  encoded in messages sent by the clock.  About once every 30 seconds
  the difference between these two quantities is calculated and used to
  correct the logical clock according to the mechanisms described
  previously.  The corrected logical clock is then used to correct all
  other logical clocks in the network.  Note the different
  nomenclature:  The term "reference clock" applies to the physical
  clock itself, while the term "reference host" applies to the logical
  clock of the host to which it is connected. Each has an individual
  address, delay and offset in synchronizing messages.

  There are three different commercial units used as reference clocks
  in DCnet clones.  One of these uses the LF radio broadcasts on 60 KHz
  from NBS radio WWVB, another the HF radio broadcasts on 5, 10 and 15
  MHz from NBS radio WWV or WWVH and the third the UHF broadcasts from
  a GOES satellite.  The WWVB and GOES clocks claim accuracies in the
  one-millisecond range.  The WWV clock claims accuracies in the 100-ms
  range, although actual accuracies have been measured somewhat better
  than that.

  All three clocks include some kind of quality indication in their
  messages, although of widely varying detail.  At present this
  indication is used only to establish whether the clock is
  synchronized to the NBS clocks and convey this information to the
  network routing algorithm as described later.  All clocks include
  some provision to set the local-time offset and propagation delay,
  although for DCnet use all clocks are set at zero offset relative to
  Universal Time (UT).  Due to various uncertaincies in propagation
  delay, serial-line speed and interrupt latencies, the absolute
  accuracy of timestamps derived from a reference host equipped with a
  WWVB or GOES reference clock is probably no better than a couple of
  milliseconds.



Mills                                                           [Page 8]



RFC 957                                                   September 1985
Experiments in Network Clock Synchronization


3.2.  Distribution of Timing Information

  The timekeeping accuracy at the various hosts in the network depends
  critically on the precision whith which corrections can be
  distributed throughout the network.  In the DCnet design a
  distributed routing algorithm is used to determine minimum-delay
  routes between any two hosts in the net.  The algorithms used, which
  are described in detail in [5] and only in outline form here, provide
  reachability and delay information, as well as clock offsets, between
  neighboring hosts by means of periodic exchanges of routing packets
  called Hello messages. This information is then incorporated into a
  set of routing tables maintained by each host and spread throughout
  the network by means of the Hello messages.

  The detailed mechanisms to accomplish these functions have been
  carefully designed to minimize timing uncertaincies.  For instance,
  all timestamping is done in the drivers themselves, which are given
  the highest priority for resource access.  The mechanism to measure
  roundtrip delays on the individual links is insensitive to the delays
  inherent in the processing of the Hello message itself, as well as
  the intervals between transmissions.  Finally, care is taken to
  isolate and discard transient timing errors that occur when a host is
  rebooted or a link is restarted.

  The routing algorithm uses a table called the Host Table, which
  contains for each host in the network the computed roundtrip delay
  and clock offset, in milliseconds.  In order to separately identify
  each reference clock, if there is more than one in the network, a
  separate entry is used for each clock, as well as each host.  The
  delay and offset fields of the host itself are set to zero, as is the
  delay field of each attached reference clock.  The offset field of
  each attached reference clock is recomputed periodically as described
  above.

  Hello messages containing a copy of the Host Table are sent
  periodically to each neighbor host via the individual links
  connecting them.  In the case of broadcast networks the Hello message
  is broadcast to all hosts sharing the same cable.  The Hello message
  also contains a timestamp inserted at the time of transmission, as
  well as information used to accurately compute the roundtrip delay on
  point-to-point links.

  A host receiving a Hello message processes the message for each host
  in turn, including those corresponding to the reference clocks.  It
  adds the delay field in the message to the previously determined
  roundtrip link delay and compares this with the entry already in its
  Host Table.  If the sum is greater than the delay field in the Host


Mills                                                           [Page 9]



RFC 957                                                   September 1985
Experiments in Network Clock Synchronization


  Table, nothing further is done.  If the sum is less, an update
  procedure is executed.  The update procedure, described in detail in
  [5], causes the new delay to replace the old and the routing to be
  amended accordingly.

  The update procedure also causes a new correction sample to be
  computed as the difference between the timestamp in the Hello message
  and the local clock, which is used to correct the local clock as
  described above.  In addition, the sum of this correction sample plus
  the offset field in the Hello message replaces the offset field in
  the Hello Table.  The effect of these procedures is that the local
  clock is corrected relative to the neighbor clock only if the
  neighbor is on the path of least delay relative to the selected
  reference clock.  If there is no route to the reference clock, as
  determined by the routing algorithm, no corrections are computable
  and the local clock free-runs relative to the last received
  correction.

  As the result of the operation of the routing algorithm, all local
  clocks in the network will eventually stabilize at a constant offset
  relative to the reference clock, depending upon the drift rates of
  the individual oscillators.  For most applications the offset is
  small and can be neglected.  For the most precise measurements the
  computed offset in the Host Table entry associated with any host,
  including the reference clock, can be used to adjust the apparent
  time relative to the local clock of that host.  However, since the
  computed offsets are relatively noisy, it is necessary to smooth them
  using some algorithm depending upon application.  For this reason,
  the computed offsets are provided separately from the local time.

4.  Experimental Validation of the Design

  The original DCnet was established as a "port expander" net connected
  to an ARPAnet IMP in 1978.  It was and is intended as an experimental
  testbed for the development of protocols and measurement of network
  performance.  Since then the DCnet network-layer protocols have
  evolved to include multi-level routing, logical addressing,
  multicasting and time synchronization.  Several DCnet clones have
  been established in the US and Europe and connected to the DARPA
  Internet system.  The experiments described below were performed
  using the DCnet clone at Linkabit East, near Washington, DC, and
  another at Ford Motor Division, near Detroit, MI.  Other clones at
  Ford Aerospace and the Universities of Maryland and Michigan were
  used for calibration and test, while clones at various sites in
  Norway and Germany were used for occasional tests.  Additional




Mills                                                          [Page 10]



RFC 957                                                   September 1985
Experiments in Network Clock Synchronization


  ARPANET gateways of the WIDEBAND/EISN satellite system were also
  included in the experiments in order to determine the feasability of
  synchronizing clocks across the ARPANET.

  There were four principal issues of interest in the experiments:

     1.  What are the factors affecting accuracy of a network of clocks
         using the power grid as the basic timing source, together with
         corrections broadcast from a central point?

     2.  What are the factors affecting accuracy of a network of clocks
         synchronized via links used also to carry ordinary data.

     3.  How does the accuracy of the various radio clocks - WWVB, GOES
         and WWV compare?

     4.  What is the best way to handle disruptions, such as a leap
         second?

  These issues will be discussed in turn after presentation of the
  experiment design and execution.

4.1.  Experiment Design

  Figure 2 shows the configuration used in a series of tests conducted
  during late June and early July of 1985.  The tests involved six
  hosts, three reference clocks and several types of communication
  links.  The tests were designed to coincide with the insertion of a
  leap second in the standard time broadcast by NBS, providing an
  interesting test of system stability in the face of such disruptions.
  The test was also designed to test the feasability of using the power
  grid as a reference clock, with corrections broadcast as described
  above, but not used to adjust the local clock.
















Mills                                                          [Page 11]



RFC 957                                                   September 1985
Experiments in Network Clock Synchronization


     ARPAnet                              |
     - - - - - - - - - - - - - - - - - -  |  - - - - - - - - - -
                                      56K |
     +---------+     +---------+     +----+----+ 1.2 +---------+
     |   WWV   | 1.2 |         | 4.8 |         +-----+  WWVB   |
     |  radio  +-----+  DCN6   +-----+  DCN1   |async|  radio  |
     |  clock  |async|         |DDCMP|         +--+  |  clock  |
     +---------+     +---------+     +----+----+  |  +---------+
                      Ethernet            |       |
     DCnet     ===o===============o=======o===    | 1822/DH
                  |               |               |
             +----+----+     +----+----+     +----+----+
     power   |         |     |         |     |         |    power
     freq <--+  DCN3   |     |  DCN5   |     |  DCN7   +--> freq
     60 Hz   |         |     |         |     |         |    60 Hz
             +---------+     +----+----+     +---------+
                              9.6 |
     - - - - - - - - - - - - - -  |  - - - - - - - - - - - - - -
                                  | DDCMP
                             +----+----+     +---------+
                             |         | 1.2 |  GOES   |
     FORDnet                 |  FORD1  +-----+satellite|
                             |         |async|  clock  |
                             +---------+     +---------+

                   Figure 2. Network Configuration

  Only those hosts and links directly participating in the tests are
  shown in Figure 2.  All hosts shown operate using the DCnet protocols
  and timekeeping algorithms summarized in this document and detailed
  in [5].  The DCnet hosts operate as one self-contained net of the
  Internet systems, while the FORDnet hosts operate as another with
  distinct net numbers.  The gateway functions connecting the two nets
  are distributed in the DCN5 and FORD1 hosts and the link connecting
  them.  This means that, although the clock offsets of individual
  DCnet hosts are visible to other DCnet hosts and the clock offsets of
  individual FORDnet hosts are visible to other FORDnet hosts, only the
  clock offset of the gateway host on one net is visible to hosts on
  the other net.

  In Figure 2 the links are labelled with both the intrinsic speed, in
  kilobits per second, as well as the link protocol type.  The DDCMP
  links use microprocessor-based DMA interfaces that retransmit in case
  of message failure.  The 1822/DH link connecting DCN1 and DCN7
  operates at DMA speeds over a short cable.  The Ethernet link uses




Mills                                                          [Page 12]



RFC 957                                                   September 1985
Experiments in Network Clock Synchronization


  DMA interfaces that retransmit only in case of collisions.  The
  asynchronous links are used only to connect the reference clocks to
  the hosts over a short cable.

  While all hosts and links were carrying normal traffic throughout the
  test period, the incidence of retransmissions was very low, perhaps
  no more than a few times per day on any link.  However, the DDCMP
  link protocol includes the use of short control messages exhanged
  between the microprocessors about once per second in the absence of
  link traffic. These messages, together with retransmissions when they
  occur, cause small uncertaincies in Hello message delays that
  contribute to the total measurement error.  An additional uncertaincy
  (less than 0.5 per-cent on average) in Hello message length can be
  introduced when the link protocol makes use of character-stuffing or
  bit-stuffing techniques to achieve code transparency, such as with
  the LAPB link-level protocol of X.25.  However, the particular links
  used in the tests use a count field in the header, so that no
  stuffing is required.

  Although the timekeeping algorithms have been carefully designed to
  be insensitive to traffic levels, it sometimes happens that an
  intense burst of traffic results in a shortage of memory buffers in
  the various hosts.  In the case of the Ethernet interfaces, which
  have internal buffers, this can result in additional delays while the
  message is held in the interface pending delivery to the host.
  Conditions where these delays become significant occur perhaps once
  or twice a day in the present system and were observed occasionally
  during the tests.  As described above, the correction-sample
  processing incorporates a filtering procedure that discards the vast
  majority of glitches due to this and other causes.

4.2.  Experiment Execution

  The series of experiments conducted in late June and early July of
  1985 involved collecting data on the delays and offsets of the six
  hosts and three reference clocks shown in Figure 2.  In order to
  accomplish this, a special program was installed in a Unix 4.2bsd
  system connected to the Ethernet link but not shown in Figure 2.  The
  program collected each 128-octet Hello message broadcast from DCN1
  every 16 seconds and appended it bit-for-bit to the data base.  The
  total volume of raw data collected amounted to almost 0.7 megabyte
  per day.

  The raw Hello-message data were processed to extract only the
  timestamp and measured clock offsets for the hosts shown in Table 1
  and then reformatted as an ASCII file, one line per Hello message.



Mills                                                          [Page 13]



RFC 957                                                   September 1985
Experiments in Network Clock Synchronization


       Host    Clock   Drift   Experiment Use
       Name    ID      (ppm)
       ------------------------------------------------------
       DCN1    WWVB    -2.5    WWVB reference host
       DCN3    -       60-Hz   power-grid (unlocked)
       DCN5    DCN1    6.8     Ethernet host
       DCN6    DCN1    -1.7    DDCMP host, WWV reference host
       DCN7    DCN1    60-Hz   power-grid (locked)
       FORD1   GOES    17.9    GOES reference host
       WWV     -       -       WWV reference clock
       WWVB    -       -       WWVB reference clock

                      Table 1. Experiment Hosts

  In Table 1 the Clock ID column shows the reference host selected as
  the master clock for each host shown.  In this particular
  configuration host DCN1 was locked to host WWVB, while hosts DCN5,
  DCN6 and DCN7 were locked to DCN1.  Although the offset of GOES can
  not be directly determined from the Hello messages exchanged between
  DCnet and FORDnet hosts, the offset of FORD1 relative to GOES was
  determined by observation to be in the order of a millisecond, so for
  all practical purposes the offset of FORD1 represents the offset of
  GOES.  In addition, since the WWVB clock was considered by experience
  the most accurate and reliable and the offset of DCN1 relative to
  WWVB was negligible, DCN1 was considered the reference clock with
  offset zero relative to the NBS clocks.

  During the setup phase of the experiments the intrinsic drift rates
  of the crystal oscillators in the four hosts DCN1, DCN5, DCN6 and
  FORD1 equipped with them was measured as shown in the "Drift" column
  in Table 1.  The two hosts DCN3 and DCN7 are equipped with
  line-frequency clocks. For experimental purposes DCN3 was unlocked
  and allowed to free-run at the line-frequency rate, while DCN7
  remained locked.

  An ASCII file consisting of about 0.2 megabyte of reformatted data,
  was collected for each Universal-Time (UT) day of observation
  beginning on 28 June and continuing through 8 July.  Each file was
  processed by a program that produces an eight-color display of
  measured offsets as a function of time of observation.  Since the
  display technique uses a bit-map display and each observation
  overwrites the bit-map in an inclusive-OR fashion, the sample
  dispersion is immediately apparent. Over eight samples per pixel on
  the time axis are available in a 24-hour collection period.  On the
  other hand, the fine granularity of almost four samples per minute
  allows zooming the display to focus on interesting short-term
  fluctuations, such as in the case of the WWV clock.


Mills                                                          [Page 14]



RFC 957                                                   September 1985
Experiments in Network Clock Synchronization


4.3.  Discussion of Results

  Each of the four previously mentioned issues of interest will be
  discussed in following subsections.

4.3.1.  On Power-Grid Clocks

  Telephone interviews with operators and supervisors of the Potomac
  Electric Power Company (PEPCO), the electric utility serving the
  Washington, DC, area, indicate that there are three major operating
  regions or grids, one east of the Rockies, a second west of the
  Rockies and a third in parts of Texas.  The member electric utilities
  in each grid operate on a synchronous basis, so that clocks anywhere
  within the grid should keep identical time.  However, in the rare
  case when a utility drops off the grid, no attempt is made to
  re-establish correct time upon rejoining the grrd.  In the much more
  common case when areas within the grid are isolated due to local
  thunderstorms, for example, clock synchronization is also disrupted.

  The experiments provided an opportunity to measure with exquisite
  precision the offset between a clock connected to the eastern grid
  (DCN3) and the NBS clocks.  The results, confirmed by the telephone
  interviews, show a gradual gain in time of between four and six
  seconds during the interval from about 1700 local time to 0800 the
  next morning, followed by a more rapid loss in time between 0800 and
  1700.  If the time was slewed uniformly throughout these extremes,
  the rate would be about 100 ppm.

  The actual slewing rates depend on the demand, which itself is a
  function of weather, day of the week and season of the year.  Similar
  effects occur in the western and Texas grids, with more extreme
  variations in the Texas grid due to the smaller inertia of the
  system, and less extreme variations in the western grid, due to
  smaller extremes in temperature, less total industrial demand and a
  larger fraction of hydro-electric generation.

  The uilities consider timekeeping a non-tariffed service provided as
  a convenience to the customer.  In the eastern grid a control station
  in Ohio manually establishes the baseline system output, which
  indirectly affects the clock offset and slewing rate.  The local time
  is determined at the control station with respect to a WWVB radio
  clock. The maximum slewing rate is specified as .025 Hz (about 400
  ppm), which is consistent with the maximum rates observed.  In the
  western grid the baseline system output is adjusted automatically
  using a servomechanism driven by measured offsets from the NBS
  clocks.



Mills                                                          [Page 15]



RFC 957                                                   September 1985
Experiments in Network Clock Synchronization


  Given the considerations above, it would seem feasable for hosts to
  synchronize logical clocks to a particular power grid, but only if
  corrections were transmitted often enough to maintain the required
  accuracy and these corrections were delivered to the hosts
  essentially at the same time.  Assuming a worst-case 400-ppm slewing
  rate and one minute between correction broadcasts, for example, it
  would in principle be possible to achieve accuracies in the 20-ms
  range.  There are a number of prediction and smoothing techniques
  that could be used to inhance accuracy and reduce the overhead of the
  broadcasts.

  Host DCN3, which uses a line-frequency clock interface, was unlocked
  during the experiment period so that the offset between the PEPCO
  clock, which is locked to the eastern power grid, could be measured
  with respect to the reference host DCN1.  Host DCN7, which uses the
  same interface, remained locked to DCN1.  In spite of the previously
  noted instability of the power grid, DCN7 remained typically within
  30 ms of DCN1 and only infrequently exceeded 100 ms in the vicinity
  of large changes in system load that occured near 0800 and 1700 local
  time. Over the seven-day period from 2 July through 8 July the mean
  offset was less than a millisecond with standard deviation about 24
  ms, while the maximum was 79 ms and minimum -116 ms.

  Experiments were also carried out using ICMP Timestamp messages with
  hosts known to use line-frequency clock interfaces in California,
  Norway and Germany.  The results indicated that the western power
  grid is rather more stable than the eastern grid and that the
  overseas grids are rather less stable.  In the Oslo, Munich and
  Stuttgart areas, for example, the diurnal variation was observed to
  exceed ten seconds.

4.3.2.  On Clocks Synchronized via Network Links

  As mentioned previously, all network links used to synchronize the
  clocks were carrying normal data traffic throughout the experiment
  period.  It would therefore be of interest to investigate how this
  affects the accuracy of the individual clocks.

  Table 2 summarizes the mean and standard deviation of the measured
  offsets between the WWVB radio clock and various hosts as shown in
  Figure 2.  Measurements were made over the 24-hour period for each of
  several days during the experimental period.  Each entry shown in
  Table 2 includes the mean of the statistic over these days, together
  with the maximum variation.





Mills                                                          [Page 16]



RFC 957                                                   September 1985
Experiments in Network Clock Synchronization


     Host  Mean          Deviation    Link Type and Speed
     -----------------------------------------------------------
     DCN1  .08/.02       0.53/.02     WWVB radio clock (1200 bps)
     DCN5  -13.61/.04    1.1/0.4      Ethernet (10 Mbps)
     DCN6  0.27/.18      5.8/1.0      DDCMP (4800 bps)
     FORD1 38.5/1.6      2.5/0.5      DDCMP (9600 bps)

                      Table 2. Link Measurements

  The departure of the mean shown in Table 2 from zero is related to
  the drift of the crystal oscillator used in the hardware interface
  (see Table 1).  As described previously, FORD1 was synchonized to the
  GOES radio clock with neglible offset, so that the mean and standard
  deviation shown can be accurately interpreted to apply to the GOES
  radio clock as well.

  The results show that the uncertaincies inherent in the
  synchronization algorithm and protocols is in the same order as that
  of the reference clocks and is related to the speed of the links
  connected the reference hosts to the other hosts in the network.
  Further discussion on the FORD1/GOES statistics can be found in the
  next section.

  Further insight into the error process can be seen in Table 3, which
  shows the first derivative of delay.

                Host    Dev     Max     Min     Error
                -------------------------------------
                DCN3    2.3     12      -17     10
                DCN5    1.5     45      -45     5
                DCN6    9       94      -54     40
                DCN7    1.4     6       -7      5
                FORD1   3.4     68      -51     15

                  Table 3. First Derivative of Delay

  The mean and standard deviation of delay were computed for all hosts
  on a typical day during the experimental period.  In all cases the
  magnitude of the mean was less than one.  The standard deviation,
  maximum and minimum for each link is summarized by host in Table 3.
  A common characteristic of the distribution in most cases was that
  only a handful of samples approached the maximum or minimum extrema,
  while the vast majority of samples were much less than this.  The
  "Error" colum in Table 3 indicates the magnitude of the estimated
  error when these extrema are discarded.




Mills                                                          [Page 17]



RFC 957                                                   September 1985
Experiments in Network Clock Synchronization


  A very interesting feature of the observations was the unexpectedly
  low standard deviation of DCN3, which was locked to the power grid
  and thus would be expected to show wide variations.  Upon analysis,
  this turned out to be a natural consequence of the fact that the
  Hello messages are generated as the result of interrupts based on the
  line frequency when the local clock had just been incremented by
  1/60th of a second.

  The synchronizing protocol and implementation were carefully
  constructed to minimize the loss of accuracy due to sharing of the
  network links between data and control traffic, as long as sufficient
  resources (in particular, packet buffers) are available.  Since the
  various network links shown in Figure 2 operate over a wide range of
  rates, it is possible that undisciplined bursts of traffic can swamp
  a host or gateway and precipitate a condition of buffer starvation.

  While most hosts using paths through the experimental configuration
  were relatively well-disciplined in their packetization and
  retransmission policies, some Unix 4.2bsd systems were notorious
  exceptions.  On occasion these hosts were observed sending floods of
  packets, with only a small amount of data per packet, together with
  excessive retransmissions.  As expected, this caused massive
  congestion, unpredictable link delays and occasional clock
  synchronizing errors.

  The synchronizing algorithms described above successfully cope with
  almost all instances of congestion as described, since delay-induced
  errors tend to be isolated, while inherent anti-spike and smoothing
  properties of the synchronizing algorithm help to preserve accuracies
  in any case.  Only one case was found during the ten-day experiment
  period where a host was mistakenly synchronized outside the
  linear-tracking window due to congestion.  Even in this case the host
  was quickly resynchronized to the correct time when the congestion
  was cleared.

4.3.3.  On the Accuracy of Radio Clocks

  One of the more potent motivations for the experiments was to assess
  the accuracy of the various radio clocks and to determine whether the
  WWV radio clock was an appropriate replacement for the expensive WWVB
  or GOES clocks.  A secondary consideration, discussed further in the
  next section, was how the various clocks handled disruptions due to
  power interruptions, leap seconds and so forth.






Mills                                                          [Page 18]



RFC 957                                                   September 1985
Experiments in Network Clock Synchronization


4.3.3.1.  The Spectracom 8170 WWVB Radio Clock

  As the result of several years of experience with the WWVB radio
  clock, which is manufactured by Spectracom Corporation as Model 8170,
  it was chosen as the reference for comparison for the GOES and WWV
  radio clocks.  Washington, DC, is near the 100-microvolt/meter
  countour of the WWVB transmitter at Boulder, CO, well in excess of
  the 25-microvolt/meter sensitivity of the receiver.  The antenna is
  located in a favorable location on the roof of a four-storey building
  in an urban area.

  Using the data from the instruction manual, the propagation delay for
  the path from Boulder to Washington is about 8 ms, while the
  intrinsic receiver delay is about 17 ms.  The clock is read via a
  1200-bps asynchronous line, which introduces an additional delay of
  about 7 ms between the on-time transition of the first character and
  the interrupt at the middle of the first stop bit.  Thus, the WWVB
  radio clock indications should be late by 8 + 17 + 7 = 32 ms relative
  to NBS standard time.  While it is possible to include this delay
  directly in the clock indication, this was not done in the
  experiments.  In order to account for this, 32 ms should be
  subtracted from all indications derived from this clock.  The
  uncertaincy in the indication due to all causes is estimated to be a
  couple of milliseconds.

4.3.3.2.  The True Time 468-DC GOES Radio Clock

  The GOES radio clock is manufactured by True Time Division of
  Kinemetrics, Incorporated, as Model 468-DC.  It uses the
  Geosynchronous Orbiting Environmental Satellite (GOES), which
  includes an NBS-derived clock channel.  Early in the experiment
  period there was some ambiguity as to the exact longitude of the
  satellite and also whether the antenna was correctly positioned.
  This was reflected in the rather low quality-of-signal indications
  and occasional signal loss reported by the clock and also its
  apparent offset compared with the other radio clocks.

  Table 4 shows a summary of offset statistics for the GOES radio clock
  by day (all day numbers refer to July, 1985).










Mills                                                          [Page 19]



RFC 957                                                   September 1985
Experiments in Network Clock Synchronization


                Day     Mean    Dev     Max     Min
                ------------------------------------
                2       31.6    9.4     53      -76
                3       19.8    22.1    53      -64
                4       42.8    17.1    >150    19
                5       39.3    2.2     54      -45
                6       37.8    2.7     53      19
                7       62.2    13.0    89      22
                8       38.2    2.8     90      -7

                  Table 4. GOES Radio Clock Offsets

   On all days except days 5, 6 and 8 long periods of poor-quality
  signal reception were evident.  Since the antenna and satellite
  configuration are known to be marginal, these conditions are not
  considered representative of the capabilities of the clock.  When the
  data from these days are discarded, the mean offset is 38.4 ms with
  standard deviation in the range 2.2 to 2.8.  The maximum offset is 90
  ms and the minimum is -45 ms;  however, only a very small number of
  samples are this large - most excursions are limited to 10 ms of the
  mean.

  In order to compute the discrepancy between the GOES and WWVB clocks,
  it is necessary to subtract the WWVB clock delay from the mean
  offsets computed above.  Thus, the GOES clock indications are 38.4 -
  32 = 6.4 ms late with respect to the WWVB clock indications.  which
  is probably within the bounds of experiment error.

4.3.3.3.  The Heath GC-1000 WWV Radio Clock

  The WWV radio clock is manufactured by Heath Company as Model
  GC-1000.  It uses a three-channel scanning WWV/WWVH receiver on 5, 10
  and 15 MHz together with a microprocessor-based controller.  The
  receiver is connected to an 80-meter dipole up about 15 meters and
  located in a quiet suburban location.  Signal reception from the Fort
  Collins transmitters was average to poor during the experiment period
  due to low sunspot activity together with a moderate level of
  geomagnetic disturbances, but was best during periods of darkness
  over the path.  The clock locked at one of the frequencies for
  varying periods up to an hour from two to several times a day.

  The propagation delay on the path between Fort Collins and Washington
  is estimated at about 10 ms and can vary up to a couple of
  milliseconds over the day and night.  While it is possible to include
  this delay in the clock indications, which are already corrected for




Mills                                                          [Page 20]



RFC 957                                                   September 1985
Experiments in Network Clock Synchronization


  the intrinsic receiver delay, this was not done in the experiments.
  During periods of lock, the clock indications are claimed to be
  accurate to within 100 ms.

  Table 5 shows a summary of offset statistics for the WWV radio clock
  by day (all day numbers refer to July, 1985).

                Day     Mean    Dev     Max     Min
                ------------------------------------
                2       -31     36      110     -119
                3       -42     38      184     -141
                4       -21     38      61      -133
                5       -31     37      114     -136
                6       -48     42      53      -160
                7       -100    80      86      -315
                8       -71     70      115     -339

                   Table 5. WWV Radio Clock Offsets

  On inspection of the detailed plots of offsets versus time the data
  reveal an interesting sawtooth variation with period about 25 cycles
  per hour and amplitude about 90 ms.  Once the clock has locked for
  some time the variation decreases in frequency and sometimes
  disappears.  This behavior is precisely what would be expected of a
  phase-locked oscillator and accounts for the rather large standard
  deviations in Table 5.

  On inspection of the plots of offsets versus time, it is apparent
  that by far the best accuracies are obtained at or in the periods of
  lock, which is most frequent during periods of darkness over the
  propagation path, which occured roughly between 0800 UT and 1100 UT
  during the experiment period.  Excluding all data except that
  collected during this period, the mean offset is -21.3 ms with
  standard deviation in the range 29-31.  The maximum offset is 59 ms
  and the minimum is -118 ms.

  In order to compute the discrepancy between the WWV and WWVB clocks,
  it is necessary to subtract the total of the propagation delay plus
  WWVB clock delay from the mean offsets computed above.  Thus, the WWV
  clock indications are -21.3 - 10 - 32 = -72.3 ms late (72.3 ms early)
  with respect to the WWVB clock indications.  Considering the large
  standard deviations noted above, it is probably not worthwhile to
  include this correction in the WWV clock indications.

  On exceptional occasions excursions in offset over 300 ms relative to
  the WWVB clock were observed.  Close inspection of the data showed
  that this was due to an extended period (a day or more) in which lock


Mills                                                          [Page 21]



RFC 957                                                   September 1985
Experiments in Network Clock Synchronization


  was not achieved on any frequency.  The master oscillator uses a
  3.6-MHz crystal oscillator trimmed by a digital/analog converter and
  register which is loaded by the microprocessor.  The occasional
  excursions in offset were apparently due to incorrect register values
  as the result of noisy reception conditions and excessive intervals
  between lock.  On occasion the oscillator frequency was observed in
  error over 4 ppm due to this cause, which could result in a
  cumulative error of almost 400 ms per day if uncorrected.

4.3.4.  On Handling Disruptions

  The experiment period was intentionally selected to coincide with the
  insertion of a leap second in the worldwide time broadcasts.  The
  intent was to examine the resulting behavior of the various radio
  clocks and the synchronization algorithm when an additional second
  was introduced at 2400 UT on 30 June.

  As it turned out, radio reception conditions at the time of insertion
  were quite poor on all WWV frequencies, the WWVB frequency and the
  GOES frequency.  Thus, all three clocks took varying periods up to
  several hours to resynchonize and correct the indicated time.  In
  fact, the only time signals heard around the time of interest were
  those from Canadian radio CHU, but the time code of the Canadian
  broadcasts is incompatible with the of the US broadcasts.

  As mentioned above, the WWVB clock was used as the master during the
  experiment period.  About two hours after insertion of the leap
  second the clock resynchronized and all hosts in the experimental
  network were corrected shortly afterwards.  Since the magnitude of
  the correction exceeded 128 ms, the correction was of a step nature,
  but was not performed simultaneously in all hosts due to the
  individual timing of the Hello messages.  Thus, if timing-critical
  network operations happened to take place during the correction
  process, inconsistent timestamps could result.

  The lesson drawn from this experience is quite clear.  Accurate time
  synchronization requires by its very nature long integration times,
  so that epochal events which disrupt the process must be predicted in
  advance and applied in all hosts independently.  In principle, this
  would not be hard to do and could even be integrated into the
  operation of the step-correction procedure described earlier, perhaps
  in the form of bits included in Hello messages which trigger a
  one-second correction at the next rollover from 2400 to 0000 hours.

  In order for such an out-of-band correction to be effective, advance
  notice of the leap second must be available.  At present, this
  information is not available in the broadcast format and must be


Mills                                                          [Page 22]



RFC 957                                                   September 1985
Experiments in Network Clock Synchronization


  obtained via the news media.  In fact, there are spare bits in the
  broadcast format that could be adapted for this purpose, but this
  would require reprogramming both the transmitting and receiving
  equipment. Nevertheless, this feature should be considered for future
  systems.

4.4.  Additional Experiments

  A set of experiments was performed using two WIDEBAND/EISN gateways
  equipped with WWVB radio clocks and connected to the ARPANET.  These
  experiments were designed to determine the limits of accuracy when
  comparing these clocks via ARPANET paths.  One of the gateways
  (ISI-MCON-GW) is located at the Information Sciences Institute near
  Los Angeles, while the other (LL-GW) is located at Lincoln
  Laboratories near Boston.  Both gateways consist of PDP11/44
  computers running the EPOS operating system and clock-interface
  boards with oscillators phase-locked to the WWVB clock.

  The clock indications of the WIDEBAND/EISN gateways were compared
  with the DCNet WWVB reference clock using ICMP Timestamp messages
  [6], which record the individual timestamps with a precision of a
  millisecond.  This technique is not as accurate as the one described
  in Section 3, since the protocol implementation involves the
  user-process level, which can be subject to minor delays due to
  process scheduling and interprocess-message queueing.  However,
  calibration measurements made over several of the links shown in
  Figure 2 indicate that the measurement errors are dominated by the
  individual link variations and not by the characteristics of the
  measurement technique itself.

  Measurements were made separately with each gateway by sending an
  ICMP Timestamp Request message from the ARPANET address of DCN1 to
  the ARPANET address of the gateway and computing the round-trip delay
  and clock offset from the ICMP Timestamp Reply message.  This process
  was continued for 1000 message exchanges, which took about seven
  minutes. Table 6 shows the statistics obtained with ISI-MCON-GW and
  Table 7 those with LL-GW (all numbers are milliseconds).












Mills                                                          [Page 23]



RFC 957                                                   September 1985
Experiments in Network Clock Synchronization


           ISI-MCON-GW     Mean    Dev     Max     Min
            --------------------------------------------
            Offset          -16     40      126     -908
            Delay           347     59      902     264

                Table 6. ISI-MCON-GW Clock Statistics

            LL-GW (a)       Mean    Dev     Max     Min
            --------------------------------------------
            Offset          -23     15      32      -143
            Delay           310     25      536     252

                   Table 7. LL-GW Clock Statistics

  The smaller values of standard deviation and extreme for LL-GW are
  probably due to the shorter ARPANET path involved.  The confidence in
  the mean offset can be estimated by dividing the standard deviation
  by the square root of the number of samples (1000), which suggests
  that the mean offsets are accurate to within a couple of miliseconds.
  The mean offsets of the WIDEBAND/EISN clocks as a group relative to
  the DCN1 clock may thus indicate a minor discrepancy in the setting
  of the delay-compensation switches.

  It is well known that ARPANET paths exhibit wide variations in
  delays, with occasional delays reaching surprising values up to many
  seconds.  In order to improve the estimates a few samples were
  removed from both the offset and delay data, including all those with
  magnitude greater than one second.

  The above experiments involve a burst of activity over a relatively
  short time during which the ratio of the measurement traffic to other
  network traffic may be nontrivial.  Another experiment with LL-GW was
  designed with intervals of ten seconds between ICMP messages and
  operated over a period of about three hours.  The results are shown
  in Table 8.

            LL-GW (b)       Mean    Dev     Max     Min
            --------------------------------------------
            Offset          -16     93      990     -874
            Delay           371     108     977     240

                   Table 8. LL-GW Clock Statistics







Mills                                                          [Page 24]



RFC 957                                                   September 1985
Experiments in Network Clock Synchronization


  Note that the standard deviations and extrema are higher than in the
  previous experiments, but the mean offset is about the same.

  The results of these experiments suggest that time synchronization
  via ARPANET paths can yield accuracies to the order of a few
  milliseconds, but only if relatively large numbers of samples are
  available.  The number of samples can be reduced and the accuracy
  improved by using the techniques of Section 3 modified for ICMP
  Timestamp messages and the longer, more noisy paths involved.

5.  Summary and Conclusions

  The experiments described above were designed to verify the correct
  operation of the DCnet time-synchronization algorithms and protocols
  under a variety of scenarios, including the use of line-frequency
  clocks, three types of radio clocks and various types of
  interprocessor links.  They involved the collection and processing of
  many megabytes of data collected over a ten-day period that included
  the insertion of a leap second in the standard NBS time scale.  Among
  the lessons learned were the following:

     1.  The algorithms and protocols operate as designed, yielding
         accuracies throughout the experimental net in the order of a
         few milliseconds to a few tens of milliseconds, depending on
         the topology and link type.

     2.  Glitches due to congestion, rebooted hosts and link failures
         are acceptably low, even in the face of massive congestion
         resulting from inappropriate host implementations elsewhere in
         the Internet.

     3.  A synchronization scenario where the clocks in all hosts are
         locked to the line frequency and corrections are broadcast
         from a central time standard will work only if all hosts are
         on the same power grid, which is unlikely in the present
         Internet configuration, but may be appropriate for some
         applications.

     4.  In spite of the eastern power grid wandering over as much as
         six seconds in a day, it is possible to achieve accuracies in
         the 30-ms range using line-frequency interface clocks and
         corrections broadcast on the local net.

     5.  Radio clocks can vary widely in accuracy depending on signal
         reception conditions.  Absolute time can be determined to
         within a couple of milliseconds using WWVB and GOES radio
         clocks, but only if they are calibrated using an independent


Mills                                                          [Page 25]



RFC 957                                                   September 1985
Experiments in Network Clock Synchronization


         standard such as a portable clock.  The inexpensive WWV clocks
         perform surprisingly well most of the time, but can be in
         error up to a significant fraction of a second under some
         conditions.

     6.  Adjustments in the time scale due to leap seconds must be
         anticipated before they occur.  The synchronization protocol
         must include a mechanism to broadcast an adjustment in advance
         of its occurance, so that it can be incorporated in each host
         simultaneously.  There is a need to incorporate advance notice
         of leap seconds in the broadcast time code.

     7.  Time synchronization via ARPANET paths can yield accuracies in
         the order of a few milliseconds, but only if relatively large
         numbers of samples are available.  Further work is needed to
         develop efficient protocols capable of similar accuracies but
         using smaller numbers of samples.

6.  References

  1.  Lindsay, W.C., and A.V.  Kantak.  Network Synchronization of
      Random Signals.  IEEE Trans.  Comm.  COM-28, 8 (August 1980),
      1260-1266.

  2.  Mills, D.L.  Time Synchronization in DCNET Hosts.  DARPA Internet
      Project Report IEN-173, COMSAT Laboratories, February 1981.

  3.  Mills, D.L.  DCNET Internet Clock Service.  DARPA Network Working
      Group Report RFC-778, COMSAT Laboratories, April 1981.

  4.  Mills, D.L.  Internet Delay Experiments.  DARPA Network Working
      Group Report RFC-889, M/A-COM Linkabit, December 1983.

  5.  Mills, D.L.  DCN Local-Network Protocols.  DARPA Network Working
      Group Report RFC-891, M/A-COM Linkabit, December 1983.

  6.  Postel, J.  Internet Control Message Protocol.  DARPA Network
      Working Group Report RFC-792, USC Information Sciences Institute,
      September 1981.

  7.  Postel, J.  Time Protocol.  DARPA Network Working Group Report
      RFC-868, USC Information Sciences Institute, May 1983.

  8.  Postel, J.  Daytime Protocol.  DARPA Network Working Group Report
      RFC-867, USC Information Sciences Institute, May 1983.




Mills                                                          [Page 26]



RFC 957                                                   September 1985
Experiments in Network Clock Synchronization


  9.  Su, Z.  A Specification of the Internet Protocol (IP) Timestamp
      Option.  DARPA Network Working Group Report RFC-781.  SRI
      International, May 1981.

  10. Marzullo, K., and S.  Owicki.  Maintaining the Time in a
      Distributed System.  ACM Operating Systems Review 19, 3 (July
      1985), 44-54.

  11. Mills, D.L.  Algorithms for Synchronizing Network Clocks.  DARPA
      Network Working Group Report RFC-956, M/A-COM Linkabit, September
      1985.

  12. Mills, D.L.  Network Time Protocol (NTP).  DARPA Network Working
      Group Report RFC-958, M/A-COM Linkabit, September 1985.



































Mills                                                          [Page 27]