What Is a Stratum?
In NTP, a stratum is a measure of a time source's distance from a primary reference clock. Stratum is a number from 0 to 15, where 0 is the most accurate (atomic clocks, GPS) and each hop through the network adds 1 to the stratum. A stratum 16 device is considered unsynchronized.
The Stratum Hierarchy
Stratum 0: Primary Reference Sources
These are not NTP servers themselves — they provide a timing signal to Stratum 1 servers:
- Cesium and rubidium atomic clocks
- GPS receivers (receiving satellite atomic clock signals)
- Radio time signals (WWVB in US, DCF77 in Germany, JJY in Japan)
- Precision Time Protocol (PTP) grandmaster clocks
Stratum 1: Primary Time Servers
Directly connected to Stratum 0 via PPS (pulse-per-second) signal or GPS. These are the internet's backbone time servers:
time.google.com(Google, uses GPS + atomic clocks)time.cloudflare.com(Cloudflare, uses GPS)time.apple.com(Apple)ntp.ubuntu.com(Canonical/Ubuntu)- National time servers:
time.nist.gov(NIST, US),time.windows.com
Stratum 2: Secondary Time Servers
Synchronize from Stratum 1. This is what most organizations should use for their local NTP servers. The pool.ntp.org project provides Stratum 2 servers globally.
Stratum 3–15: Downstream Servers
Each hop adds uncertainty. A well-configured Stratum 3 server typically has <10ms accuracy. Stratum 15 is the last valid stratum; Stratum 16 means "not synchronized."
Checking Your Stratum
# chrony
chronyc tracking | grep Stratum
# Stratum : 2
# ntpq
ntpq -p
# st column shows stratum
# * = synced, + = candidate, - = outlier, x = false ticker
# timedatectl
timedatectl timesync-status | grep Stratum
Building a Local NTP Infrastructure
For organizations with many servers, the best practice is:
# Architecture:
# GPS/atomic → Stratum 1 server → internal Stratum 2 servers → all other hosts
# /etc/chrony.conf for internal Stratum 2
server time.google.com iburst prefer
server time.cloudflare.com iburst
pool pool.ntp.org iburst
# Allow internal network to sync from this server
allow 10.0.0.0/8
Why Not Sync Everything to Stratum 1?
Public Stratum 1 servers explicitly ask you not to query them directly unless you need that accuracy. They have limited capacity. For most servers, Stratum 2 provides more than adequate accuracy (typically <5ms) and reduces load on public infrastructure. Use Stratum 1 only for servers that in turn serve time to many others.