Informazioni sui timestamp del computer con NTP
Pubblicato da Richard Williams N on Settembre 8th, 2008
Il modo in cui un computer si occupa del tempo è completamente diverso dal modo in cui l'uomo lo percepisce. Organizziamo il tempo in secondi, minuti, ore, giorni, settimane, mesi e anni, mentre i computer d'altra parte organizzano il tempo come un numero singolo che rappresenta i secondi che sono passati da un singolo punto nel tempo, noto come l'epoca principale.
La maggior parte dei computer usa NTP (Network Time Protocol) per gestire il tempo e le reti molti sono sincronizzati utilizzando un time server NTP dedicato. NTP non sa nulla di giorni, anni o secoli, solo i secondi dell'epoca principale. Questa prima epoca è ambientata (per la maggior parte dei sistemi) a mezzanotte del volgere del secolo XX che per un essere umano sarebbe registrato come qualcosa del genere: 00: 00 - 01,01,1900.
I computer, tuttavia, contano il tempo come il numero di secondi oltre questo punto. Se un computer era in giro in 1900 il suo timestamp a mezzanotte di gennaio 1 sarebbe 0 mentre in 1972 alla stessa data il timestamp sarebbe 2,272,060,800, che rappresenta il numero di secondi da 1900.
I timestamp ricominciano tutti gli 136 anni con il prossimo wrap around previsto in 2036, questo ha causato disagio tra alcuni che temono uno scenario di tipo Millennium Bug, sebbene la maggior parte dei dubbi si verifichino, tuttavia, quando un wrap-around del timestamp avviene verrà aggiunto un intero di era (+ 1), per consentire ai computer di gestire intervalli di tempo che coprono più di un wrap-around. Se i computer e NTP hanno bisogno di gestire il tempo che si estende prima dell'epica primaria viene utilizzato un numero intero negativo (per l'anno 1500 a -3 verrà utilizzato per rappresentare tre cicli di anni 136).
I timestamp vengono utilizzati praticamente in tutte le transazioni che i computer moderni hanno il compito di eseguire, ad esempio l'invio di e-mail, il debug e la programmazione. Poiché il tempo è lineare, un computer sa che ogni timestamp è sempre maggiore di quello precedente e quindi i computer e l'NTP trovano difficile gestire le inesattezze nel tempo, in particolare quando il tempo sembra all'improvviso tornare indietro.
Questo può accadere se i computer non sono sincronizzati allo stesso tempo. Se un'e-mail viene inviata a una macchina con un orologio più lento, sembra che il computer sia stato ricevuto prima che sia stato inviato. La mancanza di sincronizzazione può causare seri problemi e persino lasciare un sistema vulnerabile agli attacchi dannosi e persino alle frodi.
Per questo motivo, la maggior parte delle reti di computer sono sincronizzate con l'UTC (Coordinated Universal Time). L'UTC è una scala temporale globale e lo stesso per tutti in tutto il mondo si basa sul tempo indicato dagli orologi atomici che sono altamente accurati, né guadagnando né perdendo un secondo in milioni di anni.
La maggior parte delle reti di computer utilizza un dedicato NTP time server per ricevere un orario UTC per sincronizzare anche i loro computer. UTC è disponibile da Internet (anche se non protetto), tramite la rete GPS (Global Positioning System), o ricevendo le trasmissioni nazionali di tempo e frequenza tramite onde lunghe.
NTP sincronizza un computer controllando l'ora UTC ricevuta e aggiungendo o mantenendo il timestamp di un computer fino a quando non corrisponde perfettamente a UTC. Utilizzando un time server NTP dedicato, UTC può essere mantenuto su una rete fino a pochi millisecondi di ora UTC.