NTP - Network Time Protocol

In Netzwerken und in Computern mit zeitkritischen Aufgaben ist eine genaue Zeit unerlässlich. Schon deshalb wurden sehr früh Mechanismen entwickelt, wie vernetzte Computer die Zeit untereinander austauschen können. NTP ist ein hierarchisches Protokoll über das Zeit-Server untereinander eine gemeinsame Zeit ermitteln können. Als Port wird 123 verwendet.
Auf Port 13 kann ein Server mittels "daytime" seine Zeit als ASCII-Klartext zur Verfügung stellen. Eine andere Möglichkeit ist der Port 37 über "time". Dieser liefert die verstrichenen Sekunden seit 1.1.1900 0 Uhr als 32-Bit-Binärwert zurück. Dieser Wert ist allerdings nur sekundengenau.
Diese beiden simplen Verfahren haben jedoch noch einen weiteren großen Nachteil. Sie berücksichtigen nicht die Datenpaketlaufzeit zum Ziel. Bis die Angabe der Zeit beim Empfänger "eintrifft" ist sie veraltet. Ausserhalb von LANs sind diese Verfahren deshalb ungeeignet.
Die Mängel von "time" und "daytime" führten zur Entwicklung von NTP, das Paketlaufzeiten im Netz misst und ausgleicht. Der NTP-Dienst arbeitet parallel zur System-Uhr als eigenständige Uhr.

NTP-Architektur

NTP-Architektur
Die NTP-Server werden in Ebenen eingeteilt. Eine Ebene bezeichnet man als Stratum. Ein Stratum gibt an, wie weit der Server von einer externen Zeitquelle entfernt ist. Als Zeitquelle kann eine Atomuhr, ein DCF77-Empfänger oder ein GPS-Empfänger dienen.
Ein Stratum-1-Server ist direkt mit einer Zeitquelle verbunden und nutzt diese als Referenz für seine Zeit. Ein Stratum-2-Server nutzt einen Stratum-1-Server als Referenz und synchronisiert sich mit anderen Servern auf seiner Ebene, wenn die Verbindung zur höheren Ebene ausfällt.
Das höchste Stratum ist 16 und bedeutet, dass dieser NTP-Server sich noch nicht mit anderen Servern abgeglichen hat. In der Regel kommen nicht mehr als 4 Ebenen vor, da sonst die Zeit zu sehr abweichen würde.