Network Time Protocol (NTP)


Il Network Time Protocol (NTP) e' un sistema per la sincronizzazione del tempo di orologio dei calcolatori attraverso la rete Internet, sviluppato principalmente presso l'universita' del Delaware negli Stati Uniti. Ne sono state definite 3 versioni: la 1 nel 1988, la 2 nel 1989 e la 3 nel 1992. la versione corrente e' la versione 3, compatibile con le precedenti. Per facilitare l'uso dell'NTP sui personal computer e' stata definita la versione semplificata Simplified NTP (SNTP 1995). Le principali caratteristiche dell'NTP sono le seguenti.

principio di funzionamento
Un server primario NTP, detto anche di strato 1, e' un calcolatore collegato ad un orologio di alta precisione di riferimento e dotato di un software NTP. Altri calcolatori, detti di strato 2, dotati di un software similare, chiedono la sincronizzazione del proprio tempo di sistema al server primario che risponde con dei messaggi di sincronizzazione, il tutto in modo automatico. I calcolatori di strato 2 possono a loro volta sincronizzare altri calcolatori, detti di strato 3, e cosi' via fino a 16 strati. Man mano che ci si allontana dallo strato 1 la precisione della sincronizzazione diminuisce. In questa struttura, ciascun calcolatore puo' essere contemporaneamente server per le macchine di strato inferiore che si sincronizzano su di esso e client per la macchina di strato superiore a cui esso stesso si sincronizza. Ogni server puo' avere alcune centinaia di client, quindi il numero di macchine sincronizzabili indirettamente da un singolo server primario e' praticamente illimitato. Per rendere il sistema piu' affidabile, un client puo' avere piu' di un server di strato superiore . In questo caso, il software NTP misura continuamente le caratteristiche di stabilita' e precisione dei possibili server, scegliendo di volta in volta come riferimento quello con le migliori caratteristiche.

schemi di sincronizzazione
La figura mostra alcuni casi tipici di schemi di sincronizzazioni con NTP.

Nel caso BX un singolo calcolatore BX e' stato sincronizzato sul server A1 di strato 1.
Nel caso BY per avere una maggiore affidabilita' di sincronizzazione, il calcolatore BY e' stato configurato con due possibili server A1 e A2.
Nel caso LANZ un'organizzazione, dovendo sincronizzare i calcolatori della propria rete locale, ha scelto una soluzione classica: ha definito due calcolatori della propria rete (B1 e B2) come server locali NTP, sincronizzandoli su tre server primari (A1, A2, A3), poi ha sincronizzato il resto dei propri calcolatori (C1, C2, ... Cn) sui server locali (B1, B2). Questa configurazione riduce il traffico di rete verso i server primari e rende la configurazione di tutti i calcolatori della rete locale dipendente solo dai server locali B1 e B2, che possono essere facilmente riconfigurati su altri server esterni in caso di necessita'.

che cosa richiede
Per realizzare un client o un server non primario e' sufficiente installare e configurare un software per NTP. Per realizzare un server primario, oltre al software, occorre un orologio di riferimento esterno: sono possibili diverse scelte a seconda delle possibilita' e delle necessita'.

Software per NTP

Esistono due tipi di software per NTP: completo e semplificato (SNTP). Il tipo completo ha tutte le funzionalita' previste dal protocollo NTP. Il tipo semplificato ha funzionalita' ridotte, infatti puo' funzionare solo come client ed avere definito un solo server alla volta.

Unix
Alcuni sistemi operativi di tipo UNIX includono gia' le funzioni NTP (ad es. Digital Unix (ex OSF/1), Ultrix), anche se spesso si tratta di vecchie versioni di software NTP. Per quelli che non le includono (ad es. AIX 3.2), e' disponibile gratuitamente presso l'universita' del Deleware (US) il software xntp che implementa in modo completo l'NTP.
Frequentemente, vengono rilasciate nuove versioni di questo software che e' ancora in piena evoluzione. Poiche' l'xntp contiene l'algoritmo di crittografia DES (Data Encryption System), la cui esportazione dagli Stati Uniti e' vietata, in modo del tutto saltuario e contestualmente al rilascio di una nuova versione, ne viene rilasciata una di pari livello privata del DES. Attualmente (23/2/96) la versione esportabile e' allineata alla piu' recente disponibile: la
xntp3.5a.
Nel mese di luglio 1995 e' stato completato presso il CSTV lo sviluppo di un nuovo driver per l'xntp che consente la sincronizzazione via modem al segnale di tempo CTD dell'Istituto Elettrotecnico Nazionale "Galileo Ferraris". L'aggiornamento e' stato inviato all'Universita' del Delaware ed e' stato inserito nelle versioni piu' recenti (xntp3.5a).

Il software xntp comprende tra l'altro i seguenti programmi corredati di un'ampia documentazione.

Per realizzare un server primario, l'xntp accetta oltre 20 tipi diversi di orologi esterni di riferimento su cui sincronizzarsi: ricevitori radio GPS, GEOS, OMEGA, CHU, WWV/H/B, servizi via modem ACTS, CTD, orologi atomici.

Windows 95
Si puo' utilizzare il programma gratuito (freeware)
4th Dimension oppure la versione a pagamento (shareware) di NTP semplificato a 32 bit (NTSNTP). E' necessario poi configurare il protocollo TCP/IP nella propria installazione di Windows 95. Per la configurazione vedere: come configurare l'SNTP.

Windows NT
Si possono utilizzare gli stessi programmi per Windows 95.

Windows for Workgroups
Esiste una versione a pagamento (shareware) di
NTP semplificato a 16 bit (WINSNTP), che richiede come prerequisito l'installazione di un TCP/IP Winsocket compatibile (ad es. il TCP/IP32 della Microsoft). Per l'installazione vedere: come configurare l'SNTP.

Altre informazioni

Catalogo del software di sincronizzazione
Elenco molto ampio di tutti i tipi di software per la sincronizzazione della maggior parte di tipi di calcolatori sia con NTP, sia con altri metodi.

Server NTP primari e secondari nel mondo
Elenco di server NTP di tutto il mondo dove sincronizzarsi.

La home page dell'NTP
Un sito www dedicato al Network Time Protocol a cura degli ideatori del protocollo.

News sull'NTP
Lista di discussione Usenet News comp.protocols.time.ntp.

Questi documenti RFC (Request For Comment (le norme di Internet)) contengono le specifiche dettagliate del Network Time Protocol nelle varie versioni.


F. Pollastri - Il tempo di Internet