Technische Details NTP

Aufbau des NTP Datenpakets


Cryptosum LI VN Mode Strat Poll Prec
Root Delay
Root Dispersion
Reference Identifier
Reference Timestamp
Seconds (32),
Fraction (32)
Originate Timestamp
Seconds (32),
Fraction (32)
Receive Timestamp
Seconds (32),
Fraction (32)
Transmit Timestamp
Seconds (32),
Fraction (32)
Ext. Field 1 Key Identifier (optional)
Ext. Field 2 Message Digest (optional)
Authenticator
(Optional)
Key/Algorithm Identifier
Message Hash (64 or 128)
  • LI = 2-bit leap indicator. When set to 11, it warns of an alarm condition (clock unsynchronized), else not processed
  • VN = 3-bit version number, indicating the version of NTP
  • Mode = 3-bit code indicating mode of NTP. Values: 0 – reserved; 1 – symmetric active; 2 – symmetric passive; 3 – client; 4 – server; 5 – broadcast or multicast; 6 – NTP control message; 7 – reserved
  • Strat = Stratum (0-15)
  • Poll = Poll: 8-bit signed integer indicating the poll interval
  • Prec = Precision: an 8-bit signed integer indicating the precision of the local clock

NTPv4 Erweiterungsfelder

Field Length Field Type
Extension Field
(padded to 32-bit boundary)
Last field padded to 64-bit boundary
NTP V3 and V4
NTP V4 only
authentication only

NTP Zeitstempel

Aufbau des NTP Zeitstempels

NTP timestamp format (64 bits) :
Seconds (32) Fraction (32)
Sekunden und Fractions seit dem 01.01.1900


Die Zeitsynchronisation zwischen Client und Server funktioniert wie folgt:
  • Der Client sendet eine NTP Nachricht an den Timeserver, welcher das Paket auswertet, die IP-Adressen und einige Felder austauscht und das Paket dann zurückschickt.

Nun hat man als Ergebnis vier Zeitstempel (timestamps):

Client Connection Server
Zeitstempel 1 Client-Server Zeitstempel 2
Zeitstempel 4 Server-Client Zeitstempel 3

Aus diesen vier Zeitstempeln kann das System zwei Werte berechnen:
  • Den "Delay", die Zeit, die das NTP-Paket im Netzwerk unterwegs war, und
  • den "Offset", die Zeitdifferenz der Rechneruhren.

Die zwei Werte werden nun folgendermassen errechnet:

Offset = (T2 - T1) + (T3 - T4)
-----------------
2
Delay = (T4 – T1) – (T3 - T2)

Hier ist zu erkennen, dass NTP den Delay mittelt, da davon ausgegangen wird, das der Weg des NTP-Pakets in beide Richtungen gleich lang ist d.h. Unterschiede fliessen hier als Fehler in den Offset ein.

Im lokalen Netzwerk ist der Roundtrip-Delay nur ein kleiner Teil des Offsets, d.h. die Offset-Berechnung ist hier schon sehr genau.

Anders ist es in grossen Netzwerken, um die Laufzeitschwankungen zu minimieren, werden die Offset und Delays weiter gefiltert. Aus den letzten acht empfangenen Zeit-Paketen wird aus dem Paket mit dem geringsten Delay der Offset berechnet.

Zusätzlich wird aus denselben Paketen ein weitere Wert bestimmt:
Der "Dispersion Wert", ein gewichteter Durchschnittswert der Offsetabweichungen der 8 letzten Datenpaketen vom aktuellen Offset in dem die Offsets mit geringerem Delay mehr gewichtet werden.

Da die Laufzeiten im Internet häufig schwanken, werden mehrere Konzepte verfolgt um Störungen zwischen Timeserver und Clients zu minimieren.


Meinberg Mail Contact Meinberg Mail Contact Meinberg Mail Contact Meinberg Mail Contact Meinberg Mail Contact Meinberg Mail Contact Meinberg Mail Contact Meinberg Mail Contact Meinberg Mail Contact Meinberg Mail Contact Meinberg Mail Contact Meinberg Mail Contact Meinberg Mail Contact Meinberg Mail Contact Meinberg Mail Contact Meinberg Mail Contact Meinberg Mail Contact Meinberg Mail Contact Meinberg Mail Contact Meinberg Mail Contact Meinberg Mail Contact Meinberg Mail Contact Meinberg Mail Contact Meinberg Mail Contact Meinberg Mail Contact Meinberg Mail Contact