Network Time Protocol
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.
Netzwerkprotokolle [{{localurl:Vorlage:{ }|action=edit}} {}] Anwendung HTTP, HTTPS, SMTP, DNS, FTP, MBS/IP, NTP, UUCP, NNTP,
SSH, IRC, SNMP, SIP, RTP, Telnet …Transport TCP, UDP, SSL, SCTP, DCCP … Vermittlung IPv4, IPv6, ICMP, ARP, IGMP … Sicherung Ethernet, Token Ring, HDLC, FDDI, PPP … Übertragung EIA-232, EIA-422, EIA-485 …
| Inhaltsverzeichnis |
|
2 Algorithmus und Genauigkeit 3 SNTP 4 Die NTP Homepage 5 Standards 6 Weblinks |
Grundlagen
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.In einem Betriebssystem ist ein spezieller Prozess, das NTP-Programm (ntpd, NTP-Sync etc.), für die Zeitsynchronisation verantwortlich. Er läuft meist im Hintergrund und synchronisiert die Zeit entweder mit einer vorhandenen Hardware-Funkuhr oder über das Netzwerk durch Austausch von Zeitstempeln über das NTP-Protokoll. Gleichzeitig stellt er seine Zeit über das NTP-Protokoll anderen Rechnern zur Verfügung.
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 umfasst eine Zeitskala von 232 Sekunden (etwa 136 Jahre) und eine theoretische Auflösung von 2-32 Sekunden. Obwohl diese Skala also alle 232 Sekunden 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 dies im Alltag kein Problem sein.
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).
Algorithmus und Genauigkeit
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.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.
SNTP
Das Simple Network Time Protocol (SNTP) ist eine vereinfachte Version des NTP, welches auf dem RFC 2030 basiert.Die NTP Homepage
Neben der Referenz-NTP-Software, die auf der NTP-Homepage für diverse Betriebssysteme erhältlich ist, bieten eine Reihe von Herstellern fertige Standalone-Lösungen an, die als NTP-Zeitquelle in Computernetzwerken jeder Größe Verwendung finden können. Beispiele: Meinberg Funkuhren, FEI-Zyfer und andere.Standards
Die Details zu NTP werden in den RFCs 778, 891, 956, 958, 1305 und 2030 beschrieben.Siehe auch:
- Allan-Varianz
- Synchronisierung
- Liste der TCP/IP-basierten Netzwerkdienste
Weblinks
Generelle NTP-Links:- NTP-Homepage
- Dave Mills' Homepage mit NTP Homepage
- Erklärungen zu NTP
- pool.ntp.org Öffentlicher Pool von NTP Servern
- Windows NTP Port Port der NTP Referenzimplementation von ntp.org, inkl. Installer
- Abouttime NTP-Client für Windows
- Tardis NTP-Client fuer Windows
- Uhrwerk für Windows NTP-Client für Windows
- Chrony ein Unix-Programm (kompatibel zu NTP)
- OpenNTPD eine weitere, freie und sichere Implementation eines NTP-Servers
- Meinberg Funkuhren Hersteller von NTP-Zeitservern namens LANTIME (Siehe auch Übersicht NTP-Zeitserver)
- FEI-Zyfer Hersteller von NTP-Zeitservern vom Typ NTPSync