home *** CD-ROM | disk | FTP | other *** search
/ Handbook of Infosec Terms 2.0 / Handbook_of_Infosec_Terms_Version_2.0_ISSO.iso / text / rfcs / rfc0956.txt < prev    next >
Text File  |  1996-05-07  |  41KB  |  356 lines

  1.  Network Working Group                                         D.L. Mills Request for Comments: 956                               M/A-COM Linkabit                                                           September 1985 
  2.  
  3.               Algorithms for Synchronizing Network Clocks 
  4.  
  5.  Status of this Memo 
  6.  
  7.    This RFC discussed clock synchronization algorithms for the    ARPA-Internet community, and requests discussion and suggestions for    improvements.  Distribution of this memo is unlimited. 
  8.  
  9. Table of Contents 
  10.  
  11.    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 
  12.  
  13. List of Tables 
  14.  
  15.    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 
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  Mills                                                           [Page 1] 
  22.  
  23.  
  24.  RFC 956                                                   September 1985 Algorithms for Synchronizing Network Clocks 
  25.  
  26.  1.  Introduction 
  27.  
  28.    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. 
  29.  
  30.    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. 
  31.  
  32.    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]. 
  33.  
  34.    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. 
  35.  
  36.  
  37.  
  38. Mills                                                           [Page 2] 
  39.  
  40.  
  41.  RFC 956                                                   September 1985 Algorithms for Synchronizing Network Clocks 
  42.  
  43.     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. 
  44.  
  45.    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. 
  46.  
  47.    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. 
  48.  
  49. 2.  Majority-Subset Algorithms 
  50.  
  51.    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 
  52.  
  53.  Mills                                                           [Page 3] 
  54.  
  55.  
  56.  RFC 956                                                   September 1985 Algorithms for Synchronizing Network Clocks 
  57.  
  58.     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. 
  59.  
  60.    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. 
  61.  
  62.    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. 
  63.  
  64.      (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 
  65.  
  66.                    Table 1. C(n,k) for n from 2 to 20 
  67.  
  68.    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. 
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  Mills                                                           [Page 4] 
  79.  
  80.  
  81.  RFC 956                                                   September 1985 Algorithms for Synchronizing Network Clocks 
  82.  
  83.                   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 
  84.  
  85.                 Table 2. Majority Subsets for n = 3,4,5 
  86.  
  87.    Choosing n = 5, for example, requires calculation of the mean and    variance for ten subsets indexed as shown in Table 2. 
  88.  
  89.    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. 
  90.  
  91.    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): 
  92.  
  93.               m(j) = X/W   and   s(j) = Y/W - m(j)*m(j) . 
  94.  
  95.    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. 
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  Mills                                                           [Page 5] 
  106.  
  107.  
  108.  RFC 956                                                   September 1985 Algorithms for Synchronizing Network Clocks 
  109.  
  110.  3.  Clustering Algorithms 
  111.  
  112.    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: 
  113.  
  114.       1.  Start with a sample set of n observations {x(1),x(2),...,x(n) 
  115.  
  116.       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. 
  117.  
  118.       3.  Continue with step 2 until only a single observation is left,           at which point declare its value the maximum-likelihood           estimator. 
  119.  
  120.    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. 
  121.  
  122.    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. 
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138. Mills                                                           [Page 6] 
  139.  
  140.  
  141.  RFC 956                                                   September 1985 Algorithms for Synchronizing Network Clocks 
  142.  
  143.                      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       
  144.  
  145.        Table 3. Clustering Algorithm using UDP Time Protocol Data 
  146.  
  147.    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. 
  148.  
  149.    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. 
  150.  
  151.  
  152.  
  153.  
  154.  
  155.  
  156.  
  157.  Mills                                                           [Page 7] 
  158.  
  159.  
  160.  RFC 956                                                   September 1985 Algorithms for Synchronizing Network Clocks 
  161.  
  162.                      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      
  163.  
  164.         Table 4. Clustering Algorithm using ICMP Timestamp Data 
  165.  
  166.    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. 
  167.  
  168.  
  169.  
  170.  
  171.  
  172.  
  173.  
  174.  
  175.  
  176.  
  177.  
  178.  Mills                                                           [Page 8] 
  179.  
  180.  
  181.  RFC 956                                                   September 1985 Algorithms for Synchronizing Network Clocks 
  182.  
  183.  4.  Application to Time-Synchronization Data 
  184.  
  185.    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. 
  186.  
  187.    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. 
  188.  
  189.    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. 
  190.  
  191.    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. 
  192.  
  193.    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 
  194.  
  195.  
  196.  
  197. Mills                                                           [Page 9] 
  198.  
  199.  
  200.  RFC 956                                                   September 1985 Algorithms for Synchronizing Network Clocks 
  201.  
  202.     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. 
  203.  
  204.    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. 
  205.  
  206.                               Mean    Var     Max     Min              --------------------------------------------               Raw data        637     2.1E+7  32751   -1096              C(5,3)          -15     389     53      -103  
  207.  
  208.              Table 5. ISI-MCON-GW Majority-Subset Algorithm 
  209.  
  210.                     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     
  211.  
  212.                Table 6. ISI-MCON-GW Clustering Algorithm 
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220. Mills                                                          [Page 10] 
  221.  
  222.  
  223.  RFC 956                                                   September 1985 Algorithms for Synchronizing Network Clocks 
  224.  
  225.                                Mean    Dev     Max     Min               --------------------------------------------               Raw data        566     1.8E+7  32750   -143               C(5,3)          -23     81      14      -69  
  226.  
  227.               Table 7. LL-GW (a) Majority-Subset Algorithm 
  228.  
  229.                     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     
  230.  
  231.                 Table 8. LL-GW (a) Clustering Algorithm 
  232.  
  233.                               Mean    Dev     Max     Min              --------------------------------------------               Raw data        378     2.1E+7  32760   -32758              C(5,3)          -21     1681    329     -212   
  234.  
  235.               Table 9. LL-GW (b) Majority-Subset Algorithm 
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249. Mills                                                          [Page 11] 
  250.  
  251.  
  252.  RFC 956                                                   September 1985 Algorithms for Synchronizing Network Clocks 
  253.  
  254.                      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     
  255.  
  256.                 Table 10. LL-GW (b) Clustering Algorithm 
  257.  
  258.    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. 
  259.  
  260.    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 
  261.  
  262.  
  263.  
  264. Mills                                                          [Page 12] 
  265.  
  266.  
  267.  RFC 956                                                   September 1985 Algorithms for Synchronizing Network Clocks 
  268.  
  269.     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. 
  270.  
  271.    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. 
  272.  
  273. 5.  Summary and Conclusions 
  274.  
  275.    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. 
  276.  
  277.    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. 
  278.  
  279.    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: 
  280.  
  281.       1.  The protocol should be based on UDP, which provides the           flexibility to handle simultaneous, multiplexed queries and           responses. 
  282.  
  283.       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. 
  284.  
  285.  
  286.  
  287.  
  288.  
  289. Mills                                                          [Page 13] 
  290.  
  291.  
  292.  RFC 956                                                   September 1985 Algorithms for Synchronizing Network Clocks 
  293.  
  294.        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. 
  295.  
  296.       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. 
  297.  
  298.    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. 
  299.  
  300. 6.  References 
  301.  
  302.    1.  Lindsay, W.C., and A.V.  Kantak.  Network synchronization of        random signals.  IEEE Trans.  Comm.  COM-28, 8 (August 1980),        1260-1266. 
  303.  
  304.    2.  Mills, D.L.  Time Synchronization in DCNET Hosts.  DARPA Internet        Project Report IEN-173, COMSAT Laboratories, February 1981. 
  305.  
  306.    3.  Mills, D.L.  DCNET Internet Clock Service.  DARPA Network Working        Group Report RFC-778, COMSAT Laboratories, April 1981. 
  307.  
  308.    4.  Mills, D.L.  Internet Delay Experiments.  DARPA Network Working        Group Report RFC-889, M/A-COM Linkabit, December 1983. 
  309.  
  310.    5.  Mills, D.L.  DCN Local-Network Protocols.  DARPA Network Working        Group Report RFC-891, M/A-COM Linkabit, December 1983. 
  311.  
  312.    6.  Postel, J.  Internet Control Message Protocol.  DARPA Network        Working Group Report RFC-792, USC Information Sciences Institute,        September 1981. 
  313.  
  314.    7.  Postel, J.  Time Protocol.  DARPA Network Working Group Report        RFC-868, USC Information Sciences Institute, May 1983. 
  315.  
  316.    8.  Postel, J.  Daytime Protocol.  DARPA Network Working Group Report        RFC-867, USC Information Sciences Institute, May 1983. 
  317.  
  318.    9.  Su, Z.  A Specification of the Internet Protocol (IP) Timestamp        Option.  DARPA Network Working Group Report RFC-781.  SRI        International, May 1981. 
  319.  
  320.  Mills                                                          [Page 14] 
  321.  
  322.  
  323.  RFC 956                                                   September 1985 Algorithms for Synchronizing Network Clocks 
  324.  
  325.     10. Marzullo, K., and S.  Owicki.  Maintaining the Time in a        Distributed System.  ACM Operating Systems Review 19, 3 (July        1985), 44-54. 
  326.  
  327.    11. Mills, D.L.  Experiments in Network Clock Synchronization.  DARPA        Network Working Group Report RFC-957, M/A-COM Linkabit, September        1985. 
  328.  
  329.    12. Mills, D.L.  Network Time Protocol (NTP).  DARPA Network Working        Group Report RFC-958, M/A-COM Linkabit, September 1985. 
  330.  
  331. Appendix A. 
  332.  
  333.    Experimental Determination of Internet Host Clock Accuracies 
  334.  
  335.    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. 
  336.  
  337.    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. 
  338.  
  339.    A1.  UDP Time Protocol Experiment 
  340.  
  341.       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. 
  342.  
  343.  Mills                                                          [Page 15] 
  344.  
  345.  
  346.  RFC 956                                                   September 1985 Algorithms for Synchronizing Network Clocks 
  347.  
  348.        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. 
  349.  
  350.          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 
  351.  
  352.  Mills                                                          [Page 16] 
  353.  
  354.  
  355.  RFC 956                                       
  356.