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

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                           D. Mills Request for Comments: 1361                        University of Delaware                                                              August 1992 
  8.  
  9.                    Simple Network Time Protocol (SNTP) 
  10.  
  11. Status of this Memo 
  12.  
  13.    This memo provides information for the Internet community.  It does    not specify an Internet standard.  Distribution of this memo is    unlimited. 
  14.  
  15. Abstract 
  16.  
  17.    This memorandum describes the Simple Network Time Protocol (SNTP),    which is an adaptation of the Network Time Protocol (NTP) used to    synchronize computer clocks in the Internet. SNTP can be used when    the ultimate performance of the full NTP implementation described in    RFC-1305 is not needed or justified. It involves no change to the    current or previous NTP specification versions or known    implementations, but rather a clarification of certain design    features of NTP which allow operation in a simple, stateless RPC mode    with accuracy and reliability expectations similar to the UDP/TIME    protocol described in RFC-868. 
  18.  
  19.    This memorandum does not obsolete or update any RFC. A working    knowledge of RFC-1305 is not required for an implementation of SNTP. 
  20.  
  21. 1. Introduction 
  22.  
  23.    The Network Time Protocol (NTP) specified in RFC-1305 [MIL92] is used    to synchronize computer clocks in the global Internet. It provides    comprehensive mechanisms to access national time and frequency    dissemination services, organize the time-synchronization subnet and    adjust the local clock in each participating subnet peer. In most    places of the Internet of today, NTP provides accuracies of 1-50 ms,    depending on the jitter characteristics of the synchronization source    and network paths. 
  24.  
  25.    RFC-1305 specifies the NTP protocol machine in terms of events,    states, transition functions and actions and, in addition, optional    algorithms to improve the timekeeping quality and mitigate among    several, possibly faulty, synchronization sources. To achieve    accuracies in the low milliseconds over paths spanning major portions    of the Internet of today, these intricate algorithms, or their    functional equivalents, are necessary. However, in many cases    accuracies of this order are not required and something less, perhaps 
  26.  
  27.  
  28.  
  29. Mills                                                           [Page 1] 
  30.  RFC 1361                          SNTP                       August 1992 
  31.  
  32.     in the order of one second, is sufficient. In such cases simpler    protocols such as the Time Protocol [POS83], have been used for this    purpose. These protocols usually involve a remote-procedure call    (RPC) exchange where the client requests the time of day and the    server returns it in seconds past some known reference epoch. 
  33.  
  34.    NTP is designed for use by clients and servers with a wide range of    capabilities and over a wide range of network delays and jitter    characteristics. Most members of the Internet NTP synchronization    subnet of today use software packages including the full suite of NTP    options and algorithms, which are relatively complex, real-time    applications. While the software has been ported to a wide variety of    hardware platforms ranging from supercomputers to personal computers,    its sheer size and complexity is not appropriate for many    applications. Accordingly, it is useful to explore alternative access    strategies using far simpler software appropriate for accuracy    expectations in the order of a second. 
  35.  
  36.    This memorandum describes the Simple Network Time Protocol (SNTP),    which is a simplified access strategy for servers and clients using    NTP as now specified and deployed in the Internet. There are no    changes to the protocol or implementations now running or likely to    be implemented in the near future. The access paradigm is identical    to the UDP/Time Protocol and, in fact, it should be easily possible    to adapt a UDP/Time client implementation, say for a personal    computer, to operate using SNTP. Moreover, SNTP is also designed to    operate in a dedicated server configuration including an integrated    radio clock. With careful design and control of the various latencies    in the system, which is practical in a dedicated design, it is    possible to deliver time accurate to the order of microseconds. 
  37.  
  38.    It is strongly recommended that SNTP be used only at the extremities    of the synchronization subnet. SNTP clients should operate only at    the leaves (highest stratum) of the subnet and in configurations    where no SNTP client is dependent on another SNTP client for    synchronization. SNTP servers should operate only at the root    (stratum 1) of the subnet and then only in configurations where no    other source of synchronization other than a reliable radio clock is    available. The full degree of reliability ordinarily expected of    primary servers is possible only using the redundant sources, diverse    subnet paths and crafted algorithms of a full NTP implementation.    This extends to the primary source of synchronization itself in the    form of multiple radio clocks and backup paths to other primary    servers should the radio clock fail or become faulty. Therefore, the    use of SNTP rather than NTP in primary servers should be carefully    considered. 
  39.  
  40.  
  41.  
  42.  
  43.  
  44. Mills                                                           [Page 2] 
  45.  RFC 1361                          SNTP                       August 1992 
  46.  
  47.  2. NTP Timestamp Format 
  48.  
  49.    SNTP uses the standard NTP timestamp format described in RFC-1305 and    previous versions of that document. In conformance with standard    Internet practice, NTP data are specified as integer or fixed-point    quantities, with bits numbered in big-endian fashion from zero    starting at the left, or high-order, position. Unless specified    otherwise, all quantities are unsigned and may occupy the full field    width with an implied zero preceding bit zero. 
  50.  
  51.    Since NTP timestamps are cherished data and, in fact, represent the    main product of the protocol, a special timestamp format has been    established. NTP timestamps are represented as a 64-bit unsigned    fixed-point number, in seconds relative to 0h on 1 January 1900. The    integer part is in the first 32 bits and the fraction part in the    last 32 bits. This format allows convenient multiple-precision    arithmetic and conversion to Time Protocol representation (seconds),    but does complicate the conversion to ICMP Timestamp message    representation (milliseconds). The precision of this representation    is about 200 picoseconds, which should be adequate for even the most    exotic requirements. 
  52.  
  53.    Note that since some time in 1968 the most significant bit (bit 0 of    the integer part) has been set and that the 64-bit field will    overflow some time in 2036. Should NTP or SNTP be in use in 2036,    some external means will be necessary to qualify time relative to    1900 and time relative to 2036 (and other multiples of 136 years).    Timestamped data requiring such qualification will be so precious    that appropriate means should be readily available. There will exist    a 200-picosecond interval, henceforth ignored, every 136 years when    the 64-bit field will be zero, which by convention is interpreted as    an invalid timestamp. 
  54.  
  55. 3. NTP Message Format 
  56.  
  57.    Both NTP and SNTP are clients of the User Datagram Protocol (UDP)    [POS83], which itself is a client of the Internet Protocol (IP)    [DAR81]. The structure of the IP and UDP headers is described in the    relevant specification documents and will not be described further in    this memorandum. Following is a description of the SNTP message    format, which follows the IP and UDP headers. The SNTP message format    is identical to the NTP format described in RFC-1305, with the    exception that some of the data fields are "canned," that is,    initialized to prespecified values. The format of the NTP message    data area, which immediately follows the UDP header, is shown below. 
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  Mills                                                           [Page 3] 
  64.  RFC 1361                          SNTP                       August 1992 
  65.  
  66.                             1                   2                   3        0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+       |LI | VN  |Mode |    Stratum    |     Poll      |   Precision   |       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+       |                          Root Delay                           |       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+       |                       Root Dispersion                         |       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+       |                    Reference Identifier                       |       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+       |                                                               |       |                   Reference Timestamp (64)                    |       |                                                               |       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+       |                                                               |       |                   Originate Timestamp (64)                    |       |                                                               |       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+       |                                                               |       |                    Receive Timestamp (64)                     |       |                                                               |       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+       |                                                               |       |                    Transmit Timestamp (64)                    |       |                                                               |       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+       |                                                               |       |                                                               |       |                  Authenticator (optional) (96)                |       |                                                               |       |                                                               |       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 
  67.  
  68.    As described in the next section, in SNTP most of these fields are    initialized with prespecified data. For completeness, the function of    each field is briefly summarized below. 
  69.  
  70.    Leap Indicator (LI): This is a two-bit code warning of an impending    leap second to be inserted/deleted in the last minute of the current    day, with bit 0 and bit 1, respectively, coded as follows: 
  71.  
  72.       LI       Value     Meaning       -------------------------------------------------------       00       0         no warning       01       1         last minute has 61 seconds       10       2         last minute has 59 seconds)       11       3         alarm condition (clock not synchronized) 
  73.  
  74.  
  75.  
  76. Mills                                                           [Page 4] 
  77.  RFC 1361                          SNTP                       August 1992 
  78.  
  79.     Version Number (VN): This is a three-bit integer indicating the NTP    version number, currently 3. 
  80.  
  81.    Mode: This is a three-bit integer indicating the mode, with values    defined as follows: 
  82.  
  83.       Mode     Meaning       ------------------------------------       0        reserved       1        symmetric active       2        symmetric passive       3        client       4        server       5        broadcast       6        reserved for NTP control message       7        reserved for private use 
  84.  
  85.    The use of this field will be discussed in the next section. 
  86.  
  87.    Stratum: This is a eight-bit integer indicating the stratum level of    the local clock, with values defined as follows: 
  88.  
  89.       Stratum  Meaning       ----------------------------------------------       0        unspecified or unavailable       1        primary reference (e.g., radio clock)       2-15     secondary reference (via NTP or SNTP)       16-255   reserved 
  90.  
  91.    Poll Interval: This is an eight-bit signed integer indicating the    maximum interval between successive messages, in seconds to the    nearest power of two. The values that normally appear in this field    range from 6 to 10, inclusive. 
  92.  
  93.    Precision: This is an eight-bit signed integer indicating the    precision of the local clock, in seconds to the nearest power of two.    The values that normally appear in this field range from -6 for    mains-frequency clocks to -18 for microsecond clocks found in some    workstations. 
  94.  
  95.    Root Delay: This is a 32-bit signed fixed-point number indicating the    total roundtrip delay to the primary reference source, in seconds    with fraction point between bits 15 and 16. Note that this variable    can take on both positive and negative values, depending on the    relative time and frequency errors. The values that normally appear    in this field range from negative values of a few milliseconds to    positive values of several hundred milliseconds. 
  96.  
  97.  
  98.  
  99.  Mills                                                           [Page 5] 
  100.  RFC 1361                          SNTP                       August 1992 
  101.  
  102.     Root Dispersion: This is a 32-bit unsigned fixed-point number    indicating the maximum error relative to the primary reference    source, in seconds with fraction point between bits 15 and 16. The    values that normally appear in this field range from zero to several    hundred milliseconds. 
  103.  
  104.    Reference Clock Identifier: This is a 32-bit code identifying the    particular reference clock. In the case of stratum 0 (unspecified) or    stratum 1 (primary reference), this is a four-octet, left-justified,    zero-padded ASCII string. While not enumerated as part of the NTP    specification, the following are representative ASCII identifiers: 
  105.  
  106.       Stratum Code  Meaning       ------------------------------------------------------------       0   ascii     generic time service other than NTP, such as ACTS                     (Automated Computer Time Service), TIME (UDP/Time                     Protocol), TSP (TSP Unix time protocol), DTSS                     (Digital Time Synchronization Service), etc.       1   ATOM      calibrated atomic clock       1   VLF       VLF radio (OMEGA, etc.)       1   callsign  Generic radio       1   LORC      LORAN-C radionavigation system       1   GOES      Geostationary Operational Environmental Satellite       1   GPS       Global Positioning Service       2   address   secondary reference (four-octet Internet address of                     the NTP server) 
  107.  
  108.    Reference Timestamp: This is the local time at which the local clock    was last set or corrected, in 64-bit timestamp format. 
  109.  
  110.    Originate Timestamp: This is the local time at which the request    departed the client for the server, in 64-bit timestamp format. 
  111.  
  112.    Receive Timestamp: This is the local time at which the request    arrived at the server, in 64-bit timestamp format. 
  113.  
  114.    Transmit Timestamp: This is the local time at which the reply    departed the server for the client, in 64-bit timestamp format. 
  115.  
  116.    Authenticator (optional): When the NTP authentication mechanism is    implemented, this contains the authenticator information defined in    Appendix C of RFC-1305. In SNTP this field is ignored for incoming    messages and is not generated for outgoing messages. 
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  Mills                                                           [Page 6] 
  125.  RFC 1361                          SNTP                       August 1992 
  126.  
  127.  4. SNTP Client Operations 
  128.  
  129.    The model for an SNTP client operating with either an NTP or SNTP    server is a RPC client with no persistent state. The client    initializes the SNTP message header, sends the message to the server    and strips the time of day from the reply. For this purpose all of    the message-header fields shown above are set to zero, except the    first octet. In this octet the Leap Indicator is set to zero (no    warning) and the Mode to 3 (client). The Version Number must agree    with the software version of the NTP or SNTP server; however, NTP    Version 3 (RFC-1305) servers will also accept Version 2 (RFC-1119)    and Version 1 (RFC-1059) messages, while NTP Version 2 servers will    also accept NTP Version 1 messages. Version 0 (original NTP described    in RFC-959) messages are no longer supported. Since there are NTP    servers of all three versions operating in the Internet of today, it    is recommended that the Version Number field be set to one. 
  130.  
  131.    The server reply includes all the fields described above; however, in    SNTP only the Transmit Timestamp has explicit meaning. The integer    part of this field contains the server time of day in the same format    as the Time Protocol. While the fraction part of this field will    usually be valid, the accuracy achieved with the SNTP mode of access    probably does not justify its use. 
  132.  
  133.    The following table is a summary of the SNTP client operations. There    are three recommended error checks shown in the table. In all NTP    versions, if the Leap Indicator field is 3 or the Transmit Timestamp    is zero (unsynchronized), the server has never synchronized or not    synchronized to a valid timing source within the last 24 hours. If    the Stratum field is 0 (unspecified or unavailable), the server has    never synchronized, has lost reachability with all timing sources or    is synchronized by some protocol other than NTP. Whether to believe    the transmit timestamp or not in this case is at the discretion of    the client implementation. 
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151. Mills                                                           [Page 7] 
  152.  RFC 1361                          SNTP                       August 1992 
  153.  
  154.        Field Name              Request        Reply       -------------------------------------------------------------       Leap Indicator (LI)     0              if 3 (unsynchronized),                                              disregard       Version Number (VN)     (see text)     ignore       Mode                    3 (client)     ignore       Stratum                 0              if 0 (unspecified),                                              disregard       Poll                    0              ignore       Precision               0              ignore       Root Delay              0              ignore       Root Dispersion         0              ignore       Reference Identifier    0              ignore       Reference Timestamp     0              ignore       Originate Timestamp     0              ignore       Receive Timestamp       0              ignore       Transmit Timestamp      0              time of day (seconds only);                                              if 0 (unsynchronized),                                              disregard       Authenticator           (not used)     ignore 
  155.  
  156. 5. SNTP Server Operations 
  157.  
  158.    The model for an SNTP server operating with either an NTP or SNTP    client is an RPC server with no persistent state. The SNTP server    ignores all header fields except the first octet, modifies certain    fields and returns the message to the sender. Since an SNTP server    ordinarily does not implement the full set of NTP algorithms intended    to support the highest quality service, it is recommended that an    SNTP server be operated only in conjunction with a source of outside    synchronization, such as a radio clock. In this case the server    always operates at stratum 1. 
  159.  
  160.    The first octet is interpreted as follows. The Leap Indicator and    Version Number fields are ignored. Optionally, messages with version    numbers other than 1, 2, or 3 can be discarded. For primary servers    connected to a functioning radio clock, the Leap Indicator field is    set to zero and the Stratum field is set to one in the reply.    otherwise, these fields are set to 3 and zero, respectively. In any    case the Version Number and Poll fields are copied intact to the    reply message header. If The Mode field is set to 3 (client), it is    changed to 4 (server) in the reply; otherwise, this field is set to 2    (symmetric passive). 
  161.  
  162.    The Stratum field is set to reflect the maximum reading error of the    local clock. For all practical cases it is computed as the negative    of the number of significant bits to the right of the decimal point    in the NTP timestamp format. The Root Delay and Root Dispersion 
  163.  
  164.  
  165.  
  166. Mills                                                           [Page 8] 
  167.  RFC 1361                          SNTP                       August 1992 
  168.  
  169.     fields are set to zero for a primary server; optionally, the Root    Dispersion can be set to a value corresponding to the expected    (constant) maximum expected error of the primary reference source.    The Reference Identifier is set to designate the primary reference    source, as indicated in the table above. If this information is    unspecified or unavailable, the field is set to zero. 
  170.  
  171.    The timestamp fields are set as follows. The Reference Timestamp,    Receive Timestamp and Transmit Timestamp fields are set to the time    of day at the server. The Originate Timestamp field is copied    unchanged from the request. The following table summarizes these    actions. 
  172.  
  173.       Field Name              Request        Reply       ----------------------------------------------------------       Leap Indicator (LI)     ignore         0 (normal), 3                                              (unsynchronized)       Version Number (VN)     ignore         copied from request       Mode                    (see text)     (see text)       Stratum                 ignore         server stratum (1)       Poll                    ignore         copied from request       Precision               ignore         server precision       Root Delay              ignore         0       Root Dispersion         ignore         0 (see text)       Reference Identifier    ignore         source identifier or 0       Reference Timestamp     ignore         time of day or 0       Originate Timestamp     ignore         copied from request       Receive Timestamp       ignore         time of day or 0       Transmit Timestamp      ignore         time of day or 0       Authenticator           ignore         (not used) 
  174.  
  175. 6. References 
  176.  
  177.    [DAR81] Postel, J., "Internet Protocol - DARPA Internet Program    Protocol Specification", RFC 791, DARPA, September 1981. 
  178.  
  179.    [MIL92] Mills, D., "Network Time Protocol (Version 3) Specification,    Implementation and Analysis", RFC 1305, University of Delaware,    March 1992. 
  180.  
  181.    [POS80] Postel, J., "User Datagram Protocol", RFC 768,    USC/Information Sciences Institute, August 1980. 
  182.  
  183.    [POS83] Postel, J., and K. Harrenstien, "Time Protocol", RFC 868,    USC/Information Sciences Institute, SRI, May 1983. 
  184.  
  185.  
  186.  
  187.  
  188.  
  189.  Mills                                                           [Page 9] 
  190.  RFC 1361                          SNTP                       August 1992 
  191.  
  192.  Security Considerations 
  193.  
  194.    Security issues are not discussed in this memo. 
  195.  
  196. Author's Address 
  197.  
  198.    David L. Mills    Electrical Engineering Department    University of Delaware    Newark, DE 19716 
  199.  
  200.    Phone: (302) 831-8247 
  201.  
  202.    EMail: mills@udel.edu 
  203.  
  204.  
  205.  
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240. Mills                                                          [Page 10] 
  241.  
  242.