Passa al contenuto principale

Appendice A. Formato Dati NTP - Versione 3

Questa appendice descrive il formato del messaggio NTP, che segue le intestazioni IP e UDP. Il formato è identico a quello descritto in RFC-1119 ad eccezione del campo identificatore di riferimento descritto di seguito. Per il beneficio degli implementatori, il formato è mostrato di seguito.

Intestazione del Messaggio NTP

Il messaggio NTP è un datagramma UDP con il seguente formato di intestazione:

 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 (opzionale) (32) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| Message Digest (opzionale) (128) |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Descrizioni dei Campi

Indicatore di Salto (LI): Questo è un codice a due bit che avverte di un imminente secondo intercalare da inserire/eliminare nell'ultimo minuto del giorno corrente, con bit 0 e bit 1, rispettivamente, codificati come segue:

ValoreSignificato
00nessun avviso
01ultimo minuto ha 61 secondi
10ultimo minuto ha 59 secondi
11condizione di allarme (orologio non sincronizzato)

Numero di Versione (VN): Questo è un intero a tre bit che indica il numero di versione NTP. Il numero di versione è 3 per la Versione 3 (solo IPv4) e 4 per la Versione 4 (IPv4, IPv6 e OSI).

Modalità: Questo è un intero a tre bit che indica la modalità, con valori definiti come segue:

ValoreSignificato
0riservato
1simmetrico attivo
2simmetrico passivo
3client
4server
5broadcast
6riservato per messaggio di controllo NTP
7riservato per uso privato

Strato: Questo è un intero senza segno a otto bit che indica il livello di strato dell'orologio locale, con valori definiti come segue:

ValoreSignificato
0non specificato o non disponibile
1riferimento primario (es. orologio radio)
2-15riferimento secondario (via NTP o SNTP)
16-255riservato

Intervallo di Polling: Questo è un intero con segno a otto bit che indica l'intervallo massimo tra messaggi successivi, in secondi alla potenza di due più vicina. I valori che possono attualmente apparire in questo campo vanno da 4 (16 s) a 14 (16384 s); tuttavia, la maggior parte delle applicazioni utilizza solo il sotto-intervallo 6 (64 s) a 10 (1024 s).

Precisione: Questo è un intero con segno a otto bit che indica la precisione dell'orologio locale, in secondi alla potenza di due più vicina. I valori che normalmente appaiono in questo campo vanno da -6 per gli orologi a frequenza di rete a -20 per gli orologi a microsecondi trovati in alcune workstation.

Ritardo Radice: Questo è un numero a virgola fissa con segno a 32 bit che indica il ritardo totale di andata e ritorno alla fonte di riferimento primaria, in secondi con punto di frazione tra i bit 15 e 16. Si noti che questa variabile può assumere valori sia positivi che negativi, a seconda degli offset di tempo e frequenza relativi. I valori che normalmente appaiono in questo campo vanno da valori negativi di pochi millisecondi a valori positivi di diverse centinaia di millisecondi.

Dispersione Radice: Questo è un numero a virgola fissa senza segno a 32 bit che indica l'errore nominale rispetto alla fonte di riferimento primaria, in secondi con punto di frazione tra i bit 15 e 16. I valori che normalmente appaiono in questo campo vanno da 0 a diverse centinaia di millisecondi.

Identificatore di Riferimento: Questa è una stringa di bit a 32 bit che identifica la particolare fonte di riferimento. Nel caso di NTP Versione 3, questa è una stringa ASCII di quattro caratteri, giustificata a sinistra e riempita con zeri a 32 bit. In NTP Versione 3, sono definite le seguenti stringhe ASCII:

StringaFonte
DCNProtocollo di routing DCN
NISTModem pubblico NIST
TSPProtocollo di tempo TSP
DTSServizio di tempo digitale
ATOMOrologio atomico (calibrato)
VLFRadio VLF (OMEGA, ecc.)
GPSRicevitore satellitare GPS
GOESSatellite ambientale GOES UHF
WWVRadio WWV HF
WWVBRadio WWVB LF
WWVHRadio WWVH HF
CHURadio CHU HF
LORCSistema di radionavigazione LORAN-C
OMEGSistema di radionavigazione OMEGA
TDFRadio TDF HF (Francia)

Nei server primari NTP Versione 4, questo è un indirizzo IPv4 a quattro ottetti o i primi quattro ottetti dell'hash MD5 dell'indirizzo IPv6. Nei server secondari NTP Versione 4, questo è l'identificatore di riferimento della sua fonte di sincronizzazione.

Timestamp di Riferimento, Origine, Ricezione e Trasmissione: Questi quattro campi sono nel formato del timestamp NTP, che è un numero a virgola fissa senza segno a 64 bit con la parte intera nei primi 32 bit e la parte frazionaria negli ultimi 32 bit. Questo formato consente un'aritmetica multi-precisione conveniente e la conversione in rappresentazione del Protocollo di Tempo (secondi), ma complica la conversione in rappresentazione del messaggio di timestamp ICMP (millisecondi). La precisione di questa rappresentazione è di circa 200 picosecondi, che dovrebbe essere adeguata anche per i requisiti più esotici.

Autenticatore (opzionale): Quando è implementato lo schema di autenticazione NTP, i campi identificatore chiave e digest del messaggio contengono le informazioni del codice di autenticazione del messaggio (MAC) definite nell'Appendice C.