= A Glossary of NTP-speak
include::include-html.ad[]

[cols="10%,90%",frame="none",grid="none",style="verse"]
|==============================
|image:pic/howland.jpg[]|
{millshome}pictures.html[from 'Pogo', Walt Kelly]
|==============================
[glossary]

[[ACTS]] ACTS::
  https://www.nist.gov/pml/time-and-frequency-division/services/automated-computer-time-service-acts[NIST
  Automated Computer Time Service]. NIST provides a civil time reference for
  computers equipped with analog modems that can dial in to its phone
  lines.  Due to variability of delays in the analog phone network
  accuracy is not very good, around 4 milliseconds compared to
  around a microsecond for <<PPS>>. But the service is still
  occasionally used as a backup to more precise sources.

[[association]] association::
  An association is the relationship that an NTP client and server have
  when the server is computing and shipping time updates to the client
  and the client is expecting them.  There are several different kinds
  of associations including unicast, manycast, and broadcast modes;
  another variable is whether the association is authenticated or
  unauthenticated.  A significant amount of NTP's complexity is the means
  for discovering association partners, creating and maintaining
  associations, and preventing attackers from forming associations.

[[association ID]] association ID::
  A numeric identifier designating an association, normally internal
  to ntpd but exposed in <<mode 6>> packets.

[[atom]] atom::
  Old name for the PPS driver.  Origin lost in the mists of history,
  but probably related in some way to cesium atomic clocks.

[[cycle]] cycle::
  An <<era>>; code comments sometimes use this term to emphasize that
  modular arithmetic is going on.

[[drift]] drift::
  In an NTP context, drift refers to the frequency offset of a clock crystal
  in an NTP host that causes the system time to drift slowly.  It is
  usually  expressed in a parts-per-million (PPM) offset from its
  nominal frequency. It changes, slowly, in response to environmental
  factors (mainly ambient temperature). ntpd measures drift by
  sampling the clock and performing clock recovery against a
  phase-locked loop.  The drift measurement can be stored and updated
  locally to a drift file so that when ntpd is stopped and restarted
  it doesn't have to go through the entire resampling and resynchronization
  process before providing reliable time.

[[falseticker]] falseticker::
  <<Mills-speak>> for a timeserver identified as not
  reliable by statistical filtering.  Usually this does not imply a
  problem with the timeserver itself but rather with highly variable
  and asymmetric network delays between server and client, but firmware
  bugs in GPS receivers have produced falsetickers.

[[epoch]] epoch::
  1. The zero date of an NTP era.  The "prime epoch" (of era 0) was
  1900-00-00T00:00:00 in proleptic UTC (leap second correction was not
  introduced until 1972). 2. Other calendar systems have other
  definitions; notably, the Unix epoch is 1970-00-00T00:00:00.

[[era]] era::
  One complete revolution of an NTP 64-bit timestamp; approximately
  136 years. Eras are numbered from 0, but this era number is not
  represented internally in NTP code because modular-arithmetic
  trickery is used to deduce the nearest time that could fit a given
  timestamp.

[[fudge]] fudge::
  Can have one of two senses.  Either (1) an offset configured for a
  <<refclock>> or server to correct its time, reversing a fixed or
  nearly-fixed propagation delay, or (2) in the old config syntax, a "fudge
  bit" was what is now called a driver option - set in a refclock
  declaration to change the refclock's behavior in some
  driver-dependent way.

[[fuzzball]] fuzzball::
   Historical. An
   https://www.eecis.udel.edu/~mills/database/papers/fuzz.pdf[operating
   system] running on PDP-11s used for early time-service and Internet
   routing experiments. Metonymously, a PDP-11 running the suite.
   While some of these remained in service as late as 1988 they are
   now long gone, but have left a few traces in the NTP codebase.

[[GPS]] GPS::
   Global Positioning System; in common parlance "a GPS" is a radio receiver
   designed to get position and time fixes from the system. GPS fixes
   are derived from spherical trigonometry using the precisely known
   positions of satellites in a geocentric coordinate system. GPS
   also provides time service; those that emit <<PPS>> are suitable
   as clock sources for Stratum 1 timeservers.  In timekeeping, the
   term is used to refer not only to the original U.S. GPS system,
   but newer constellations that work on the same principles, such
   as ГЛОНАСС (the Russian GLONASS), 北斗 (the Chinese BeiDou-2),
   and the EU's Galileo.  Regional systems include QZSS (Japan) and
   NavIC, earlier IRNSS (India).

