Risoluzione dei problemi di latenza di rete con Wireshark
Pubblicato: 2021-10-07La latenza di rete è il ritardo nella trasmissione di richieste o dati dall'origine alla destinazione in un ecosistema di rete. Vediamo come è possibile risolvere i problemi di latenza di rete.
Qualsiasi azione che richieda l'utilizzo della rete, come aprire una pagina Web, fare clic su un collegamento o aprire un'app e giocare a un gioco online, viene definita attività. L'attività di un utente è la richiesta e il tempo di risposta di un'applicazione Web è il tempo necessario per rispondere a questa richiesta.
Questo ritardo include anche il tempo impiegato da un server per completare la richiesta. Di conseguenza, è definito come il round trip: il tempo necessario affinché una richiesta venga registrata, elaborata e quindi ricevuta dall'utente, dove viene decodificata.
Il termine "bassa latenza" si riferisce a ritardi di trasferimento dati relativamente brevi. D'altra parte, lunghi ritardi o latenza eccessiva sono indesiderabili poiché degradano l'esperienza dell'utente.

Come correggere la latenza di rete?
Esistono molti strumenti e software disponibili su Internet per l'analisi e la risoluzione dei problemi di una rete. Alcuni sono a pagamento, altri gratuiti. Tuttavia, esiste uno strumento chiamato Wireshark, che è un'applicazione open source e con licenza GPL utilizzata per acquisire i pacchetti di dati in tempo reale. Wireshark è l'analizzatore di protocollo di rete più popolare e comunemente usato al mondo.
Ti aiuterà a catturare i pacchetti di rete e a visualizzarli in dettaglio. È possibile utilizzare questi pacchetti per l'analisi in tempo reale o offline una volta rilevati i pacchetti di rete. Questa applicazione consente di esaminare il traffico di rete al microscopio, filtrandolo e analizzandolo per trovare l'origine dei problemi, assistendo con l'analisi della rete e, in definitiva, la sicurezza della rete.
Quali sono le cause del ritardo di rete?
Alcuni motivi principali per la connettività di rete lenta , tra cui:
- Alta latenza
- Dipendenze dell'applicazione
- Perdita di pacchetti
- Dispositivi di intercettazione
- Dimensioni delle finestre inefficienti
E in questo articolo, esaminiamo ogni causa di ritardo della rete e come risolvere i problemi con Wireshark.
Esame con Wireshark
Alta latenza
L'elevata latenza si riferisce al tempo impiegato dai dati per transitare da un endpoint a un altro. L'impatto dell'elevata latenza sulle comunicazioni di rete è enorme. Nel diagramma seguente, osserviamo come esempio il tempo di andata e ritorno di un download di file su un percorso ad alta latenza. Il tempo di latenza di andata e ritorno potrebbe spesso superare un secondo, il che è inaccettabile.

- Vai a Statistiche Wireshark.
- Selezionare l'opzione Grafico flusso TCP.
- Scegli il grafico del tempo di andata e ritorno per scoprire quanto tempo impiega un file per il download.
Wireshark viene utilizzato per calcolare il tempo di andata e ritorno su un percorso per vedere se questa è la causa delle prestazioni difettose della rete di comunicazione TCP (Transmission Control Protocol). TCP viene utilizzato in varie applicazioni, tra cui la navigazione online, la trasmissione di dati, il protocollo di trasferimento file e molte altre. In molti casi, il sistema operativo può essere modificato per funzionare in modo più efficace sui canali ad alta latenza, in particolare quando gli host utilizzano Windows XP.
Dipendenze dell'applicazione
Alcune applicazioni dipendono da altre applicazioni, processi o comunicazioni host. Supponiamo che la tua applicazione di database, ad esempio, si basi sulla connessione ad altri server per recuperare gli elementi del database. In tal caso, le prestazioni lente su quegli altri server possono ridurre il tempo di caricamento dell'applicazione locale.
Prendi, ad esempio, un'esperienza di navigazione web in cui il server di destinazione fa riferimento a diversi altri siti web. Ad esempio, per caricare la pagina principale del sito, www.espn.com, devi prima visitare 16 host che forniscono annunci e contenuti per la pagina principale di www.espn.com.

Nella figura sopra, la finestra HTTP Load Distribution in Wireshark mostra un elenco di tutti i server utilizzati dalla home page di www.espn.com.
Perdita di pacchetti
Uno dei problemi più diffusi che trovo sulle reti è la perdita di pacchetti. La perdita di pacchetti si verifica quando i pacchetti di dati non vengono consegnati correttamente dal mittente al destinatario su Internet. Quando un utente visita un sito Web e inizia a scaricare gli elementi del sito, i pacchetti persi causano ritrasmissioni, aumentando la possibilità di scaricare i file Web e rallentando il processo di download complessivo.
Inoltre, quando un'applicazione utilizza TCP, i pacchetti mancanti hanno un impatto particolarmente negativo. Quando una connessione TCP rileva un pacchetto perso, la velocità di trasmissione rallenta automaticamente per compensare i problemi di rete.
Migliora gradualmente a un ritmo più accettabile fino a quando il pacchetto successivo non viene eliminato, con conseguente riduzione significativa del throughput dei dati. I download di file di grandi dimensioni, che altrimenti dovrebbero fluire facilmente attraverso una rete, risentono notevolmente della perdita di pacchetti.

