Che cosa significa NTP?
Significati
Network Time Protocol
Contesto: Network Time Protocol
Il Network Time Protocol, in sigla NTP, è un protocollo per sincronizzare gli orologi dei computer all'interno di una rete a commutazione di pacchetto, quindi con tempi di latenza variabili ed inaffidabili. L'NTP è un protocollo client-server appartenente al livello applicativo ed è in ascolto sulla porta UDP 123.
L'NTP è uno dei più vecchi protocolli tuttora in uso, ed è giunto alla sua quarta versione. Fu sviluppato presso l'Università del Delaware da Dave Mills, che ne ha seguito lo sviluppo fino alla morte. Il funzionamento si basa sul rilevamento dei tempi di latenza nel transito dei pacchetti sulla rete. Utilizza il tempo coordinato universale ed è quindi indipendente dai fusi orari. Attualmente è in grado di sincronizzare gli orologi dei computer su internet entro un margine di 10 millisecondi e con una accuratezza di almeno 200 microsecondi all'interno di una LAN in condizioni ottimali. I diversi server NTP sono organizzati in una struttura gerarchica di "strati", dove lo strato 1 è sincronizzato con una fonte temporale esterna quale un orologio atomico, GPS o un orologio radiocontrollato, lo strato 2 riceve i dati temporali da server di strato 1, e così via. Un server si sincronizza confrontando il suo orologio con quello di diversi altri server di strato superiore o dello stesso strato. Questo permette di aumentare la precisione e di eliminare eventuali server scorretti. Un server NTP è in grado di stimare e compensare gli errori sistematici dell'orologio hardware di sistema, che normalmente è di scarsa qualità. In una macchina che supporti l'NTP, il server è costituito da un processo operante a livello utente, così come da altre funzioni accessorie. Per ottenere le migliori prestazioni è utile che la parte relativa alla sincronizzazione dell'orologio sia implementata nel kernel del sistema operativo, piuttosto che affidata ad un processo utente (tutte le recenti versioni del kernel Linux hanno questa caratteristica). Il dato a 64 bit scambiato dal protocollo è suddiviso in 32 bit che definiscono i secondi e altri 32 bit per la parte decimale, potendo così rappresentare un intervallo di 232 ed una risoluzione temporale teorica di 2−32 secondi. Ogni 232 secondi l'intervallo temporale descritto dal protocollo si ripete, per cui è necessario specificare a quale periodo ci si riferisce. Questo non è un problema poiché 232 secondi corrispondono a circa 136 anni. I dettagli sul funzionamento dell'NTP sono definiti in diverse RFC. L'NTP non deve essere confuso con i protocolli daytime e time. Una versione semplificata di questo protocollo che non richiede la memorizzazione dei dati tra due successive comunicazioni è il Simple Network Time Protocol (SNTP), impiegato in sistemi embedded dove non è richiesta una grande precisione. Inoltre SNTP può essere usato su sistemi che agiscano solo da client NTP o solo da server (apparecchiature dedicate che ricevono l'ora da un orologio esterno e la ridistribuiscono via NTP).