Forstå Computer Timestamps med NTP
Mandag September 8th, 2008Den måde, en computer behandler med tiden, er helt anderledes end menneskers opfattelse. Vi arrangerer tid i sekunder, minutter, timer, dage, uger, måneder og år, mens computere derimod arrangerer tid som et enkelt tal, der repræsenterer de sekunder, der er gået fra et enkelt tidspunkt, kendt som den primære epoke.
De fleste computere bruger NTP (Network Time Protocol) til at håndtere tid og på netværk mange synkroniseres ved hjælp af en dedikeret NTP-tidsserver. NTP kender intet om dage, år eller århundreder, kun sekunder fra prime epoken. Denne primære epoke er indstillet (for de fleste systemer) ved midnat ved århundredeskiftet det tyvende århundrede, som for et menneske ville blive optaget som noget som: 00: 00 - 01,01,1900.
Computere tæller dog tiden som antallet af sekunder forbi dette punkt. Hvis en computer var omkring i 1900, var tidsstempel om midnat januar 1 0, mens i 1972 samme dato var tidsstempelet 2,272,060,800, hvilket repræsenterer antallet af sekunder siden 1900.
Tidsstemplerne genstarter hvert 136-år med den næste omgang i 2036. Dette har forårsaget ubehag blandt nogle, der frygter et scenario med Millennium Bug-typen, selvom de fleste tvivl om sådanne hændelser ville opstå, men når en omløb af tidsstempel sker æra heltal vil blive tilføjet (+ 1), så computere kan håndtere tidsforbrug, der dækker mere end en ombrydning. Hvis computere og NTP skal håndtere tid, der spænder før prime epoken, anvendes et negativt heltal (for året 1500 vil a -3 bruges til at repræsentere tre cykler i 136 år).
Timestamps bruges i næsten enhver transaktion, som moderne computere har til opgave at gøre, såsom at sende e-mails, debugging og programmering. Da tiden er lineær, ved en computer, at hver tidsstempel altid er større end den foregående, og derfor har computere og NTP svært ved at håndtere unøjagtigheder i tide, især når tiden pludselig ser ud til at gå baglæns.
Dette kan ske, hvis computere ikke synkroniseres til samme tid. Hvis en email sendes til en maskine med et langsommere ur, ser det ud til at computeren er blevet modtaget, inden den er sendt. Manglende synkronisering kan alvorlige problemer og kan endda lade et system være sårbart over for ondsindede angreb og endog bedrageri.
På grund af dette synkroniseres de fleste computernetværk til UTC (Koordineret Universal Time). UTC er en global tidsplan og det samme for alle verdensomspændende er det baseret på den tid, som atomklokker fortæller, som er yderst præcise og hverken opnår eller taber et sekund i millioner af år.
De fleste computernetværk bruger en dedikeret NTP tidsserver at modtage en UTC-tid for at synkronisere deres computere også. UTC er tilgængelig fra hele internettet (selvom det ikke er sikret), via GPS-netværket (Global Positioning System), eller ved at modtage nationale tids- og frekvensudsendelser via langbølge.
NTP synkroniserer en computer ved at kontrollere den modtagne UTC-tid og tilføje til eller holde en computers tidsstempel, indtil den passer perfekt til UTC. Ved at bruge en dedikeret NTP-tidsserver, kan UTC opretholdes på et netværk til et par millisekunder af UTC-tid.