Boj o milisekúndy. Ako si vybrať server s najnižším pingom

Pre mnohé úlohy sú oneskorenia medzi klientom a serverom kritické, napríklad pri online hrách, video/hlasových konferenciách, IP telefónii, VPN atď. Ak je server príliš ďaleko od klienta na úrovni siete IP, oneskorenia (populárne nazývané „ping“, „lag“) budú prekážať pri práci.

Geografická blízkosť servera sa nie vždy rovná blízkosti na úrovni smerovania IP. Napríklad server v inej krajine vám môže byť „bližší“ ako server vo vašom meste. Všetko kvôli zvláštnostiam smerovania a výstavby siete.

Boj o milisekúndy. Ako si vybrať server s najnižším pingom

Ako si vybrať server, ktorý je čo najbližšie všetkým potenciálnym klientom? Čo je sieťové pripojenie IP? Ako nasmerovať klienta na najbližší server? Dozvieme sa v článku.

Meranie oneskorení

Najprv sa naučme merať oneskorenia. Táto úloha nie je taká jednoduchá, ako sa môže zdať, pretože oneskorenia sa môžu líšiť pre rôzne protokoly a veľkosti paketov. Môžete tiež zmeškať krátkodobé udalosti, ako sú poklesy trvajúce niekoľko milisekúnd.

ICMP - pravidelný ping

Použijeme unixovú utilitu ping, ktorá umožňuje manuálne nastaviť intervaly medzi odosielaním paketov, čo verzia ping pre Windows nedokáže. Je to dôležité, pretože ak sú medzi paketmi dlhé prestávky, možno jednoducho nevidíte, čo sa medzi nimi deje.

Veľkosť balíka (možnosť -s) - utilita ping štandardne odosiela pakety s veľkosťou 64 bajtov. Pri takýchto malých paketoch nemusia byť javy vyskytujúce sa pri väčších paketoch badateľné, preto nastavíme veľkosť paketu na 1300 bajtov.

Interval medzi paketmi (možnosť -i) — čas medzi odoslaním údajov. Štandardne sa pakety posielajú raz za sekundu, je to veľmi dlhé, skutočné programy posielajú stovky a tisíce paketov za sekundu, takže interval nastavíme na 0.1 sekundy. Menej si program jednoducho nedovolí.

V dôsledku toho príkaz vyzerá takto:

ping -s 1300 -i 0.1 yandex.ru

Tento dizajn vám umožňuje vidieť realistickejší obraz oneskorení.

Ping cez UDP a TCP

V niektorých prípadoch sa pripojenia TCP spracovávajú inak ako pakety ICMP, a preto sa merania môžu líšiť v závislosti od protokolu. Často sa tiež stáva, že hostiteľ jednoducho nereaguje na ICMP a bežný ping nefunguje. To robí napríklad hostiteľ celý život. microsoft.com.

Užitočnosť nping od vývojárov slávneho skenera nmap dokáže generovať akékoľvek pakety. Môže sa použiť aj na meranie oneskorenia.
Keďže UDP a TCP fungujú na konkrétnych portoch, musíme „pingnúť“ konkrétny port. Skúsme ping na TCP 80, teda port webového servera:

$ sudo nping --tcp -p 80 --delay 0.1 -c 0 microsoft.com

