NTP (Network Time Protocol)
Was ist das Network Time Protocol (NTP)?
Das Network Time Protocol (NTP) ist ein Internetprotokoll der Anwendungsschicht zur Zeitsynchronisation über IP-Netze. Es gehört zur TCP/IP-Suite und ist einer ihrer ältesten Bestandteile. Der Begriff NTP bezieht sich sowohl auf das Protokoll selbst als auch auf die Client-Server-Programme, die auf den Computern ausgeführt werden.
David Mills, Professor an der University of Delaware, entwickelte NTP im Jahr 1981. NTP ist auf hohe Fehlertoleranz und Skalierbarkeit ausgelegt und unterstützt die Zeitsynchronisation.
Wie funktioniert NTP?
Ein NTP-Client nimmt per UDP und Port 123 Kontakt zu einem oder mehreren NTP-Servern auf. Für jede Abfrage erhält er eine Antwort. Anhand von vier Zeitstempeln (t1–t4) berechnet er die Round Trip Delay und den Uhren-Offset zum Server. Aus mehreren Messungen wählt und filtert NTP belastbare Proben und regelt die lokale Uhr: Kleine Abweichungen werden allmählich ausgeglichen, größere werden gegebenenfalls zunächst übersprungen. Das Poll-Intervall passt sich dynamisch an (typischerweise 16 s bis 1024 s). Viele Implementierungen beschleunigen die Erstsynchronisierung per iburst (mehrere schnelle Abfragen). Neben dem klassischen Unicast-Modus existieren die Broadcast-/Multicast-Modi sowie der symmetrische Peer-Betrieb.
Warum ist NTP wichtig und wie wird es verwendet?
Ein NTP-Client nimmt per UDP/123 Kontakt zu einem oder mehreren NTP-Servern auf. Für jede Abfrage erhält er eine Antwort. Anhand von vier Zeitstempeln (t1–t4) berechnet er die Round Trip Delay und den Uhren-Offset zum Server. Aus mehreren Messungen wählt und filtert NTP belastbare Proben und regelt die lokale Uhr: Kleine Abweichungen werden allmählich ausgeglichen, größere werden gegebenenfalls zunächst übersprungen. Das Poll-Intervall passt sich dynamisch an (typischerweise 16 s bis 1024 s). Viele Implementierungen beschleunigen die Erstsynchronisierung per iburst (mehrere schnelle Abfragen). Neben dem klassischen Unicast-Modus existieren die Broadcast-/Multicast-Modi sowie der symmetrische Peer-Betrieb.
Warum ist NTP wichtig und wie wird es verwendet?
Die genaue Zeit für alle Geräte in einem Computernetzwerk ist aus vielen Gründen wichtig, denn schon eine Abweichung von Bruchteilen einer Sekunde kann Probleme verursachen.
Einige Beispiele für die Verwendung von NTP sind :
- Authentifizierung und Sicherheit: Kerberos-Tickets, Token-Ablauf, TLS-Zertifikatsgültigkeit.
- Logging und Forensik: Korrekte Zeitstempel-Korrelation über Systeme und Standorte hinweg.
- Verteilte Systeme und Storage: Ordnung von Ereignissen, Replikation, Konfliktauflösung (zum Beispiel NFS, Datenbanken).
- Automatisierung und Orchestrierung: Zeitbasierte Jobs, Timeouts, SLAs.
- Monitoring und APM/Netzwerkmanagement: Latenz-/Jitter-Messung, Alarmierung, Ursachenanalyse.
Was sind NTP-Funktionen?
Weltweit gibt es Tausende von NTP-Servern. Diese haben Zugriff auf hochpräzise Atom- und GPS-Uhren. Für diese Zeitdienste sind spezielle Empfänger erforderlich, die direkt mit den NTP-Servern kommunizieren. Es ist jedoch weder praktikabel noch kosteneffizient, jeden Computer mit einem solchen Empfänger auszustatten. Deshalb werden nur die Computer, die als primäre Zeitserver fungieren, mit den Empfängern ausgestattet. Mit Protokollen wie NTP synchronisieren sie die Uhrzeiten der vernetzten Computer.
NTP verwendet die koordinierte Weltzeit (UTC), um die Uhrzeiten der Computer mit äußerster Präzision zu synchronisieren. NTP bietet eine höhere Genauigkeit in kleineren Netzwerken – bis zu 1 Millisekunde in einem lokalen Netzwerk (LAN) und innerhalb von zehn Millisekunden über das Internet. NTP berücksichtigt jedoch keine Zeitzonen. Stattdessen verlässt es sich auf den Host, um solche Berechnungen durchzuführen.
Was sind Stratum-Stufen?
Als Stratum werden die Abstände zur UTC-Quelle definiert. Zu den verschiedenen Stratum-Stufen gehören:
- Stratum 0: Eine Referenzuhr empfängt die genaue Zeit von einem speziellen Sender oder einem Satellitennavigationssystem. Sie wird als Stratum 0 kategorisiert.
- Stratum 1: Ein Gerät ist direkt mit der Referenzuhr verbunden.
- Stratum 2: Ein Gerät empfängt seine Zeit von einem Stratum-1-Computer.
- Stratum 3: Ein Gerät empfängt seine Zeit von einem Stratum-2-Computer.
Die Stratum-Einstufung setzt sich von dort aus fort. Mit jedem zusätzlichen Grad der Trennung nimmt die Genauigkeit ab.
In Bezug auf die Sicherheit weist NTP bekannte Schwachstellen auf. Das Protokoll kann aus zwei Gründen für Denial-of-Service-Angriffe ausgenutzt werden: Erstens antwortet es auf ein Paket mit einer gefälschten Quell-IP-Adresse und zweitens sendet mindestens einer seiner integrierten Befehle eine lange Antwort auf eine kurze Anfrage.
Welche Vorteile bietet NTPv4?
NTPv4 ist die aktuelle Protokollversion, die im Juni 2010 in RFC 5905 standardisiert wurde. Sie ist abwärtskompatibel zu NTPv3 (RFC 1305). Die Spezifikation beschreibt unter anderem einen modifizierten Header und erweiterte Felder zur IPv6-Fähigkeit sowie ein Verfahren zur dynamischen Server-Erkennung (Multicast/Pool), wodurch sich die Inbetriebnahme vereinfacht.
Gegenüber NTPv3 wurden Auswahl- und Mitigationsalgorithmen sowie Regelalgorithmen konsolidiert. NTPv4 unterstützt IPv4/IPv6 über UDP/123 und die gängigen Betriebsmodi Client/Server, Symmetric, Broadcast und Multicast. Eine Mikrosekunden-Genauigkeit ist kein typischer NTP-Praxiswert. Realistisch sind weniger als eine Millisekunde im LAN (unter guten Bedingungen) und mehrere Millisekunden bis wenige zehn Millisekunden über das Internet. Für den Sub-Mikrosekundenbereich wird üblicherweise PTP/IEEE 1588 eingesetzt.
Wie werden Zeitinformationen abgerufen?
Netzwerkgeräte können Hostserver abfragen oder auf NTP-Broadcasts warten, um Zeitinformationen zu erhalten.
Poll-basierte NTP-Verbindungen
Die am häufigsten verwendeten poll-basierten Betriebsmodi sind der Client-Modus und der symmetrisch aktive Modus. Sie bieten ein hohes Maß an Genauigkeit und Zuverlässigkeit für die Zeitmessung.
Im Client-Modus werden den Netzwerkgeräten Zeitserver zugewiesen, die sie nach der korrekten Zeit abfragen. Anschließend wählen sie einen Host für die Synchronisierung aus, ohne dem Host Zeitinformationen zurückzuliefern. Dieser Ansatz eignet sich am besten für Clients, die nicht als Zeitquelle für andere Clients dienen, beispielsweise Dateiserver und Workstations.
Im symmetrisch aktiven Modus synchronisieren sich gleichrangige Geräte (Peers) gegenseitig: Ein Gerät fragt seinen Peer nach der korrekten Zeit ab und beantwortet auch Abfragen seiner Peers. Dieser Modus ist am effektivsten, wenn mehrere Server über verschiedene Netzwerkpfade miteinander verbunden sind.
Broadcast-basierte NTP-Verbindungen
Broadcast-basierte Verbindungen sind etwas weniger genau und zuverlässig als Poll-basierte Verbindungen. Sie eignen sich jedoch gut für lokale Netzwerke mit begrenzter Bandbreite, Speicher- oder CPU-Ressourcen. Zur Kalibrierung der Wegzeit ist häufig eine initiale Unicast-Abfrage erforderlich.
Im Broadcast-basierten Modus wartet ein Netzwerkgerät auf NTP-Broadcast-(oder Multicast-)Pakete, die von Zeitservern gesendet werden. Die Zeitinformationen fließen dabei nur in eine Richtung.
Was ist das Simple Network Time Protocol (SNTP)?
NTP ist für manche Systeme möglicherweise zu komplex. Für diese steht das Simple Network Time Protocol (SNTP) zur Verfügung, eine vereinfachte Variante von NTP mit reduzierten internen Algorithmen.
SNTP synchronisiert sich mit NTP-Servern. Es wurde für kleinere, weniger leistungsfähige Computer entwickelt und benötigt weniger Speicher- und CPU-Ressourcen als NTP. SNTP ist Teil der Internet-Protokollfamilie, verwendet ebenfalls den UDP-Port 123 und wird für Anwendungen eingesetzt, die keine hochpräzise Zeitsynchronisation benötigen.
Dieser Artikel wurde im Oktober 2025 aktualisiert und erweitert.