21Aug

Hvordan administrerer NTP-servere at forblive så nøjagtige?

click fraud protection

Mange af os har haft lejlighedsvis problemer med vores computere og andre enheder, der bevarer nøjagtige tidsindstillinger, men en hurtig synkronisering med en NTP-server gør det godt igen. Men hvis vores egne enheder taber nøjagtighed, hvordan klarer NTP-servere at forblive så nøjagtige?

Dagens Spørgsmål &Svar session kommer til os høflighed af SuperUser-en underafdeling af Stack Exchange, en community-drevet gruppe af Q & A-websteder.

Foto courtesy of LEOL30( Flickr).

Spørgsmål

SuperUser-læser Frank Thornton vil gerne vide, hvordan NTP-servere kan forblive så nøjagtige:

Jeg har bemærket, at mine servere og andre maskiner altid kører klokkerne, så de skal synkroniseres for at forblive nøjagtige. Hvordan holder NTP-serverens ure fra drift og altid forbliver så nøjagtige?

Hvordan klarer NTP-serverne at forblive så nøjagtige?

Svaret

SuperUser-bidragyder Michael Kjorling har svaret for os:

NTP-servere er afhængige af meget præcise ure til præcis tidshåndtering. En almindelig tidskilde til centrale NTP-servere er atomure eller GPS-modtagere( husk at GPS-satellitter har atomure ombord).Disse ure er defineret som nøjagtige, da de giver en meget præcis tidsreference.

instagram viewer

Der er ikke noget magisk om GPS eller atomur, der får dem til at fortælle dig præcis, hvad tid det er. På grund af hvordan atomur ure fungerer, er de simpelthen meget gode til at have engang blevet fortalt, hvad tiden er, holder nøjagtig tid( siden den anden er defineret i form af atomvirkninger).Faktisk er det værd at bemærke, at GPS-tiden er forskellig fra UTC, som vi er vant til at se. Disse atomure er igen synkroniseret med International Atomic Time eller TAI for ikke blot at fortælle tidens forløb, men også tiden.

Når du har en nøjagtig tid på et system, der er forbundet til et netværk som internettet, handler det om protokolteknik, der gør det muligt at overføre præcise tider mellem værter over et upåliteligt netværk. I denne henseende er en Stratum 2( eller længere fra den faktiske tidskilde) NTP-server, der ikke adskiller sig fra dit skrivebordssynkronisering mod et sæt NTP-servere.

Da du har fået nogle nøjagtige tider( som opnået fra NTP-servere eller andetsteds) og kender hastigheden for fremskridt på dit lokale ur( hvilket er let at bestemme), kan du beregne dit lokale urs drivhastighed i forhold til "troetnøjagtig "tidsangivelse. Når den er låst ind, kan denne værdi derefter bruges til kontinuerligt at justere det lokale ur for at få det til at rapportere værdier meget tæt på den nøjagtige passage af tid, selvom den lokale realtids ur selv er yderst unøjagtig. Så længe dit lokale ur ikke er meget uregelmæssigt , bør dette give mulighed for at holde nøjagtig tid i nogen tid, selvom din upstream-tidskilde bliver utilgængelig af en eller anden grund.

Nogle NTP-klientimplementeringer( sandsynligvis de fleste ntpd-dæmoner eller systemtjenesteimplementeringer) gør dette, og andre( som ntpd's companion ntpdate, der blot sætter uret en gang), gør det ikke. Dette betegnes almindeligvis -driftfil , fordi det vedvarende lagrer et mål for clockdrift, men det er strengt taget ikke nødvendigt at gemme det som en bestemt fil på disken.

I NTP er Stratum 0 pr. Definition en præcis tidskilde. Stratum 1 er et system, der bruger en Stratum 0-tidskilde som sin tidskilde( og er således lidt mindre nøjagtig end Stratum 0-tidskilden).Stratum 2 igen er lidt mindre præcis end Stratum 1, fordi det synkroniserer sin tid mod Stratum 1-kilden og så videre. I praksis er dette tab af nøjagtighed så lille, at det er fuldstændig ubetydeligt i alle tilfælde end det mest ekstreme tilfælde.

Har du noget at tilføje til forklaringen? Lyde af i kommentarerne. Vil du læse flere svar fra andre tech-savvy Stack Exchange brugere? Tjek den fulde diskussionstråd her.