Tím výskumníkov z Google a Stanfordskej univerzity vyvinul nový protokol a algoritmus pre presnú synchronizáciu času počítačov s označením Huygens, ktorý je o viac rádov presnejší ako bežne používaný protokol NTP.
Presný čas a najmä presná synchronizácia času je dôležitá vo viacerých oblastiach priamo v IT systémoch, napríklad distribuovaných databázach, telekomunikačných systémoch a ďalších aplikáciách IT.
Hodiny prítomné v počítačoch vrátane serverov sú ale pomerne nepresné a potrebná je ich častá synchronizácia s presnejšími zdrojmi času. Bežne sa na tento účel používa protokol NTP, ktorý dokáže z presného zdroja času synchronizovať čas na počítači s presnosťou v rádoch milisekúnd.
Tím výskumníkov na konferencii USENIX NSDI, Networked Systems Design and Implementation, tento rok ale predstavil Huygens schopný v dátových centrách synchronizovať čas na len niečo viac ako desať nanosekúnd respektíve pár desiatok nanosekúnd.
Predstavenie Huygens (video: USENIX)
Základný princíp NTP aj Huygens je veľmi podobný a jednoduchý, rozdiel v časoch hodín dvoch počítačov sa zistí poslaním paketu z jedného na druhý a odpovede späť. Z časov odoslania a prijatia paketov na oboch počítačoch v prípade, že tieto časy a doby prepravy paketov nie sú ovplyvnené rozličnými posunmi a chybami a oba pakety boli sieťou prenášané rovnako dlho, jednoducho vypočíta posun časov počítačov.
V realite sú ale tieto merania poznačené rozličnými chybami, s ktorými sa práve Huygens dokáže vysporiadať výrazne lepšie ako NTP. Tím vyvíjal Huygens primárne pre dátové centrá a pri meraniach a implementácii používal serverové sieťové karty s FPGA a časy z vlastných hodín týchto kariet a eliminoval tak nepresnosti vznikajúce pri ceste paketu medzi operačným systémom a kartou. V prípade použitia takýchto časov bude presnejší aj NTP, stále je ale najmä v prípade vyťaženej siete o viacero rádov nepresnejší ako Huygens.
Huygens konkrétne využíva tri zlepšenia. Naraz posiela dvojicu paketov so známym odstupom a pokiaľ nepríde na cieľový server s približne rovnakým odstupom, toto meranie z dôvodu nepresnosti nevyužije.
Množstvo meraní spracuváva štatisticky pomocu metódy Support Vector Machines, po použití ktorej je už presnosť protokolu 100 ns.
Navyše sa ale každý počítač synchronizuje s 10 až 20 inými, pričom následne Huygens už centrálne na jednom počítači ešte koriguje zistené rozdiely v časoch v celej takejto sieti počítačov. Využíva pritom cykly serverov, v ktorých sa každý synchronizuje so susedom. To umožňuje v značnej miere odstrániť napríklad nepresnosti vznikajúce z dôvodu rozdielnej doby poslania paketu medzi dvomi počítačmi v jednom a druhom smere, z rozličných príčin.
Podľa záťaže siete dosiahol Huygens v dátovom centre synchronizáciu časov serverov s priemernou presnosťou 11.3 ns až 16.4 ns. NTP s použitím implementácie v sieťovkách pri nezaťaženej sieti dosiahol síce 207.8 ns, pri 40% zaťažení siete a kvôli tomu väčším chybám sa už jeho presnosť znížila na 93 us a pri 80% na 194 us.
Pri presnosti, akú Huygens dosahuje, prichádza kvôli rozdielnym rýchlostiam hodín v jednotlivých počítačoch k rýchlej desynchronizácii časov. Navyše rozdiely v rýchlosti sa nedajú predpovedať, keďže závisia napríklad na aktuálnych teplotách čipov použitých hodín. Huygens preto synchronizuje čas každé dve sekundy a jeden počítač k tomu potrebuje priemerné sieťové pásmo 5 Mbps.
Tím otestoval Huygens aj pri použití cez verejný Internet, pričom presnosť synchronizácie bola lepšia ako 10 us. Viac informácií je možné nájsť vo vedeckom článku tímu.
Ono je to...
Od: lolopol
|
Pridané:
2.7.2018 11:28
....dobre na vyuzite grantu, takyto project. Realne, synchronizacne riesenia davno funguju a aj presnejsie, s presnostou 1n20>null, takze sa vedci zahrajkali.
Re: Ono je to...
Od: Hroch_asdf
|
Pridané:
2.7.2018 16:20
Posielat syn. cez specialny 2-drot so znamymi vlastnostami a cez paketovu siet su dve uplne odlisne veci. Kedysi synchronne systemy pouzivali prave extra siet len na casovu sychnronizaciu, ale akonahle je k dispozicii paketova resp. ethernetova siet, ktora ma vyznamne kolisanie oneskorenia a aj jednocestne oneskorenie, tak to uz nie je lahke.
Synchronizaciu na urovni niekolko us bez HW zdroja hodin nie je mozne v ramci OS odvadzanim z taktu CPU resp. z nejakeho speci registra dlhodobejsie / vyznamnejsie udrzat. Takze celkovo je tento protokol len na specialne nasadenie.