NTP

Einleitung

Für zeitkritische Prozesse ist manuelle Methode der Zeiteinstellung auf Rechnern unzureichend: Nicht nur, dass eine auf diese Weise gepflegte Systemzeit bzgl. der "korrekten" Uhrzeit meist beträchtliche Differenzen im Minutenbereich aufweist, die Systemzeit läuft durch das manuelle Nachstellen auch ungleichmässig, d.h. sie "springt" vor bzw. zurück.

Falsche Systemzeit bzw. Systemzeitdifferenzen innerhalb einer Gruppe von Rechnern bereiten Probleme z.B. bei:


RFC des NTP

Das Network Time Protocol wurde in den RFCs 1119 und 1129 dokumentiert. Seine Grundfunktionen sind Ersteres bewirkt, dass die Uhren im Netzwerk immer bezüglich einer Referenz-Uhrzeit (der "Universal Coordinated Time", UTC) übereinstimmen, letzteres, dass sie mit gleicher Frequenz vorrücken, d.h. im gleichen Rhythmus "ticken".

Das Network Time Protocol ist in vielen Punkten leistungsfähiger als das ältere TIME Protocol (RFC 868) und die "ICMP Timestamp Option". Es erlaubt die Koordination von Uhren innerhalb grosser Netzwerke mit vielen Routern, aber auch in sehr schnellen Netzen (in denen sehr präzise Uhren erforderlich sind).


Wirkungsweise

An irgendeiner Stelle muss die korrekte UTC-Zeit ins Netzwerk "eingespeisst" werden. Hierzu wird ein Netzwerkrechner mit einer speziellen Hardware-Uhr ausgerüstet, die per Funk ein Zeitzeichensignal empfängt, welches meist von einer Atomuhr generiert wird. Für unsere geographischen Verhältnisse ist die Physikalisch-Technische Bundesanstalt Braunschweig mit ihrem DCF77 Zeitsignal die massgebende Zeitquelle.

Ein so ausgerüsteter Rechner synchronisiert seine eigene Systemuhr in Zeit und Frequenz mit der externen Hardware-Uhr und wird so zu einem "primären Timeserver" im Netzwerk. Die Zeitgenauigkeit eines solchen Timeservers wird von der Auflösung der eigenen Systemuhr bestimmt. Eine Genauigkeit von 10 ms ist zwar für die oben aufgeführten Probleme nicht erforderlich, das NTP-Protokoll erfordert jedoch, dass die Uhren von Timeservern eine derartige Präzision aufweisen.


Hierarchie

Timeserver stehen in hierarchischer Beziehung zueinander. Ein sekundärer Timerserver erhält seine Zeit über das Netzwerk von einem primären Timerserver. Andere Timerserver beziehen ihre Zeit wiederum von einem sekundären Timeserver. Die Stellung eines Timeservers in dieser Hierarchie wird mit einer Zahl, dem "Stratum" gekennzeichnet. Ein primärer Timeserver hat ein Stratum von 1, ein sekundärer hat ein Stratum von 2 usw.. Je höher das Stratum, desto "weiter" ist der Timeserver von der primären Zeitquelle entfernt und desto höher ist die Wahrscheinlichkeit, dass wir es mit einem ungenauen Timeserver zu tun haben.


Synchronisation in LAN und WAN

Die Zeitsynchronisation zwischen Client und Server läuft vereinfacht gesehen folgendermassen ab: Der Client schickt eine NTP-Message an den Server. Der Server nimmt das eintreffende Datagramm und tauscht die IP-Adressen und einige Felder in der Message aus und schickt es wieder zurück. Resultat dieses Prozesses sind vier Zeitstempel. Daraus kann ein Rechner zwei Grössen bestimmen: Das "Delay", also die Zeit, die die NTP-Message im Netz unterwegs war, und das "Offset", die Zeitspanne, worin die Uhren der Rechner differieren. Das Offset beinhaltet eine Mittelung des Delay, d.h. NTP geht davon aus, dass Hin- und Rückweg der NTP-Pakete gleich lang sind. Abweichungen davon gehen als Fehler in die Berechnung des Offsets ein. Bei LANs macht das Rount-Trip Delay nur einen Bruchteil des Offsets aus, wodurch letztere Grösse sehr genau bestimmt werden kann.

Anders hingegen sehen die Verhältnisse im WAN-Bereich aus. Um den verfälschenden Einfluss von Laufzeitschwankungen zu minimieren, werden die ermittelten Offset- und Delaywerte einer zusätzlichen Filterprozedur unterworfen:
Aus den letzten acht empfangenen NTP-Messages eines Timeservers bestimmt die Message mit dem geringsten Delay den aktuellen Offset-Wert; zusätzlich wird aus der gleichen Liste eine weitere Grösse berechnet,die "Dispersion": Einen gewichteten Mittelwert der Offset-Abweichungen der letzten acht NTP-Messages vom aktuellen Offset-Wert, wobei die Offset-Werte bei geringem Delay-Wert ein grösseres Gewicht haben als die mit grossen Delay-Werten. Die "Dispersion" eines Timeservers spielt eine Rolle bei der Bewertung der Güte von Timeservern.


Ausfallsicherheit

NTP wurde für den Einsatz im Internet entworfen, und im Internet ist immer mit Störungen zu rechnen. Folglich müssen Vorkehrungen für Störungen bei Zeitzeichen-Empfängern und Timeservern bzw. den Netzverbindungen zwischen Timeservern getroffen werden. Beim NTP werden hierzu im wesentlichen zwei Techniken angewandt:



Update der Time-Informationen

Die Frequenz, mit der zwischen Timeservern Messages ausgetauscht werden, schwankt dynamisch zwischen 64 s (mit aktueller Synchronisationsquelle) und ca. 34 min (mit Backup-Timerservern).

Wenn bis jetzt zwischen (Time-)Server und Client unterschieden wurde, geschah dies im Hinblick darauf, wer von wem die korrekte Zeit bekommt: Der Client fordert vom Server eine NTP-Message mit den schon beschriebenen Zeitstempeln an und synchronisiert danach seine eigene Uhr, falls der Server sich als der "beste" verfügbare erweist. Im NTP-Protokoll wird von "Assoziationen" zwischen Timeservern gesprochen, die sich mit den fünf verschiedenen Betriebszuständen beschreiben lassen, in denen ein Timeserver operiert.

Assoziation Host 1 Host 2
Client <--> Server Client Server
Broadcast Client Broadcast Server


Die symmetrischen Assoziationen zwischen Timeservern machen von dem ganzen Funktionsumfang des NTP-Protokolls Gebrauch. Insbesondere behält ein Peer Status-Informationen über den Gegenüber-Peer und ist ggf. bereit, ihn als Synchronisationsquelle heranzuziehen. Anders die Client/Server-Assoziation: hier sind die Rollen fest verteilt, der Server liefert dem Client zwar die genaue Zeit, ist aber in keinem Fall bereit, sich mit ihm zu synchronisieren. Symmetrische Assoziationen sind üblich zwischen Timerservern mit kleinen Stratum-Werten, Client/Server-Assoziationen eher zwischen Timeservern mit hohen Stratum-Werten.

Broadcast-Assoziationen sind in LANs anwendbar, in denen ein Server mehrere Clients mit NTP-Messages im Broadcast-Verfahren bedient.


NTP-Server im Internet



© kahlhans.de
Stand September 2002