NTP bietet folgende Funktionalität:
Verteilung einer Referenz-Uhrzeit (Universal Time Coordinated, UTC) innerhalb eines Netzwerks
Koordination der Uhren innerhalb beliebig großer Netzwerke
Für die Einspeisung der UTC-Zeit ins Netzwerk sollte der Netzwerk-Rechner, auf dem NTP installiert ist, mit einer funkgesteuerten Hardware-Uhr ausgestattet sein, die ein von einer Atomuhr generiertes Zeitsignal empfängt. Die Physikalisch-Technische Bundesanstalt Braunschweig stellt mit ihrem DCF77-Zeitsignal die für unsere geografischen Verhältnisse maßgebende Zeitquelle zur Verfügung.
Ein entsprechend ausgerüsteter Netzwerk-Rechner synchronisiert seine eigene Systemuhr mit der externen Hardware-Uhr und wird so zum primären Time Server in diesem Netzwerk. Die Genauigkeit eines solchen Time Servers wird von der Auflösung der eigenen Systemuhr bestimmt.
Time Server stehen in hierarchischer Beziehung zueinander. Ein sekundärer Time Server erhält seine Zeit über das Netzwerk von einem primären Time Server. Die Stellung eines Time Servers in dieser Hierarchie wird durch eine Zahl, das sog. Stratum, gekennzeichnet. Ein primärer Time Server hat ein Stratum von 1, ein sekundärer Time Server hat ein Stratum von 2 usw. Je höher das Stratum, desto weiter ist der Time Server von der primären Zeitquelle entfernt und desto höher ist die Wahrscheinlichkeit, dass es sich um einen ungenauen Time Server handelt.
Vereinfacht betrachtet, läuft die Zeitsynchronisation zwischen Client und Server wie folgt ab:
Der Client schickt eine NTP-Message als Datagramm an den Server.
Der Server nimmt das eintreffende Datagramm entgegen und tauscht die IP-Adressen und einige Felder in der Message aus.
Der Server schickt das modifizierte Datagramm wieder zurück an den Client.
Resultat dieses Prozesses sind vier Zeitstempel, aus denen sich die beiden folgenden Größen bestimmen lassen:
Zeitspanne, die die NTP-Message im Netz unterwegs war (Delay)
Zeitspanne, um welche die Uhren der Rechner differieren (Offset)
Beide Größen werden näherungsweise bestimmt. Das Offset resultiert aus einer Mittelung des Delay, d.h. NTP geht davon aus, dass Hin- und Rückweg der NTP-Pakete gleich lang sind. Abweichungen von dieser Annahme gehen als Fehler in die Berechnung des Offsets ein. Bei LANs macht das Round-Trip Delay nur einen Bruchteil des Offsets aus, weshalb sich das Offset bei LANs sehr genau bestimmen lässt. Im WAN-Bereich trifft dies jedoch nicht zu.
Um den verfälschenden Einfluss von Laufzeitschwankungen zu minimieren, werden die ermittelten Offset- und Delay-Werte zusätzlich gefiltert. Aus den letzten acht empfangenen NTP-Messages eines Time Servers bestimmt die Message mit dem geringsten Delay den aktuellen Offset-Wert. Zusätzlich wird aus denselben Messages eine weitere Größe berechnet, die Dispersion. Bei der Dispersion handelt es sich um den gewichteten Mittelwert der Offset-Abweichungen vom aktuellen Offset-Wert bei den letzten acht NTP-Messages. Dabei haben die Offset-Werte mit geringem Delay-Wert ein größeres Gewicht als Offset-Werte mit großem Delay-Wert. Die Dispersion eines Time Servers ist der Maßstab zur Bewertung der Güte dieses Time Servers.
Eine Client-/Server-Konfiguration steht und fällt mit der Verfügbarkeit ihrer Komponenten. Bei NTP werden im Wesentlichen zwei Techniken angewandt, um Störungen zu vermeiden:
Redundanz:
Jeder Time Server bzw. jeder Client sollte mit mindestens drei weiteren Time Servern in Verbindung stehen, die ein höheres oder zumindest gleiches Stratum haben. Fällt für einen Rechner seine aktuelle Synchronisationsquelle aus, so übernimmt diese Rolle automatisch ein anderer Time Server.
Selektion:
Es wird ein Selektionsmechanismus angewendet, der aus der Liste der zur Verfügung stehenden Time Server den besten als aktuelle Synchronisationsquelle auswählt.
Auswahlkriterien sind:
Stratum (je kleiner, desto besser)
Delay (je kleiner, desto besser)
Dispersion (je kleiner, desto besser)
Die Unterscheidung zwischen (Time) Server und Client resultiert aus der Frage, 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 Time Servern gesprochen, die sich mit den fünf verschiedenen Betriebszuständen beschreiben lassen, in denen ein Time Server operiert.
Assoziation | Host1 | Host2 |
Peer to Peer | symmetrisch aktiv | symmetrisch passiv |
Client to Server | Client | Server |
Server | Client | |
Broadcast | Client | Broadcast Server |
Broadcast Server | Client |
Symmetrische Assoziationen (Peer to Peer) zwischen Time Servern nutzen den gesamten Funktionsumfang des NTP-Protokolls. Insbesondere erhält ein Peer-Host Status-Informationen über den Gegenüber-Peer und ist ggf. bereit, ihn als Synchronisationsquelle heranzuziehen. Bei der Client-/Server-Assoziation hingegen 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 Time Servern mit kleinen Stratum-Werten, während Client-/Server-Assoziationen eher zwischen Time Servern mit hohen Stratum-Werten vorkommen. Broadcast-Assoziationen sind in LANs anwendbar, in denen ein Server mehrere Clients mit NTP-Messages im Broadcast-Verfahren bedient.
Nicht jeder Client, der den Time Service benötigt, sollte sich mit dem/den Stratum-1-Server(n) direkt synchronisieren. Der Server wäre bald überlastet und könnte keine exakte Zeit mehr liefern. Sinnvoller ist es, die Zeit über eine Anzahl von ausgewählten Stratum-2-Servern zu verteilen.