Lottare per i millisecondi. Come scegliere un server con il ping più basso

Per molte attività i ritardi tra client e server sono critici, ad esempio nei giochi online, nelle videoconferenze/vocali, nella telefonia IP, VPN, ecc. Se il server è troppo lontano dal client a livello di rete IP, i ritardi (popolarmente chiamati "ping", "lag") interferiranno con il lavoro.

La vicinanza geografica di un server non sempre equivale alla prossimità a livello di routing IP. Quindi, ad esempio, un server in un altro paese potrebbe essere “più vicino” a te rispetto a un server nella tua città. Tutto a causa delle peculiarità del routing e della costruzione della rete.

Lottare per i millisecondi. Come scegliere un server con il ping più basso

Come scegliere un server il più vicino possibile a tutti i potenziali clienti? Cos'è la connettività di rete IP? Come indirizzare un client al server più vicino? Scopriamolo nell'articolo.

Misurare i ritardi

Innanzitutto, impariamo come misurare i ritardi. Questo compito non è così semplice come potrebbe sembrare perché i ritardi possono variare a seconda dei protocolli e delle dimensioni dei pacchetti. Potresti anche perdere eventi a breve termine, come cali della durata di pochi millisecondi.

ICMP: ping regolare

Utilizzeremo l'utilità ping Unix; essa consente di impostare manualmente gli intervalli tra l'invio dei pacchetti, cosa che la versione ping per Windows non può fare. Questo è importante perché se ci sono lunghe pause tra i pacchetti, potresti semplicemente non vedere cosa sta succedendo tra loro.

Dimensioni del pacchetto (opzione -s) - per impostazione predefinita, l'utilità ping invia pacchetti di 64 byte di dimensione. Con pacchetti così piccoli, i fenomeni che si verificano con pacchetti più grandi potrebbero non essere evidenti, quindi imposteremo la dimensione del pacchetto su 1300 byte.

Intervallo tra i pacchetti (opzione -i) — tempo tra gli invii dei dati. Per impostazione predefinita, i pacchetti vengono inviati una volta al secondo, questo è molto lungo, i programmi reali inviano centinaia e migliaia di pacchetti al secondo, quindi imposteremo l'intervallo su 0.1 secondi. Il programma semplicemente non consente di meno.

Di conseguenza, il comando è simile al seguente:

ping -s 1300 -i 0.1 yandex.ru

Questo design ti consente di vedere un'immagine più realistica dei ritardi.

Ping tramite UDP e TCP

In alcuni casi, le connessioni TCP vengono elaborate in modo diverso rispetto ai pacchetti ICMP e, per questo motivo, le misurazioni possono variare a seconda del protocollo. Accade spesso anche che l'host semplicemente non risponda all'ICMP e che il ping regolare non funzioni. Questo è ciò che fa un host per tutta la vita, per esempio. microsoft.com.

Utilità nping dagli sviluppatori del famoso scanner nmap può generare qualsiasi pacchetto. Può anche essere utilizzato per misurare i ritardi.
Poiché UDP e TCP operano su porte specifiche, è necessario eseguire il "ping" su una porta specifica. Proviamo a eseguire il ping del TCP 80, ovvero della porta del server 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 impostazione predefinita, nping invia 4 pacchetti e si interrompe. Opzione -c 0 consente l'invio infinito di pacchetti; per fermare il programma è necessario premere Ctrl+C. Alla fine verranno mostrate le statistiche. Vediamo che il valore medio rtt (andata e ritorno) è 101ms.

MTR - traceroute sugli steroidi

Programma MTR My Traceroute è un'utilità avanzata per tracciare i percorsi verso un host remoto. A differenza della solita utilità di sistema traceroute (in Windows questa è l'utilità tracert), può mostrare ritardi su ciascun host nella catena di pacchetti. Può anche tracciare percorsi non solo tramite ICMP, ma anche tramite UDP e TCP.

$ sudo mtr microsoft.com

Lottare per i millisecondi. Come scegliere un server con il ping più basso
(Cliccabile) Interfaccia del programma MTR. Avviata la tracciatura del percorso verso microsoft.com

MTR mostra immediatamente il ping a ciascun host della catena e i dati vengono costantemente aggiornati mentre il programma è in esecuzione e si possono vedere i cambiamenti a breve termine.
Lo screenshot mostra che il nodo n. 6 presenta perdite di pacchetti, ma in realtà questo non è del tutto vero, perché alcuni router possono semplicemente scartare i pacchetti con un TTL scaduto e non restituire una risposta di errore, quindi i dati sulla perdita di pacchetti possono essere ignorati qui.

Wi-Fi contro cavo

Lottare per i millisecondi. Come scegliere un server con il ping più basso
Questo argomento non è del tutto rilevante per l'articolo, ma secondo me è molto importante nel contesto dei ritardi. Adoro il WiFi, ma se avrò anche la minima possibilità di connettermi a Internet via cavo, lo userò. Inoltre scoraggio sempre le persone dall'utilizzare le telecamere WiFi.
Se giochi a sparatutto online seri, guardi video in streaming o fai trading in borsa: utilizza Internet via cavo.

Ecco un test visivo per confrontare le connessioni WiFi e via cavo. Questo è un ping al router WiFi, cioè nemmeno a Internet.

Lottare per i millisecondi. Come scegliere un server con il ping più basso
(Cliccabile) Confronto del ping con un router WiFi via cavo e via WiFi

Si può vedere che tramite WiFi il ritardo è 1ms più lungo e talvolta ci sono pacchetti con ritardi dieci volte più lunghi! E questo è solo un breve periodo di tempo. Allo stesso tempo, lo stesso router produce ritardi stabili <1 ms.

Nell'esempio sopra viene utilizzato il WiFi 802.11n a 2.4 GHz, solo un laptop e un telefono sono collegati al punto di accesso WiFi. Se ci fossero più client sul punto di accesso, i risultati sarebbero molto peggiori. Per questo motivo sono contrario al passaggio al WiFi di tutti i computer dell'ufficio se è possibile raggiungerli tramite cavo.

Connettività IP

Quindi, abbiamo imparato a misurare i ritardi verso il server, proviamo a trovare il server più vicino a noi. Per fare ciò, possiamo vedere come funziona il routing del nostro provider. È conveniente utilizzare il servizio per questo bgp.he.net

Lottare per i millisecondi. Come scegliere un server con il ping più basso

Quando accediamo al sito, vediamo che il nostro indirizzo IP appartiene al sistema autonomo AS42610.

Osservando il grafico della connettività dei sistemi autonomi, possiamo vedere attraverso quali fornitori di livello superiore il nostro fornitore è connesso al resto del mondo. Ciascuno dei punti è cliccabile, puoi entrare e leggere che tipo di provider è.

Lottare per i millisecondi. Come scegliere un server con il ping più basso
Grafico della connettività dei sistemi autonomi del provider

Utilizzando questo strumento, puoi studiare come sono strutturati i canali di qualsiasi fornitore, incluso l'hosting. Scopri a quali fornitori è direttamente collegato. Per fare ciò, è necessario inserire l'indirizzo IP del server nella ricerca di bgp.he.net e guardare il grafico del suo sistema autonomo. Puoi anche capire come un data center o un provider di hosting è connesso a un altro.

La maggior parte dei punti di scambio del traffico fornisce uno strumento speciale chiamato looking glass, che consente di eseguire il ping e il traceroute da un router specifico nel punto di scambio.

Qui, per esempio, looking glass da MGTS

Quindi, quando si sceglie un server, possiamo vedere in anticipo come apparirà dai diversi punti di scambio del traffico. E se i nostri potenziali clienti si trovano in una determinata area geografica, possiamo trovare la posizione ottimale per il server.

Seleziona il server più vicino

Abbiamo deciso di semplificare la procedura per trovare il server ottimale per i nostri clienti e abbiamo creato una pagina con test automatico delle località vicine: Centri dati RUVDS.
Quando visiti una pagina, lo script misura i ritardi dal tuo browser a ciascun server e li visualizza su una mappa interattiva. Quando si fa clic su un data center, vengono visualizzate le informazioni con i risultati del test.

Lottare per i millisecondi. Come scegliere un server con il ping più basso

Lottare per i millisecondi. Come scegliere un server con il ping più basso

Il pulsante ti porta alla pagina del test di latenza per tutti i nostri data center. Per visualizzare i risultati del test, fare clic sul punto del data center sulla mappa

Lottare per i millisecondi. Come scegliere un server con il ping più basso

Fonte: habr.com

Aggiungi un commento