NTP Offset – Verlauf & Jitter

Cloudflare: — | Google: — | Pool/sonstige: —

Quelle: https://micha-it.de/ntp.json
Cloudflare   Google   Pool/sonstige

In diesem Beitrag geht es um die Auswertung von NTP-Messwerten, also den Unterschied zwischen der lokalen Systemzeit und den Referenzzeiten verschiedener Server. Getestet wurden drei Quellen: pool.ntp.org, time.cloudflare.com und time.google.com.

Im ersten Diagramm sieht man den zeitlichen Verlauf des Offsets – also, wie weit die eigene Uhr von der Referenz abweicht. Das zweite Diagramm ist ein Scatter Plot der gleichen Daten. Jeder Punkt steht für eine einzelne Messung. Auch wenn hier kein eigener Jitter-Plot dargestellt wird, lässt sich der Jitter – also die Schwankung der Abweichungen – indirekt ablesen: Je enger die Punkte um die Nulllinie liegen, desto stabiler die Zeitquelle. Cloudflare und Google sind hier deutlich ruhiger als der Pool.

Spannend war die Erkenntnis, dass man den Jitter nicht unbedingt separat berechnen muss. Schon die Streuung im Scatter Plot zeigt, wie zuverlässig die Messungen sind. Außerdem wurde klar, dass nicht alle Server im Pool gleich gut reagieren – die Qualität hängt stark vom jeweiligen Knoten ab.

Für die Analyse wurde die Standardabweichung der Offsets verwendet, da sie eine statistisch robuste Abschätzung des Jitters liefert und dem Prinzip des RMS-Werts mathematisch eng verwandt ist.

Fazit: Cloudflare und Google liefern sehr stabile Ergebnisse und eignen sich bestens für die Systemzeitsynchronisation. Der NTP-Pool bleibt eine gute Ergänzung, aber eher als Fallback-Quelle.

Datenbasis

Die Daten wurden mit einem kleinen Python-Skript gesammelt, das regelmäßig den Offset mehrerer NTP-Server abfragt und die Ergebnisse in eine JSON-Datei schreibt. Jede Messung enthält Zeitstempel, Servername und Abweichung in Millisekunden. So entsteht nach und nach ein kontinuierlicher Datensatz, der sich direkt für die Visualisierung im Browser auswerten lässt.

Begriffserklärungen

Was bedeutet „Offset“?

Der Offset ist die Zeitdifferenz zwischen deiner lokalen Systemuhr und dem NTP-Server. Er kann positiv oder negativ sein (System geht leicht vor oder nach).

Was bedeutet „Jitter“?

Jitter beschreibt die Schwankung (Streuung) des Offsets über mehrere Messungen hinweg:

  • Kleiner Jitter = stabile Zeitquelle
  • Großer Jitter = unruhige oder wechselnde Antwortzeiten

Offset = momentane Abweichung
Jitter = Unruhe dieser Abweichung über die Zeit

Was zeigt der Linien-Plot (oben)?

Der obere Plot zeigt den Verlauf der Offsets im Zeitverlauf – also, wie sich die Abweichung ändert. Mehrere Linien stehen für verschiedene NTP-Quellen (z. B. Google, Cloudflare, Pool).

Warum steigt der Offset linear an und geht nicht wieder runter?

Wenn die lokale Uhr leicht driftet (also konstant etwas vor- oder nachgeht), steigt oder fällt der Offset linear. Das ist normal und zeigt, dass der Rechner nicht korrigiert, sondern nur misst.

Was bedeutet es, wenn der Offset negativ ist?

Dann ist die lokale Zeit etwas langsamer als die Serverzeit (z. B. −2 ms = du hinkst 2 ms hinterher).
Positiv = du gehst vor.

Warum ist der Jitter beim Pool so hoch?

pool.ntp.org besteht aus vielen wechselnden Servern unterschiedlicher Qualität. Dadurch schwanken die Laufzeiten stark – der Jitter ist hoch. Feste Quellen wie Cloudflare oder Google sind deutlich stabiler.

Quelle

RFC 5905 – Network Time Protocol Version 4: Protocol and Algorithms Specification (Juni 2010)