GENWiki

Premier IT Outsourcing and Support Services within the UK

User Tools

Site Tools


rfc:rfc956

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

                                                        September 1985
            Algorithms for Synchronizing Network Clocks

Status of this Memo

 This RFC discussed clock synchronization algorithms for the
 ARPA-Internet community, and requests discussion and suggestions for
 improvements.  Distribution of this memo is unlimited.

Table of Contents

 1.      Introduction
 2.      Majority-Subset Algorithms
 3.      Clustering Algorithms
 4.      Application to Time-Synchronization Data
 5.      Summary and Conclusions
 6.      References
 Appendix
 A.      Experimental Determination of Internet Host Clock Accuracies
 A1.     UDP Time Protocol Experiment
 A2.     ICMP Timestamp Message Experiment
 A3.     Comparison of UDP and ICMP Time

List of Tables

 Table 1.  C(n,k) for n from 2 to 20
 Table 2.  Majority Subsets for n = 3,4,5
 Table 3.  Clustering Algorithm using UDP Time Protocol Data
 Table 4.  Clustering Algorithm using ICMP Timestamp Data
 Table 5.  ISI-MCON-GW Majority-Subset Algorithm
 Table 6.  ISI-MCON-GW Clustering Algorithm
 Table 7.  LL-GW (a) Majority-Subset Algorithm
 Table 8.  LL-GW (a) Clustering Algorithm
 Table 9.  LL-GW (b) Majority-Subset Algorithm
 Table 10. LL-GW (b) Clustering Algorithm
 Table A1. UDP Host Clock Offsets for Various Internet Hosts
 Table A2. UDP Offset Distribution < 9 sec
 Table A3. UDP Offset Distribution < 270 sec
 Table A4. ICMP Offset Distribution < 9 hours
 Table A5. ICMP Offset Distribution < 270 sec
 Table A6. ICMP Offset Distribution < 27 sec
 Table A7. ICMP Offset Distribution < .9 sec
 Table A8. Comparison of UDP and ICMP Host Clock Offsets

Mills [Page 1]

RFC 956 September 1985 Algorithms for Synchronizing Network Clocks

1. Introduction

 The recent interest within the Internet community in determining
 accurate time from a set of mutually suspicious network clocks has
 been prompted by several occasions in which gross errors were found
 in usually reliable, highly accurate clock servers after seasonal
 thunderstorms which disrupted their primary power supply.  To these
 sources of error should be added those due to malfunctioning
 hardware, defective software and operator mistakes, as well as random
 errors in the mechanism used to set and/or synchronize the clocks via
 Internet paths.  The results of these errors can range from simple
 disorientation to major disruption, depending upon the operating
 system, when files or messages are incorrectly timestamped or the
 order of critical network transactions is altered.
 This report suggests a stochastic model based on the principles of
 maximum-likelihood estimation, together with algorithms for computing
 a good estimator from a number of time-offset samples measured
 between one or more clocks connected via network links.  The model
 provides a rational method for detecting and resolving errors due to
 faulty clocks or excessively noisy links.  Included in this report
 are descriptions of certain experiments conducted with Internet hosts
 and ARPANET paths which give an indication of the effectiveness of
 the algorithms.
 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] and [10].
 Experimental results on measured roundtrip delays and clock offsets
 in the Internet are discussed in [4] and [11].  A comprehensive
 mathematical treatment of clock synchronization can be found in [1].
 In [10] the problem of synchronizing a set of mutually suspicious
 clocks is discussed and algorithms offered which maximize in some
 sense the expectation that a correct set of "good" clocks can be
 extracted from the population including also "bad" ones.  The
 technique is based upon overlapping, discrete confidence intervals
 which are assigned a-priori.  The model assumes the reasonable
 presumption that "bad" clocks display errors far outside these
 confidence intervals, so can be easily identified and discarded from
 the voting process.

Mills [Page 2]

RFC 956 September 1985 Algorithms for Synchronizing Network Clocks

 As apparent from the data summarized in Appendix A, host clocks in a
 real network commonly indicate various degrees of dispersion with
 respect to each other and to a standard-time reference such as a
 radio clock.  The sources of dispersion include random errors due to
 observational phenomena and the synchronization mechanism itself, if
 used, as well as systematic errors due to hardware or software
 failure, poor radio reception conditions or operator mistakes.  In
 general, it is not possible to accurately quantify whether the
 dispersion of any particular clock qualifies the clock as "good" or
 "bad," except on a statistical basis.  Thus, from a practical
 standpoint, a statistical-estimation approach to the problem is
 preferred over a discrete-decision one.
 A basic assumption in this report is that the majority of "good"
 clocks display errors clustered around a zero offset relative to
 standard time, as determined for example from a radio clock, while
 the remaining "bad" clocks display errors distributed randomly over
 the observing interval.  The problem is to select the good clocks
 from the bad and to estimate the correction to apply to the local
 clock in order to display the most accurate time.  The algorithms
 described in this report attempt to do this using maximum-likelihood
 techniques, which are theory.
 It should be noted that the algorithms discussed in [10] and in this
 report are are basically filtering and smoothing algorithms and can
 result in errors, sometimes gross ones, if the sample distribution
 departs far from a-priori assumptions.  Thus, a significant issue in
 the design of these algorithms is robustness in the face of skewed
 sample data sets.  The approach in [10] uses theorem-proving to
 justify the robustness of the discrete algorithms presented;
 however, the statistical models in this report are not suited for
 that.  The approach taken in this report is based on detailed
 observation and experiments, a summary of which is included as an
 appendix.  While this gives an excellent qualitative foundation upon
 which to judge robustness, additional quantitative confidence should
 be developed through the use of statistical mechanics.

2. Majority-Subset Algorithms

 A stochastic model appropriate to a system of mutually suspicious
 clocks can be constructed as follows.  An experiment consists of one
 or more measurements of time differences or offsets between several
 clocks in the network.  Usually, but not necessarily, one of the
 clocks is the local clock at the observer and observations are
 conducted with each of several other clocks in the network.  The fact
 that some clocks are presumed more accurate or trusted more highly
 than others can be expressed by weighting the measurements

Mills [Page 3]

