Pingie.net

NTP Stratum Levels: Understanding Server Accuracy

Layered network diagram showing NTP stratum levels as glowing tiers connecting atomic clocks to servers in clean blue light.

NTP stratum levels are numbers from 0 to 15 that tell you how many hops a time server is away from a reference clock. Stratum 0 is the actual reference (an atomic clock or GPS receiver), stratum 1 servers connect directly to that hardware, and each step down adds another layer, which usually means slightly less accuracy. The lower your stratum number, the closer you sit to the original, most precise source of time.

What NTP actually does

The Network Time Protocol keeps clocks on computers, phones, routers, and servers in agreement with a trusted time source. Without it, machines drift apart by seconds or minutes over time, which breaks log ordering, security certificates, scheduled jobs, and financial timestamps.

Here is the core idea behind time synchronization with NTP:

  • Your device asks a time server, "What time is it?"
  • The server replies with a precise timestamp.
  • NTP measures the round-trip delay and corrects for it, so network time stays accurate even over a slow connection.
  • Your clock nudges gradually toward the right time instead of jumping, which avoids breaking running processes.

NTP is old and reliable. It was first documented in RFC 5905 for version 4, and it can hold accuracy within a few milliseconds over the public internet and well under a millisecond on a local network.

NTP stratum levels explained

Think of stratum as a distance measurement, not a quality rating. It counts how many servers stand between you and the original clock hardware.

  • Stratum 0 is the reference clock itself: a GPS receiver, radio clock, or atomic clock. It is not a network device you query directly.
  • Stratum 1 servers are wired straight to a stratum 0 device. These are the "primary" time servers and the most accurate network-facing sources.
  • Stratum 2 servers sync from stratum 1 servers over the network.
  • Stratum 3 syncs from stratum 2, and so on down the line.
  • Stratum 16 means "unsynchronized." A server showing stratum 16 has no valid time source and should not be trusted.

Each device automatically sets its own stratum to one higher than the server it syncs with. If your local server pulls time from a stratum 2 source, it becomes stratum 3. The protocol caps the usable range at stratum 15, so a chain can only run so deep before it stops being valid.

Quick tip: An atomic clock is a stratum 0 source, but you never connect to it directly. You reach it through a stratum 1 server that has the clock physically attached.

Stratum levels at a glance

Stratum What it is Typical accuracy
0 Reference clock (GPS, atomic, radio) Nanoseconds
1 Server directly attached to a stratum 0 clock Microseconds to low milliseconds
2 Syncs from a stratum 1 server over the network Low single-digit milliseconds
3-15 Each step syncs from the level above Milliseconds, growing slightly per hop
16 Unsynchronized, no valid source Not usable

Does a lower stratum mean better accuracy?

Not always, and this trips up a lot of people. Stratum measures distance from the reference clock, not the actual precision your device sees.

A well-connected stratum 3 server on a fast, low-latency network can easily outperform a stratum 2 server that sits behind congestion or a long, jittery path. What really matters for your clock:

  • Network path quality: lower and more stable latency beats a fancier stratum number.
  • Synchronization delay: unpredictable round-trip times introduce error that NTP cannot fully correct.
  • Server stability: a busy, overloaded stratum 1 can serve worse time than a quiet stratum 2.
  • Redundancy: querying several servers lets NTP discard outliers and pick the best consensus.
Chasing a stratum 1 server for a normal application is usually pointless and considered rude to operators. For almost everyone, a good stratum 2 or 3 source is more than accurate enough.

The NTP Pool and public servers

Most devices do not talk to a single named server. They use the NTP Pool project, a huge volunteer network of thousands of servers reachable through addresses like pool.ntp.org. When you request time, DNS rotates you across different machines to spread the load.

The public NTP pool mostly hands you stratum 2 and stratum 3 servers, which is intentional. It keeps the small number of precious stratum 1 servers free for the servers that feed the rest of the network. To join a regional pool, you point your client at addresses like these:

server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst
server 2.pool.ntp.org iburst
server 3.pool.ntp.org iburst

The iburst option makes the first sync happen faster by sending a quick burst of packets when the connection starts.

Fixing common NTP problems

When time sync misbehaves, a handful of issues cause most of the trouble.

"NTP server unreachable"

This error usually is not about stratum at all. Check these first:

  • Firewall blocking UDP port 123: NTP runs on UDP 123, and many networks silently drop it. Open the port outbound.
  • Wrong or dead hostname: confirm the address resolves in DNS and the server still exists.
  • No route out: if DNS itself fails because the clock is wrong, you can hit a chicken-and-egg loop on first boot.

Clock stuck at stratum 16

Stratum 16 means your server never locked onto a valid upstream source. It typically clears within a few minutes once a real server responds. If it stays stuck, your configured servers are unreachable or all reporting themselves as unsynchronized.

Large synchronization delay or jitter

If your offset keeps bouncing, the network path is the likely culprit. Add more servers so NTP has options, pick geographically closer pool zones, and avoid syncing across a saturated VPN tunnel if you can.

A healthy setup lists several reachable servers, shows a low stratum number relative to your source, and reports offset and jitter measured in single-digit milliseconds.
Illustration of NTP stratum levels and time server synchronization

Need quick, reliable everyday tools?

Once your NTP stratum levels are sorted and your network time is accurate, keep the rest of your workflow just as tidy with our free browser-based utilities.

Explore Our Free Tools →

Frequently asked questions

The field allows 0 to 15 for valid time, with 16 reserved to mean unsynchronized. A server reporting stratum 16 has no usable time source. In practice, chains rarely go past stratum 3 or 4, since each extra hop adds delay and reduces reliability without much benefit.

No. Stratum measures distance from the reference clock, not real accuracy. A nearby stratum 2 server on a stable, low-latency link often delivers better time than a distant or overloaded stratum 1 server. Network path quality and synchronization delay matter more than the stratum number alone.

Usually not. Stratum 1 servers are limited resources meant to feed lower-stratum servers, not thousands of end clients. For nearly all needs, the public NTP pool with stratum 2 and 3 servers gives millisecond accuracy while spreading load fairly across volunteer operators.

Most often a firewall is blocking UDP port 123, the address does not resolve in DNS, or the server is temporarily down. Confirm the hostname resolves, open port 123 outbound, and list several servers so one failure does not cut off your time synchronization entirely.

Stratum 0 is the physical reference clock, such as a GPS receiver, radio clock, or atomic clock. It is not a network device you query directly. You always reach it through an attached stratum 1 server, which reads the hardware and shares the time over the network.