Network Time Protocol (NTP), Capire la sincronizzazione.
Pubblicato da Richard Williams N on Ottobre 7th, 2008
Network Time Protocol sembra essere stato intorno per sempre. In effetti è uno dei protocolli più antichi di Internet sviluppato negli 1980 dal professor David Mills e dal suo team della Delaware University.
In un mondo rilassato forse non importa se le reti di computer non sono sincronizzate. Le uniche conseguenze degli errori di temporizzazione potrebbero essere che un'e-mail arriva prima che fosse inviata, ma in settori come la prenotazione dei posti aerei, la borsa o le comunicazioni via satellite, frazioni di secondo possono causare errori gravi come la vendita di posti più di una volta, la perdita di milioni di dollari o persino di frodi.
I computer sono macchine logiche e poiché il tempo è lineare rispetto a un computer, qualsiasi evento che si verifica su una macchina deve avvenire prima che le notizie di quell'evento raggiungano un'altra. Quando le reti non sono sincronizzate i computer lottano per gestire eventi che sono ovviamente accaduti (come l'invio di un messaggio di posta elettronica) ma secondo il loro orologio e timestamp non lo sono ancora, basta pensare al bug del millennio in cui si temeva che gli orologi avrebbero torna a 1900!
Proprio per questo motivo è stata sviluppata NTP. NTP utilizza un algoritmo (l'algoritmo di Marzullo) per sincronizzare il tempo con la versione corrente di NTP in grado di mantenere il tempo su Internet pubblico entro millisecondi 10 e può funzionare anche meglio su LAN. I time server NTP funzionano all'interno della suite TCP / IP e si basano su UDP (User Datagram Protocol).
NTP server sono normalmente dispositivi NTP dedicati che utilizzano un riferimento unico per sincronizzare una rete con. Questo riferimento temporale è più spesso una fonte UTC (Coordinated Universal Time). UTC è una scala temporale globale distribuita da orologi atomici via Internet, trasmissioni radio specialistiche a onde lunghe o tramite la rete GPS (Global Positioning System).
L'algoritmo NTP utilizza questo riferimento temporale per determinare la quantità di anticipo o ritiro del sistema o dell'orologio di rete. NTP analizza i valori del timestamp includendo la frequenza degli errori e la sua stabilità. Un server NTP manterrà una stima della qualità sia degli orologi di riferimento che di se stesso.
NTP è gerarchico. La distanza dal riferimento temporale è divisa in strati. Stratum 0 è il riferimento di clock atomico; Stratum 1 è il server NTP, mentre Stratum 2 è un server che riceve le informazioni di temporizzazione dal server NTP. NTP può supportare strati quasi illimitati, anche se il più lontano dal riferimento temporale va meno preciso sarà.
Poiché ogni livello di strato può ricevere e inviare segnali di temporizzazione, il vantaggio di questo sistema gerarchico è che migliaia di macchine possono essere sincronizzate con la sola necessità di un server NTP.
NTP contiene una misura di sicurezza chiamata autenticazione. L'autenticazione verifica che ciascun timestamp provenga dal riferimento temporale previsto analizzando un set di chiavi di crittografia inviate con il riferimento temporale. NTP lo analizza e conferma se proviene dall'origine del tempo verificandolo con un insieme di chiavi affidabili nei suoi file di configurazione.
Tuttavia, l'autenticazione non è disponibile da fonti di temporizzazione provenienti da Internet, motivo per cui Microsoft e Novell raccomandano vivamente solo riferimenti temporali esterni come ad esempio GPS server NTP o uno che riceve l'ora nazionale e la trasmissione a onde lunghe di frequenza.