[[GPSDO]] GPSDO::
   GPS Disciplined Oscillator. A good crystal is synchronized to
   time from a GPS receiver.  The combination gets the short term
   stability of the crystal and the long term stability of GPS.
   With appropriate firmware, the crystal can be used when the
   GPS receiver is temporarily non-operational; see <<holdover>>.
   Most cell towers have GPSDOs. You can usually spot the conical
   GPS antenna.

[[GPSD]] GPSD::
   The https://gpsd.io[GPS Daemon], an open-source device
   manager for GPSes and other geodetic sensors. Frequently used as
   a clock source by Stratum 1 sites via the link:driver_shm.html[SHM]
   interface.

[[GPS pivot date]] GPS pivot date::
   The GPS pivot date is a specific fixed arbitrary time.  It is stored in
   the firmware of a GPS receiver, and is probably the date that firmware
   was released.  For this reason, a GPS receiver will start reporting
   incorrect time 512 weeks (9.8 years) or 1024 weeks (19.6 years) after
   it's pivot date.  There is generally no way to determine what a given
   GPS receiver's pivot date is, or to determine that it has failed in
   this manner.  It is recommended that any critical Stratum 1 NTP server
   that uses a GPS receiver as a refclock not use one that is more than
   9 years old, and to have a peer or nopeer relationship with other NTP
   servers, so as to detect when the GPS time is no longer sane.

[[holdover]] holdover::
   In connection with a <<GPSDO>> or <<time radio>> that may lose
   signal from its time source, holdover is its ability to continue
   delivering accurate time from an internal oscillator. Due to
   <<drift>> in the oscillator, accuracy drops as holdover time (time
   since last signal lock) increases.

[[in-band time]] in-band time::
   GPS-based time sources often deliver two channels of time
   information. The timestamp delivered as ASCII data over the
   serial link is called "in-band time" to contrast it with the
   out-of-band <<PPS>> signal.  Abbreviated IBT. Seldom useful
   by itself as it tends to have a large random wander from top
   of second. However, it is useful as a count of seconds.

[[leap second]] leap second::
   Because the earth's rotation varies in irregular ways (gradually
   slowing due to tidal drag among other forces) and the second is now defined
   in absolute terms rather than as a fraction of day length, keeping
   time of day synchronized with mean solar time requires occasional,
   unpredictable insertions of a standard second in the calendar. Leap
   second notifications are issued as Bulletin C by the
   https://www.iers.org/IERS/EN/Home/home_node.html[International
   Earth Rotation Service] when required, and obeyed by national time
   authorities.  The current leap second offset is automatically
   propagated through the <<GPS>> system.

[[leapfile]] leapfile::
   A local file containing the current <<leap second>> offset, typically
   fetched from <<USNO>> or <<NIST>> and potentially needing updates
   near the end of each half year. Normally retrieved
   by a cron(1) job, but some varieties of <<refclock>> (notably
   GPSes) update the same information during normal operation.

[[Mills-speak]] Mills-speak::
   Dr. David Mills, the original architect of NTP and its standards,
   wrote in a vivid and idiosyncratic style which is still preserved in
   much of NTP's documentation.  He coined many neologisms which
   connoisseurs refer to as "Mills-speak"; examples in this glossary
   include <<falseticker>>, <<proventic>>, and <<truechimer>>.  The
   close-to-definitive reference is
   https://lists.ntp.org/pipermail/questions/2007-December/016592.html[The
   NTP dictionary], though not all of those terms are still in use.

[[mode 6]] mode 6::
   Mode 6 is a control protocol used to get various kinds of
   status information from a running ntpd and configure it on
   the fly.  So-called from the value 6 (0110) in the packet mode
   field.  It is described in detail link:mode6.html[here].

[[NIST]] NIST::
   https://www.nist.gov[National Institute of Standards and
   Technology].  The civilian national time authority of the U.S.;
   runs <<WWVB>>.  Responsible for keeping U.S. civil time
   coordinated with UTC.  Civil <<NIST>> and military <<USNO>>
   time agree to within nanoseconds.

[[NTP-classic]] NTP Classic::
   The original reference implementation of NTP by Dave Mills, later
   maintained by the Network Time Foundation.  It is available at
   http://www.ntp.org .  NTPsec forked from it on June 6th, 2015.

