Zum Hauptinhalt springen

Anhang A. NTP-Datenformat - Version 3

Dieser Anhang beschreibt das NTP-Nachrichtenformat, das den IP- und UDP-Headern folgt. Das Format ist identisch mit dem in RFC-1119 beschriebenen Format mit Ausnahme des unten beschriebenen Referenzbezeichner-Feldes. Zum Nutzen der Implementierer wird das Format unten gezeigt.

NTP-Nachrichtenheader

Die NTP-Nachricht ist ein UDP-Datagramm mit dem folgenden Header-Format:

 0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|LI | VN |Mode | Stratum | Poll | Precision |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Root Delay |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Root Dispersion |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reference Identifier |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Reference Timestamp (64) +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Originate Timestamp (64) +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Receive Timestamp (64) +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+ Transmit Timestamp (64) +
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Key Identifier (optional) (32) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Message Digest (optional) (128) |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Feldbeschreibungen

Schaltsekundenindikator (LI): Dies ist ein Zwei-Bit-Code, der vor einer bevorstehenden Schaltsekunde warnt, die in der letzten Minute des aktuellen Tages eingefügt/gelöscht werden soll, mit Bit 0 und Bit 1, jeweils wie folgt kodiert:

WertBedeutung
00keine Warnung
01letzte Minute hat 61 Sekunden
10letzte Minute hat 59 Sekunden
11Alarmzustand (Uhr nicht synchronisiert)

Versionsnummer (VN): Dies ist eine drei-Bit-Ganzzahl, die die NTP-Versionsnummer anzeigt. Die Versionsnummer ist 3 für Version 3 (nur IPv4) und 4 für Version 4 (IPv4, IPv6 und OSI).

Modus: Dies ist eine drei-Bit-Ganzzahl, die den Modus anzeigt, mit wie folgt definierten Werten:

WertBedeutung
0reserviert
1symmetrisch aktiv
2symmetrisch passiv
3Client
4Server
5Broadcast
6für NTP-Steuerungsnachricht reserviert
7für private Verwendung reserviert

Schicht: Dies ist eine acht-Bit-vorzeichenlose Ganzzahl, die die Schichtebene der lokalen Uhr anzeigt, mit wie folgt definierten Werten:

WertBedeutung
0nicht spezifiziert oder nicht verfügbar
1primäre Referenz (z.B. Funkuhr)
2-15sekundäre Referenz (über NTP oder SNTP)
16-255reserviert

Abfrageintervall: Dies ist eine acht-Bit-vorzeichenbehaftete Ganzzahl, die das maximale Intervall zwischen aufeinanderfolgenden Nachrichten anzeigt, in Sekunden zur nächsten Potenz von zwei. Die Werte, die derzeit in diesem Feld erscheinen können, reichen von 4 (16 s) bis 14 (16384 s); die meisten Anwendungen verwenden jedoch nur den Teilbereich 6 (64 s) bis 10 (1024 s).

Präzision: Dies ist eine acht-Bit-vorzeichenbehaftete Ganzzahl, die die Präzision der lokalen Uhr anzeigt, in Sekunden zur nächsten Potenz von zwei. Die Werte, die normalerweise in diesem Feld erscheinen, reichen von -6 für Netzfrequenz-Uhren bis -20 für Mikrosekunden-Uhren, die in einigen Workstations zu finden sind.

Wurzelverzögerung: Dies ist eine 32-Bit-vorzeichenbehaftete Festkommazahl, die die gesamte Rundlaufverzögerung zur primären Referenzquelle anzeigt, in Sekunden mit Bruchpunkt zwischen Bit 15 und 16. Beachten Sie, dass diese Variable sowohl positive als auch negative Werte annehmen kann, abhängig von den relativen Zeit- und Frequenzversätzen. Die Werte, die normalerweise in diesem Feld erscheinen, reichen von negativen Werten von einigen Millisekunden bis zu positiven Werten von mehreren hundert Millisekunden.

Wurzeldispersion: Dies ist eine 32-Bit-vorzeichenlose Festkommazahl, die den nominalen Fehler relativ zur primären Referenzquelle anzeigt, in Sekunden mit Bruchpunkt zwischen Bit 15 und 16. Die Werte, die normalerweise in diesem Feld erscheinen, reichen von 0 bis mehreren hundert Millisekunden.

Referenzbezeichner: Dies ist eine 32-Bit-Bitfolge, die die bestimmte Referenzquelle identifiziert. Im Fall von NTP Version 3 ist dies eine vier-Zeichen-ASCII-Zeichenfolge, linksbündig und mit Nullen auf 32 Bit aufgefüllt. In NTP Version 3 sind die folgenden ASCII-Zeichenfolgen definiert:

ZeichenfolgeQuelle
DCNDCN-Routingprotokoll
NISTNIST öffentliches Modem
TSPTSP-Zeitprotokoll
DTSDigitaler Zeitdienst
ATOMAtomuhr (kalibriert)
VLFVLF-Radio (OMEGA usw.)
GPSGPS-Satellitenempfänger
GOESGOES UHF-Umweltsatellit
WWVWWV HF-Radio
WWVBWWVB LF-Radio
WWVHWWVH HF-Radio
CHUCHU HF-Radio
LORCLORAN-C-Funknavigationssystem
OMEGOMEGA-Funknavigationssystem
TDFTDF HF-Radio (Frankreich)

In NTP Version 4 Primärservern ist dies eine vier-Oktett-IPv4-Adresse oder die ersten vier Oktetts des MD5-Hashs der IPv6-Adresse. In NTP Version 4 Sekundärservern ist dies der Referenzbezeichner seiner Synchronisationsquelle.

Referenz-, Ursprungs-, Empfangs- und Übertragungszeitstempel: Diese vier Felder sind im Format des NTP-Zeitstempels, der eine 64-Bit-vorzeichenlose Festkommazahl ist, mit dem ganzzahligen Teil in den ersten 32 Bits und dem Bruchteil in den letzten 32 Bits. Dieses Format ermöglicht eine bequeme Mehrfachpräzisions-Arithmetik und Konvertierung in Zeitprotokoll-Darstellung (Sekunden), kompliziert jedoch die Konvertierung in ICMP-Zeitstempelnachrichten-Darstellung (Millisekunden). Die Präzision dieser Darstellung beträgt etwa 200 Pikosekunden, was selbst für die exotischsten Anforderungen ausreichend sein sollte.

Authentifikator (optional): Wenn das NTP-Authentifizierungsschema implementiert ist, enthalten die Felder Schlüsselbezeichner und Nachrichtendigest die in Anhang C definierten Nachrichtenauthentifizierungscode (MAC) Informationen.