Holde tid med Network Time Protocol
Sendt af Richard N Williams on April 30th, 2012
Når det kommer til netværkssynkronisering, Network Time Protocol (NTP) er langt den mest anvendte softwareprotokol. Uanset om det er at holde et netværk af hundredvis eller tusindvis af maskiner synkroniseret, eller at en enkelt maskine kører sandt, tilbyder NTP løsningen. Uden NTP, og NTP-server, mange af de opgaver, vi udfører på internettet, fra shopping til online banking, ville simpelthen ikke være muligt.
Synkronisering er afgørende for netværk, der opererer via internettet. Uden synkronisering ville der være kaos. Forestil dig at modtage en mail fra en person fem minutter før den blev sendt eller overført penge til en bruger, hvis maskine siger, at pengene er tilbage, før det ankom.
Koordineret Universal Time
For at undgå alle disse problemer er en enkelt universel tidsskala ansat på tværs af internettet, hvilket er det samme, uanset hvilken tidszone en maskine befinder sig i. Koordineret Universal Time (UTC) styres af atomur, så det er yderst præcist og stabilt.
For computernetværk for at modtage UTC bruger de NTP-servere, som modtager tidskilden fra enten GPS-netværket (Globalt positionerings system), radiotransmissioner eller fra internettet selv. Når det først er modtaget, er det op til NTP at tage master-tidskilden og distribuere den omkring et netværk for at sikre synkronitet.
Netværkstidsprotokol forklaret
NTP er en af de ældste protokoller i databehandling. Det går tilbage til, hvornår internettet stadig var i sin barndom, men det er blevet ændret og tilpasset for at sikre, at det stadig er relevant. I det væsentlige er NTP en algoritme designet til at bestemme timingen på individuelle computere og sammenligne dem med UTC-tidskilden. Hvis NTP finder og uoverensstemmelser, justerer det uret på den overtrædende enhed for at sikre, at den matcher. NTP gør dette med sådan nøjagtighed, at et netværk af tusind maskiner kan alle synkroniseres til inden for få millisekunder af hinanden.
NTP vedtager et hierarkisk system. I stedet for at have alle enheder på et netværk kontrolleret med NTP-serveren og dens UTC-tidskilde, tillader protokollen de maskiner, der er tættest på serveren, der kan bruges som referencer til maskiner, der er lavere ned. Dette undgår en tilstrømning af trafik til NTP-serveren og gør det muligt for en enkelt enhed at opretholde synkronisering i et netværk af hundredvis eller endda tusindvis af enheder.
Leap Seconds
En af de største udfordringer, som NTP står over for ved at bruge UTC som en tidskilde, er, at denne universelle tid er lejlighedsvis justeret for at opretholde sin sammenhæng med Jordens rotation. Fordi planeten nogensinde er så lidt langsommere, er atomklokkerne, der styrer UTC, nøjagtige, at selve planeten, så et lejlighedsvis sekund tilføjes en eller to gange om året for at sikre, at der ikke går nogen drift fra dag til nat (selv om en sådan proces ville tage millioner af år).
Disse trinvise ændringer er kendt som Spring sekunder og identificeres i signalerne sendt til de fleste NTP servere. Når NTP opdager et skridt, som andet er tilføjet, justerer det automatisk alle enheder på et netværk ved at gentage et sekund. Manglende justering for disse spring sekunder vil resultere i, at netværket gradvist glider væk fra UTC og bliver ude af synkronisering med resten af internetsamfundet.