Il Network Time Protocol è un mezzo per sincronizzare con precisione l’ora tra più computer su una rete. La maggior parte degli orologi dei computer perde almeno un secondo intero di tempo ogni giorno, il che non è così importante per l’utente medio. Molti sistemi di sicurezza e di registrazione degli eventi devono tenere traccia dei computer su diverse reti, inclusa Internet. Questi sistemi si basano sulla sincronizzazione dell’orologio dei loro computer collegati con il Network Time Protocol. Questo protocollo aggiorna frequentemente l’ora esatta sui suoi client dai server che mantengono lo standard internazionale dell’ora atomica.
Conosciuto anche con l’acronimo NTP, il Network Time Protocol è stato stabilito come standard alla fine degli anni ‘1980. Negli anni ‘1990 sono state apportate diverse revisioni per migliorare l’autenticazione, gli algoritmi, la precisione e la sincronizzazione esterna. Nel 2010, NTP versione 4 è stata proposta dalla Internet Engineering Task Force (IETF) in Request For Comments (RFC) 5905. La versione 4 include crittografia a chiave pubblica, precisione temporale in nanosecondi e un metodo per localizzare automaticamente un server dell’ora. Include anche algoritmi e precisione migliorati, oltre al supporto per nuovi clock di riferimento hardware e sistemi operativi.
Un utente su una piccola rete locale può essere solo leggermente infastidito quando l’e-mail o i timestamp di modifica dei file sono fuori servizio. Tuttavia, le reti con molti utenti e risorse condivise su Internet ne risentiranno in modo significativo. Per i database delle transazioni finanziarie, le applicazioni di controllo industriale e il software di monitoraggio della rete, il tempo preciso è solitamente fondamentale, non solo sul sistema che registra la transazione, ma su tutti i computer che riportano i dati, 24 ore al giorno. Il Network Time Protocol ei time server internazionali che lo supportano possono soddisfare queste esigenze.
Un amministratore di rete potrebbe aggiornare manualmente l’ora su ciascun client da un server dell’ora. I sistemi possono anche essere configurati per ricaricare l’ora ad ogni riavvio. Tuttavia, lo spostamento del tempo di ora in ora è significativo, a causa di molti fattori, tra cui la temperatura e i problemi del sistema operativo. La soluzione migliore è in genere ripristinare automaticamente ogni orologio con incrementi molto piccoli più volte al giorno con il Network Time Protocol. Utilizzando questo metodo, i sistemi e gli utenti non sono “sorpresi” da balzi relativamente grandi e improvvisi in avanti o indietro nel tempo.
Un client che utilizza il Network Time Protocol può ottenere l’ora esatta da un server basato su Internet o da una sorgente dell’ora esterna cablata. In definitiva, entrambe le fonti ottengono il Coordinated Universal Time (UTC) da un server dell’ora internazionale. Una sorgente cablata può riceverlo direttamente o indirettamente tramite uno speciale segnale radio. Una fonte di rete di solito lo ottiene indirettamente attraverso diversi livelli di server che eseguono software NTP. Sebbene ci siano solo pochi server dell’ora collegati direttamente agli orologi atomici, decine di migliaia di server in tutto il mondo trasmettono l’ora ai sistemi locali.
Il software relativo al tempo di rete in esecuzione su ciascun client NTP mantiene aggiornato l’orologio con estrema precisione e regolarità. Quando un client non è connesso a Internet, gli algoritmi NTP stimano l’ora corrente in base alle prestazioni passate. I sistemi che non necessitano delle funzionalità complete di NTP possono utilizzare una versione ridotta denominata Simple Network Time Protocol (SNTP).