NTP Was ist das?

Das Network Time Protocol (NTP) ist ein Standard zur Synchronisierung von Uhren in Computersystemen über paketbasierte Kommunikationsnetze. NTP verwendet das verbindungslose Transportprotokoll UDP. Es wurde speziell entwickelt, um eine zuverlässige Zeitgabe über Netzwerke mit variabler Paketlaufzeit zu ermöglichen. Im allgemeinen Sprachgebrauch bezeichnet NTP sowohl das Protokoll als auch die Software-Referenzimplementierung desselben.
NTP wurde von David Mills an der Universität von Delaware entwickelt und 1985 als RFC 958 veröffentlicht. Der UDP-Port 123 ist für NTP reserviert.
NTP ist in UNIX-artigen Betriebssystemen in Form des Hintergrundprozesses (daemon) ntpd implementiert, der sowohl das lokale System justieren als auch als Server die Zeit für andere Systeme bereitstellen kann. Windows-Systeme können ohne Zusatzsoftware die genaue Zeit mittels NTP aus dem Internet beziehen (s. www.buerk-mobatime.de), jedoch nicht über NTP bereitstellen.
Das NTP-Signal wird von unserem Server, der sein Signal von einem DCF 77 Empfänger erhält, für Sie zur Verfügung gestellt. Das DCF 77 Signal kommt direkt von Mainflingen von einer lokalen Atomuhr.

Die Zeitstempel im NTP sind 64 Bits lang. 32 Bits kodieren die Sekunden seit dem 1. Januar 1900 00:00:00 Uhr, weitere 32 Bits den Sekundenbruchteil. Auf diese Weise lässt sich ein Zeitraum von 232 Sekunden (etwa 136 Jahre) mit einer Auflösung von 2−32 Sekunden (etwa 0,25 Nanosekunden) darstellen. Obwohl diese Skala also alle 232 Sekunden umspringt, sind NTP-Implementierungen in der Lage, 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. Als Stratum 0 bezeichnet man das Zeitnormal, beispielsweise eine Atomuhr oder eine Funkuhr (genauer: Zeitzeichenempfänger) (GNSS, DCF77). Die unmittelbar mit ihm gekoppelten NTP-Server heißen Stratum 1. Jede weitere abhängige Einheit erhält bei der Bezeichnung eine höhere Nummer (Stratum 2, Stratum 3 …). Die NTP Software auf Stratum 1, Stratum 2, Stratum 3 usw. ist zugleich Client des darüber liegenden Stratums als auch Server des darunter liegenden Stratums, sofern eines existiert. Bürk Mobatime liefert Ihnen das NTP als Stratum 1.


Algorithmus und Genauigkeit

NTP benutzt den Marzullo-Algorithmus (erfunden von Keith Marzullo von der Universität San Diego in seiner Dissertation) und auch einen Algorithmus, um Byzantinische Fehler zu behandeln. NTP wird meist mit einer UTC-Zeitskala eingesetzt.
NTP unterstützt Schaltsekunden. Durch die Betrachtung der Schaltsekunden im Protokoll kommt es dazu, dass mit jeder Schaltsekunde (welche jedoch selten vorkommen) eine neue Sekundenskala benutzt wird. Für die Skala der Systemzeit wird jedoch für gewöhnlich die tatsächlich vergangene Zeit seit einem bestimmten Zeitpunkt benutzt und Schaltsekunden kommen erst bei der Darstellung der Zeit ins Spiel.
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. Bei einem hinreichend stabilen lokalen Taktgeber (thermostatgesteuerter Quarzoszillator, Rubidium-Oszillator etc.) lässt sich unter Verwendung der Kernel-PLL (siehe oben) der Phasenfehler zwischen Referenzzeitgeber und lokaler Uhr bis in die Größenordnung weniger Mikrosekunden reduzieren.


SNTP

Das Simple Network Time Protocol (SNTP) ist eine vereinfachte Version des NTP. Es wird im RFC 4330 beschrieben.
Der Aufbau des Protokolls ist mit dem von NTP identisch. Der wesentliche Unterschied liegt in den verwendeten Algorithmen zur Zeitsynchronisation. Während bei NTP die Zeitsynchronisation in der Regel mit mehreren Zeitservern erfolgt, wird bei SNTP nur ein Zeitserver verwendet. SNTP verzichtet auch auf die Beeinflussung von Phase und Frequenz des lokalen Zeitgebers. SNTP kann daher nicht dieselbe Genauigkeit wie NTP liefern. Aufgrund der einfacheren Algorithmen benötigt SNTP weniger Rechenressourcen, die jedoch aufgrund der heute zur Verfügung stehenden Rechenleistung zu vernachlässigen ist.
Ältere Windows-Versionen wie Windows 2000 verwenden SNTP, um die Uhrzeit auf dem lokalen Computer aktuell zu halten. Dies wird durch den Windows-Service W32Time übernommen. In Windows XP und Windows Server 2003 wurde die Dynamic-Link-Library W32Time.dll überarbeitet, so dass nun NTP zur Zeitsynchronisation verwendet wird.
Da Microsoft das Verfahren zur Zeitsynchronisation erst mit Windows 2000 einführte, haben einige Softwarehersteller eigenständige Programme zur Zeitsynchronisation unter Windows entwickelt. Moderne Authentifizierungssysteme (wie Kerberos), die in Windows 2000 und neueren Versionen verwendet werden, benötigen zur Erhöhung der Sicherheit Zeitstempel, daher ergibt sich auch hier ein Anwendungsfall für NTP.

Quellen:

www.wikipedia.de