Internet Control Message Protocol

In telecomunicazioni e informatica l'Internet Control Message Protocol (ICMP) è un protocollo di servizio per reti a pacchetto che si occupa di trasmettere informazioni riguardanti malfunzionamenti, informazioni di controllo o messaggi tra i vari componenti di una rete di calcolatori.

Descrizione 

ICMP è incapsulato direttamente in IP (è un protocollo di livello 3 dello stack TCP/IP) e non è quindi garantita la consegna a destinazione dei pacchetti. Viene utilizzato da molti applicativi di rete, tra cui ping e traceroute.

È definito nelle seguenti RFC:
 RFC 0792: Internet Control Message Protocol - settembre 1981
 RFC 1349: Type of Service in the Internet Protocol Suite - luglio 1992
 RFC 1788: ICMP Domain Name Messages - aprile 1995
 RFC 2463: Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification - dicembre 1998
 RFC 2521: ICMP Security Failures Messages - marzo 1999

Incapsulamento 
Un messaggio ICMP viene incapsulato in IP:
 
   +------------+-----------+-------------+----------
   | Header L2  | Header IP | Header ICMP | Dati....
   +------------+-----------+-------------+----------

Header ICMP
ICMP può essere usato per veicolare diversi tipi di messaggi di gestione, identificati primariamente dal tipo e dal relativo codice.

 bit del messaggio:
 
    0                   1                   2                   3
    0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Tipo      |    Codice     |  Checksum dell'Header ICMP    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |     Dati....
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

Tipo
Byte (8 bit), specifica il formato del messaggio ICMP:
 0 Echo reply
 1 Non assegnato
 2 Non assegnato
 3 Destinazione irraggiungibile
 4 Source quench
 5 Redirect
 6 Indirizzo host alternativo
 7 Non assegnato
 8 Echo request
 9 Router advertisement
 10 Router selection
 11 Time to Live scaduto
 12 Errore nei parametri
 13 Timestamp request
 14 Timestamp reply
 15 Information Request
 16 Information Reply
 17 Richiesta address mask
 18 Risposta address mask
 19 Riservato (per sicurezza)
 20-29 Riservati (per test di robustezza)
 30 Traceroute
 31 Errore di conversione datagramma
 32 Redirect su host mobile
 33 IPv6 Where-Are-You
 34 IPv6 I-Am-Here
 35 Mobile Registration Request
 36 Mobile Registration Reply
 37 Domain Name request
 38 Domain Name reply
 39-255 Non assegnati

Codice
Byte (8 bit), ulteriore qualificazione del messaggio

Checksum dell'Header ICMP
Word (16 bit), controllo della correttezza del messaggio.

È il complemento a uno, troncato a 16 bit, del complemento a uno della somma dei primi bit del messaggio con il campo "Tipo".

Dati
Lunghezza variabile, sono i dati specifici del tipo di messaggio identificato dai campi "Tipo" e "Codice"

Voci correlate 
Internet
TCP/IP
ICMPv6

Altri progetti

Collegamenti esterni 
 
  RFC 792, Internet Control Message Protocol
  RFC 1122, Requirements for Internet Hosts -- Communication Layers
  RFC 1700, Assigned Numbers
  RFC 1716, Requirements routers
 
 

Protocolli di Internet
Protocolli livello rete