Odabir najbližih čvorova u mreži

Odabir najbližih čvorova u mreži

Kašnjenje mreže ima značajan utjecaj na performanse aplikacija ili usluga koje komuniciraju s mrežom. Što je manja latencija, to su performanse veće. Ovo vrijedi za bilo koju mrežnu uslugu, od obične web stranice do baze podataka ili mrežnog skladišta.

Dobar primjer je sistem imena domena (DNS). DNS je po prirodi distribuiran sistem, sa korijenskim čvorovima raštrkanim širom planete. Da biste jednostavno pristupili bilo kojoj web stranici, prvo morate dobiti njenu IP adresu.

Neću opisivati ​​cijeli proces rekurzivnog prolaska kroz "stablo" domenskih zona, ali ću se ograničiti na činjenicu da nam je potreban DNS razrješavač koji će obaviti sav ovaj posao za konverziju domene u IP adresu. nas.

Dakle, gdje dobijate adresu DNS rezolvera?

  1. ISP daje adresu svog DNS rezolvera.
  2. Pronađite adresu javnog razrjeđivača na Internetu.
  3. Uzmite svoj ili koristite onaj ugrađen u vaš kućni ruter.

Bilo koja od ovih opcija omogućit će vam da uživate u bezbrižnom surfanju po World Wide Webu, ali ako imate potrebu da konvertujete veliki broj domena u IP, onda biste trebali pažljivije pristupiti izboru rezolvera.

Kao što sam već napisao, pored ISP rezolvera, postoji mnogo javnih adresa, na primjer, možete pogledati ovu listu. Neki od njih mogu biti mnogo poželjniji jer imaju bolju mrežnu povezanost od zadanog rezolvera.

Kada je lista mala, možete je lako "pingovati" ručno i uporediti vremena kašnjenja, ali ako čak i uzmete gore navedenu listu, onda ovaj zadatak postaje neugodan.

Stoga, da bih olakšao ovaj zadatak, ja sam, ispunjen sindromom varalice, skicirao proof-of-concept svoje ideje na Go-u pod nazivom približiti.

Kao primjer, neću provjeravati cijelu listu razrješavača, već ću se ograničiti samo na one najpopularnije.

$ 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]

Svojevremeno, kada sam birao rezover za sebe, ograničio sam se samo na proveru glavnih adresa (1.1.1.1, 8.8.8.8, 9.9.9.9) - uostalom, tako su lepe, a šta očekivati ​​od ružne rezervne adrese.

Ali pošto postoji automatizovan način za poređenje kašnjenja, zašto ne proširiti listu...

Kao što je test pokazao, meni je prikladnija “backup” Cloudflare adresa, jer je priključena na spb-ix, koji mi je mnogo bliži od msk-ix-a u koji je uključena predivna 1.1.1.1

Razlika je, kao što vidite, značajna, jer čak ni najbrži zrak svjetlosti ne može stići od Sankt Peterburga do Moskve za manje od 10 ms.

Pored jednostavnog pinga, PoC takođe ima priliku da uporedi kašnjenja za druge protokole, kao što su http i tcp, kao i vreme za pretvaranje domena u IP putem određenog rezolvera.

Postoje planovi da se uporedi broj čvorova između hostova koristeći traceroute kako bi se olakšalo pronalaženje hostova koji imaju kraći put do njih.

Kod je grub, nedostaje mu gomila provjera, ali radi prilično dobro na čistim podacima. Bio bih zahvalan za svaku povratnu informaciju, zvjezdice github, i ako se nekome svidjela ideja projekta, dobrodošli da postanete suradnik.

izvor: www.habr.com

Dodajte komentar