Lluitant durant mil·lisegons. Com triar un servidor amb el ping més baix

Per a moltes tasques, els retards entre el client i el servidor són crítics, per exemple en jocs en línia, videoconferències/veu, telefonia IP, VPN, etc. Si el servidor està massa lluny del client a nivell de xarxa IP, els retards (anomenats popularment "ping", "lag") interferiran amb el treball.

La proximitat geogràfica d'un servidor no sempre és igual a la proximitat a nivell d'encaminament IP. Així, per exemple, un servidor d'un altre país pot estar "més a prop" que un servidor de la vostra ciutat. Tot a causa de les peculiaritats de l'encaminament i la construcció de la xarxa.

Lluitant durant mil·lisegons. Com triar un servidor amb el ping més baix

Com triar un servidor que sigui el més proper possible a tots els clients potencials? Què és la connectivitat de xarxa IP? Com dirigir un client al servidor més proper? Descobrim-ho a l'article.

Mesura de retards

Primer, aprenem a mesurar els retards. Aquesta tasca no és tan senzilla com pot semblar perquè els retards poden variar segons els diferents protocols i mides de paquets. També us podeu perdre esdeveniments a curt termini, com ara baixades d'uns quants mil·lisegons.

ICMP - ping regular

Farem servir la utilitat de ping d'Unix, que us permet configurar manualment els intervals entre enviament de paquets, cosa que la versió de ping per a Windows no pot fer. Això és important perquè si hi ha pauses llargues entre paquets, és possible que simplement no vegeu què passa entre ells.

Mida del paquet (opció -s): per defecte, la utilitat ping envia paquets de 64 bytes de mida. Amb paquets tan petits, els fenòmens que es produeixen amb paquets més grans poden no ser perceptibles, de manera que establirem la mida del paquet en 1300 bytes.

Interval entre paquets (opció -i) — temps entre enviaments de dades. Per defecte, els paquets s'envien una vegada per segon, això és molt llarg, els programes reals envien centenars i milers de paquets per segon, així que establirem l'interval a 0.1 segons. El programa simplement no permet menys.

Com a resultat, l'ordre té aquest aspecte:

ping -s 1300 -i 0.1 yandex.ru

Aquest disseny us permet veure una imatge més realista dels retards.

Ping mitjançant UDP i TCP

En alguns casos, les connexions TCP es processen de manera diferent que els paquets ICMP i, per això, les mesures poden variar segons el protocol. També passa sovint que l'amfitrió simplement no respon a ICMP i el ping normal no funciona. Això és el que fa un amfitrió tota la vida, per exemple. microsoft.com.

Utilitat nping dels desenvolupadors del famós escàner nmap pot generar qualsevol paquet. També es pot utilitzar per mesurar retards.
Com que UDP i TCP operen en uns determinats, hem de fer "ping" a un port específic. Intentem fer ping al TCP 80, és a dir, al port del servidor web:

$ 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

