Live interoperability results¶
The Live interop workflow runs every Monday (and on demand)
on GitHub-hosted runners and queries public servers with every ntpstats client. The latest
results are in the workflow's job summary, and the first run of each month is recorded in the open dataset in
data/interop/ (JSON lines, schema in its README).
The dataset ships with every release and is therefore archived on Zenodo with it:
ntpstats dataset data/interop # availability, offsets, protocol support per server
ntpstats info data/interop --all-peers # one series per test and server
Below is the first run, kept as a reference.
2026-09-29 11:26 UTC (ntpstats 2.2.0, GitHub Actions ubuntu-latest, IPv4)¶
NTPv4 (SNTP, random transmit timestamp)¶
| server | address | stratum | refid | offset | delay | root dist. |
|---|---|---|---|---|---|---|
| time.cloudflare.com | 162.159.200.123 | 3 | 10.157.8.4 | -65.6 µs | 5.15 ms | 6.1 ms |
| time.google.com | 216.239.35.0 | 1 | GOOG | -30.5 µs | 6.08 ms | 91.6 µs |
| ptbtime1.ptb.de | 192.53.103.108 | 1 | PTB | -121 µs | 93.7 ms | 68.7 µs |
| time.nist.gov | 132.163.97.4 | 1 | NIST | -1.85 ms | 47.1 ms | 610 µs |
| pool.ntp.org | 23.172.120.58 | 2 | 54.219.187.236 | -700 µs | 108 ms | 526 µs |
| ntp.ubuntu.com | 185.125.190.58 | 2 | 29.88.99.4 | -695 µs | 79 ms | 3.51 ms |
NTS (RFC 8915): two authenticated exchanges per server¶
| server | NTP host:port | stratum | offset | delay | cookies left |
|---|---|---|---|---|---|
| time.cloudflare.com | time.cloudflare.com:123 | 3 | -71.2 µs | 5.2 ms | 8 |
| nts.netnod.se | 194.58.205.197:4123 | 1 | -1.69 ms | 108 ms | 8 |
| ptbtime1.ptb.de | ptbtime1.ptb.de:123 | 1 | 474 µs | 95.9 ms | 8 |
| ntppool1.time.nl | ntppool1.time.nl:123 | 1 | 44 µs | 91.8 ms | 8 |
| ntp.3eck.net | ntp.3eck.net:123 | 2 | -525 µs | 95.6 ms | 8 |
Notes: - Netnod hands out a different NTP server and port (4123) through the NTS-KE server and port negotiation records, which the client follows. - "cookies left = 8" after two queries shows that cookie renewal works: each authenticated response returned a fresh cookie encrypted with the S2C key. - The large offsets and delays of distant servers (PTB, Netnod and NIST seen from a US data centre) come from path asymmetry, not clock error. This is exactly what the offset/delay wedge and the delay-weighted estimators in ntpstats are for.
NTPv5 (draft-ietf-ntp-ntpv5-09 upgrade probe)¶
None of the probed public servers (Cloudflare, PTB, time.nl) offered NTPv5 at the time of the
run. The v5 client is verified against a local draft-09 test server (see tests/test_sntp.py)
whose wire format was cross-checked with ntpd-rs.