diff options
Diffstat (limited to 'www/time-service-intro.adoc')
-rw-r--r-- | www/time-service-intro.adoc | 351 |
1 files changed, 351 insertions, 0 deletions
diff --git a/www/time-service-intro.adoc b/www/time-service-intro.adoc new file mode 100644 index 00000000..0231d1e6 --- /dev/null +++ b/www/time-service-intro.adoc @@ -0,0 +1,351 @@ += Introduction to Time Service = +:description: A primer on precision time sources and services. +:keywords: time, UTC, atomic clock, GPS, NTP +Eric S. Raymond <esr@thyrsus.com> +v1.5, 2015-12-08 + +This document is mastered in asciidoc format. If you are reading it in HTML, +you can find the original at the GPSD project website. + +== Introduction == + +This is a background paper on technological means for high-precision +time measurement. We discuss time source types, relative accuracy, +relative cost, and how those figures of merit have changed in recent +decades. A brief introduction to NTP (Network Time Protocol) is +included. + +== Use cases for precision time service == + +More applications than are commonly realized require precise time; +which, in practice, means time accurate to a tenth of a second or +less. While sub-millisecond time requirements are rare outside of +scientific work and the sharper end of industrial process control, +the range between 0.1sec and 0.001sec has a lot of customers. + +As one large example, the Payment Card Industry (PCI) standards used +by the credit card industry mandate "correct and consistent time" and +gives NTP as an example of qualifying synchronization technology +<<PCI3>>. + +The Financial Industry Regulatory Authority (FINRA) currently requires +that clocks used for business must be synchronized to within one second +of NIST time. The synchronization must occur at least once a day and +before the start of business. A pending rule change <<FINRA_14-47>> +proposes to tighten that to just 50 ms. + +Modern cryptographic systems, such as Kerberos, require accurate time. +So do cellular networks and navigation systems for autonomous +vehicles. As these cases suggest, the economic value of +high-precision time is likely to rise significantly in the future. + +There are several equivalent ways to state the precision of a clock. +In the remainder of this introduction we will use "jitter" - the +width of its short-term random variation from its "correct" time - +(commonly Universal Coordinated Time or UTC); usually in nanoseconds +(ns), microsconds (μs), or milliseconds (ms). In these units the +range of interest for most precision time applications is from 100 ms +down to 1000 ns. + +== Time service types == + +A "primary time source" is a very high-precision, very stable +oscillator (popularly called an "atomic clock") used as a source +standard by a national time authority. By international agreement, +the U.S. and other major national time authorities use primary +standards based on electronic transitions between the two hyperfine +energy levels of the ground states of Cesium-133 atoms. + +National time standards are synchronized (essentially, averaged after +removing outliers and consistent errors) to yield an international +reference called Universal Coordinated Time. The US national time +standard, UTC(NIST), normally tracks UTC to within 5 ns <<BIPM-T>>. + +In practice, the U.S. has another time standard; UTC(USNO), +military clock time propagated through the GPS system. As the skew +between UTC(NIST) and UTC(USNO seldom if ever exceeds 10ns +<<TIMESCALE>> they are for practical purposes identical. + +GPS enables receivers to generate a pulse-per-second +signal ("1PPS" or just "PPS") accurate to the top of the current +UTC second within 50 ns. + +National time standards are also propagated through time radios. In +the U.S., digital time signal is provided by WWVB in Colorado, driven +directly by the NIST (National Institute of Standards and Technology) +master civil time standard. Propagation delay to U.S. receivers +varies but is constant by location and no more than 20 ms; being +fixed, this can be easily compensated out. The jitter added to NIST +time by the WWVB transmission system is about 6 ns <<WWVBPRECISION>>, +for a total jitter relative to UTC of about 26 ns at the +transmitter. Atmospheric conditions and signal-processing jitter in +the receiver may degrade this considerably, to the tune of 10-100ns +- however some of that is fixed delay that can be compensated out by +knowing your distance from the transmitter. Accuracy is better at night. + +National time authorities may also offer a digital time reference via +landline phone; the U.S.'s has two, supported by NIST and the U.S. +Naval Observatory. NIST has a claimed accuracy of "a few milliseconds" +<<ACTS1>>; USNO says 4 ms <<ACTS2>>. + +== Clock types == + +A clock, in this context, is a device for delivering an approximation +of a national time standard at a user's location. + +High-end precision clocks are based on rubidium oscillators (close +relatives of the cesium time standards). Less expensive ones are based +on a temperature-compensated crystal oscillator or TCXO, sometimes also +seen as OCXO for "oven-compensated crystal oscillator"; these are more +closely related to the non-temperature-stabilized oscillator in a +quartz-crystal watch. + +Due to frequency drift (induced mainly by temperature variations), all +such clocks need to be periodically conditioned by an external signal +from a time authority. The cost of a clock correlates with its +"holdover" performance - how stable the oscillator's frequency is and +thus how little the time drifts between conditioning signals. + +A "time radio" or "time receiver" is a clock that is conditioned by a +national time radio source. High-end dedicated time receivers can +achieve 50 ns accuracy <<RADIO>>; consumer-grade "atomic clocks" (not +actually atomic at all but using a radio time signal) achieve a much +less impressive 30 ms <<HARCC>> or even as poor as 150 ms <<JUNGHANS>>. +Both are often constrained by siting problems and poor longwave +propagation, leading to frequent loss of signal. In some parts of the +U.S., most notably the Boswash corridor and the southern tip of +Florida, coverage is so intermittent <<WWVBMAP>> as to make the WWVB +signal nearly unusable. The technology works better for smaller, +European-sized countries. + +Time receivers' model designations often include the call sign of +their radio source; for example, a 'WWVB' receiver uses the +U.S. national time radio, a 'DCF77' receiver uses the German national +time radio, an 'MSF' receiver uses the British national time radio, +and a 'JJY' receiver uses the Japanese national time radio. Some time +receivers (especially those made for the European market) can use +multiple stations. A useful table of national time radio stations is +at <<SPECTRUMWIKI>>. + +Devices described as "GPS clocks" (or more technically as "GPS +Disciplined Oscillators" or GPSDOs) are conditioned by the 1PPS output +of a GPS receiver. Worst-case accuracy depends on the accuracy of the +1PPS and vendor data sheets commonly claim 100 ns, sometimes even 20 ns. + +The GPS system standard <<IS-GPS-200G>> Section 3.3.4 specifies that +GPS satellite clock (MSC) from each satellite be within 90 ns of USNO +time to a certainty of one sigma. Adding in GPS satellite position +uncertainty widens the time uncertainty as broadcast from the GPS Sat +to 97 ns at one sigma. Any GPS propagation and reception errors will +add to that uncertainly. Thus one needs to assume a GPSDO will track +USNO time to better than to about 120-200 ns. + +A plain GPS, without a stabilized crystal, can serve as a clock +source. However, it will generally be unable to deliver time at all when +it lacks memory of a previous 3D position fix and current lock on at +least one satellite. In other words, it has no "holdover". (NTP +patches around this by using the system clock for holdover.) + +GPSes actually deliver two times: 1PPS at top of second, and in-band +time expressed in a message packet over the serial or USB link. In +consumer-grade GPSes, 1PPS may not be shipped to the serial connector; +if it is, it becomes a pulse on a handshake line, usually DCD. + +In-band time is usually delivered accurate to the second only and is +shipped with significant and variable delay after 1PPS, typically on +the order of 100 ms. By contrast, 1PPS time output total error will +typically be close to 1μs. + +== Basics of NTP == + +NTP (Network Time Protocol) is a set of protocols that attempts to +synchronize computer clocks across the Internet - ultimately, Universal +Coordinated Time (UTC) as defined by several scale-related atomic clocks +run by national standards institutes. NTP Version 4 is defined in +<<RFC-5905>>. + +NTP service daemons running on each host do clock synchronization in +the presence of variable network latency by monitoring those delays in +real time and passing around messages that say, essentially, "I +received your request at time X, I'm sending the reply at time Y and +the propagation delay to my source of time is Z". Each daemon then +uses rather complex algorithms that we won't attempt to describe here +to digest incoming messages into a composite "NTP time". + +NTP conditions your system clock by noticing how your system clock time +differs from deduced NTP time, then speeding up or slowing down your +clock's tick rate until it is synchronized. These tick-rate changes +are usually extremely small, much too small for a human or even most +software timing loops to ever notice. But large changes are possible. + +NTP's technique exploits the fact that while the quartz crystals used +in PC clocks are not very accurate, they are quite stable - that is, +their frequency drift in response to environmental changes is slow. + +Most computers are just NTP clients. They send NTP requests to a set +of servers and use the replies to adjust the local clock. It is +generally expected that NTP clients will have an accuracy (that is, +maximum divergence from the master atomic clock) of of "a few tens of +milliseconds" <<RFC5985>>; however, problems such as asymmetric +routing, bufferbloat, or large time jitter (especially likely on cable +networks) can degrade accuracy to around 100 ms and even worse in +extreme cases. + +Some NTP hosts are time *servers*. They respond to NTP clients with +time read from high-precision reference clocks (often abbreviated +"refclocks") synchronized to national time standards. The refclocks +are all the kinds of precision time source discussed earlier in this +document. + +You will hear time service people speak of "Stratum 0" (the reference +clocks) "Stratum 1" (NTP servers directly connected to reference +clocks) and "Stratum 2" (servers that get time from Stratum +1). Stratum 3 servers redistribute time from Stratum 2, and so +forth. There are defined higher strata up to 15, but you will probably +never see a public time server higher than Stratum 3 or 4. + +Jitter induced by variable WAN propagation delays +(including variations in switch latency and routing) makes it +impractical to try to improve the accuracy of NTP time to much better +than the "a few tens of milliseconds" of <<RFC-5905>>. + +== Cost-effective clocks == + +There is about three orders of magnitude between the best achievable +wide-area-network accuracy and even the lowest-end GPS-constrained +clock or time radio. Of all the time sources described here, the only +one not precise enough to drive WAN NTP is in-band time from a GPS +without 1PPS footnote:[Actually, a non-1PPS GPS with sufficiently +clever firmware can be good enough - but they almost never are in +practice, and never in consumer-grade hardware.]. + +Since the year 2000 GPSes have drastically decreased in price and +improved in performance. For time-service purposes the important +performance metric is weak-signal performance and ability to operate +indoors. + +A 1PPS-capable plain GPS that can operate reliably near a window is +for NTP purposes nearly as good as a time radio or GPS clock, and +orders of magnitude less expensive. Even the USB 1.1 polling interval +of 1 ms does not introduce a disqualifying amount of jitter for WAN +service. + +LANs are a different matter. Because their propagation delays are +lower and less variable, NTP can do about two orders of magnitude better +in this context, easily sustaining 1 ms accuracy. The combination of +NTP and <<PTP>> can achieve LAN time service another two orders of +magnitude better. + +GPS clocks and time radios remain, therefore, cost effective for +driving NTP over LAN. This is significant in many scientific, +industrial, and government deployments. + +While pressure from plain GPSes has eroded the competitiveness of both +GPS clocks and time radios, time radios have suffered more. While +theoretically more accurate than GPS clocks, they have not improved in +weak-signal performance in the dramatic way GPSes and GPS clocks +have; they remain finicky and nearly as vulnerable to siting and +skyview problems as the GPSes of decades ago. + +Furthermore, the U.S. radio-clock industry was impacted when <<WWVB>> +changed its modulation scheme at 2012-10-29T15:00:00Z. This didn't +affect consumer-grade "atomic" clocks, which resynchronize once a day +and don't use the fine details of the signal, but it obsolesced all +the high-end equipment that conditioned on shorter time scales. At +least one major timing-systems vendor (Spectracom) bailed out of the +time-radio market entirely, and it is not clear there are any high-end +vendors at all left in the U.S. + +== Summary == + +Some figures in this table are from <<GPSD-HOWTO>> and are explained +in more detail there. + +.Summary of worst-case deviation from UTC +|============================================================== +|National primary time standard | 20 ns +|WWVB time radio broadcast | 26 ns +|GPS 1PPS top of second | 50 ns +|Dedicated time receiver | 50 ns +|GPS-constrained clock | 100 ns +| | +|1PPS delivered by OS kernel | 1 μs (1000 ns) +|Serial 1PPS | 5 μs (5000 ns) +|1PPS over USB 1.1 | 1 ms (1000000 ns) +|1PPS over USB 2.0 | 100 μs (100000 ns) +| | +|NIST/USNO modem time | 4 ms (4000000 ns) +|Consumer-grade time radio | 30-150 ms +|Normal accuracy of NTP | ~ 30 ms (3000000 ns) +|Jitter of in-band GPS time | > 100 ms (100000000 ns) +|============================================================== + +== Further Reading == + +You can find a practical how-to on setting up a local Stratum 1 time +server using GPSD and an inexpensive GPS at <<GPSD-HOWTO>>. + +== References == + +[bibliography] + +- [[[PCI3]]] https://www.pcisecuritystandards.org/documents/PCI_DSS_v3.pdf[Requirements and Security Assessment +Procedures] + +- [[[FINRA_14-47]]] +http://www.finra.org/sites/default/files/notice_doc_file_ref/Notice_Regulatory_14-47.pdf[14-47] + +- [[[RFC-5905]]] http://www.ietf.org/rfc/rfc5905.txt[Network Time Protocol Version 4: Protocol and Algorithms Specification] + +- [[[WWVBPRECION]]] http://tf.nist.gov/timefreq/pubs/bulletin/pdf/1999OCT_TF_BULLETIN.pdf[NIST +Time and Frequency Bulletin NISTIR 5082-10] + +- [[[BIPM-T]]] ftp://ftp2.bipm.org/pub/tai/publication/cirt/[See latest Circular T from BIPM] + +- [[[WWVBMAP]]] http://tf.nist.gov/stations/wwvbcoverage.htm[WWVB Coverage Area] + +- [[[SPECTRUMWIKI]]] http://www.spectrumwiki.com/wiki/DisplayEntry.aspx?DisplyId=51[Low Frequency Time Signals] + +- [[[IS-GPS-200G]]] http://www.gps.gov/technical/icwg/IS-GPS-200G.pdf[IS-GPS-200G] + +- [[[TIMESCALE]] http://www.nist.gov/pml/div688/grp50/nistusno.cfm[NIST Time Scale Data Archive] + +- [[[ACTS1]]] http://www.nist.gov/pml/div688/grp40/acts.cfm[NIST Automated Computer Time Service (ACTS)] + +- [[[ACTS2]]] http://tycho.usno.navy.mil/modem_time.html[USNO Master +Clock via Modem] + +- [[[RADIO]]] http://en.wikipedia.org/wiki/Radio_clock[Radio clock] + +- [[[HARCC]]] http://tf.nist.gov/general/pdf/2429.pdf[How Accurate is a Radio Controlled Clock?] + +- [[[JUNGHANS]]] http://www.leapsecond.com/pages/Junghans/[Junghans Solar WWVB watch] + +- [[[PTP]]] http://en.wikipedia.org/wiki/Precision_Time_Protocol[PTP] + +- [[[GPSD-HOWTO]]] link:gpsd-time-service-howto.html[GPSD Time Service HOWTO] + +- [[WWVB]] http://www.nist.gov/pml/div688/grp40/wwvb.cfm[NIST Radio Station WWVB] + +== History == + +v1.0, 2015-03-10:: + Initial version. + +v1.1, 2015-03-11:: + Lots of tiny corrections from G+ and the blog. Use the NTP + accuracy estimate from RFC 5905. + +v1.2, 2015-03-15:: + Clarifying language, proof-reading, and minor corrections. + +v1.3, 2015-03-16:: + Text polishing, terminological cleanup. + +v1.4, 2015-07-11:: + Text polishing, note upcoming change in FINRA, more about GPSDO precision. + +v1.5, 2015-12-10:: + Fix typo in WWVB delay figure and date of modulation change. + +//end |