Per defecte, nping envia 4 paquets i s'atura. Opció -c 0 permet l'enviament sense fi de paquets; per aturar el programa, cal prémer Ctrl+C. Les estadístiques es mostraran al final. Veiem que el valor mitjà de rtt (temps d'anada i tornada) és de 101 ms.

MTR - traceroute en esteroides

Programa MTR My Traceroute és una utilitat avançada per rastrejar rutes a un host remot. A diferència de la utilitat habitual del sistema traceroute (a Windows aquesta és la utilitat tracert), pot mostrar retards a cada host de la cadena de paquets. També pot traçar rutes no només mitjançant ICMP, sinó també mitjançant UDP i TCP.

$ sudo mtr microsoft.com

Lluitant durant mil·lisegons. Com triar un servidor amb el ping més baix
(Es pot fer clic) Interfície del programa MTR. S'ha iniciat el seguiment de rutes a microsoft.com

MTR mostra immediatament el ping a cada host de la cadena i les dades s'actualitzen constantment mentre el programa s'executa i es poden veure els canvis a curt termini.
La captura de pantalla mostra que el node #6 té pèrdues de paquets, però de fet això no és del tot cert, perquè alguns encaminadors simplement poden descartar paquets amb un TTL caducat i no retornar una resposta d'error, de manera que les dades de pèrdua de paquets es poden ignorar aquí.

WiFi vs cable

Lluitant durant mil·lisegons. Com triar un servidor amb el ping més baix
Aquest tema no és del tot rellevant per a l'article, però al meu entendre és molt important en el context dels retards. M'encanta molt el WiFi, però si tinc la més mínima oportunitat de connectar-me a Internet amb un cable, el faré servir. També sempre descoratjo a la gent que faci servir càmeres WiFi.
Si jugueu a shooters en línia seriosos, reproduïu vídeo en temps real o negocieu a la borsa: feu servir Internet per cable.

Aquí teniu una prova visual per comparar connexions WiFi i cable. Això és un ping al router WiFi, és a dir, ni tan sols a Internet encara.

Lluitant durant mil·lisegons. Com triar un servidor amb el ping més baix
(Es pot fer clic) Comparació del ping amb un encaminador WiFi mitjançant cable i WiFi

Es pot veure que per WiFi el retard és 1 ms més llarg i de vegades hi ha paquets amb retards deu vegades més llargs! I això és només un curt període de temps. Al mateix temps, el mateix encaminador produeix retards estables de <1 ms.

A l'exemple anterior, s'utilitza WiFi 802.11n a 2.4 GHz, només un ordinador portàtil i un telèfon estan connectats al punt d'accés WiFi. Si hi hagués més clients al punt d'accés, els resultats serien molt pitjors. És per això que estic molt en contra de canviar tots els ordinadors d'oficina a WiFi si és possible arribar-hi amb un cable.

Connectivitat IP

Per tant, hem après a mesurar els retards al servidor, intentem trobar el servidor més proper a nosaltres. Per fer-ho, podem veure com funciona l'encaminament del nostre proveïdor. És convenient utilitzar el servei per a això bgp.he.net

Lluitant durant mil·lisegons. Com triar un servidor amb el ping més baix

Quan accedim al lloc, veiem que la nostra adreça IP pertany al sistema autònom AS42610.

En observar el gràfic de connectivitat dels sistemes autònoms, podem veure a través de quins proveïdors de nivell superior està connectat el nostre proveïdor amb la resta del món. Cadascun dels punts es pot fer clic, podeu entrar i llegir quin tipus de proveïdor és.

Lluitant durant mil·lisegons. Com triar un servidor amb el ping més baix
Gràfic de connectivitat dels sistemes autònoms del proveïdor

Amb aquesta eina, podeu estudiar com s'estructuren els canals de qualsevol proveïdor, inclòs l'allotjament. Consulta amb quins proveïdors està connectat directament. Per fer-ho, cal introduir l'adreça IP del servidor a la cerca de bgp.he.net i mirar el gràfic del seu sistema autònom. També podeu entendre com un centre de dades o proveïdor d'allotjament està connectat amb un altre.

La majoria dels punts d'intercanvi de trànsit ofereixen una eina especial anomenada mirall, que us permet fer ping i fer un seguiment des d'un encaminador específic al punt d'intercanvi.

Aquí, per exemple, looking glass de MGTS

Així, a l'hora de triar un servidor, podem veure per endavant com es veurà des de diferents punts d'intercanvi de trànsit. I si els nostres clients potencials es troben en una zona geogràfica determinada, podem trobar la ubicació òptima per al servidor.

Seleccioneu el servidor més proper

Vam decidir simplificar el procediment per trobar el servidor òptim per als nostres clients i vam crear una pàgina amb proves automàtiques d'ubicacions properes: Centres de dades RUVDS.
Quan visiteu una pàgina, l'script mesura els retards del vostre navegador a cada servidor i els mostra en un mapa interactiu. Quan feu clic a un centre de dades, es mostra informació amb els resultats de la prova.

Lluitant durant mil·lisegons. Com triar un servidor amb el ping més baix

Lluitant durant mil·lisegons. Com triar un servidor amb el ping més baix

El botó us porta a la pàgina de prova de latència de tots els nostres centres de dades. Per veure els resultats de la prova, feu clic al punt del centre de dades del mapa

Lluitant durant mil·lisegons. Com triar un servidor amb el ping més baix

Font: www.habr.com

Afegeix comentari