in

Cos’è l’Internet Control Message Protocol (ICMP) e come funziona?

ICMP è un protocollo per determinare la disponibilità della rete e gestire il controllo del flusso e degli errori a livello di rete. Ma cosa significa in pratica?

ICMP (Internet Control Message Protocol) è un protocollo di terzo livello (livello di rete) nel modello a sette livelli OSI. Il protocollo diagnostica la connettività di rete o i problemi di trasmissione dei dati tra i dispositivi. Aiuta inviando, ricevendo ed elaborando messaggi ICMP per segnalare problemi di connettività al dispositivo di rete di origine.

Pertanto, lo scopo principale del protocollo ICMP è quello di segnalare errori a livello di rete. Tuttavia, gli attori malintenzionati possono manipolare le sue funzionalità per lanciare attacchi come attacchi DDoS (Distributed Denial of Service) e Ping of Death. Qui imparerai a conoscere il protocollo ICMP, il suo caso d’uso e i parametri importanti per comprendere i messaggi ICMP.

Come funziona ICMP?

I router utilizzano il protocollo ICMP per eseguire la gestione della rete e la diagnosi dei problemi. Genera e invia messaggi di errore al dispositivo mittente quando la rete disabilita il recapito dei pacchetti al dispositivo di destinazione. Questi messaggi di errore includono il tempo superato, il problema dei parametri, la destinazione irraggiungibile, la congestione della rete, ecc.

Ad esempio, quando un mittente invia dati da un dispositivo al dispositivo di destinazione sotto forma di datagramma IP, viaggia attraverso più router o dispositivi intermedi. A volte, può esserci un errore nell’inoltro del datagramma IPV4. Pertanto, i messaggi ICMP sono divisi in due grandi categorie: messaggi di errore e messaggi di query.

Messaggi di segnalazione errori

Questi sono i messaggi che il router o l’host intermediario può affrontare nell’elaborazione del datagramma:

  1. Tempo superato: Il pacchetto ICMP ha un parametro time-to-live che quando raggiunge 0, il router o l’host scarta il datagramma e invia un messaggio di errore di tempo superato. Il messaggio viene inviato anche quando la destinazione non riceve tutti i frammenti di dati.
  2. Destinazione non raggiungibile: Il dispositivo che avvia la connessione riceve un messaggio di errore di destinazione non raggiungibile quando il router o l’host intermedio non riesce a recapitarlo. Di conseguenza, i dispositivi scartano il datagramma.
  3. Fonte Quench: Quando i dispositivi non riescono a consegnare il datagramma a causa della congestione della rete, inviano un “messaggio di spegnimento sorgente” ICMP al mittente del messaggio. Il messaggio di segnalazione errori aggiunge il controllo del flusso nel livello di rete informando il dispositivo di origine della congestione nel percorso e rallentando il processo di invio dei dati.
  4. Reindirizzamento: Un router in un percorso non ottimale reindirizza il pacchetto a un router con un percorso ottimale tra l’origine e la destinazione. Come tale, aggiorna la fonte sul cambiamento nel suo percorso.
  5. Problema dei parametri: Il dispositivo di origine riceve questo messaggio quando nell’intestazione del datagramma è presente un valore mancante. Ad esempio, la differenza nel checksum calcolato nella destinazione dall’origine genera questo messaggio di errore ICMP.

Messaggi di query

I messaggi di query si verificano in coppie e forniscono informazioni specifiche dai dispositivi intermedi al dispositivo di origine.

  1. Echo-Request e Echo-Reply Messaggio: Questi messaggi consentono di risolvere i problemi di diagnostica di rete.
  2. Richiesta e risposta con timestamp: Queste richieste di timestamp e messaggi di risposta aiutano a determinare il tempo di andata e ritorno tra i dispositivi.

Informazioni sui parametri ICMP

I dati dei messaggi ICMP sono incapsulati sotto l’intestazione IP, il che significa che l’intestazione del datagramma ICMP viene dopo le informazioni IPv4 / v6. La prima parte dell’intestazione del pacchetto ICMP contiene i parametri che consentono ai dispositivi di rete di determinare l’errore o il messaggio di query.

Tra i primi 32 bit, i primi 8 bit determinano il tipo di messaggio, i successivi 8 bit determinano il codice del messaggio e i bit rimanenti contengono informazioni relative all’integrità dei dati. Quindi, i tre campi informativi sono: tipi ICMP, codice ICMP e Checksum.

Tipi icmp

Il tipo determina lo scopo del pacchetto ICMP. Come spiega brevemente perché il dispositivo di origine sta ricevendo quel messaggio. Esistono 0-255 tipi di messaggi ICMP in modo tale che ogni tipo fornisca informazioni diverse. Alcuni importanti tipi di ICMP sono:

0: Richiesta Echo

3: Destinazione irraggiungibile

4: Quench di origine

5: Reindirizzamento

8: Risposta Echo

11: Tempo superato

12: Problema di parametro

30: Traceroute

Codice ICMP

Il codice ICMP fornisce ulteriori informazioni sui messaggi. Ad esempio, ICMP tipo 3 con codice 0-15 specifica perché la destinazione non è raggiungibile; cioè, se il codice è 0, allora è perché la rete non è disponibile. Analogamente, per il codice 1 di tipo 3, il messaggio specifica che l’host non è raggiungibile.

Inoltre, il codice di tipo 8 0 e il codice di tipo 0 0 rappresentano i messaggi di richiesta di eco e di risposta all’eco. Pertanto, ogni tipo di messaggio con lo stesso valore di codice fornisce informazioni di rete diverse.

Checksum

Il checksum è un meccanismo di rilevamento degli errori che determina l’integrità dei dati. Il valore di checksum rappresenta i bit nel messaggio di trasmissione. Il mittente calcola e include il checksum dei dati e il destinatario ricalcola il valore e lo confronta con quello originale per determinare eventuali modifiche al messaggio originale durante la trasmissione.

La seconda parte dell’intestazione punta al valore in byte che è la causa del problema nel messaggio originale. Infine, la parte finale del pacchetto ICMP è il datagramma effettivo.

Esempi di ICMP in uso

Ecco alcuni esempi di lavoro del protocollo ICMP in varie utilità amministrative e di gestione della rete.

Ping

Ping è un’utilità della riga di comando che si basa sui messaggi di richiesta eco ICMP e di risposta eco per testare la disponibilità e la latenza della rete tra i dispositivi. L’utilità determina semplicemente la disponibilità del server di destinazione stimando il pacchetto totale inviato o ricevuto e la percentuale di perdita di pacchetti. Aiuta anche a determinare la dimensione totale massima dell’unità di trasmissione (MTU).

Utilizza il ping <ip_address> per determinare Google. Com disponibilità:

Traceroute

Traceroute è un’altra utilità della riga di comando che utilizza messaggi echo-request e echo-reply con una variabile TTL per mappare il percorso tra i dispositivi di origine e di destinazione. È anche utile per determinare i ritardi di risposta e garantisce l’accuratezza interrogando ogni hop più volte.

Come funziona ICMP senza una porta?

Dalla spiegazione precedente, ICMP è un protocollo senza connessione che invia dati in modo indipendente come datagramma e la sua intestazione appare dopo i dettagli IPv4. Tuttavia, puoi anche notare l’assenza di un numero di porta che solleva la questione di come i dispositivi ricevono i dati ICMP o vengono a conoscenza di qualsiasi connessione?

La risposta è piuttosto semplice. Il protocollo ICMP è stato progettato per funzionare a livello di rete del modello OSI e comunicare tra router e host per condividere informazioni. I numeri di porta fanno parte del livello di trasporto e ICMP non è né un protocollo TCP né un protocollo UDP. Infine, la combinazione di tipo ICMP e codice aiuta i dispositivi a determinare il messaggio e ottenere tutte le informazioni sulla rete.

Controllo di errori e flusso con ICMP

I dettagli di cui sopra sul protocollo ICMP mostrano come garantisce il controllo del flusso e il controllo degli errori dei dati al livello tre di un modello OSI. I messaggi e i parametri di protocollo nella prima parte dell’intestazione del pacchetto ICMP coprono tutti gli aspetti della gestione della rete e dei problemi di diagnosi.

È importante sapere che impostazioni firewall improprie possono consentire agli aggressori di eseguire il ping sweep attraverso la rete dell’organizzazione e renderla soggetta ad attacchi DDOS, ping of death e ICMP flood. È possibile utilizzare Wireshark per acquisire pacchetti da Internet ed eseguire un’analisi dettagliata dei pacchetti ICMP per una migliore comprensione.

Cosa ne pensi?

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

È legale utilizzare un assistente vocale durante la guida?

MBR vs GPT: quale dovresti usare per il tuo SSD?