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

Per molte attività, la latenza tra cliente e server è cruciale, come nei giochi online, nelle videoconferenze, nella telefonia IP, nelle VPN, ecc. Se il server è troppo lontano dal cliente a livello di rete IP, i ritardi (chiamati «ping» o «lag») ostacoleranno il funzionamento.

La vicinanza geografica del server non sempre corrisponde alla vicinanza a livello di instradamento IP. Ad esempio, un server in un altro paese può essere «più vicino» a te rispetto a un server della tua città. Tutto ciò è dovuto alle peculiarità dell'instradamento e della costruzione delle reti.

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

Come scegliere il server il più vicino possibile a tutti i potenziali clienti? Cosa significa connettività delle reti IP? Come indirizzare il cliente al server più vicino? Esploriamo questi temi nell'articolo.

Misuriamo le latenze

Iniziamo a misurare le latenze. Questo compito non è così semplice come potrebbe sembrare, perché le latenze possono variare a seconda dei diversi protocolli e delle dimensioni dei pacchetti. Inoltre, possono non essere notati fenomeni transitori, come cali della durata di pochi millisecondi.

ICMP — ping normale

Utilizzeremo l'utility Unix ping, che consente di impostare manualmente gli intervalli tra l'invio dei pacchetti, cosa che la versione ping per Windows non permette. Questo è importante perché, se le pause tra i pacchetti sono lunghe, potremmo semplicemente non notare cosa succede tra di essi.

Dimensione del pacchetto (opzione -s) — per impostazione predefinita, l'utility ping invia pacchetti di dimensione 64 byte. Con pacchetti così piccoli potrebbero non essere evidenti fenomeni che si manifestano con pacchetti più grandi, quindi imposteremo la dimensione del pacchetto a 1300 byte.

Intervallo tra i pacchetti (opzione -i) — tempo tra l'invio dei dati. Per impostazione predefinita, i pacchetti vengono inviati una volta al secondo; questo è troppo lungo, i programmi reali inviano centinaia e migliaia di pacchetti al secondo, quindi imposteremo l'intervallo a 0,1 secondi. Non è possibile impostare un valore inferiore.

Alla fine, il comando risulta così:

ping -s 1300 -i 0.1 yandex.ru

Questa struttura consente di avere una visione più realistica dei ritardi.

Ping tramite UDP e TCP

In alcuni casi, le connessioni TCP vengono gestite in modo diverso dai pacchetti ICMP, e per questo motivo le misurazioni possono variare a seconda del protocollo. Inoltre, spesso accade che l'host non risponda a ICMP e quindi il ping normale non funzioni. Ad esempio, l'host ha sempre fatto così. microsoft.com.

Utility nping sviluppata dagli autori del famoso scanner nmap, è in grado di generare qualsiasi pacchetto. Può essere utilizzata anche per misurare i ritardi.
Poiché UDP e TCP funzionano su porte specifiche, dobbiamo "pingare" una porta specifica. Proviamo a pingare TCP 80, cioè la porta del server web:

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

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

Max rtt: 112.572ms | Min rtt: 93.866ms | Avg rtt: 101.093ms
Pacchetti grezzi inviati: 4 (160B) | Ricevuti: 3 (132B) | Persi: 1 (25.00%)
Nping completato: 1 indirizzo IP pingato in 0.43 secondi

Per impostazione predefinita, nping invia 4 pacchetti e si ferma. L'opzione -c 0 abilita l'invio infinito di pacchetti; per arrestare il programma, è necessario premere Ctrl+C. Alla fine verranno mostrate le statistiche. Possiamo vedere che il valore medio di rtt (round-trip time) è di 101 ms.

MTR — traceroute potenziato

Programma MTR (eng. My Traceroute) — un'utility avanzata per il tracciamento dei percorsi verso un host remoto. A differenza dell'utility di sistema traceroute (in Windows è l'utility tracert), mostra i ritardi fino a ciascun host nella catena di invio del pacchetto. È anche in grado di tracciare i percorsi non solo tramite ICMP, ma anche tramite UDP e TCP.

$ sudo mtr microsoft.com

La lotta per i millisecondi. Come scegliere un server con il ping più basso
(Cliccabile) Interfaccia del programma MTR. Tracciamento in corso del percorso verso microsoft.com

MTR mostra immediatamente il ping a ciascun host nella catena, e i dati si aggiornano costantemente finché il programma è in esecuzione, consentendo di vedere le variazioni a breve termine.
Nello screenshot si può vedere che al nodo n. 6 ci sono perdite di pacchetti, ma in realtà non è del tutto così, poiché alcuni router possono semplicemente scartare pacchetti con TTL scaduto e non restituire una risposta di errore; quindi, i dati sulle perdite di pacchetti qui possono essere ignorati.

WiFi contro cavo

La lotta per i millisecondi. Come scegliere un server con il ping più basso
Questo argomento non è esattamente correlato all'articolo, ma secondo me è molto importante nel contesto dei ritardi. Amo molto il WiFi, ma se ho anche solo la minima possibilità di connettermi a Internet tramite cavo, la sfrutto. Inoltre, sconsiglio sempre alle persone di usare telecamere WiFi.
Se giochi a shooter online seri di alto livello, trasmetti video in streaming o fai trading: ti preghiamo di utilizzare una connessione cablata.

Ecco un test visivo per confrontare la connessione WiFi con quella cablata. Questo è il ping verso il router WiFi, quindi non è ancora internet.

La lotta per i millisecondi. Come scegliere un server con il ping più basso
(Cliccabile) Confronto del ping verso il router WiFi sia cablato che WiFi

È evidente che il ping WiFi è maggiore di 1 ms e ci sono a volte pacchetti con ritardi dieci volte più grandi! E questo è solo un breve intervallo di tempo. Nel frattempo, lo stesso router offre latenze stabili <1 ms.

Nell'esempio sopra viene utilizzato WiFi 802.11n su 2.4GHz, con solo laptop e telefono connessi al punto di accesso WiFi. Se ci fossero più client connessi al punto di accesso, i risultati sarebbero molto peggiori. Ecco perché mi oppongo al passaggio di tutti i computer dell'ufficio al WiFi, se c'è la possibilità di raggiungerli via cavo.

Connettività IP

Quindi, abbiamo imparato a misurare le latenze verso il server, proviamo a trovare il server più vicino a noi. Possiamo controllare come è configurato il routing dal nostro fornitore. Per questo è comodo utilizzare il servizio bgp.he.net

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

Accedendo al sito, vediamo che il nostro indirizzo IP appartiene a un sistema autonomo AS42610.

Osservando il grafo di interconnessione delle reti autonome, possiamo vedere attraverso quali fornitori principali il nostro fornitore è connesso al resto del mondo. Ogni punto è cliccabile; si può accedere e leggere informazioni su quel fornitore.

La lotta per i millisecondi. Come scegliere un server con il ping più basso
Grafo di interconnessione delle reti autonome del fornitore

Utilizzando questo strumento, è possibile esplorare come sono organizzati i canali di qualsiasi fornitore, incluso quello di hosting. Si possono vedere quali fornitori sono collegati direttamente. Per farlo, è necessario inserire l'indirizzo IP del server su bgp.he.net e visualizzare il grafo della sua rete autonoma. Può anche chiarire come un data center o un fornitore di hosting sia connesso a un altro.

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

Ecco, ad esempio, looking glass di MGTS

Così, scegliendo un server, possiamo anticipare come apparirà da diversi punti di scambio del traffico. E se i nostri potenziali clienti si trovano in una particolare zona geografica, possiamo trovare la posizione ottimale per il server.

Scegliamo il server più vicino

Abbiamo semplificato la ricerca del server ottimale per i nostri clienti creando una pagina con un test automatico delle località più vicine: data center RUVDS.
Quando accedi alla pagina, lo script misura il ritardo dal tuo browser a ciascun server e li visualizza su una mappa interattiva. Cliccando sul data center, vengono mostrati i risultati dei test.

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

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

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

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

Fonte: habr.com

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster