throbber
Network Working Group
`Request for Comments: 1305
`Obsoletes: RFC-1119, RFC-1059, RFC-958
`
`David L. Mills
`University of Delaware
`March 1992
`
`Network Time Protocol (Version 3)
`Specification, Implementation and Analysis
`
`Abstract
`
`This document describes the Network Time Protocol (NTP), specifies its formal structure and
`summarizes information useful for its implementation. NTP provides the mechanisms to synchro-
`nize time and coordinate time distribution in a large, diverse internet operating at rates from mundane
`to lightwave. It uses a returnable-time design in which a distributed subnet of time servers operating
`in a self-organizing, hierarchical-master-slave configuration synchronizes local clocks within the
`subnet and to national time standards via wire or radio. The servers can also redistribute reference
`time via local routing algorithms and time daemons.
`
`Status of this Memo
`
`This RFC specifies an IAB standards track protocol for the Internet community and requests
`discussion and suggestions for improvements. Please refer to the current edition of the “IAB Official
`Protocol Standards” for the standardization state and status of this protocol. Distribution of this
`memo is unlimited.
`
`Keywords: network clock synchronization, standard time distribution, fault-tolerant architecture,
`maximum-likelihood estimation, disciplined oscillator, internet protocol, high-speed networks,
`formal specification.
`
`
`PAGE 1 OF 120
`
`SONOS EXHIBIT 1011
`IPR of U.S. Pat. No. 8,942,252
`
`

`

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

`

`RFC-1305
`
`Network Time Protocol (Version 3)
`
`March 1992
`
`precision oscillator, such as a cesium clock or timing receiver, as a precision timebase. In
`addition, changes were made to some procedures described in Section 3 and in the clock-filter
`and clock-selection procedures described in Section 4. While these changes were made to correct
`minor bugs found as the result of experience and are recommended for new implementations,
`they do not affect interoperability with previous versions or existing implementations in other
`than minor ways (at least until the next leap second).
`
`5.
`
`In Version 3 changes were made to the way delay, offset and dispersion are defined, calculated
`and processed in order to reliably bound the errors inherent in the time-transfer procedures. In
`particular, the error accumulations were moved from the delay computation to the dispersion
`computation and both included in the clock filter and selection procedures. The clock-selection
`procedure was modified to remove the first of the two sorting/discarding steps and replace with
`an algorithm first proposed by Marzullo and later incorporated in the Digital Time Service.
`These changes do not significantly affect the ordinary operation of or compatibility with various
`versions of NTP, but they do provide the basis for formal statements of correctness as described
`in Appendix H.
`
`Mills
`
`Page iii
`
`
`PAGE 3 OF 120
`
`SONOS EXHIBIT 1011
`IPR of U.S. Pat. No. 8,942,252
`
`

`

`RFC-1305
`
`Network Time Protocol (Version 3)
`
`March 1992
`
`Table of Contents
`
`1.
`1.1.
`2.
`2.1.
`2.2.
`3.
`3.1.
`3.2.
`3.2.1.
`3.2.2.
`3.2.3.
`3.2.4.
`3.2.5.
`3.2.6.
`3.2.7.
`3.3.
`3.4.
`3.4.1.
`3.4.2.
`3.4.3.
`3.4.4.
`3.4.5.
`3.4.6.
`3.4.7.
`3.4.7.1.
`3.4.7.2.
`3.4.7.3.
`3.4.7.4.
`3.4.8.
`3.4.9.
`3.5.
`3.6.
`4.
`4.1.
`4.2.
`4.2.1.
`5.
`5.1.
`5.2.
`5.3.
`5.4.
`
` Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
` Related Technology . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
` System Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
` Implementation Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
` Network Configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
` Network Time Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
` Data Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
` State Variables and Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
` Common Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
` System Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
` Peer Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
` Packet Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
` Clock-Filter Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
` Authentication Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
` Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
` Modes of Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
` Event Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
` Notation Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
` Transmit Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
` Receive Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
` Packet Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
` Clock-Update Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
` Primary-Clock Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
` Initialization Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
` Initialization Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
` Initialization-Instantiation Procedure . . . . . . . . . . . . . . . . . . . . . . 29
` Receive-Instantiation Procedure . . . . . . . . . . . . . . . . . . . . . . . . 30
` Primary Clock-Instantiation Procedure . . . . . . . . . . . . . . . . . . . . . 31
` Clear Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
` Poll-Update Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
` Synchronization Distance Procedure . . . . . . . . . . . . . . . . . . . . . . . . 32
` Access Control Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
` Filtering and Selection Algorithms . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
` Clock-Filter Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
` Clock-Selection Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
` Intersection Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
` Local Clocks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
` Fuzzball Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
` Gradual Phase Adjustments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
` Step Phase Adjustments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
` Implementation Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
`
`Mills
`
`Page iv
`
`
`PAGE 4 OF 120
`
`SONOS EXHIBIT 1011
`IPR of U.S. Pat. No. 8,942,252
`
`

`

`RFC-1305
`
`Network Time Protocol (Version 3)
`
`March 1992
`
`6.
`7.
`A.
`B.
`B.1.
`B.2.
`B.2.1.
`B.2.2.
`B.2.3.
`B.2.4.
`B.3.
`C.
`C.1.
`C.2.
`C.2.1.
`4.2.2.
`C.2.2.
`C.2.3.
`D.
`E.
`E.1.
`E.2.
`E.3.
`E.4.
`E.5.
`E.6.
`E.7.
`E.8.
`F.
`F.1.
`F.2.
`F.3.
`F.4.
`F.5.
`F.6.
`G.
`G.1.
`G.1.1.
`G.1.2.
`G.2.
`G.3.
`G.4.
`
`Mills
`
` Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
` References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
` Appendix A. NTP Data Format - Version 3 . . . . . . . . . . . . . . . . . . . . . . 50
` Appendix B. NTP Control Messages . . . . . . . . . . . . . . . . . . . . . . . . . . 53
` NTP Control Message Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
` Status Words . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
` System Status Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
` Peer Status Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
` Clock Status Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
` Error Status Word . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
` Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
` Appendix C. Authentication Issues . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
` NTP Authentication Mechanism . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
` NTP Authentication Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
` Encrypt Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
` Clustering Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
` Decrypt Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
` Control-Message Procedures . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
` Appendix D. Differences from Previous Versions. . . . . . . . . . . . . . . . . . . . 66
` Appendix E. The NTP Timescale and its Chronometry . . . . . . . . . . . . . . . . 70
` Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
` Primary Frequency and Time Standards . . . . . . . . . . . . . . . . . . . . . . . 70
` Time and Frequency Dissemination . . . . . . . . . . . . . . . . . . . . . . . . . 72
` Calendar Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
` The Modified Julian Day System . . . . . . . . . . . . . . . . . . . . . . . . . . 75
` Determination of Frequency . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
` Determination of Time and Leap Seconds . . . . . . . . . . . . . . . . . . . . . . 76
` The NTP Timescale and Reckoning with UTC . . . . . . . . . . . . . . . . . . . 78
` Appendix F. The NTP Clock-Combining Algorithm . . . . . . . . . . . . . . . . . 80
` Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
` Determining Time and Frequency . . . . . . . . . . . . . . . . . . . . . . . . . . 80
` Clock Modelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
` Development of a Composite Timescale . . . . . . . . . . . . . . . . . . . . . . 81
` Application to NTP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
` Clock-Combining Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
` Appendix G. Computer Clock Modelling and Analysis . . . . . . . . . . . . . . . . 86
` Computer Clock Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
` The Fuzzball Clock Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
` The Unix Clock Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
` Mathematical Model of the NTP Logical Clock . . . . . . . . . . . . . . . . . . . 91
` Parameter Management . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
` Adjusting VCO Gain (a )
` . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
`
`Page v
`
`
`PAGE 5 OF 120
`
`SONOS EXHIBIT 1011
`IPR of U.S. Pat. No. 8,942,252
`
`

`

`RFC-1305
`
`Network Time Protocol (Version 3)
`
`March 1992
`
`G.5.
`G.6.
`H.
`H.1.
`H.2.
`H.3.
`H.4.
`H.5.
`H.6.
`I.
`I.1.
`I.2.
`I.3.
`I.4.
`I.5.
`I.6.
`
` Adjusting PLL Bandwidth (t ) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
` The NTP Clock Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
` Appendix H. Analysis of Errors and Correctness Principles . . . . . . . . . . . . . . 98
` Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
` Timestamp Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
` Measurement Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
` Network Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
` Inherited Errors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
` Correctness Principles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
` Appendix I. Selected C-Language Program Listings . . . . . . . . . . . . . . . . . . 107
` Common Definitions and Variables . . . . . . . . . . . . . . . . . . . . . . . . . 107
` Clock–Filter Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
` Interval Intersection Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
` Clock–Selection Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
` Clock–Combining Procedure . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
` Subroutine to Compute Synchronization Distance . . . . . . . . . . . . . . . . . 112
`
`List of Figures
`
`Figure 1. Implementation Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
`Figure 2. Calculating Delay and Offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
`Figure 3. Clock Registers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
`Figure 4. NTP Message Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
`Figure 5. NTP Control Message Header . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
`Figure 6. Status Word Formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
`Figure 7. Authenticator Format . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
`Figure 8. Comparison of UTC and NTP Timescales at Leap . . . . . . . . . . . . . . . . . . 79
`Figure 9. Network Time Protocol . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
`Figure 10. Hardware Clock Models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
`Figure 11. Clock Adjustment Process . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
`Figure 12. NTP Phase-Lock Loop (PLL) Model . . . . . . . . . . . . . . . . . . . . . . . . 91
`Figure 13. Timing Intervals . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
`Figure 14. Measuring Delay and Offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
`Figure 15. Error Accumulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
`Figure 16. Confidence Intervals and Intersections . . . . . . . . . . . . . . . . . . . . . . . 105
`
`List of Tables
`
`Table 1. System Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
`Table 2. Peer Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
`Table 3. Packet Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
`Table 4. Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
`Table 5. Modes and Actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
`Table 6. Clock Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
`
`Mills
`
`Page vi
`
`
`PAGE 6 OF 120
`
`SONOS EXHIBIT 1011
`IPR of U.S. Pat. No. 8,942,252
`
`

`

`RFC-1305
`
`Network Time Protocol (Version 3)
`
`March 1992
`
`Table 7. Characteristics of Standard Oscillators . . . . . . . . . . . . . . . . . . . . . . . . 71
`Table 8. Table of Leap-Second Insertions . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
`Table 9. Notation Used in PLL Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
`Table 10. PLL Parameters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
`Table 11. Notation Used in PLL Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
`Table 12. Notation Used in Error Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
`
`Mills
`
`Page vii
`
`
`PAGE 7 OF 120
`
`SONOS EXHIBIT 1011
`IPR of U.S. Pat. No. 8,942,252
`
`

`

`RFC-1305
`
`Network Time Protocol (Version 3)
`
`March 1992
`
`1. Introduction
`
`This document constitutes a formal specification of the Network Time Protocol (NTP) Version 3,
`which is used to synchronize timekeeping among a set of distributed time servers and clients. It
`defines the architectures, algorithms, entities and protocols used by NTP and is intended primarily
`for implementors. A companion document [MIL91a] summarizes the requirements, analytical
`models, algorithmic analysis and performance under typical Internet conditions. Another document
`[MIL91b] describes the NTP timescale and its relationship to other standard timescales now in use.
`NTP was first described in RFC-958 [MIL85c], but has since evolved in significant ways,
`culminating in the most recent NTP Version 2 described in RFC-1119 [MIL89]. It is built on the
`Internet Protocol (IP) [DAR81a] and User Datagram Protocol (UDP) [POS80], which provide a
`connectionless transport mechanism; however, it is readily adaptable to other protocol suites. NTP
`is evolved from the Time Protocol [POS83b] and the ICMP Timestamp message [DAR81b], but is
`specifically designed to maintain accuracy and robustness, even when used over typical Internet
`paths involving multiple gateways, highly dispersive delays and unreliable nets.
`
`The service environment consists of the implementation model and service model described in
`Section 2. The implementation model is based on a multiple-process operating system architecture,
`although other architectures could be used as well. The service model is based on a returnable-time
`design which depends only on measured clock offsets, but does not require reliable message
`delivery. The synchronization subnet uses a self-organizing, hierarchical-master-slave configura-
`tion, with synchronization paths determined by a minimum-weight spanning tree. While multiple
`masters (primary servers) may exist, there is no requirement for an election protocol.
`
`NTP itself is described in Section 3. It provides the protocol mechanisms to synchronize time in
`principle to precisions in the order of nanoseconds while preserving a non-ambiguous date well into
`the next century. The protocol includes provisions to specify the characteristics and estimate the
`error of the local clock and the time server to which it may be synchronized. It also includes
`provisions for operation with a number of mutually suspicious, hierarchically distributed primary
`reference sources such as radio-synchronized clocks.
`
`Section 4 describes algorithms useful for deglitching and smoothing clock-offset samples collected
`on a continuous basis. These algorithms evolved from those suggested in [MIL85a], were refined
`as the results of experiments described in [MIL85b] and further evolved under typical operating
`conditions over the last three years. In addition, as the result of experience in operating multiple-
`server subnets including radio clocks at several sites in the U.S. and with clients in the U.S. and
`Europe, reliable algorithms for selecting good clocks from a population possibly including broken
`ones have been developed [DEC89], [MIL91a] and are described in Section 4.
`
`The accuracies achievable by NTP depend strongly on the precision of the local-clock hardware
`and stringent control of device and process latencies. Provisions must be included to adjust the
`software logical-clock time and frequency in response to corrections produced by NTP. Section 5
`describes a local-clock design evolved from the Fuzzball implementation described in [MIL83b]
`and [MIL88b]. This design includes offset-slewing, frequency compensation and deglitching
`
`Mills
`
`Page 1
`
`
`PAGE 8 OF 120
`
`SONOS EXHIBIT 1011
`IPR of U.S. Pat. No. 8,942,252
`
`

`

`RFC-1305
`
`Network Time Protocol (Version 3)
`
`March 1992
`
`mechanisms capable of accuracies in the order of a millisecond, even after extended periods when
`synchronization to primary reference sources has been lost.
`
`Details specific to NTP packet formats used with the Internet Protocol (IP) and User Datagram
`Protocol (UDP) are presented in Appendix A, while details of a suggested auxiliary NTP Control
`Message, which may be used when comprehensive network-monitoring facilities are not available,
`are presented in Appendix B. Appendix C contains specification and implementation details of an
`optional authentication mechanism which can be used to control access and prevent unauthorized
`data modification, while Appendix D contains a listing of differences between Version 3 of NTP
`and previous versions. Appendix E expands on issues involved with precision timescales and
`calendar dating peculiar to computer networks and NTP. Appendix F describes an optional
`algorithm to improve accuracy by combining the time offsets of a number of clocks. Appendix G
`presents a detailed mathematical model and analysis of the NTP local-clock algorithms. Appendix
`H analyzes the sources and propagation of errors and presents correctness principles relating to the
`time-transfer service. Appendix I illustrates C-language code segments for the clock-filter, clock-
`selection and related algorithms described in Section 4.
`
`1.1. Related Technology
`
`Other mechanisms have been specified in the Internet protocol suite to record and transmit the time
`at which an event takes place, including the Daytime protocol [POS83a], Time Protocol [POS83b],
`ICMP Timestamp message [DAR81b] and IP Timestamp option [SU81]. Experimental results on
`measured clock offsets and roundtrip delays in the Internet are discussed in [MIL83a], [MIL85b],
`[COL88] and [MIL88a]. Other synchronization algorithms are discussed in [LAM78], [GUS84],
`[HAL84], [LUN84], [LAM85], [MAR85], [MIL85a], [MIL85b], [MIL85c], [GUS85b], [SCH86],
`[TRI86], [RIC88], [MIL88a], [DEC89] and [MIL91a], while protocols based on them are described
`in [MIL81a], [MIL81b], [MIL83b], [GUS85a], [MIL85c], [TRI86], [MIL88a], [DEC89] and
`[MIL91a]. NTP uses techniques evolved from them and both linear-systems and agreement
`methodologies. Linear methods for digital telephone network synchronization are summarized in
`[LIN80], while agreement methods for clock synchronization are summarized in [LAM85].
`
`The Digital Time Service (DTS) [DEC89] has many of the same service objectives as NTP. The
`DTS design places heavy emphasis on configuration management and correctness principles when
`operated in a managed LAN or LAN-cluster environment, while NTP places heavy emphasis on
`the accuracy and stability of the service operated in an unmanaged, global-internet environment. In
`DTS a synchronization subnet consists of clerks, servers, couriers and time providers. With respect
`to the NTP nomenclature, a time provider is a primary reference source, a courier is a secondary
`server intended to import time from one or more distant primary servers for local redistribution and
`a server is intended to provide time for possibly many end nodes or clerks. Unlike NTP, DTS does
`not need or use mode or stratum information in clock selection and does not include provisions to
`filter timing noise, select the most accurate from a set of presumed correct clocks or compensate
`for inherent frequency errors.
`
`In fact, the latest revisions in NTP have adopted certain features of DTS in order to support
`correctness principles. These include mechanisms to bound the maximum errors inherent in the
`
`Mills
`
`Page 2
`
`
`PAGE 9 OF 120
`
`SONOS EXHIBIT 1011
`IPR of U.S. Pat. No. 8,942,252
`
`

`

`RFC-1305
`
`Network Time Protocol (Version 3)
`
`March 1992
`
`time-transfer procedures and the use of a provably correct (subject to stated assumptions) mecha-
`nism to reject inappropriate peers in the clock-selection procedures. These features are described in
`Section 4 and Appendix H of this document.
`
`The Fuzzball routing protocol [MIL83b], sometimes called Hellospeak, incorporates time synchro-
`nization directly into the routing-protocol design. One or more processes synchronize to an external
`reference source, such as a radio clock or NTP daemon, and the routing algorithm constructs a
`minimum-weight spanning tree rooted on these processes. The clock offsets are then distributed
`along the arcs of the spanning tree to all processes in the system and the various process clocks
`corrected using the procedure described in Section 5 of this document. While it can be seen that the
`design of Hellospeak strongly influenced the design of NTP, Hellospeak itself is not an Internet
`protocol and is unsuited for use outside its local-net environment.
`
`The Unix 4.3bsd time daemon timed [GUS85a] uses a single master-time daemon to measure offsets
`of a number of slave hosts and send periodic corrections to them. In this model the master is
`determined using an election algorithm [GUS85b] designed to avoid situations where either no
`master is elected or more than one master is elected. The election process requires a broadcast
`capability, which is not a ubiquitous feature of the Internet. While this model has been extended to
`support hierarchical configurations in which a slave on one network serves as a master on the other
`[TRI86], the model requires handcrafted configuration tables in order to establish the hierarchy and
`avoid loops. In addition to the burdensome, but presumably infrequent, overheads of the election
`process, the offset measurement/correction process requires twice as many messages as NTP per
`update.
`
`A scheme with features similar to NTP is described in [KOP87]. This scheme is intended for
`multi-server LANs where each of a set of possibly many time servers determines its local-time offset
`relative to each of the other servers in the set using periodic timestamped messages, then determines
`the local-clock correctio

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket