La perdita di pacchetti si verifica quando la connessione di rete perde le informazioni mentre è in transito. Può rendere la connessione di rete più lenta di quanto dovrebbe essere e riduce l'affidabilità delle comunicazioni di rete con dispositivi locali e remoti. Fermare la perdita di pacchetti dovrebbe essere in cima alla lista per chiunque cerchi di migliorare una rete problematica.
Che cos'è la perdita di pacchetti?
Mentre l'acqua corrente viene spesso utilizzata come un'analogia per il traffico di rete, le informazioni non vengono trasmesse attraverso la rete come un flusso continuo. Piuttosto, viene inviato come una serie di unità discrete, chiamate pacchetti. Queste unità sono come singole pagine di un libro. Insieme, hanno un significato, ma solo quando sono connessi con le altre pagine nel giusto ordine creano un insieme coerente. Quando la connessione di rete perde i pacchetti, non è possibile creare il libro completo. I pacchetti possono anche arrivare incompleti, danneggiati o in altro modo difettosi, che li rendono inutili. La correzione per questo è in genere il reinvio del pacchetto perso.
Di solito, la maggior parte delle reti presenta un livello molto basso di perdita di pacchetti. Le vicissitudini delle connessioni di rete sono tali che un pacchetto lasciato cadere ogni tanto è in qualche modo inevitabile. Detto questo, su una rete funzionante, la perdita di pacchetti si verifica raramente e non influenza l'efficacia della connessione di rete.
Se stai riscontrando livelli più elevati di perdita di pacchetti in tutta la rete, dovrai adottare misure per risolverlo. Per tornare alla nostra analogia con l'acqua, una significativa perdita di pacchetti è come un tubo che perde molto. Deve essere risolto prima di poter apportare altri miglioramenti.
Quali sono le cause di perdita di pacchetti sulla rete
La perdita di pacchetti non si verifica per una sola ragione. Diagnosticare la causa della perdita di pacchetti sulla rete ti dirà cosa devi correggere.
- Larghezza di banda e congestione della rete: Una causa principale della perdita di pacchetti è la larghezza di banda della rete insufficiente per la connessione desiderata. Ciò accade quando troppi dispositivi stanno tentando di comunicare sulla stessa rete.
- Hardware insufficiente: Qualsiasi hardware sulla rete che instrada i pacchetti può causare perdite di pacchetti. Router, switch, firewall e altri dispositivi hardware sono i più vulnerabili. Se non riescono a "stare al passo" con il traffico che stai instradando su di loro, elimineranno i pacchetti. Pensalo come un cameriere con le braccia piene: se chiedi loro di prendere un altro piatto, probabilmente lasceranno cadere uno o più piatti.
- Cavi danneggiati: La perdita di pacchetti può verificarsi sul livello 1, il livello di rete fisico. Se i cavi Ethernet sono danneggiati, cablati in modo improprio o troppo lenti per gestire il traffico della rete, "perdono" i pacchetti.
- Bug del software: Nessun software è impeccabile. Il firmware nell'hardware di rete o nel software del computer può presentare bug che causano la perdita di pacchetti. In questo caso, c'è poco da fare per il consumatore. Si potrebbe tentare di risolvere il problema da soli, ma spesso l'unico modo per risolvere il problema è attraverso una patch del firmware del fornitore che fornisce l'hardware. Assicurati di segnalare i bug sospetti man mano che li trovi per incoraggiare i venditori a risolvere il problema.
Rilevazione della perdita di pacchetti
Esistono numerose applicazioni software in grado di rilevare la perdita di pacchetti su una rete. Funzionano "annusando" i pacchetti in qualche modo, analizzando il loro tempo di viaggio o esaminando i pacchetti. Il modo più semplice per scoprire se la perdita di pacchetti esiste è il ping dei dispositivi sulla rete.
-
Su Windows, apri una finestra del prompt dei comandi e usa il comando ping per indirizzare il tuo router. Ad esempio, se l'indirizzo IP locale del router è 127.0.0.1, il seguente comando eseguirà il ping del router:
ping 127.0.0.1 -t
Su macOS o Linux, apri una finestra di Terminale e usa il seguente comando:
ping 127.0.0.1
L'unica differenza è la mancanza -t alla fine del comando.
-
Dopo che il comando ping elabora un numero sufficiente di pacchetti (almeno 10), premere Ctrl + C per fermare il comando.
-
Guarda se c'è stata una perdita di pacchetti. Se questa connessione specifica tra il dispositivo di ping e la destinazione funziona correttamente, dovresti vedere lo 0% della perdita di pacchetti.
--- Statistiche ping 127.0.0.1 ---27 pacchetti trasmessi, 27 pacchetti ricevuti, 0,0% di perdita di pacchettiround-trip min / avg / max / stddev = 1.820 / 8.351 / 72.343 / 14.186 ms
-
Questo è tutto.
Sono disponibili anche strumenti più avanzati per rilevare la perdita di pacchetti.
-
Il comando tcpdump su macOS e Linux è molto più potente del ping. È un po 'opprimente abituarsi, ma il seguente comando catturerà i pacchetti e quindi calcolerà la quantità di perdita di pacchetti:
tcpdump -i qualsiasi
-
Questo eseguirà tcpdump su qualsiasi connessione di rete. Può anche essere eseguito con -i eth0 per acquisire solo l'interfaccia di rete primaria o con -c 10 per acquisire solo dieci pacchetti.
-
Dopo l'esecuzione del comando, guarda la riga inferiore per vedere se alcuni pacchetti sono stati persi.
17 pacchetti catturati85 pacchetti ricevuti dal filtro0 pacchetti abbandonati dal kernel
-
Idealmente, dovresti vedere 0 pacchetti persi.
Su Windows, puoi usare tcpdump attraverso la shell Bash su Windows 10 o eseguire Wireshark.
Il processo di rilevamento dei pacchetti è piuttosto basso. Una volta stabilito un modo per controllare le comunicazioni attraverso la rete, è necessario seguire una pratica di isolamento ed eliminazione per determinare l'origine e la causa della perdita di pacchetti. Nella maggior parte dei casi è necessario eseguire il ping sulla maggior parte dei dispositivi sulla rete o eseguire script che eseguano lo stesso. La conoscenza della topologia della rete sarà estremamente utile qui.
Determinazione della causa della perdita di pacchetti
Per determinare la causa principale della perdita di pacchetti, è necessario iniziare dal problema più semplice da rilevare e procedere all'indietro.
Innanzitutto, controlla la connessione Ethernet tra i dispositivi. Verificare la presenza di segni evidenti di danni fisici e collegamenti errati. I cavi funzionano correttamente? Lo spegnimento dei cavi risolve il problema? Controlla router e switch in modo simile.
In secondo luogo, determinare se c'è sufficiente larghezza di banda per gestire i dispositivi richiesti sulla rete. Qualunque pezzo dell'hardware gestisce molte più connessioni di quanto dovrebbe? Questo è spesso un processo di ricerca e sostituzione fino a quando il problema non si risolve. È inoltre possibile utilizzare uno switch e un router "noto", scambiandolo con i dispositivi potenzialmente problematici della rete per verificare se la perdita di pacchetti scompare quando viene rimosso un dispositivo specifico.
Come risolvere la perdita di pacchetti sulla rete
Una volta determinata la causa della perdita di pacchetti, è possibile applicare due correzioni.
Il primo riguarda la sostituzione dell'hardware problematico. Se la tua indagine porta a un dispositivo hardware che funziona in modo errato, sostituirlo.
Se la perdita di pacchetti è causata da bug del software, dovrai tentare di risolvere il problema da solo, provare a risolvere il bug o segnalare il bug al fornitore e sperare che lo risolvano. Per il software in-house, può essere più facile trovare una soluzione. Per il software di terze parti, dipende. Se sei un cliente importante, potresti essere in grado di risolvere il problema. In caso contrario, potresti rimanere bloccato mentre cerchi di utilizzare una soluzione alternativa.
Pensieri finali
La perdita di pacchetti si presenta spesso mentre le cose girano lentamente sulla rete. Naturalmente, qualcosa di così vago può essere causato da una varietà di cause alla radice. Se stai diagnosticando una rete poco efficiente, la perdita di pacchetti dovrebbe essere in cima alla lista. Una volta eliminata la perdita di pacchetti, è possibile passare a problemi più complessi.