Kies die naaste nodusse in die netwerk

Kies die naaste nodusse in die netwerk

Netwerkvertraging het 'n beduidende impak op die werkverrigting van toepassings of dienste wat met die netwerk in wisselwerking is. Hoe laer die latensie, hoe hoër die werkverrigting. Dit geld vir enige netwerkdiens, van 'n gewone webwerf tot 'n databasis of netwerkberging.

'n Goeie voorbeeld is die domeinnaamstelsel (DNS). DNS is van nature 'n verspreide stelsel, met wortelnodusse wat oor die hele planeet versprei is. Om bloot toegang tot enige webwerf te verkry, moet u eers sy IP-adres kry.

Ek sal nie die hele proses beskryf om rekursief deur die "boom" van domeinsones te gaan nie, maar sal myself beperk tot die feit dat ons 'n DNS-oplosser nodig het om 'n domein na 'n IP-adres te omskep wat al hierdie werk sal doen ons.

So, waar kry u die DNS-oplosseradres?

  1. Die ISP verskaf die adres van sy DNS-oplosser.
  2. Vind die adres van 'n publieke oplosser op die internet.
  3. Tel jou eie op of gebruik die een wat in jou huisroeteerder ingebou is.

Enige van hierdie opsies sal jou toelaat om sorgvry op die Wêreldwye Web te surf, maar as jy 'n behoefte het om 'n groot aantal domeine na IP om te skakel, moet jy die keuse van 'n oplosser versigtiger benader.

Soos ek reeds geskryf het, bykomend tot die ISP-resolver, is daar baie openbare adresse, byvoorbeeld, jy kan hierdie lys nagaan. Sommige van hulle kan baie meer verkieslik wees omdat hulle beter netwerkverbinding het as die verstekoplosser.

As die lys klein is, kan jy dit maklik met die hand "ping" en vertragingstye vergelyk, maar as jy selfs die lys hierbo neem, dan word hierdie taak onaangenaam.

Daarom, om hierdie taak makliker te maak, het ek, gevul met bedrieër-sindroom, 'n bewys-van-konsep van my idee op Go genoem. nader kom.

As voorbeeld, ek sal nie die hele lys van resolvers nagaan nie, maar sal myself beperk tot slegs die gewildstes.

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

Op 'n tyd, toe ek 'n resolver vir myself gekies het, het ek myself beperk tot die nagaan van net die hoofadresse (1.1.1.1, 8.8.8.8, 9.9.9.9) - hulle is immers so pragtig, en wat kan jy van verwag lelike rugsteunadresse.

Maar aangesien daar 'n outomatiese manier is om vertragings te vergelyk, waarom nie die lys uitbrei nie ...

Soos die toets gewys het, is die "rugsteun" Cloudflare-adres meer geskik vir my, aangesien dit by spb-ix ingeprop is, wat baie nader aan my is as msk-ix, wat die pragtige 1.1.1.1 daarin ingeprop het.

Die verskil, soos jy kan sien, is betekenisvol, want selfs die vinnigste ligstraal kan nie in minder as 10 ms van St. Petersburg na Moskou bereik nie.

Benewens eenvoudige ping, het PoC ook die geleentheid om vertragings vir ander protokolle, soos http en tcp, te vergelyk, sowel as die tyd vir die omskakeling van domeine na IP deur 'n spesifieke oplosser.

Daar is planne om die aantal nodusse tussen gashere te vergelyk wat traceroute gebruik om dit makliker te maak om gashere te vind wat 'n korter pad na hulle het.

Die kode is kru, dit kort 'n klomp tjeks, maar dit werk redelik goed op skoon data. Ek sal enige terugvoer waardeer, sterre aan github, en as iemand van die idee van die projek hou, welkom om 'n bydraer te word.

Bron: will.com

Voeg 'n opmerking