Bojujte o milisekundy. Jak vybrat server s nejnižším pingem

Pro mnoho úkolů jsou zpoždění mezi klientem a serverem kritická, například v online hrách, video/hlasových konferencích, IP telefonii, VPN atd. Pokud je server příliš daleko od klienta na úrovni sítě IP, pak zpoždění (populárně nazývané „ping“, „lag“) naruší práci.

Geografická blízkost serveru se vždy nerovná blízkosti na úrovni směrování IP. Například server v jiné zemi vám může být „blíže“ než server ve vašem městě. To vše kvůli zvláštnostem trasování a výstavby sítě.

Bojujte o milisekundy. Jak vybrat server s nejnižším pingem

Jak vybrat server, který je co nejblíže všem potenciálním klientům? Co je připojení k síti IP? Jak nasměrovat klienta na nejbližší server? To se dozvíme v článku.

Měření zpoždění

Nejprve se naučíme, jak měřit zpoždění. Tento úkol není tak jednoduchý, jak se může zdát, protože zpoždění se mohou lišit pro různé protokoly a velikosti paketů. Můžete také zmeškat krátkodobé události, jako jsou poklesy trvající několik milisekund.

ICMP - běžný ping

Použijeme unixovou utilitu ping, ta umožňuje ručně nastavit intervaly mezi odesíláním paketů, což verze ping pro Windows neumí. To je důležité, protože pokud jsou mezi pakety dlouhé pauzy, nemusíte jednoduše vidět, co se mezi nimi děje.

Velikost balení (volba -s) - ve výchozím nastavení nástroj ping odesílá pakety o velikosti 64 bajtů. U takto malých paketů nemusí být jevy vyskytující se u větších paketů patrné, proto nastavíme velikost paketu na 1300 bajtů.

Interval mezi pakety (volba -i) — čas mezi odesláním dat. Standardně jsou pakety odesílány jednou za sekundu, to je velmi dlouhé, skutečné programy posílají stovky a tisíce paketů za sekundu, takže interval nastavíme na 0.1 sekundy. Méně program prostě neumožňuje.

V důsledku toho příkaz vypadá takto:

ping -s 1300 -i 0.1 yandex.ru

Tento design vám umožňuje vidět realističtější obraz zpoždění.

Ping přes UDP a TCP

V některých případech jsou připojení TCP zpracována jinak než pakety ICMP, a proto se měření mohou lišit v závislosti na protokolu. Často se také stává, že hostitel prostě nereaguje na ICMP a běžný ping nefunguje. To dělá například hostitel celý život. microsoft.com.

Užitečnost nping od vývojářů slavného skeneru nmap umí generovat libovolné pakety. Může být také použit pro měření zpoždění.
Protože UDP a TCP fungují na konkrétních portech, musíme „pingnout“ konkrétní port. Zkusme pingnout TCP 80, tedy port webového serveru:

$ 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

Ve výchozím nastavení nping odešle 4 pakety a zastaví se. Volba -c 0 umožňuje nekonečné odesílání paketů, pro zastavení programu je třeba stisknout Ctrl+C. Statistiky se zobrazí na konci. Vidíme, že průměrná hodnota rtt (zpáteční doba) je 101 ms.

MTR - traceroute na steroidech

Program MTR My Traceroute je pokročilý nástroj pro trasování tras ke vzdálenému hostiteli. Na rozdíl od obvyklého systémového nástroje traceroute (ve Windows jde o nástroj tracert) může ukazovat zpoždění každému hostiteli v řetězci paketů. Dokáže také trasovat trasy nejen přes ICMP, ale také přes UDP a TCP.

$ sudo mtr microsoft.com

Bojujte o milisekundy. Jak vybrat server s nejnižším pingem
(Klikatelné) Rozhraní programu MTR. Bylo spuštěno trasování trasy na microsoft.com

MTR okamžitě ukazuje ping každému hostiteli v řetězci a data jsou neustále aktualizována, zatímco program běží a lze vidět krátkodobé změny.
Snímek obrazovky ukazuje, že uzel č. 6 má ztráty paketů, ale ve skutečnosti to není tak úplně pravda, protože některé routery mohou jednoduše zahodit pakety s prošlým TTL a nevrátí chybovou odpověď, takže zde mohou být data o ztrátě paketů ignorována.