Starting Nping 0.7.80 ( https://nmap.org/nping ) at 2020-04-30 13:07 MSK
SENT (0.0078s) TCP 10.0.0.1:63236 > 13.77.161.179:80 S ttl=64 id=49156 iplen=40  seq=3401731188 win=1480
SENT (0.1099s) TCP 10.0.0.1:63236 > 13.77.161.179:80 S ttl=64 id=49156 iplen=40  seq=3401731188 win=1480
RCVD (0.2068s) TCP 13.77.161.179:80 > 10.0.0.1:63236 SA ttl=43 id=0 iplen=44  seq=1480267007 win=64240 <mss 1440>
SENT (0.2107s) TCP 10.0.0.1:63236 > 13.77.161.179:80 S ttl=64 id=49156 iplen=40  seq=3401731188 win=1480
RCVD (0.3046s) TCP 13.77.161.179:80 > 10.0.0.1:63236 SA ttl=43 id=0 iplen=44  seq=1480267007 win=64240 <mss 1440>
SENT (0.3122s) TCP 10.0.0.1:63236 > 13.77.161.179:80 S ttl=64 id=49156 iplen=40  seq=3401731188 win=1480
RCVD (0.4247s) TCP 13.77.161.179:80 > 10.0.0.1:63236 SA ttl=42 id=0 iplen=44  seq=2876862274 win=64240 <mss 1398>

Max rtt: 112.572ms | Min rtt: 93.866ms | Avg rtt: 101.093ms
Raw packets sent: 4 (160B) | Rcvd: 3 (132B) | Lost: 1 (25.00%)
Nping done: 1 IP address pinged in 0.43 seconds

Štandardne nping odošle 4 pakety a zastaví sa. Možnosť -c 0 umožňuje nekonečné odosielanie paketov, na zastavenie programu je potrebné stlačiť Ctrl+C. Na konci sa zobrazia štatistiky. Vidíme, že priemerná hodnota rtt (obojsmerný čas) je 101 ms.

MTR - traceroute na steroidoch

Program MTR My Traceroute je pokročilý nástroj na sledovanie trás k vzdialenému hostiteľovi. Na rozdiel od bežnej systémovej pomôcky traceroute (v systéme Windows ide o pomôcku tracert) môže každému hostiteľovi v reťazci paketov ukázať oneskorenia. Dokáže tiež sledovať trasy nielen cez ICMP, ale aj cez UDP a TCP.

$ sudo mtr microsoft.com

Boj o milisekúndy. Ako si vybrať server s najnižším pingom
Rozhranie programu MTR (na kliknutie). Sledovanie trasy na microsoft.com sa začalo

MTR okamžite zobrazí ping každému hostiteľovi v reťazci a údaje sa počas behu programu neustále aktualizujú a je možné vidieť krátkodobé zmeny.
Snímka obrazovky ukazuje, že uzol #6 má straty paketov, ale v skutočnosti to nie je úplne pravda, pretože niektoré smerovače môžu jednoducho zahodiť pakety s vypršaným TTL a nevrátiť chybovú odpoveď, takže údaje o strate paketov tu môžu byť ignorované.

WiFi vs kábel

Boj o milisekúndy. Ako si vybrať server s najnižším pingom
Táto téma nie je celkom relevantná k článku, ale podľa mňa je v kontexte meškania veľmi dôležitá. WiFi naozaj milujem, no ak budem mať čo i len najmenšiu možnosť pripojiť sa na internet káblom, využijem ju. Tiež vždy odrádzam ľudí od používania WiFi kamier.
Ak hráte vážne online strieľačky, streamujete video alebo obchodujete na burze: použite internet cez kábel.

Tu je vizuálny test na porovnanie pripojení WiFi a káblov. Ide o ping na WiFi router, teda ešte ani na internet.

Boj o milisekúndy. Ako si vybrať server s najnižším pingom
(Kliknuteľné) Porovnanie pingu s WiFi routerom cez kábel a cez WiFi

Je vidieť, že cez WiFi je oneskorenie o 1 ms dlhšie a niekedy sú pakety s oneskorením desaťkrát dlhšie! A to je len krátky časový úsek. Ten istý smerovač zároveň vytvára stabilné oneskorenia <1 ms.

Vo vyššie uvedenom príklade sa používa WiFi 802.11n na 2.4 GHz, k prístupovému bodu WiFi je pripojený iba notebook a telefón. Ak by bolo na prístupovom bode viac klientov, výsledky by boli oveľa horšie. To je dôvod, prečo som tak proti prepínaniu všetkých kancelárskych počítačov na WiFi, ak je možné ich dosiahnuť pomocou kábla.

IP pripojenie

Takže sme sa naučili merať oneskorenia na serveri, skúsme nájsť najbližší server k nám. Aby sme to dosiahli, môžeme sa pozrieť na to, ako funguje smerovanie nášho poskytovateľa. Na to je vhodné využiť službu bgp.he.net

Boj o milisekúndy. Ako si vybrať server s najnižším pingom

Keď vstúpime na stránku, vidíme, že naša IP adresa patrí do autonómneho systému AS42610.

Pri pohľade na graf konektivity autonómnych systémov vidíme, prostredníctvom ktorých poskytovateľov vyššej úrovne je náš poskytovateľ prepojený so zvyškom sveta. Na každú z bodiek sa dá kliknúť, môžete vojsť a prečítať si, o akého poskytovateľa ide.

Boj o milisekúndy. Ako si vybrať server s najnižším pingom
Graf konektivity autonómnych systémov poskytovateľa

Pomocou tohto nástroja môžete študovať, ako sú štruktúrované kanály akéhokoľvek poskytovateľa vrátane hostingu. Pozrite sa, s ktorými poskytovateľmi je priamo prepojený. Ak to chcete urobiť, musíte zadať IP adresu servera do vyhľadávania bgp.he.net a pozrieť sa na graf jeho autonómneho systému. Môžete tiež pochopiť, ako je jedno dátové centrum alebo poskytovateľ hostingu prepojené s iným.

Väčšina dopravných výmenných bodov poskytuje špeciálny nástroj nazývaný zrkadlo, ktorý vám umožňuje ping a traceroute z konkrétneho smerovača v mieste výmeny.

Tu, napríklad, vyzerajúce sklo od MGTS

Takže pri výbere servera môžeme vopred vidieť, ako bude vyzerať z rôznych bodov výmeny návštevnosti. A ak sa naši potenciálni klienti nachádzajú v určitej geografickej oblasti, vieme nájsť optimálne miesto pre server.

Vyberte najbližší server

Rozhodli sme sa zjednodušiť postup pri hľadaní optimálneho servera pre našich klientov a vytvorili sme stránku s automatickým testovaním miest v okolí: Dátové centrá RUVDS.
Keď navštívite stránku, skript meria oneskorenia z vášho prehliadača na každý server a zobrazuje ich na interaktívnej mape. Po kliknutí na dátové centrum sa zobrazia informácie s výsledkami testov.

Boj o milisekúndy. Ako si vybrať server s najnižším pingom

Boj o milisekúndy. Ako si vybrať server s najnižším pingom

Tlačidlo vás prenesie na stránku testovania latencie pre všetky naše dátové centrá. Ak chcete zobraziť výsledky testu, kliknite na bod dátového centra na mape

Boj o milisekúndy. Ako si vybrať server s najnižším pingom

Zdroj: hab.com

Pridať komentár