Che aspetto ha quando si perde un pacchetto? È discutibile. La perdita di pacchetti può assumere due forme se il programma funziona tramite TCP. In un esempio, il ricevitore monitora i pacchetti in base ai loro numeri di sequenza e rileva un pacchetto mancante. Il client effettua tre richieste per il pacchetto mancante (doppi riconoscimenti), con conseguente reinvio. Quando un mittente osserva che un destinatario non ha confermato la ricezione di un pacchetto di dati, il mittente va in timeout e ritrasmette il pacchetto di dati.

Wireshark indica che si è verificata una congestione della rete e più riconoscimenti causano la ritrasmissione del traffico problematico codificandolo a colori. Un numero elevato di riconoscimenti duplicati indica la perdita di pacchetti e un ritardo significativo in una rete.
Per migliorare la velocità della rete, è fondamentale individuare il sito esatto della perdita di pacchetti. Quando si verifica la perdita di pacchetti, spostiamo Wireshark lungo il percorso finché non è più visibile alcuna perdita di pacchetti. In questo momento siamo "a monte" dal punto di rilascio dei pacchetti, quindi sappiamo dove concentrare i nostri sforzi di debug.
Dispositivi di intercettazione
I poliziotti del traffico di rete sono dispositivi di interconnessione che effettuano scelte di inoltro, come switch, router e firewall. Quando si verifica la perdita di pacchetti, è necessario indagare su questi dispositivi come probabile motivo.
La latenza può essere aggiunta al percorso da questi dispositivi di collegamento. Ad esempio, se la priorità del traffico è abilitata, possiamo assistere a una latenza aggiuntiva iniettata in un flusso con un livello di priorità basso.
Dimensioni delle finestre inefficienti
Oltre al sistema operativo Microsoft, ci sono altre "finestre" nella rete TCP/IP.
- Finestra scorrevole
- Finestra del ricevitore
- Finestra di controllo della congestione
Queste finestre insieme costituiscono le prestazioni di comunicazione basate su TCP della rete. Iniziamo definendo ciascuna di queste finestre e il loro impatto sulla larghezza di banda della rete.
Finestra scorrevole
Quando i dati vengono riconosciuti, la finestra scorrevole viene utilizzata per trasmettere i successivi segmenti TCP sulla rete. Il mittente riceve conferme per i frammenti di dati trasmessi, la finestra scorrevole si espande. Finché non ci sono trasmissioni perse sulla rete, è possibile trasferire grandi quantità di dati. Quando un pacchetto viene perso, la finestra scorrevole si riduce perché la rete non è in grado di gestire la maggiore quantità di dati sulla linea.
Finestra del ricevitore
La finestra del ricevitore dello stack TCP è uno spazio buffer. Quando i dati vengono ricevuti, vengono archiviati in questo spazio buffer finché un'applicazione non li preleva. La finestra del ricevitore si riempie quando un'applicazione non tiene il passo con la velocità di ricezione, portando infine a uno scenario di "finestra zero". Tutta la trasmissione di dati all'host deve interrompersi quando un ricevitore annuncia una condizione di finestra zero. Il tasso di rendimento scende a zero. Un metodo noto come Window Scaling (RFC 1323) consente a un host di aumentare la dimensione della finestra del ricevitore e ridurre la probabilità di uno scenario di finestra zero.

L'immagine sopra mostra un ritardo di 32 secondi nelle comunicazioni di rete a causa di uno scenario di finestra zero.
Finestra di congestione
La finestra di congestione definisce la quantità massima di dati che la rete può gestire. La velocità di trasmissione dei pacchetti del mittente, la velocità di perdita dei pacchetti di rete e la dimensione della finestra del destinatario contribuiscono tutti a questa cifra. La finestra di congestione aumenta costantemente durante una comunicazione di rete sana fino al completamento del trasferimento o fino al raggiungimento di un "tetto" stabilito dall'integrità della rete. Le capacità di trasmissione del mittente o le dimensioni della finestra del destinatario. Ogni nuova connessione avvia nuovamente la procedura di negoziazione della dimensione della finestra.
Suggerimenti per una rete sana
- Scopri come utilizzare Wireshark come attività di prima risposta per scoprire in modo rapido ed efficiente l'origine delle scarse prestazioni.
- Identificare l'origine della latenza del percorso di rete e, se possibile, ridurla a un livello accettabile.
- Individua e risolvi l'origine della perdita di pacchetti.
- Esaminare la dimensione della finestra di trasmissione dei dati e, se possibile, ridurla.
- Esaminare le prestazioni dei dispositivi di intercettazione per vedere se aggiungono latenza o eliminano i pacchetti.
- Ottimizza le app in modo che possano fornire maggiori quantità di dati e, se possibile, recuperare i dati dalla finestra del ricevitore.
Avvolgendo
Abbiamo esaminato i motivi principali dei problemi di prestazioni della rete, ma un fattore da non perdere è la mancanza di comprensione del comportamento delle comunicazioni di rete. Wireshark offre visibilità della rete proprio come i raggi X e le scansioni CAT offrono visibilità nel corpo umano per diagnosi accurate e tempestive. Questo strumento è diventato uno strumento vitale per l'individuazione e la diagnosi dei problemi di rete.
Ora dovresti esaminare e risolvere le prestazioni della rete tramite diversi filtri e strumenti utilizzando Wireshark.
