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
|
|
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 | Zeitstempel 2 | |
Zeitstempel 4 | 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.