Zgjedhja e nyjeve më të afërta në rrjet

Zgjedhja e nyjeve më të afërta në rrjet

Vonesa e rrjetit ka një ndikim të rëndësishëm në performancën e aplikacioneve ose shërbimeve që ndërveprojnë me rrjetin. Sa më i ulët të jetë vonesa, aq më e lartë është performanca. Kjo është e vërtetë për çdo shërbim rrjeti, nga një uebsajt i rregullt në një bazë të dhënash ose ruajtje në rrjet.

Një shembull i mirë është Sistemi i Emrave të Domenit (DNS). DNS është nga natyra një sistem i shpërndarë, me nyje rrënjë të shpërndara në të gjithë planetin. Për të hyrë thjesht në çdo faqe interneti, së pari duhet të merrni adresën e tij IP.

Unë nuk do të përshkruaj të gjithë procesin e kalimit në mënyrë rekursive nëpër "pemën" e zonave të domenit, por do të kufizohem në faktin se për të kthyer një domen në një adresë IP, ne kemi nevojë për një zgjidhës DNS që do të bëjë gjithë këtë punë për ne.

Pra, ku e merrni adresën e zgjidhësit DNS?

  1. ISP ofron adresën e zgjidhësit të tij DNS.
  2. Gjeni adresën e një zgjidhësi publik në internet.
  3. Merrni tuajin ose përdorni atë të integruar në ruterin tuaj të shtëpisë.

Secila prej këtyre opsioneve do t'ju lejojë të shijoni shfletimin e pakujdesshëm në World Wide Web, por nëse keni nevojë të konvertoni një numër të madh domenesh në IP, atëherë duhet t'i qaseni zgjedhjes së një zgjidhësi më me kujdes.

Siç kam shkruar tashmë, përveç zgjidhësit të ISP, ka shumë adresa publike, për shembull, mund të shikoni këtë listë. Disa prej tyre mund të jenë shumë më të preferueshme sepse kanë lidhje më të mirë të rrjetit sesa zgjidhësi i paracaktuar.

Kur lista është e vogël, lehtë mund ta "ping" atë me dorë dhe të krahasoni kohët e vonesës, por nëse merrni edhe listën e përmendur më lart, atëherë kjo detyrë tashmë bëhet e pakëndshme.

Prandaj, për ta bërë këtë detyrë më të lehtë, unë, i mbushur me sindromën mashtruese, skicova një provë të konceptit të idesë sime në Go të quajtur afrohu.

Si shembull, unë nuk do të kontrolloj të gjithë listën e zgjidhësve, por do të kufizohem vetëm në ato më të njohurat.

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

Në një kohë, kur po zgjidhja një zgjidhës për veten time, u limitova vetëm në kontrollimin e adresave kryesore (1.1.1.1, 8.8.8.8, 9.9.9.9) - në fund të fundit, ato janë kaq të bukura, dhe çfarë mund të presësh nga adresa të shëmtuara rezervë.

Por meqenëse ekziston një mënyrë e automatizuar për të krahasuar vonesat, pse të mos zgjeroni listën...

Siç tregoi testi, adresa "rezervë" e Cloudflare është më e përshtatshme për mua, pasi është e lidhur në spb-ix, e cila është shumë më afër meje sesa msk-ix, e cila ka të lidhur 1.1.1.1 të bukur.

Dallimi, siç mund ta shihni, është domethënës, sepse edhe rrezja më e shpejtë e dritës nuk mund të arrijë nga Shën Petersburg në Moskë për më pak se 10 ms.

Përveç ping-ut të thjeshtë, PoC ka gjithashtu mundësinë të krahasojë vonesat për protokollet e tjera, si http dhe tcp, si dhe kohën e konvertimit të domeneve në IP përmes një zgjidhësi specifik.

Ka plane për të krahasuar numrin e nyjeve midis hosteve duke përdorur traceroute për ta bërë më të lehtë gjetjen e hosteve që kanë një rrugë më të shkurtër drejt tyre.

Kodi është i papërpunuar, i mungojnë një sërë kontrollesh, por funksionon mjaft mirë në të dhëna të pastra. Unë do të vlerësoja çdo reagim, yjet në github, dhe nëse dikujt i ka pëlqyer ideja e projektit, atëherë të mirëpritur të bëhet një kontribues.

Burimi: www.habr.com

Shto një koment