|
|
| Anwendung | NTP | |||
| Transport | UDP | TCP | ||
| Netzwerk | IP | |||
| Netzzugang | Ethernet | Token Ring |
FDDI | ... |
Das Network Time Protocol (NTP) ist ein Standard zur Synchronisierung von Uhren in Computersystemen über paketbasierte Netzwerke. Obwohl es meistens über UDP abgewickelt wird, kann es durchaus auch über andere Layer-4-Protokolle wie z.B. TCP transportiert werden. Es wurde speziell dazu entwickelt, eine zuverlässige Zeitgabe über Netzwerke mit variabler Latenz (Ping) zu ermöglichen.
NTP benutzt den Marzullo-Algorithmus (erfunden von Keith Marzullo von der Universität San Diego in dessen Dissertation) mit einer UTC-Zeitskala, und unterstützt Schaltsekunden. NTPv4 kann die lokale Zeit eines Systems über das öffentliche Internet mit einer Genauigkeit von 10 Millisekunden halten, in lokalen Netzwerken sind unter idealen Bedingungen sogar Genauigkeiten von 200 Mikrosekunden und besser möglich.
NTP ist eines der ältesten noch immer verwendeten TCP/IP-Protokolle. Es wurde ursprünglich von David Mills von der Universität von Delaware entwickelt, der es auch noch immer betreut. Die gegenwärtige Fassung des Protokolls trägt die Versionsnummer 4.
Der NTP-Daemon ist ein Usermode-Prozess, der auf der Maschine, die ihre Uhr über NTP synchronisiert, ständig im Hintergrund läuft. Der größte Teil des Protokolls ist in diesem User-Prozess implementiert. Um mit NTP die beste Leistung zu erzielen, ist es wichtig, dass der Kernel des Betriebssystems einen Phase-locked Loop implementiert, damit man sich nicht allein auf die Intervention des NTP-Daemons verlassen muss: Alle neueren Versionen des Linux-Kernel haben beispielsweise eine entsprechende Unterstützung.
NTP nutzt ein hierarchisches System verschiedener Strata, wobei Systeme mit dem Stratum 1 direkt mit einer sehr genauen externen Uhr (z.B. eine GPS- oder andere Funkuhr) verbunden sind. Systeme mit dem Stratum 2 beziehen ihre Zeit von einem oder mehreren Systemen mit Stratum 1 usw. (Achtung: Der Begriff Stratum hat hier eine andere Bedeutung als sonst in der Telekommunikationstechnik üblich).
Die 64-bit Zeitstempel von NTP bestehen aus einem Sekunden-Teil von 32 Bit und einem weiteren 32-bit-Teil für Sekundenbruchteile, d.h. NTP hat eine Zeitskala von 232 Sekunden und eine theoretische Auflösung von 2-32 Sekunden. Obwohl diese Skala also alle 232 umspringt, sollten NTP-Implementationen in der Lage sein, die tatsächliche Zeit festzustellen, indem sie eine ungefähre Zeit aus anderen Quellen heranziehen. Da dies nur eine Genauigkeit von ein paar Jahrzehnten erfordert, sollte es im Alltag kein Problem sein.
Die Details zu NTP werden in den RFCs 778, 891, 956, 958, 1305 und 2030 beschrieben.
Siehe auch: