Mnozí z nás měli občasný problém se zachováním přesného nastavení času u našich počítačů a dalších zařízení, ale rychlá synchronizace se serverem NTP je zase v pořádku. Pokud ale naše vlastní zařízení mohou ztratit přesnost, jak se serverům NTP podaří zůstat tak přesné?
Dnešní relace Otázky a odpovědi k nám přichází s laskavým svolením SuperUser - členění Stack Exchange, komunitního seskupení webů otázek a odpovědí.
Foto s laskavým svolením LEOL30 (Flickr) .
Otázka
Čtenář SuperUser Frank Thornton chce vědět, jak jsou servery NTP schopné zůstat tak přesné:
Všiml jsem si, že na mých serverech a dalších strojích se hodiny vždy driftují, takže se musí synchronizovat, aby zůstaly přesné. Jak se hodiny serveru NTP unášejí a vždy zůstávají tak přesné?
Jak dokážou servery NTP zůstat tak přesné?
Odpověď
Přispěvatel SuperUser Michael Kjorling má pro nás odpověď:
Servery NTP se spoléhají na vysoce přesné hodiny pro přesné měření času. Běžným zdrojem času pro centrální servery NTP jsou atomové hodiny nebo přijímače GPS (nezapomeňte, že satelity GPS mají atomové hodiny na palubě). Tyto hodiny jsou definovány jako přesné, protože poskytují vysoce přesnou časovou referenci.
Na GPS nebo atomových hodinách není nic kouzelného, díky čemuž byste přesně řekli, kolik je hodin. Kvůli tomu, jak fungují atomové hodiny, jsou prostě velmi dobří, protože jim bylo jednou řečeno, kolik je hodin, vedení přesný čas (od druhá je definována z hlediska atomových efektů ). Ve skutečnosti to stojí za zmínku Čas GPS se liší od UTC které jsme více zvyklí vidět. Tyto atomové hodiny jsou zase synchronizovány proti Mezinárodní atomový čas nebo TAI abychom nejen přesně řekli plynutí času, ale také the čas.
Jakmile máte přesný čas v jednom systému připojeném k síti, jako je internet, jde o protokolární inženýrství umožňující přenos přesných časů mezi hostiteli přes nespolehlivou síť. V tomto ohledu se NTP server Stratum 2 (nebo dále od zdroje skutečného času) neliší od synchronizace vašeho stolního systému se sadou NTP serverů.
V době, kdy máte několik přesných časů (jak jsou získány ze serverů NTP nebo jinde) a znáte rychlost vývoje místních hodin (což lze snadno určit), můžete vypočítat rychlost driftu svých místních hodin ve vztahu k „věřil přesný " plynutí času. Jakmile je tato hodnota uzamčena, lze ji použít k nepřetržitému přizpůsobování místních hodin, aby bylo možné hlásit hodnoty velmi blízké přesnému plynutí času, i když samotné místní hodiny reálného času jsou vysoce nepřesné. Pokud vaše místní hodiny nejsou příliš vysoké nevyzpytatelný , to by mělo umožnit udržení přesného času po určitou dobu, i když váš zdrojový čas proti proudu bude z jakéhokoli důvodu nedostupný.
Některé implementace klienta NTP (pravděpodobně většina implementací démona ntpd nebo implementace systémových služeb) to dělají a jiné (jako doprovodný soubor ntpd ntpdate, který jednoduše nastaví hodiny jednou) ne. Toto se běžně označuje jako a driftový soubor protože trvale ukládá míru driftu hodin, ale přísně vzato nemusí být uložena jako konkrétní soubor na disk.
V NTP je Stratum 0 podle definice přesným zdrojem času. Stratum 1 je systém, který jako zdroj času používá zdroj času Stratum 0 (a je tedy o něco méně přesný než zdroj času Stratum 0). Stratum 2 je opět o něco méně přesný než Stratum 1, protože synchronizuje svůj čas se zdrojem Stratum 1 atd. V praxi je tato ztráta přesnosti tak malá, že je zcela zanedbatelná ve všech případech kromě extrémů.
Máte co dodat k vysvětlení? Zvuk v komentářích. Chcete si přečíst více odpovědí od ostatních technicky zdatných uživatelů Stack Exchange? Podívejte se na celé diskusní vlákno zde .