WiFi vs kabel

Bojujte o milisekundy. Jak vybrat server s nejnižším pingem
Toto téma není pro článek úplně relevantní, ale dle mého názoru je v kontextu průtahů velmi důležité. WiFi opravdu miluji, ale pokud budu mít byť jen sebemenší možnost připojit se k internetu kabelem, využiji ji. Také vždy odrazuji lidi od používání WiFi kamer.
Pokud hrajete seriózní online střílečky, streamujete video nebo obchodujete na burze: použijte internet přes kabel.

Zde je vizuální test pro porovnání připojení WiFi a kabelů. Jedná se o ping na WiFi router, tedy ještě ani internet.

Bojujte o milisekundy. Jak vybrat server s nejnižším pingem
(Klikací) Porovnání pingu s WiFi routerem přes kabel a přes WiFi

Je vidět, že přes WiFi je zpoždění o 1ms delší a někdy jsou pakety se zpožděním i desetkrát delší! A to je jen krátká doba. Současně stejný router produkuje stabilní zpoždění <1 ms.

Ve výše uvedeném příkladu je použito WiFi 802.11n na frekvenci 2.4 GHz, k přístupovému bodu WiFi je připojen pouze notebook a telefon. Pokud by na přístupovém bodu bylo více klientů, výsledky by byly mnohem horší. To je důvod, proč jsem tak proti přepínání všech kancelářských počítačů na WiFi, pokud je možné se k nim dostat pomocí kabelu.

IP konektivita

Takže jsme se naučili měřit zpoždění na serveru, zkusme najít nejbližší server k nám. Za tímto účelem se můžeme podívat na to, jak funguje směrování našeho poskytovatele. K tomu je vhodné službu využít bgp.he.net

Bojujte o milisekundy. Jak vybrat server s nejnižším pingem

Když vstoupíme na stránku, vidíme, že naše IP adresa patří do autonomního systému AS42610.

Při pohledu na graf konektivity autonomních systémů vidíme, přes které poskytovatele vyšší úrovně je náš poskytovatel propojen se zbytkem světa. Každá z teček je klikatelná, můžete jít dovnitř a přečíst si, o jakého poskytovatele se jedná.

Bojujte o milisekundy. Jak vybrat server s nejnižším pingem
Graf konektivity autonomních systémů poskytovatele

Pomocí tohoto nástroje můžete studovat, jak jsou strukturovány kanály jakéhokoli poskytovatele, včetně hostingu. Podívejte se, ke kterým poskytovatelům je přímo připojen. Chcete-li to provést, musíte zadat IP adresu serveru do vyhledávání bgp.he.net a podívat se na graf jeho autonomního systému. Můžete také pochopit, jak je jedno datové centrum nebo poskytovatel hostingu připojen k jinému.

Většina bodů pro výměnu provozu poskytuje speciální nástroj zvaný zrcadlo, který vám umožňuje ping a traceroute z konkrétního směrovače v místě výměny.

Zde, například, vypadající sklo od MGTS

Takže při výběru serveru můžeme předem vidět, jak bude vypadat z různých bodů výměny provozu. A pokud se naši potenciální klienti nacházejí v určité geografické oblasti, dokážeme najít optimální umístění serveru.

Vyberte nejbližší server

Rozhodli jsme se zjednodušit postup hledání optimálního serveru pro naše klienty a vytvořili jsme stránku s automatickým testováním blízkých lokalit: datová centra RUVDS.
Když navštívíte stránku, skript změří zpoždění z vašeho prohlížeče na každý server a zobrazí je na interaktivní mapě. Po kliknutí na datové centrum se zobrazí informace s výsledky testů.

Bojujte o milisekundy. Jak vybrat server s nejnižším pingem

Bojujte o milisekundy. Jak vybrat server s nejnižším pingem

Tlačítko vás přenese na stránku testování latence pro všechna naše datová centra. Chcete-li zobrazit výsledky testu, klikněte na bod datového centra na mapě

Bojujte o milisekundy. Jak vybrat server s nejnižším pingem

Zdroj: www.habr.com

Přidat komentář