Il protocollo ICMP (Internet Control Message Protocol) è un protocollo che permette di gestire le informazioni relative agli errori dei terminali connessi.
Dato il basso controllo realizzato dal protocollo IP, esso permette non solo di correggere gli errori ma anche di informarne i protocolli di livelli vicini. Così, il protocollo ICMP è usato da tutti i router, che se ne servono per segnalare un errore (detto Delivery Problem).
I messaggi d'errore ICMP sono trasportati sulla rete sotto forma di datagramma, come qualsiasi altro dato. I messaggi di errore possono essere così essi stessi soggetti all'errore. Tuttavia in caso di errore su un datagramma che trasporta un messaggio ICMP, nessun messaggio di errore sarà rilevato per evitare un effetto "palla di neve" in caso di incidente sulla rete. Ecco a cosa assomiglia un messaggio ICMP incapsulato in un datagramma IP:
Intestazione | Messaggio ICMP
|
Tipo | Codice | Messaggio | Significato del messaggio |
8 | 0 | Richiesta di ECO | Questo messaggio è utilizzato quando si usa il comando PING. Questo comando, che permette di testare la rete, invia un datagramma ad un destinatario e gli chiede di restituirlo |
3 | 0 | Destinatario inaccessibile | La rete non è accessibile |
3 | 1 | Destinatario inaccessibile | Il terminale non è accessibile |
3 | 2 | Destinatario inaccessibile | Il protocollo non è accessibile |
3 | 3 | Destinatario inaccessibile | La porte non è accessibile |
3 | 4 | Destinatario inaccessibile | Frammentazione necessaria ma impossibile a causa del flag DF |
3 | 5 | Destinatario inaccessibile | Il router è fallito |
3 | 6 | Destinatario inaccessibile | Rete sconosciuta |
3 | 7 | Destinatario inaccessibile | Terminale sconosciuto |
3 | 8 | Destinatario inaccessibile | Terminale non connesso alla rete (inutilizzato) |
3 | 9 | Destinatario inaccessibile | Comunicazione con la rete vietata |
3 | 10 | Destinatario inaccessibile | Comunicazione con il terminale vietata |
3 | 11 | Destinatario inaccessibile | Rete inaccessibile per questo servizio |
3 | 12 | Destinatario inaccessibile | Terminale inaccessibile per questo servizio |
3 | 11 | Destinatario inaccessibile | Comunicazione vietata (filtraggio) |
4 | 0 | Source Quench | Quando il volume dei dati inviati è troppo importante, il router invia questo messaggio per prevenirne la saturazione richiedendo di ridurre la velocità di trasmissione |
5 | 0 | Reindirizzamento per un host | Il router osserva che il percorso di un computer non è ottimale e invia l'indirizzo del router da aggiungere nella tabella di router del computer |
5 | 1 | Reindirizzamento per un host e un servizio dato | Il router osserva che il percorso di un computer non è ottimale per un dato servizio e invia l'indirizzo del router da aggiungere nella tabella di router del computer |
5 | 2 | Reindirizzamento per una rete | Il router osserva che il percorso di un'intera rete non è ottimale e invia l'indirizzo del router da aggiungere nella tabella del router dei computer della rete |
5 | 3 | Reindirizzamento per una rete e un servizio dato | Il router osserva che il percorso di un'intera rete non è ottimale per un servizio dato e invia l'indirizzo del router da aggiungere nella tabella del router dei computer della rete |
11 | 0 | Tempo scaduto | Questo messaggio è inviato quando il tempo di vita di un datagramma è scaduto. L'intestazione del datagramma è rinviato affinché l'utente sappia quale datagramme è stato distrutto |
11 | 1 | Tempo di riassemblaggio di frammentazione scaduto | Questo messaggio è inviato quando il tempo di riassemblaggio dei frammenti di un datagramma è scaduto. |
12 | 0 | Intestazione errata | Questo messaggio è inviato quando un campo di intestazione è errato. La posizione dell'errore viene rinviata |
13 | 0 | Time stamp request | Un terminale richiede ad un altro la sua ora e data sistema (universale 9) |
14 | 0 | Timestamp reply | Il terminale ricevitore da la propria ora e data sistema affinché il terminale emettitore possa determinare il tempo di trasferimento dei dati |
15 | 0 | Richiesta di indirizzo di rete | Questo messaggio permette di richiedere alla rete un indirizzo IP |
16 | 0 | Risposta dell'indirizzo IP | Questo messaggio risponde al messaggio precedente |
17 | 0 | Richiesta di maschera di sub-rete | Questo messaggio permette di richiedere alla rete una maschera di bub-rete |
18 | 0 | Risposta di maschera di sub-rete | Questo messaggio risponde al messaggio precedente |
17 | 0 | Timestamp reply | Il terminale ricevitore da la propria ora e data sistema affinché il terminale emettitore possa determinare il tempo di trasferimento dei dati |
Per ulteriori informazioni sul protocollo ICMP, è meglio fare riferimento alla RFC 792 che spiega in dettaglio il protocollo: RFC 792.
Foto: © Pixabay.