NTP (Network Time Protocol)
NTP verwendet die Coordinated Universal Time (UTC), um die Uhren der Computer auf die Millisekunde genau zu synchronisieren, teilweise sogar bis auf den Bruchteil einer Millisekunde.
Die UTC-Zeit wird mit mehreren verschiedenen Methoden ermittelt, unter anderem mit Funk- und Satellitensystemen. Für besonders wichtige Dienste wie zum Beispiel das Global Positioning System (GPS) und die Regierungen einiger Länder stehen spezielle Empfänger zur Verfügung.
Es ist jedoch weder praktikabel noch kosteneffizient, jeden einzelnen Computer mit einem solchen Empfänger auszustatten. Stattdessen werden Computer, die als primäre Zeitserver (Primary Time Servers) bezeichnet werden, mit Empfängern ausgestattet. Sie verwenden dann Protokolle wie das NTP, um die Uhren der mit ihnen im Netzwerk verbundenen Computer zu synchronisieren. Die verschiedenen Grade des Abstands von der UTC-Quelle werden als Strata (zu Deutsch: Schichten) bezeichnet. Eine Funkuhr, die die echte Zeit von einem dedizierten Empfänger oder Satelliten-Navigationssystem empfängt, entspricht Stratum-0; ein Computer, der direkt mit einer Funkuhr verbunden ist, entspricht Stratum-1; ein Computer, der seine Zeit von einem Stratum-1 Computer erhält, entspricht Stratum-2 und so weiter.
Die genaue Uhrzeit innerhalb eines Netzwerks ist aus vielen Gründen wichtig; selbst eine Abweichung in der Größenordnung eines Sekundenbruchteils kann bereits Probleme verursachen. So basieren verteilte Prozesse auf koordinierten Zeiten, um sicherzustellen, dass die korrekte Reihenfolge eingehalten wird. Sicherheitsmechanismen sind von abgestimmten Uhrzeiten innerhalb des Netzwerks abhängig. Updates für die Dateisysteme, die von einer großen Anzahl von Computern ausgeführt werden, setzen ebenfalls synchronisierte Uhrzeiten voraus. Systeme der Flugsicherung, die eine grafische Darstellung bieten, benötigen abgestimmte Zeiten, da die Flugwege ein sehr präzises Timing voraussetzen (stellen Sie sich vor, die Computeruhren der Flugsicherheit wären nicht synchronisiert).
Der Begriff NTP bezeichnet sowohl das Protokoll als auch das Client/Server-Programm, das auf den Computern ausgeführt wird. Die Programme werden vom Benutzer als NTP-Client, NTP-Server oder beides kompiliert. Einfach ausgedrückt initiiert der NTP-Client einen Austausch von Zeitanfragen bei einem NTP-Server. Als Ergebnis dieses Austauschs kann der Client die Verzögerung der Verbindung sowie seinen lokalen Zeitversatz berechnen und basierend darauf seine lokale Uhr mit der Uhr des Servers synchronisieren. In der Regel sind sechs Abstimmungen innerhalb eines Zeitraums von 10 Minuten nötig, um die Uhrzeit erstmalig korrekt einzustellen. Nach dieser ersten Synchronisierung genügt ein Abgleich alle 10 Minuten, bei dem lediglich ein einziger Austausch erforderlich ist. Zusätzlich zur Synchronisierung von Client und Server unterstützt NTP auch die Synchronisierung von Computeruhren per Broadcast. Unglücklicherweise kann NTP auch missbraucht und für DoS-Angriffe (Denial of Service) eingesetzt werden, da es auf Pakete mit einer gefälschten IP-Adresse als Quelle antwortet und weil mindestens einer der integrierten Befehle eine lange Antwort auf eine kurze Anfrage sendet.
NTP, das von David Mills an der University of Delaware entwickelt wurde, ist darauf ausgelegt, hochgradig fehlertolerant und skalierbar zu sein.
Folgen Sie SearchNetworking.de auch auf Twitter, Google+ und Facebook!