Kā NTP serveri var palikt tik precīzi?
Daudziem no mums ir bijusi neregulāra problēma ar mūsu datoriem un citām ierīcēm, kas saglabā precīzus laika iestatījumus, bet ātra sinhronizācija ar NTP serveri atkal ir labi. Bet, ja mūsu pašu ierīces var zaudēt precizitāti, kā NTP serveri var palikt tik precīzi?
Šodienas jautājumu un atbilžu sesija mums dod pieklājību no SuperUser-Stack Exchange apakšnodaļas, kas ir kopienas orientēta Q & A tīmekļa vietņu grupa.
Foto pieklājīgi no LEOL30 (Flickr).
Jautājums
SuperUser lasītājs Frank Thornton vēlas uzzināt, kā NTP serveri var palikt tik precīzi:
Esmu ievērojis, ka manos serveros un citās mašīnās pulksteņi vienmēr novirzās tā, lai tie būtu sinhronizēti, lai tie būtu precīzi. Kā NTP servera pulksteņi turpina dreifēt un vienmēr paliek tik precīzi?
Kā NTP serveri var palikt tik precīzi?
Atbilde
SuperUser ieguldītājam Michael Kjorling ir atbilde mums:
NTP serveri paļaujas uz ļoti precīziem pulksteņiem, lai precīzi noteiktu laiku. Parastais laika avots centrālajiem NTP serveriem ir atomu pulksteņi vai GPS uztvērēji (atcerieties, ka GPS satelītiem ir atomu pulksteņi). Šie pulksteņi ir definēti kā precīzi, jo tie nodrošina ļoti precīzu laika atskaiti.
Nav nekas maģisks par GPS vai atomu pulksteņiem, kas padara tos tieši jums zināmu, cik tas ir. Tā kā atomu pulksteņi darbojas, viņi vienkārši ir ļoti labi, kad kādreiz ir tikuši stāstīti, cik tas ir, turēšana precīzs laiks (jo otrais ir definēts ar atomu ietekmi). Faktiski ir vērts atzīmēt, ka GPS laiks atšķiras no UTC, ko esam pieraduši redzēt. Šie atomu pulksteņi savukārt tiek sinhronizēti pret Starptautisko Atomu Laiku vai TAI, lai ne tikai precīzi pateiktu laika gaitu, bet arī the laiks.
Tiklīdz jums ir precīzs laiks vienā sistēmā, kas savienota ar tīklu, piemēram, internetu, ir protokola inženierijas jautājums, kas ļauj precīzi pārraidīt laiku starp saimniekiem neuzticamā tīklā. Šajā sakarā Stratum 2 (vai tālāk no faktiskā laika avota) NTP serveris neatšķiras no darbvirsmas sistēmas sinhronizācijas pret NTP serveru kopu.
Līdz tam laikam, kad jums ir daži precīzi laiki (kas iegūti no NTP serveriem vai citur), un zināt vietējā pulksteņa attīstības ātrumu (ko ir viegli noteikt), jūs varat aprēķināt vietējā pulksteņa nobīdes ātrumu, salīdzinot ar “ticamo precīzu “Laika gaitā. Pēc tam, kad tā ir bloķēta, šo vērtību var izmantot, lai nepārtraukti noregulētu vietējo pulksteni, lai tā ziņotu par vērtībām ļoti tuvu precīzam laika posmam, pat ja vietējais reālā laika pulkstenis pats par sevi ir ļoti neprecīzs. Kamēr jūsu vietējais pulkstenis nav augsts neparasts, tas ļautu kādu laiku paturēt precīzu laiku, pat ja jūsu augšupielādes laika avots jebkāda iemesla dēļ nav pieejams.
Daži NTP klienta implementācijas (iespējams, lielākā daļa ntpd dēmona vai sistēmas pakalpojumu ieviešanas) to dara, un citi (piemēram, ntpd kompanjons ntpdate, kas vienkārši nosaka pulksteni vienu reizi). To parasti dēvē par a drift fails jo tas pastāvīgi saglabā pulksteņa novirzes mērogu, bet stingri ņemot, tas nav jāglabā kā īpašs fails diskā.
NTP, Stratum 0 pēc definīcijas ir precīzs laika avots. Stratum 1 ir sistēma, kas laika avotā izmanto Stratum 0 laika avotu (un tādējādi nedaudz mazāka par Stratum 0 laika avotu). Stratum 2 atkal ir nedaudz mazāk precīza nekā Stratum 1, jo tā sinhronizē laiku pret Stratum 1 avotu un tā tālāk. Praksē šis precizitātes zudums ir tik mazs, ka tas ir pilnīgi nenozīmīgs visos gadījumos, izņemot visizplatītākos gadījumus.
Vai kaut kas jāpievieno paskaidrojumam? Skaņas izslēgšana komentāros. Vai vēlaties lasīt vairāk atbildes no citiem tehnoloģiju gudriem Stack Exchange lietotājiem? Apskatiet pilnu diskusiju pavedienu šeit.