Einführung in das Network Time Protocol (NTP)
Geschrieben von Richard N Williams on Januar 29th, 2008
Network Time Protocol (NTP) ist eines der ältesten noch heute verwendeten Protokolle des Internets. Es wurde von Dr. David Mills von der University of Delaware entwickelt und seit 1985 ständig aktualisiert und aktualisiert. NTP ist ein Protokoll, das entwickelt wurde, um die Uhren auf Computern und Netzwerken über das Internet oder lokale Netzwerke (LANs) zu synchronisieren.
NTP verwendet einen Algorithmus (Marzullo-Algorithmus), um die Zeit in einem Netzwerk mit Zeitskalen wie UTC (Coordinated Universal Time oder Temps Universel Coordonné) zu synchronisieren und Funktionen wie Schaltsekunden zu unterstützen - zusätzlich zur Kompensation der Verlangsamung der Erdrotation.
NTP (Version 4 ist die neueste) kann Zeit über das öffentliche Internet bis 10 Millisekunden (1 / 100th einer Sekunde) halten und kann sogar besser über LANs mit Genauigkeiten von 200 Mikrosekunden (1 / 5000th einer Sekunde) unter idealen Bedingungen ..
NTP-Zeitserver arbeiten innerhalb der TCP / IP-Suite und sind auf UDP (User Datagram Protocol) angewiesen. Eine weniger komplexe Form von NTP, genannt Simple Network Time Protocol (SNTP), die das Speichern von Informationen über frühere Kommunikationen, die von NTP benötigt werden, nicht erfordert, wird in einigen Geräten und Anwendungen verwendet, in denen ein hochgenaues Timing nicht so wichtig ist. Standard in Windows-Software (obwohl neuere Versionen von Microsoft Windows das vollständige NTP installiert haben und der Quellcode kostenlos und leicht im Internet verfügbar ist).
Die Zeitsynchronisation mit NTP ist relativ einfach, sie synchronisiert die Zeit mit Bezug auf eine zuverlässige Taktquelle. Diese Quelle könnte relativ sein (die interne Uhr eines Computers oder die Zeit auf einer Armbanduhr) oder absolut (eine UTC-Taktquelle, wie eine Atomuhr, die genau ist, wie es menschlich möglich ist).
Atomuhren sind die absolutsten Zeitmessgeräte. Sie arbeiten nach dem Prinzip, dass das Atom, Cäsium-133, eine genaue Anzahl von Zyklen der Strahlung jede Sekunde (9,192,631,770) hat. Dies hat sich als so genau erwiesen, dass das Internationale System der Einheiten (SI) nun das zweite als die Dauer der 9,192,631,770-Zyklen der Strahlung des Cäsium-133-Atoms definiert hat.
Allerdings sind Atomuhren extrem teuer und sind in der Regel nur in großflächigen Physiklaboratorien zu finden. Allerdings kann NTP Netzwerke mit einer Atomuhr synchronisieren, indem entweder das Global Positioning System (GPS) Netzwerk oder die fachspezifische Funkübertragung verwendet wird.
Am weitesten verbreitet ist das GPS-System, das aus einer Anzahl von Satelliten besteht, die eine genaue Positionierung und Standortinformation bereitstellen. Jeder GPS-Satellit kann dies nur durch die Verwendung einer Atomuhr tun, die wiederum als Timing-Referenz verwendet werden kann.
Ein typischer GPS-Empfänger kann Timing-Informationen innerhalb von wenigen Nanosekunden von UTC liefern, solange es eine Antenne mit einem guten Blick auf den Himmel befindet.
Es gibt auch eine Anzahl von nationalen Zeit- und Frequenzfunkübertragungen, die verwendet werden können, um einen NTP-Server zu synchronisieren. In Großbritannien wird das Signal (MSF) vom National Physics Laboratory in Cumbria gesendet, das als nationale Zeitreferenz des Vereinigten Königreichs dient. Ähnliche Systeme gibt es auch in Colorado, USA (WWVB) und in Frankfurt (DCF-77). Diese Signale liefern UTC-Zeit mit einer Genauigkeit von 100 Mikrosekunden, jedoch hat das Funksignal eine begrenzte Reichweite und ist anfällig für Störungen.
Die Entfernung vom Referenztakt ist als die Stratum-Ebene bekannt und sie existieren, um Zyklen im NTP zu verhindern und die Genauigkeit zu bestätigen. Stratum 0 sind Geräte wie Atomuhren, die direkt an einen Computer angeschlossen sind. Stratum 1 sind Computer, die an Stratum 0-Geräte angeschlossen sind (z. B. über einen GPS-Empfänger), während Stratum 2 Computer sind, die NTP-Anforderungen an Stratum 1-Server senden. NTP kann bis zu 256-Schichten unterstützen.
Alle Microsoft Windows-Versionen seit 2000 enthalten den Windows-Zeitdienst (w32time.exe), der die Computeruhr mit einem NTP-Server synchronisieren kann. Es sollte beachtet werden, dass Microsoft empfiehlt, dass externe Zeitreferenzen anstelle von internetbasierten verwendet werden, da diese nicht authentifiziert werden können. Es sind spezialisierte NTP-Server verfügbar, die die Zeit in Netzwerken mithilfe des MSF- (oder gleichwertigen) oder GPS-Signals synchronisieren können.