EN FR Home

NTP Latency Benchmark

Round-trip delay, server comparison and measurement methodology

1. Round-trip delay (RTD) — what it bounds

RTD is the interval between sending an NTP request and receiving the response, measured at the client. NTP derives one-way latency as RTD/2 — a symmetric-path assumption that is approximately true over wired networks.

Why it matters for accuracy: the offset calculation trusts that one-way latency in both directions is equal. If the true latencies are L_out and L_in, the offset error from asymmetry is |L_out − L_in| / 2. The RTD bounds the worst-case asymmetry: at most RTD/2 of offset error.

Practical rule. A source with RTD = 10 ms can deliver offset precision down to ±5 ms (worst case) and typically ±1 ms (stable symmetric path). A source with RTD = 300 ms bounds offset precision at ±150 ms — which is why continental/intercontinental NTP is rarely used as a primary Stratum 2 reference.

2. Acceptable RTD by geographic distance

Source location relative to clientExpected RTDSuitability
Same datacentre / same LAN< 1 msIdeal for internal Stratum 2
Same city / metro1–5 msExcellent
Same region (< 500 km)5–15 msVery good
Same country10–30 msGood
Same continent30–80 msAcceptable for general use
Intercontinental100–250 msFallback only
Satellite / mobile200–800 msLast resort

3. Benchmark methodology

Three complementary techniques, from lightest to most rigorous:

3.1 Single-shot probe

One UDP roundtrip. Fast, but a single sample reflects instantaneous jitter and may mislead.

$ sntp time.rdem-systems.com
+0.000234 +/- 0.001450 ntp.rdem-systems.com 172.104.143.97 s1 no-leap

$ ntpdate -q ntp.rdem-systems.com
server 172.104.143.97, stratum 1, offset +0.000234, delay 0.01821

3.2 Multi-sample averaged probe

10–60 samples over a minute; report mean, median and standard deviation. More reliable.

# Using nping (nmap suite) as a generic NTP probe
$ nping --udp --dest-port 123 --count 30 --delay 1s ntp.rdem-systems.com

# Or the chrony dedicated helper
$ chronyd -Q 'server ntp.rdem-systems.com iburst minpoll 2 maxpoll 2'

3.3 Continuous monitoring (the reference method)

Add the source to your chrony/ntp.conf and observe offset, jitter and RTD over hours. This is the only way to catch rush-hour degradation and weekly patterns.

$ chronyc sourcestats -v

4. Comparison of common EU NTP sources

Typical RTDs measured from Paris (April 2026, wired fibre, 1-minute window averaged). Your mileage will vary with your ISP and time of day.

SourceLocationTypical RTD (Paris)Notes
ntp.rdem-systems.comFrance (AS206014)1–3 msStratum 1 GNSS + PPS, NTS-capable
time.cloudflare.comAnycast (nearest PoP)2–8 msNTS-capable; quality depends on nearest PoP
ntp1.ptb.deBraunschweig, DE10–20 msGerman national metrology institute
nts.netnod.seStockholm, SE25–40 msStratum 1, NTS reference implementation
time.nist.govUSA (anycast)80–150 msAuthoritative US reference, not optimal EU-side
pool.ntp.orgVariable (random)2–80 msVolunteer-based, unpredictable per query

5. Latency vs jitter vs stratum — the tradeoff

When choosing an NTP source, three properties compete:

These rarely align perfectly. A public Stratum 1 on another continent has excellent stratum but poor RTD. A regional Stratum 2 has better RTD but inherits the upstream's accuracy. The conventional wisdom:

  1. Prefer a regional Stratum 2 with low stable RTD over a distant Stratum 1.
  2. Pool 3–5 sources with different upstream topology so the intersection algorithm can discard a false ticker.
  3. For regulated workloads, terminate on an authenticated source (NTS) to guarantee the stratum claim is not spoofed.

6. Browser-based latency measurement (this tester)

The home-page tester reports the network RTD under "Latency" — the HTTPS round-trip to our Stratum 1 GNSS reference. While not as precise as native UDP NTP (HTTPS adds TLS handshake overhead), it gives a useful first-order estimate without installing anything.

Use it as a baseline: if the browser reports 200 ms to our Paris server from a Paris ISP, either your connection is bufferbloated or our server is receiving a transient spike of traffic. Re-test in 1 minute to confirm.

Run the Latency Benchmark →

Beyond latency? Use the right tool: