Elektante la plej proksimajn nodojn en la reto

Elektante la plej proksimajn nodojn en la reto

Reta latenteco havas signifan efikon al la agado de aplikoj aŭ servoj, kiuj interagas kun la reto. Ju pli malalta la latenco, des pli alta la rendimento. Ĉi tio validas por iu ajn retservo, de regula retejo ĝis datumbazo aŭ retstokado.

Bona ekzemplo estas la Domajna Nomsistemo (DNS). DNS estas nature distribuita sistemo, kun radikaj nodoj disigitaj tra la planedo. Por simple aliri ajnan retejon, vi unue devas akiri ĝian IP-adreson.

Mi ne priskribos la tutan procezon de rekursie trapasi la "arbon" de domajnaj zonoj, sed limigos min al tio, ke por konverti domajnon en IP-adreson, ni bezonas DNS-solvilon, kiu faros ĉi tiun tutan laboron. ni.

Do, kie vi ricevas la adreson de DNS-solvilo?

  1. La ISP disponigas la adreson de sia DNS-solvilo.
  2. Trovu la adreson de publika solvanto en la Interreto.
  3. Prenu vian propran aŭ uzu tiun enkonstruitan en via hejma enkursigilo.

Iu ajn el ĉi tiuj opcioj permesos al vi ĝui senzorgan navigadon en la Tutmonda Reto, sed se vi bezonas konverti grandan nombron da domajnoj al IP, tiam vi devus aliri la elekton de solvanto pli zorge.

Kiel mi jam skribis, krom la ISP-solvilo, ekzistas multaj publikaj adresoj, ekzemple, vi povas kontroli ĉi tiun liston. Kelkaj el ili povas esti multe pli preferindaj ĉar ili havas pli bonan retan konekteblecon ol la defaŭlta solvilo.

Kiam la listo estas malgranda, vi povas facile "pingi" ĝin permane kaj kompari malfrutempojn, sed se vi eĉ prenas la supre menciitan liston, tiam ĉi tiu tasko jam fariĝas malagrabla.

Tial, por faciligi ĉi tiun taskon, mi, plenigita de trompanta sindromo, skizis pruvkoncepton de mia ideo ĉe Go nomatan alproksimiĝu.

Ekzemple, mi ne kontrolos la tutan liston de solviloj, sed limigos min nur al la plej popularaj.

$ get-closer ping -f dnsresolver.txt -b=0 --count=10
Closest hosts:
	1.0.0.1 [3.4582ms]
	8.8.8.8 [6.7545ms]
	1.1.1.1 [12.6773ms]
	8.8.4.4 [16.6361ms]
	9.9.9.9 [40.0525ms]

Siatempe, kiam mi elektis por mi solvilon, mi limigis min nur kontroli la ĉefajn adresojn (1.1.1.1, 8.8.8.8, 9.9.9.9) - ja ili estas tiel belaj, kaj kion vi povas atendi de malbelaj rezervaj adresoj.

Sed ĉar ekzistas aŭtomata maniero kompari prokrastojn, kial ne pligrandigi la liston...

Kiel la testo montris, la "rezerva" Cloudflare-adreso pli taŭgas por mi, ĉar ĝi estas ŝtopita en spb-ix, kiu estas multe pli proksima al mi ol msk-ix, kiu havas la belan 1.1.1.1 ŝtopita en ĝi.

La diferenco, kiel vi povas vidi, estas grava, ĉar eĉ la plej rapida lumradio ne povas atingi de Sankt-Peterburgo ĝis Moskvo en malpli ol 10 ms.

Krom simpla ping, PoC ankaŭ havas la ŝancon kompari prokrastojn por aliaj protokoloj, kiel http kaj tcp, kaj ankaŭ la tempon por konverti domajnojn al IP per specifa solvilo.

Estas planoj kompari la nombron da nodoj inter gastigantoj uzante traceroute por faciligi trovi gastigantojn, kiuj havas pli mallongan vojon al ili.

La kodo estas kruda, al ĝi mankas amaso da kontroloj, sed ĝi funkcias sufiĉe bone pri puraj datumoj. Mi dankus ajnan komenton, steloj github, kaj se iu ŝatis la ideon de la projekto, tiam bonvenon fariĝi kontribuanto.

fonto: www.habr.com

Aldoni komenton