Das Network Time Protocol (NTP) ist das Standardprotokoll zur Synchronisation von Systemuhren im Internet und in lokalen Netzwerken. Es bringt die Uhren von Servern, Routern und Arbeitsplatzrechnern auf wenige Millisekunden genau in Übereinstimmung mit der koordinierten Weltzeit (UTC).

Wie NTP funktioniert

NTP arbeitet nach dem Client-Server-Prinzip und nutzt UDP auf Port 123. Ein Client fragt bei einem oder mehreren Zeitservern an und berechnet daraus den eigenen Zeitversatz. Da Netzwerkverbindungen unterschiedlich lange brauchen, schätzt NTP die Verzögerung (Delay) und den Offset aus den vier Zeitstempeln der Anfrage-Antwort-Paare. Die Uhr wird dabei nicht sprunghaft gestellt, sondern über kleine Korrekturen nachgeführt.

Die Server sind in einer Hierarchie aus Stratum-Ebenen organisiert: Stratum 0 sind hochpräzise Referenzuhren wie GPS-Empfänger oder Atomuhren, Stratum 1 sind direkt daran angeschlossene Server, Stratum 2 synchronisiert sich von Stratum 1 und so weiter. Ein Client wählt mit dem Marzullo-Algorithmus die konsistenteste Menge aus mehreren Zeitquellen aus und mittelt über die verbliebenen Quellen.

Bekannte Implementierungen

  • ntpd - die klassische Referenzimplementierung des Protokolls.
  • chrony - moderner Nachfolger mit schnellerer Erstsynchronisation, besserer Drift-Kompensation und Unterstützung für Network Time Security (NTS).
  • SNTP - vereinfachte Variante für einfache Geräte ohne vollständige Filteralgorithmen.

Sicherheit

Klassisches NTP kennt nur schwache Authentifizierung und ist anfällig für manipulierte Zeitantworten. Das TLS-basierte Network Time Security (NTS, RFC 8915) schützt die Kommunikation über TLS-Handshake und authentifizierte Verschlüsselung. Genaue Zeit ist auch für Zertifikate, Log-Auswertungen und verteilte Systeme wichtig.

Verwandte Grundlagen: Netzwerkprotokoll, Latenz, Router, Lokales Netz, DNS, TLS 1.3.