[[nonce]] nonce::
  An arbitrary number that may only be used once. A random or
  pseudo-random number issued in an authentication protocol (such as
  NTP's) to ensure that old communications cannot be reused in replay
  attacks.

[[parse-driver]] parse driver::
  A refclock, now known as link:driver_generic.html[generic], which
  handles multiple <<time radio>> protocols - two dozen mostly
  European precision time radios mostly using DCF, the broadcast time
  from the German national authority. Each clock type is internally
  represented as a few parse methods and table entries in a
  table-driven parser. Older documentation used the term "parse
  driver" interchangeably with "generic driver".

[[popcorn spike]] popcorn spike::
  A packet from a particular peer that has a computed theta more than
  three standard deviations from the previous sample.  These are
  normally treated as random outliers and suppressed.

[[PPS]] PPS::
  (Also as "1PPS") Pulse Per Second. A top-of-second pulse emitted
  by time sources, typically a GPS receiver or atomic clocks.  It
  is often connected to an RS-232 modem control signal pin.
  A PPS signal doesn't tell you which second a pulse corresponds to
  so it must be used with an ancillary signal, typically text over
  the same RS-232 connector (see <<in-band time>>).
  The advantage of a PPS signal is improved accuracy.  Most OSes have
  provisions to grab a timestamp at interrupt time.  The API is described
  in RFC 2783.

[[PTP]] PTP::
  https://en.wikipedia.org/wiki/Precision_Time_Protocol[Precision Time
  Protocol], which does for hosts on a local area network what NTP
  does on the general Internet. By taking advantage of the (usually)
  more controlled conditions of a LAN, it is capable of much higher
  sustained accuracy than NTP, into the sub-microsecond range.

[[pool]] pool::
   In an NTP context, "the pool" usually refers to the
   https://www.ntppool.org/[NTP Pool Project], which coordinates a volunteer
   collection of thousands of NTP servers around the world that anyone can
   use. The DNS names are designed to keep the timeservers you select
   relatively "close" to you on the internet, with varying degrees of
   specificity, e.g. using north-america.pool.ntp.org may connect you
   to timeservers from Canada to Panama, while us.pool.ntp.org is more
   likely to connect you to timeservers within the continental U.S.
   See the link:quick.html#pool[Client Quick Start Guide]
   for configuration examples.

[[proventic]] proventic:: <<Mills-speak>> for "the transitive
  completion of the authentication relationship", defined in RFC 5906.
  Time is proventic if it is provided by a chain of time servers
  between which packets are authenticated and the chain reaches
  back to Stratum 1.

[[refclock]] refclock::
  Shorthand for a "reference clock", a primary time source. A computer
  with a refclock is implicitly Stratum 1.  Examples include <<GPS>>
  or <<time radio>> receivers, or even a master cesium clock.

[[stratum]] stratum::
  A "stratum" is a layer in the hierarchy of time servers.  A
  <<refclock>> is stratum 0; a computer directly attached to
  a refclock is stratum 1; and a client served by a stratum N is
  stratum N+1. Often capitalized, especially when referring to all
  members of a stratum. The larger the number, the further away from
  the source clock, thus the less accurate. Stratum 16 is the maximum, and
  indicates a device that is unreachable and unsynchronized. The majority
  of public timeservers are Stratum 1 and Stratum 2.

[[time-radio]] time radio::
  A radio receiver specialized for picking up accurate time reference
  signals broadcast over the air by a national time authority; notable
  ones include <<WWVB>> (U.S.), CHU (Canada), DCF (Germany), MSF
  (United Kingdom), and JJY (Japan).  Usable as a Stratum 1 time
  source; may be qualified by "precision time radio" to distinguish
  from consumer-grade "atomic clocks", which are time radios that
  normally take radio synchronization just once a day and are _not_
  accurate enough to be used for Stratum 1.  Precision time radios
  used to be important time sources, but (especially in the U.S.) have
  been largely obsolesced by <<GPS>> and <<GPSDO>>-based clocks.

[[truechimer]] truechimer::
  <<Mills-speak>> for a timeserver that provides time believed good,
  that is with low jitter with respect to UTC.  As with a
  <<falseticker>>, this is usually less a property of
  the server itself than it is of favorable network topology.

[[USNO]] USNO::
  https://www.usno.navy.mil/USNO[The United States Naval Observatory],
  one of the two U.S. national time authorities and the source of the
  U.S. military time reference, now delivered primarily by GPS
  signals. U.S. civil <<NIST>> and military <<USNO>> time agree to
  within nanoseconds.

[[WWVB]] WWVB::
  https://www.nist.gov/time-and-frequency-services/nist-radio-stations/wwvb[The
  U.S. national time radio station], run by <<NIST>> and broadcasting a highly
  accurate U.S. civil-time reference.  Formerly an important primary time
  source, until NIST changed its modulation at 2012-10-29T15:00:00Z
  and obsolesced all then-existing U.S. precision time radios. No
  WWVB-compatible precision time radios have been manufactured since,
  though consumer-grade "atomic clocks" unaffected by the modulation
  change are still made.

'''''

include::includes/footer.adoc[]