RFC 956 September 1985 Algorithms for Synchronizing Network Clocks

 accordingly.  The result is a set of statistics, including means and
 variances, from which the observer is able to estimate the best time
 at which to set the local clock.
 A maximum-likelihood estimator is a statistic that maximizes the
 probability that a particular outcome of an experiment is due to a
 presumed set of assumptions on the constraints of the experiment.
 For example, if it is assumed that at least k of n observations
 include only samples from a single distribution, then a
 maximum-likelihood estimator for the mean of that distribution might
 be computed as follows: Determine the variance for every k-sample
 subset of the n observations. Then select the subset with smallest
 variance and use its mean as the estimator for the distribution mean.
 For instance, let n be the number of clocks and k be the next largest
 integer in n/2, that is, the minimum majority.  A majority subset is
 a subset consisting of k of the n offset measurements.  Each of these
 subsets can be represented by a selection of k out of n
 possibilities, with the total number of subsets equal to C(n,k).  The
 number of majority subsets is tallied for n from 2 to 20 in Table 1.
   (n,k)           C(n,k)                  (n,k)           C(n,k)
   ----------------------                  ----------------------
   (2,2)           1                       (11,6)          462   
   (3,2)           3                       (12,7)          792   
   (4,3)           4                       (13,7)          1716  
   (5,3)           10                      (14,8)          3003  
   (6,4)           15                      (15,8)          6435  
   (7,4)           35                      (16,9)          11440 
   (8,5)           56                      (17,9)          24310 
   (9,5)           126                     (18,10)         43758 
   (10,6)          210                     (19,10)         92378 
                                           (20,11)         167960
                 Table 1. C(n,k) for n from 2 to 20
 Obviously, the number of computations required becomes awkward as n
 increases beyond about 10.  Representative majority subsets for n =
 3,4,5 are shown in Table 2.

Mills [Page 4]

RFC 956 September 1985 Algorithms for Synchronizing Network Clocks

               C(3,2)          C(4,3)          C(5,3)
               ------          ------          ------
               1,2             1,2,3           1,2,3
               1,3             1,2,4           1,2,4
               2,3             1,3,4           1,2,5
                               2,3,4           1,3,4
                                               1,3,5
                                               1,4,5
                                               2,3,4
                                               2,3,5
                                               2,4,5
                                               3,4,5
              Table 2. Majority Subsets for n = 3,4,5
 Choosing n = 5, for example, requires calculation of the mean and
 variance for ten subsets indexed as shown in Table 2.
 A maximum-likelihood algorithm with provision for multiple samples
 and weights might operate as follows:  Let n be the number of clocks
 and w(1),w(2),...,w(n) a set of integer weights, with w(i) the weight
 associated with the ith clock.  For the ith clock three accumulators
 W(i), X(i) and Y(i) are provided, each initialized to zero.  The ith
 clock is polled some number of times, with each reply x causing n(i)
 to be added to W(i), as well as the weighted sample offset n(i)*x
 added to X(i) and its square (n(i)*x)2 added to Y(i).  Polling is
 continued for each of the n clocks in turn.
 Next, using a majority-subset table such as shown in Table 2,
 calculate the total weight W = sum(W(i)) and weighted sums X =
 sum(X(i)) and Y = sum(Y(i)*Y(i)) for each i in the jth majority
 subset (row). From W, X and Y calculate the mean m(j) and variance
 s(j):
            m(j) = X/W   and   s(j) = Y/W - m(j)*m(j) .
 When this is complete for all rows, select the row j with the
 smallest s(j) and return the associated mean m(j) as the
 maximum-likelihood estimate of the local-clock offset.

Mills [Page 5]

RFC 956 September 1985 Algorithms for Synchronizing Network Clocks

3. Clustering Algorithms

 Another method for developing a maximum-likelihood estimator is
 through the use of clustering algorithms.  These algorithms operate
 to associate points in a sample set with clusters on the basis of
 stochastic properties and are most useful when large numbers of
 samples are available.  One such algorithm operates on a sample set
 to selectively discard points presumed outside the cluster as
 follows:
    1.  Start with a sample set of n observations {x(1),x(2),...,x(n)
    2.  Compute the mean of the n observations in the sample set.
        Discard the single sample x(i) with value furthest from the
        mean, leaving n-1 observations in the set.
    3.  Continue with step 2 until only a single observation is left,
        at which point declare its value the maximum-likelihood
        estimator.
 This algorithm will usually (but not necessarily) converge to the
 desired result if the majority of observations are the result of
 "good" clocks, which by hypothesis are clustered about zero offset
 relative to the reference clock, with the remainder scattered
 randomly over the observation interval.
 The following Table 3 summarizes the results of this algorithm
 applied to the UDP data shown in Appendix A, which represents the
 measured clock offsets of 163 host clocks in the Internet system.
 These data were assembled using the UDP Time protocol [7], in which
 time is represented to a precision of one second.  Each line of the
 table represents the result of step 2 above along with the size of
 the sample set and its (unweighted) mean and variance.  The "Discard"
 column shows the value of the observation discarded at that step.

Mills [Page 6]

RFC 956 September 1985 Algorithms for Synchronizing Network Clocks

                  Size    Mean    Var     Discard
                  -------------------------------
                  163     -210    9.1E+6  -38486 
                  162     26      172289  3728   
                  161     3       87727   3658   
                  160     -20     4280    -566   
                  150     -17     1272    88     
                  100     -18     247     -44    
                  50      -4      35      8      
                  20      -1      0       -2     
                  19      -1      0       -2     
                  18      -1      0       -2     
                  17      -1      0       1      
                  16      -1      0       -1     
                  15      -1      0       -1     
                  14      -1      0       -1     
                  13      0       0       0      
                  1       0       0       0      
     Table 3. Clustering Algorithm using UDP Time Protocol Data
 In Table 3 only a few of the 163 steps are shown, including those
 near the beginning which illustrate a rapid convergence as the
 relatively few outliers are discarded.  The large outlier discarded
 in the first step is almost certainly due to equipment or operator
 failure. The two outliers close to one hour discarded in the next two
 steps are probably simple operator mistakes like entering summer time
 instead of standard time.  By the time only 50 samples are left, the
 error has shrunk to about 4 sec and the largest outlier is within 12
 sec of the estimate.  By the time only 20 samples are left, the error
 has shrunk to about a second and the variance has vanished for
 practical purposes.
 The following Table 4 summarizes the results of the clustering
 algorithm applied to the ICMP data shown in Appendix A, which
 represents the measured clock offsets of 504 host clocks in the
 Internet system. These data were assembled using ICMP Timestamp
 messages [6], in which time is represented to a precision of one
 millisecond.  The columns in Table 4 should be interpreted in the
 same way as in Table 3, except that the data in Table 4 are in
 milliseconds, while the data in Table 3 are in seconds.

Mills [Page 7]

RFC 956 September 1985 Algorithms for Synchronizing Network Clocks

                  Size    Mean    Var     Discard
                  -------------------------------
                  504     -3.0E+6 3.2E+14 8.6E+7 
                  500     -3.3E+6 2.9E+14 8.6E+7 
                  450     -1.6E+6 3.0E+13 -2.5E+7
                  400     29450   2.2E+11 3.6E+6 
                  350     -3291   4.1E+9  -185934
                  300     3611    1.6E+9  -95445 
                  250     2967    6.8E+8  66743  
                  200     4047    2.3E+8  39288  
                  150     1717    8.6E+7  21346  
                  100     803     1.9E+7  10518  
                  80      1123    8.4E+6  -4863  
                  60      1119    3.1E+6  4677   
                  50      502     1.5E+6  -2222  
                  40      432     728856  2152   
                  30      84      204651  -987   
                  20      30      12810   338    
                  15      28      2446    122    
                  10      7       454     49     
                  8       -2      196     24     
                  6       -9      23      0      
                  4       -10     5       -13    
                  2       -8      0       -8     
      Table 4. Clustering Algorithm using ICMP Timestamp Data
 As in Table 3 above, only some of the 504 steps are shown in Table 4.
 The distinguishing feature of the data in Table 4 is that the raw
 data are much more noisy - only some 30 host clocks are closer than
 one second from the reference clock, while half were further than one
 minute and over 100 further than one hour from it.  The fact that the
 algorithm converged to within 8 msec of the reference time under
 these conditions should be considered fairly remarkable in view of
 the probability that many of the outliers discarded are almost
 certainly due to defective protocol implementations.  Additional
 information on these experiments is presented in Appendix A.

Mills [Page 8]

RFC 956 September 1985 Algorithms for Synchronizing Network Clocks

4. Application to Time-Synchronization Data

 A variation of the above algorithms can be used to improve the offset
 estimates from a single clock by discarding noise samples produced by
 occasional retransmissions in the network, for example.  A set of n
 independent samples is obtained by polling the clock.  Then, a
 majority-subset table is used to compute the m(j) and s(j) statistics
 and the maximum-likelihood estimate determined as above.  For this
 purpose the majority-subset table could include larger subsets as
 well. In this manner the maximum-likelihood estimates from each of
 several clocks can be determined and used in the algorithm above.
 In order to test the effectiveness of this algorithm, 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,
 which record the individual timestamps with a precision of a
 millisecond. However, the path over the ARPANET between these
 gateways and the measurement host can introduce occasional
 measurement errors as large as several seconds.  In principle the
 effect of these errors can be minimized by using a large sample
 population;  however, use of the above algorithms allows higher
 accuracies to be obtained with far fewer samples.
 Measurements were made separately with each of the two gateways 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 from seven minutes to several hours, depending on the
 sample interval selected.
 The tables below summarize the results of both the majority-subset
 and clustering algorithms applied to the data from three experiments,
 one with ISI-MCON-GW and two with LL-GW.  The ISI-MCON-GW and LL-GW
 (a) experiments were designed to determine the limits of accuracy
 when using a continuous sequence of request/reply volleys, which

Mills [Page 9]

RFC 956 September 1985 Algorithms for Synchronizing Network Clocks

 resulted in over two samples per second.  The remaining LL-GW (b)
 experiment was designed to determine the limits of accuracy using a
 much lower rate of about one sample every ten seconds.
 For each of the three experiments two tables are shown, one using the
 majority-subset algorithm and the other the clustering algorithm. The
 two rows of the majority-subset tables show the statistics derived
 both from the raw data and from the filtered data processed by a
 C(5,3) majority-subset algorithm.  In all cases the extrema and
 variance are dramatically less for the filtered data than the raw
 data, lending credence to the conjecture that the mean statistic for
 the filtered data is probably a good maximum-likelihood estimator of
 the true offset.
                            Mean    Var     Max     Min
           -------------------------------------------- 
           Raw data        637     2.1E+7  32751   -1096
           C(5,3)          -15     389     53      -103 
           Table 5. ISI-MCON-GW Majority-Subset Algorithm
                  Size    Mean    Var     Discard
                  -------------------------------
                  1000    637     2.1E+7  32751  
                  990     313     1.0E+7  32732  
                  981     15      1.0E+6  32649  
                  980     -18     2713    -1096  
                  970     -15     521     -122   
                  960     -15     433     -97    
                  940     -15     332     -75    
                  900     -15     239     26     
                  800     -15     141     12     
                  700     -16     87      5      
                  600     -17     54      -31    
                  500     -16     33      -5     
                  400     -18     18      -9     
                  300     -19     7       -12    
                  200     -19     2       -21    
                  100     -18     0       -19    
                  1       -17     0       -17    
             Table 6. ISI-MCON-GW Clustering Algorithm

Mills [Page 10]

RFC 956 September 1985 Algorithms for Synchronizing Network Clocks

                            Mean    Dev     Max     Min
            --------------------------------------------
            Raw data        566     1.8E+7  32750   -143
            C(5,3)          -23     81      14      -69 
            Table 7. LL-GW (a) Majority-Subset Algorithm
                  Size    Mean    Var     Discard
                  -------------------------------
                  1000    566     1.8E+7  32750  
                  990     242     8.5E+6  32726  
                  983     10      1.0E+6  32722  
                  982     -23     231     -143   
                  980     -23     205     -109   
                  970     -22     162     29     
                  960     -23     128     13     
                  940     -23     105     -51    
                  900     -24     89      1      
                  800     -25     49      -9     
                  700     -26     31      -36    
                  600     -26     21      -34    
                  500     -27     14      -20    
                  400     -29     7       -23    
                  300     -30     3       -33    
                  200     -29     1       -27    
                  100     -29     0       -28    
                  1       -29     0       -29    
              Table 8. LL-GW (a) Clustering Algorithm
                            Mean    Dev     Max     Min
           -------------------------------------------- 
           Raw data        378     2.1E+7  32760   -32758
           C(5,3)          -21     1681    329     -212  
            Table 9. LL-GW (b) Majority-Subset Algorithm

Mills [Page 11]

RFC 956 September 1985 Algorithms for Synchronizing Network Clocks

                  Size    Mean    Var     Discard
                  -------------------------------
                  1000    377     2.1E+7  -32758 
                  990     315     1.0E+7  32741  
                  981     18      1.1E+6  32704  
                  980     -16     16119   -1392  
                  970     -17     5382    554    
                  960     -21     3338    311    
                  940     -24     2012    168    
                  900     -22     1027    -137   
                  800     -23     430     -72    
                  700     -23     255     -55    
                  600     -22     167     -45    
                  500     -22     109     -40    
                  400     -21     66      -6     
                  300     -18     35      -29    
                  200     -17     15      -23    
                  100     -19     3       -15    
                  50      -21     0       -19    
                  20      -21     0       -21    
                  10      -20     0       -20    
                  1       -20     0       -20    
              Table 10. LL-GW (b) Clustering Algorithm
 The rows of the clustering tables show the result of selected steps
 in the algorithm as it discards samples furthest from the mean.  The
 first twenty steps or so discard samples with gross errors over 30
 seconds.  These samples turned out to be due to a defect in the
 timestamping procedure implemented in the WIDEBAND/EISN gateway code
 which caused gross errors in about two percent of the ICMP Timestamp
 Reply messages.  These samples were left in the raw data as received
 in order to determine how the algorithms would behave in such extreme
 cases.  As apparent from the tables, both the majority-subset and
 clustering algorithms effectively coped with the situation.
 In the statement of the clustering algorithm the terminating
 condition was specified as when only a single sample is left in the
 sample set.  However, it is not necessary to proceed that far.  For
 instance, it is known from the design of the experiment and the
 reference clocks that accuracies better than about ten milliseconds
 are probably unrealistic.  A rough idea of the accuracy of the mean
 is evident from the deviation, computed as the square root of the
 variance. Thus, attempts to continue the algorithm beyond the point
 where the variance drops below 100 or so are probably misguided.
 This occurs when between 500 and 900 samples remain in the sample

Mills [Page 12]

RFC 956 September 1985 Algorithms for Synchronizing Network Clocks

 set, depending upon the particular experiment.  Note that in any case
 between 300 and 700 samples fall within ten milliseconds of the final
 estimate, depending on experiment.
 Comparing the majority-subset and clustering algorithms on the basis
 of variance reveals the interesting observation that the result of
 the C(5,3) majority-subset algorithm is equivalent to the clustering
 algorithm when between roughly 900 and 950 samples remain in the
 sample set.  This together with the moderately high variance in the
 ISI-MCON-GW and LL-GW (b) cases suggests a C(6,4) or even C(7,4)
 algorithm might yield greater accuracies.

5. Summary and Conclusions

 The principles of maximum-likelihood estimation are well known and
 widely applied in communication electronics.  In this note two
 algorithms using these principles are proposed, one based on
 majority-subset techniques appropriate for cases involving small
 numbers of samples and the other based on clustering techniques
 appropriate for cases involving large numbers of samples.
 The algorithms were tested on raw data collected with Internet hosts
 and gateways over ARPANET paths for the purpose of setting a local
 host clock with respect to a remote reference while maintaining
 accuracies in the order of ten milliseconds.  The results demonstrate
 the effectiveness of these algorithms in detecting and discarding
 glitches due to hardware or software failure or operator mistakes.
 They also demonstrate that time synchronization can be maintained
 across the ARPANET in the order of ten milliseconds in spite of
 glitches many times the mean roundtrip delay.
 The results point to the need for an improved time-synchronization
 protocol combining the best features of the ICMP Timestamp message
 [6] and UDP Time protocol [7].  Among the features suggested for this
 protocol are the following:
    1.  The protocol should be based on UDP, which provides the
        flexibility to handle simultaneous, multiplexed queries and
        responses.
    2.  The message format should be based on the ICMP Timestamp
        message format, which provides the arrival and departure times
        at the server and allows the client to calculate the roundtrip
        delay and offset accurately.

Mills [Page 13]

RFC 956 September 1985 Algorithms for Synchronizing Network Clocks

    3.  The data format should be based on the UDP Time format, which
        specifies 32-bit time in seconds since 1 January 1900, but
        extended additional bits for the fractional part of a second.
    4.  Provisions to specify the expected accuracy should be included
        along with information about the reference clock or
        synchronizing mechanism, as well as the expected drift rate
        and the last time the clock was set or synchronized.
 The next step should be formulating an appropriate protocol with the
 above features, together with implementation and test in the Internet
 environment.  Future development should result in a distributed,
 symmetric protocol, similar perhaps to those described in [1], for
 distributing highly reliable timekeeping information using a
 hierarchical set of trusted clocks.

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

Mills [Page 14]

RFC 956 September 1985 Algorithms for Synchronizing Network Clocks

 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.  Experiments in Network Clock Synchronization.  DARPA
     Network Working Group Report RFC-957, 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.

Appendix A.

 Experimental Determination of Internet Host Clock Accuracies
 Following is a summary of the results of three experiments designed
 to reveal the accuracies of various Internet host clocks.  The first
 experiment uses the UDP Time protocol, which is limited in precision
 to one second, while the second uses the ICMP Timestamp message,
 which extends the precision to one millisecond.  In the third
 experiment the results indicated by UDP and ICMP are compared.  In
 the UDP Time protocol time is indicated as a 32-bit field in seconds
 past 0000 UT on 1 January 1900, while in the ICMP Timestamp message
 time is indicated as a 32-bit field in milliseconds past 0000 UT of
 each day.
 All experiments described herein were conducted from Internet host
 DCN6.ARPA, which is normally synchronized to a WWV radio clock.  In
 order to improve accuracy during the experiments, the DCN6.ARPA host
 was resynchronized to a WWVB radio clock.  As the result of several
 experiments with other hosts equipped with WWVB and WWV radio clocks
 and GOES satellite clocks, it is estimated that the maximum
 measurement error in the following experiments is less than about 30
 msec relative to standard NBS time determined at the Boulder/Fort
 Collins transmitting sites.
 A1.  UDP Time Protocol Experiment
    In the first experiment four UDP Time protocol requests were sent
    at about three-second intervals to each of the 1775 hosts listed
    in the NIC Internet host table.  A total of 555 samples were
    received from 163 hosts and compared with a local reference based
    on a WWVB radio clock, which is known to be accurate to within a
    few milliseconds.  Not all of these hosts were listed as
    supporting the UDP Time protocol in the NIC Internet host table,
    while some that were listed as supporting this protocol either
    failed to respond or responded with various error messages.

Mills [Page 15]

RFC 956 September 1985 Algorithms for Synchronizing Network Clocks

    In the following table "Host" is the canonical name of the host
    and "Count" the number of replies received.  The remaining data
    represent the time offset, in seconds, necessary to correct the
    local (reference) clock to agree with the host cited.  The "Max"
    and "Min" represent the maximum and minimum of these offsets,
    while "Mean" represents the mean value and "Var" the variance, all
    rounded to the nearest second.
       Host                    Count   Max     Min     Mean    Var
       -----------------------------------------------------------
       BBN-CLXX.ARPA           4       -11     -12     -11     0
       BBN-KIWI.ARPA           4       -11     -12     -11     0
       BBN-META.ARPA           4       -11     -12     -11     0
       BBNA.ARPA               1       22      22      22      0
       BBNG.ARPA               4       87      87      87      0
       BELLCORE-CS-GW.ARPA     3       72      71      71      0
       BLAYS.PURDUE.EDU        2       -1      -1      -1      0
       CMU-CC-TE.ARPA          4       -94     -95     -94     0
       CMU-CS-C.ARPA           3       6       5       5       0
       CMU-CS-CAD.ARPA         4       -37     -37     -37     0
       CMU-CS-CFS.ARPA         3       -42     -43     -42     0
       CMU-CS-G.ARPA           3       -30     -31     -30     0
       CMU-CS-GANDALF.ARPA     3       -42     -43     -42     0
       CMU-CS-H.ARPA           4       -36     -37     -36     0
       CMU-CS-IUS.ARPA         3       -44     -45     -44     0
       CMU-CS-IUS2.ARPA        3       -44     -44     -44     0
       CMU-CS-K.ARPA           3       -31     -31     -31     0
       CMU-CS-SAM.ARPA         4       -74     -75     -74     0
       CMU-CS-SPEECH.ARPA      4       -39     -40     -39     0
       CMU-CS-SPEECH2.ARPA     4       -49     -50     -49     0
       CMU-CS-SPICE.ARPA       4       -131    -132    -131    0
       CMU-CS-THEORY.ARPA      4       -36     -37     -36     0
       CMU-CS-UNH.ARPA         4       -44     -45     -44     0
       CMU-CS-VLSI.ARPA        4       -66     -66     -66     0
       CMU-RI-ARM.ARPA         3       -41     -41     -41     0
       CMU-RI-CIVE.ARPA        3       -44     -45     -44     0
       CMU-RI-FAS.ARPA         4       -27     -28     -27     0
       CMU-RI-ISL1.ARPA        4       -18     -19     -18     0
       CMU-RI-ISL3.ARPA        3       -49     -50     -49     0
       CMU-RI-LEG.ARPA         3       -33     -33     -33     0
       CMU-RI-ML.ARPA          4       42      42      42      0
       CMU-RI-ROVER.ARPA       4       -48     -49     -48     0
       CMU-RI-SENSOR.ARPA      2       -40     -41     -40     0
       CMU-RI-VI.ARPA          3       -65     -65     -65     0
       COLUMBIA.ARPA           1       8       8       8       0
       CU-ARPA.CS.CORNELL.EDU  4       5       3       4       0
       CYPRESS.ARPA            4       2       1       1       0

Mills [Page 16]

RFC 956 September 1985 Algorithms for Synchronizing Network Clocks

       DCN1.ARPA               4       0       0       0       0
       DCN5.ARPA               4       0       0       0       0
       DCN6.ARPA               4       0       0       0       0
       DCN7.ARPA               4       -1      -1      0       0
       DCN9.ARPA               4       -3      -3      -3      0
       DEVVAX.TN.CORNELL.EDU   2       3659    3658    3658    0
       ENEEVAX.ARPA            4       73      72      72      0
       FORD-WDL1.ARPA          4       -59     -60     -59     0
       FORD1.ARPA              4       0       0       0       0
       GUENEVERE.PURDUE.EDU    3       1       0       0       0
       GVAX.CS.CORNELL.EDU     4       -18     -18     -18     0
       IM4U.ARPA               4       -6      -6      -6      0
       IPTO-FAX.ARPA           4       0       0       0       0
       KANKIN.ARPA             4       -3      -4      -3      0
       MERLIN.PURDUE.EDU       2       3       3       3       0
       MIT-ACHILLES.ARPA       4       16      16      16      0
       MIT-AGAMEMNON.ARPA      4       -63     -64     -63     0
       MIT-ANDROMACHE.ARPA     4       -28     -28     -28     0
       MIT-APHRODITE.ARPA      4       -7      -8      -7      0
       MIT-APOLLO.ARPA         4       -8      -9      -8      0
       MIT-ARES.ARPA           4       -25     -26     -25     0
       MIT-ARTEMIS.ARPA        4       -34     -35     -34     0
       MIT-ATHENA.ARPA         4       -37     -37     -37     0
       MIT-ATLAS.ARPA          4       -26     -26     -26     0
       MIT-CASTOR.ARPA         4       -35     -35     -35     0
       MIT-DAFFY-DUCK.ARPA     2       -72     -73     -72     0
       MIT-DEMETER.ARPA        4       -28     -29     -28     0
       MIT-GOLDILOCKS.ARPA     1       -20     -20     -20     0
       MIT-HECTOR.ARPA         4       -23     -24     -23     0
       MIT-HELEN.ARPA          4       6       5       5       0
       MIT-HERA.ARPA           4       -34     -35     -34     0
       MIT-HERACLES.ARPA       4       -36     -36     -36     0
       MIT-JASON.ARPA          4       -36     -37     -36     0
       MIT-MENELAUS.ARPA       4       -32     -33     -32     0
       MIT-MULTICS.ARPA        3       25      23      24      0
       MIT-ODYSSEUS.ARPA       4       20      19      19      0
       MIT-ORPHEUS.ARPA        4       -34     -35     -34     0
       MIT-PARIS.ARPA          4       -35     -35     -35     0
       MIT-POSEIDON.ARPA       4       -39     -41     -40     0
       MIT-PRIAM.ARPA          4       -24     -25     -24     0
       MIT-REAGAN.ARPA         4       115     115     115     0
       MIT-THESEUS.ARPA        4       -43     -44     -43     0
       MIT-TRILLIAN.ARPA       4       -38     -39     -38     0
       MIT-TWEETY-PIE.ARPA     3       106     105     105     0
       MIT-ZERMATT.ARPA        4       -75     -76     -75     0
       MIT-ZEUS.ARPA           4       -37     -39     -38     0
       MOL.ARPA                2       -3      -3      -3      0

Mills [Page 17]

RFC 956 September 1985 Algorithms for Synchronizing Network Clocks

       MUNGO.THINK.COM         4       -1      -1      -1      0
       NETWOLF.ARPA            4       158     157     157     0
       ORBIT.ARPA              3       -4      -5      -4      0
       OSLO-VAX.ARPA           3       3729    3727    3728    1
       PATCH.ARPA              1       18      18      18      0
       RADC-MULTICS.ARPA       4       -14     -15     -14     0
       RICE-ZETA.ARPA          1       -31     -31     -31     0
       RICE.ARPA               1       7       7       7       0
       ROCHESTER.ARPA          4       -18     -18     -18     0
       ROCK.THINK.COM          4       2       2       2       0
       SCRC-QUABBIN.ARPA       4       -100    -100    -100    0
       SCRC-RIVERSIDE.ARPA     4       -128    -128    -128    0
       SCRC-STONY-BROOK.ARPA   4       -100    -100    -100    0
       SCRC-VALLECITO.ARPA     4       -57     -57     -57     0
       SCRC-YUKON.ARPA         4       -65     -65     -65     0
       SEBASTIAN.THINK.COM     4       -14     -15     -14     0
       SEISMO.CSS.GOV          3       -1      -1      0       0
       SRI-BISHOP.ARPA         4       -40     -41     -40     0
       SRI-DARWIN.ARPA         2       -29     -30     -29     0
       SRI-HUXLEY.ARPA         2       -28     -29     -28     0
       SRI-KIOWA.ARPA          4       -29     -30     -29     0
       SRI-LASSEN.ARPA         3       -11     -12     -11     0
       SRI-MENDEL.ARPA         4       74      73      73      0
       SRI-PINCUSHION.ARPA     4       -50     -51     -50     0
       SRI-RITTER.ARPA         4       -23     -24     -23     0
       SRI-TIOGA.ARPA          4       127     127     127     0
       SRI-UNICORN.ARPA        4       -38486  -38486  -38486  0
       SRI-WHITNEY.ARPA        4       -24     -24     -24     0
       SRI-YOSEMITE.ARPA       4       -26     -27     -26     0
       SU-AIMVAX.ARPA          2       -54     -55     -54     0
       SU-COYOTE.ARPA          1       14      14      14      0
       SU-CSLI.ARPA            4       -1      -1      -1      0
       SU-PSYCH.ARPA           1       -52     -52     -52     0
       SU-SAFE.ARPA            1       -60     -60     -60     0
       SU-SIERRA.ARPA          4       -53     -53     -53     0
       SU-SUSHI.ARPA           4       -105    -106    -105    0
       SU-WHITNEY.ARPA         2       -14     -14     -14     0
       TESLA.EE.CORNELL.EDU    3       -2      -3      -2      0
       THORLAC.THINK.COM       4       -20     -20     -20     0
       TRANTOR.ARPA            4       4       3       3       0
       TZEC.ARPA               4       -6      -7      -6      0
       UBALDO.THINK.COM        4       -13     -13     -13     0
       UCI-CIP.ARPA            2       -566    -567    -566    0
       UCI-CIP2.ARPA           2       -175    -175    -175    0
       UCI-CIP3.ARPA           2       -89     -90     -89     0
       UCI-CIP4.ARPA           2       -51     -51     -51     0
       UCI-CIP5.ARPA           2       -26     -28     -27     1

Mills [Page 18]

RFC 956 September 1985 Algorithms for Synchronizing Network Clocks

       UCI-ICSA.ARPA           2       -24     -24     -24     0
       UCI-ICSC.ARPA           1       0       0       0       0
       UCI-ICSD.ARPA           1       -24     -24     -24     0
       UCI-ICSE.ARPA           1       -10     -10     -10     0
       UDEL-DEWEY.ARPA         1       88      88      88      0
       UDEL-MICRO.ARPA         2       64      64      64      0
       UIUC.ARPA               4       105     103     104     0
       UIUCDCSB.ARPA           4       65      65      65      0
       UMD1.ARPA               4       0       0       0       0
       UMICH1.ARPA             4       -1      -1      0       0
       UO.ARPA                 4       -2      -3      -2      0
       USC-ISI.ARPA            4       -45     -45     -45     0
       USC-ISIC.ARPA           4       28      26      27      0
       USC-ISID.ARPA           4       26      25      25      0
       USC-ISIE.ARPA           4       -53     -54     -53     0
       USC-ISIF.ARPA           4       -29     -29     -29     0
       USGS2-MULTICS.ARPA      3       75      74      74      0
       UT-ALAMO.ARPA           4       22      22      22      0
       UT-BARKLEY.ARPA         4       57      56      56      0
       UT-EMIL.ARPA            4       29      28      28      0
       UT-GOTTLOB.ARPA         4       42      41      41      0
       UT-HASKELL.ARPA         4       6       6       6       0
       UT-JACQUES.ARPA         4       21      20      20      0
       UT-SALLY.ARPA           3       1       0       0       0
       VALENTINE.THINK.COM     4       -10     -11     -10     0
       WENCESLAS.THINK.COM     4       -2      -3      -2      0
       XAVIER.THINK.COM        4       -14     -14     -14     0
       XEROX.ARPA              4       0       0       0       0
       YAXKIN.ARPA             3       -4      -5      -4      0
       YON.THINK.COM           4       -11     -12     -11     0
       ZAPHOD.PURDUE.EDU       4       -230    -231    -230    0
       ZOTZ.ARPA               4       17      16      16      0
       Table A1. UDP Host Clock Offsets for Various Internet Hosts
    The above list includes several host clocks known to be
    synchronized to various radio clocks, including DCN1.ARPA (WWVB),
    DCN6.ARPA (WWV) and FORD1.ARPA (GOES).  Under normal radio
    receiving conditions these hosts should be accurate to well within
    a second relative to NBS standard time.  Certain other host clocks
    are synchronized to one of these hosts using protocols described
    in RFC-891, including DCN5.ARPA, DCN7.ARPA and UMD1.ARPA
    (synchronized to DCN1.ARPA) and UMICH1.ARPA (synchronized to
    FORD1.ARPA).  It is highly likely, but not confirmed, that several
    other hosts with low offsets derive local time from one of these
    hosts or from other radio clocks.

Mills [Page 19]

RFC 956 September 1985 Algorithms for Synchronizing Network Clocks

    The raw statistics computed from the weighted data indicate a mean
    of -261 sec, together with a maximum of 3729 sec and a minimum of
    -38486 sec.  Obviously, setting a local clock on the basis of
    these statistics alone would result in a gross error.
    A closer look at the distribution of the data reveals some
    interesting features.  Table A2 is a histogram showing the
    distribution within a few seconds of reference time.  In this and
    following tables, "Offset" is in seconds and indicates the
    lower-valued corner of the histogram bin, which extends to the
    next higher value, while "Count" indicates the number of samples
    falling in that bin.
               Offset  Count           Offset  Count
               -------------           -------------
               0 sec   13              (continued)  
               1       1               -1      3    
               2       1               -2      3    
               3       2               -3      3    
               4       1               -4      2    
               5       2               -5      0    
               6       1               -6      2    
               7       1               -7      1    
               8       1               -8      1    
               9       0               -9      0    
               > 9     30              < -9    95   
               Table A2. Offset Distribution < 9 sec
    A total of 16 of the 163 host clocks are within a second in
    accuracy, while a total of 125 are off more than ten seconds.  It
    is considered highly likely that most of the 16 host clocks within
    a second in offset are synchronized directly or indirectly to a
    radio clock. Table A3 is a histogram showing the distribution over
    a larger scale.

Mills [Page 20]

RFC 956 September 1985 Algorithms for Synchronizing Network Clocks

               Offset  Count           Offset  Count
               -------------           -------------
               0 sec   35              (continued)  
               30      3               -30     50   
               60      8               -60     42   
               90      3               -90     8    
               120     1               -120    4    
               150     1               -150    2    
               180     0               -180    1    
               210     0               -210    0    
               240     0               -240    1    
               270     0               -270    0    
               > 270   2               < -270  2    
              Table A3. Offset Distribution < 270 sec
    A total of 138 of the 163 host clocks are within a minute in
    accuracy, while a total of four host clocks are off more than 4.5
    minutes.  It is considered likely that most host clocks, with the
    exception of the 16 identified above as probably synchronized to a
    radio clock, are set manually by an operator.  Inspection of the
    raw data shows some hosts to be very far off;  for instance,
    SRI-UNICORN.ARPA is off more than ten hours.  Note the interesting
    skew in the data, which show that most host clocks are set slow
    relative to standard time.
 A2.  ICMP Timestamp Messages Experiment
    The the second experiment four ICMP Timestamp messages were sent
    at about three-second intervals to each of the 1775 hosts and 110
    gateways listed in the NIC Internet host table.  A total of 1910
    samples were received from 504 hosts and gateways and compared
    with a local reference based on a WWVB radio clock, which is known
    to be accurate to within a few milliseconds.  Support for the ICMP
    Timestamp messages is optional in the DoD Internet protocol suite,
    so it is not surprising that most hosts and gateways do not
    support it.  Moreover, bugs are known to exist in several widely
    distributed implementations of this feature.  The situation proved
    an interesting and useful robustness test for the clustering
    algorithm described in the main body of this note.
    While the complete table of ICMP offsets by host is too large to
    reproduce here, the following Tables A4 through A7 show the
    interesting characteristics of the distribution.  The raw
    statistics computed from the weighted data indicate a mean of
    -2.8E+6 msec, together with a maximum of 8.6E+7 msec and a minimum
    of -8.6E+7 msec.  Setting a local clock on the basis of these

Mills [Page 21]

RFC 956 September 1985 Algorithms for Synchronizing Network Clocks

    statistics alone would be ridiculous; however, as described in the
    main body of this note, use of the clustering algorithm improves
    the estimate to within 8 msec of the correct value.  The apparent
    improvement of about six orders in magnitude is so remarkable as
    to require a closer look at the distributions.
    The reasons for the remarkable success of the clustering algorithm
    are apparent from closer examination of the sequence of histograms
    shown in Tables A4 through A7.  Table A4 shows the distribution in
    the scale of hours, from which it is evident that 80 percent of
    the samples lie in a one-hour band either side of zero offset;
    but, strangely enough, there is a significant dispersion in
    samples outside of this band, especially in the negative region.
    It is almost certain that most or all of the latter samples
    represent defective ICMP Timestamp implementations.  Note that
    invalid timestamps and those with the high-order bit set
    (indicating unknown or nonstandard time) have already been
    excluded from these data.
               Offset  Count           Offset  Count
               -------------           -------------
               0 hr    204             (continued)  
               1       10              -1      194  
               2       0               -2      0    
               3       0               -3      2    
               4       0               -4      17   
               5       0               -5      10   
               6       0               -6      1    
               7       0               -7      22   
               8       0               -8      20   
               9       0               -9      0    
               > 9     0               < -9    13   
            Table A4. ICMP Offset Distribution < 9 hours
    Table A5 shows the distribution compressed to the range of 4.5
    minutes.  About half of the 370 samples remaining after the
    outliers beyond 4.5 minutes are excluded lie in the band 30
    seconds either side of zero offset, with a gradual tapering off to
    the limits of the table. This type of distribution would be
    expected in the case of host clocks set manually by an operator.

Mills [Page 22]

RFC 956 September 1985 Algorithms for Synchronizing Network Clocks

               Offset  Count           Offset  Count
               -------------           -------------
               0 sec   111             (continued)  
               30      25              -30     80   
               60      26              -60     28   
               90      13              -90     18   
               120     7               -120    19   
               150     5               -150    9    
               180     3               -180    10   
               210     3               -210    6    
               240     1               -240    2    
               270     2               -270    2    
               > 270   29              < -270  105  
            Table A5. ICMP Offset Distribution < 270 sec
    Table A6 shows the distribution compressed to the range of 27
    seconds.  About 29 percent of the 188 samples remaining after the
    outliers beyond 27 seconds are excluded lie in the band 3 seconds
    either side of zero offset, with a gradual but less pronounced
    tapering off to the limits of the table.  This type of
    distribution is consistent with a transition region in which some
    clocks are set manually and some by some kind of protocol
    interaction with a reference clock.  A fair number of the clocks
    showing offsets in the 3-27 second range have probably been set
    using the UDP Time protocol at some time in the past, but have
    wandered away as the result of local-oscillator drifts.
               Offset  Count           Offset  Count
               -------------           -------------
               0 sec   32              (continued)  
               3       15              -3      22   
               6       9               -6      12   
               9       6               -9      8    
               12      13              -12     8    
               15      5               -15     5    
               18      8               -18     9    
               21      8               -21     7    
               24      9               -24     3    
               27      6               -27     3    
               > 27    114             < -27   202  
            Table A6. ICMP Offset Distribution < 27 sec
    Finally, Table A7 shows the distribution compressed to the range
    of 0.9 second.  Only 30 of the original 504 samples have survived
    and only 12 of these are within a band 0.1 seconds either side of

Mills [Page 23]

RFC 956 September 1985 Algorithms for Synchronizing Network Clocks

    zero offset. The latter include those clocks continuously
    synchronized to a radio clock, such as the DCNet clocks, some
    FORDnet and UMDnet clocks and certain others.
               Offset  Count           Offset  Count
               -------------           -------------
               0 sec   6               (continued)  
               .1      3               -.1     6    
               .2      1               -.2     3    
               .3      1               -.3     0    
               .4      0               -.4     0    
               .5      1               -.5     2    
               .6      0               -.6     0    
               .7      1               -.7     0    
               .8      4               -.8     2    
               .9      0               -.9     0    
               > .9    208             < -.9   266  
            Table A7. ICMP Offset Distribution < .9 sec
   The most important observation that can be made about the above
    histograms is the pronounced central tendency in all of them, in
    spite of the scale varying over six orders of magnitude.  Thus, a
    clustering algorithm which operates to discard outliers from the
    mean will reliably converge on a maximum-likelihood estimate close
    to the actual value.
 A3.  Comparison of UDP and ICMP Time
    The third experiment was designed to assess the accuracies
    produced by the various host implementations of the UDP Time
    protocol and ICMP Timestamp messages.  For each of the hosts
    responding to the UDP Time protocol in the first experiment a
    separate test was conducted using both UDP and ICMP in the same
    test, so as to minimize the effect of clock drift.  Of the 162
    hosts responding to UDP requests, 45 also responded to ICMP
    requests with apparently correct time, but the remainder either
    responded with unknown or nonstandard ICMP time (29) or failed to
    respond to ICMP requests at all (88).
    Table A8 shows both the UDP time (seconds) and ICMP time
    (milliseconds) returned by each of the 45 hosts responding to both
    UDP and ICMP requests.  The data are ordered first by indicated
    UDP offset and then by indicated ICMP offset.  The seven hosts at
    the top of the table are continuously synchronized, directly or
    indirectly to a radio clock, as described earlier under the first

Mills [Page 24]

RFC 956 September 1985 Algorithms for Synchronizing Network Clocks

    experiment.  It is probable, but not confirmed, that those hosts
    below showing discrepancies of a second or less are synchronized
    on occasion to one of these hosts.
       Host                    UDP time        ICMP time
       -------------------------------------------------
       DCN6.ARPA               0 sec           0 msec
       DCN7.ARPA               0               0
       DCN1.ARPA               0               -6
       DCN5.ARPA               0               -7
       UMD1.ARPA               0               8
       UMICH1.ARPA             0               -21
       FORD1.ARPA              0               31
       TESLA.EE.CORNELL.EDU    0               132
       SEISMO.CSS.GOV          0               174
       UT-SALLY.ARPA           -1              -240
       CU-ARPA.CS.CORNELL.EDU  -1              -514
       UCI-ICSE.ARPA           -1              -1896
       UCI-ICSC.ARPA           1               2000
       DCN9.ARPA               -7              -6610
       TRANTOR.ARPA            10              10232
       COLUMBIA.ARPA           11              12402
       GVAX.CS.CORNELL.EDU     -12             -11988
       UCI-CIP5.ARPA           -15             -17450
       RADC-MULTICS.ARPA       -16             -16600
       SU-WHITNEY.ARPA         17              17480
       UCI-ICSD.ARPA           -20             -20045
       SU-COYOTE.ARPA          21              21642
       MIT-MULTICS.ARPA        27              28265
       BBNA.ARPA               -34             -34199
       UCI-ICSA.ARPA           -37             -36804
       ROCHESTER.ARPA          -42             -41542
       SU-AIMVAX.ARPA          -50             -49575
       UCI-CIP4.ARPA           -57             -57060
       SU-SAFE.ARPA            -59             -59212
       SU-PSYCH.ARPA           -59             -58421
       UDEL-MICRO.ARPA         62              63214
       UIUCDCSB.ARPA           63              63865
       BELLCORE-CS-GW.ARPA     71              71402
       USGS2-MULTICS.ARPA      76              77018
       BBNG.ARPA               81              81439
       UDEL-DEWEY.ARPA         89              89283
       UCI-CIP3.ARPA           -102            -102148
       UIUC.ARPA               105             105843
       UCI-CIP2.ARPA           -185            -185250
       UCI-CIP.ARPA            -576            -576386
       OSLO-VAX.ARPA           3738            3739395

Mills [Page 25]

RFC 956 September 1985 Algorithms for Synchronizing Network Clocks

       DEVVAX.TN.CORNELL.EDU   3657            3657026
       PATCH.ARPA              -86380          20411
       IPTO-FAX.ARPA           -86402          -1693
       NETWOLF.ARPA            10651435        -62164450
       Table A8. Comparison of UDP and ICMP Host Clock Offsets
    Allowing for various degrees of truncation and roundoff abuse in
    the various implementations, discrepancies of up to a second could
    be expected between UDP and ICMP time.  While the results for most
    hosts confirm this, some discrepancies are far greater, which may
    indicate defective implementations, excessive swapping delays and
    so forth.  For instance, the ICMP time indicated by UCI-CIP5.ARPA
    is almost 2.5 seconds less than the UDP time.
    Even though the UDP and ICMP times indicated by OSLO-VAX.ARPA and
    DEVVAX.TN.CORNELL.EDU agree within nominals, the fact that they
    are within a couple of minutes or so of exactly one hour early
    (3600 seconds) lends weight to the conclusion they were
    incorrectly set, probably by an operator who confused local summer
    and standard time.
    Something is clearly broken in the case of PATCH.ARPA,
    IPTO-FAX.ARPA and NETWOLF.ARPA.  Investigation of the PATCH.ARPA
    and IPTO-FAX.ARPA reveals that these hosts were set by hand
    accidently one day late (-86400 seconds), but otherwise close to
    the correct time-of-day.  Since the ICMP time rolls over at 2400
    UT, the ICMP offset was within nominals.  No explanation is
    available for the obviously defective UDP and ICMP times indicated
    by NETWOLF.ARPA, although it was operating within nominals at
    least in the first experiment.

Mills [Page 26]

/data/webs/external/dokuwiki/data/pages/rfc/rfc956.txt · Last modified: 1992/09/22 20:01 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki