Internet Control Message Protocol (ICMP) è un protocollo di rete per le reti IP. ICMP trasferisce le informazioni di controllo dello stato della rete stessa piuttosto che i dati una rete IP ha bisogno di ICMP per poter funzionare correttamente.

I messaggi ICMP sono di tipo specifico per messaggio IP distinto fra TCP e UDP.

L’esempio più conosciuto di me saggistica ICMP in pratica è la di utility ping, che utilizza ICMP per testare l’host remoto sulla sua capacità di rispondere e misurare il tempo totale di andata e ritorno del messaggio di prova. ICMP supporta anche altre di utility come traceroute che identificano i dispositivi di routing intermedi (hops) sul percorso fra la data sorgente e destinazione.

ICMP a confronto con ICMPv6 

La definizione originale di ICMP supportava il protocollo IP versione 4 (IPv4). IPv6 incorpora una forma revisionata del protocollo convenzionalmente chiamata ICMPv6 per distinguerlo dall’originale ICMP (occasionalmente chiamato ICMPv4).

Tipi di Messaggi e Formati ICMP  

I messaggi ICMP trasportano dati essenziali per l’operazione e l’amministrazione di una rete di computer. Il protocollo riporta sulle condizioni come la capacità di risposta dei dispositivi, gli errori di trasmissione e le problematiche relative al congestione mento della rete.

Come altri protocolli della famiglia IP, ICMP definisce una testata del messaggio. La testata contiene quattro campi nella sequenza seguente:

  • Tipo (8 bit)
  • Codice (8 bit)
  • Checksum (16 bit)
  • Dato ICMP (32 bit)

ICMP definisce una lista di tipi specifici di messaggio e assegna un numero unico a ciascuno. ICMPv4 e ICMPv6 forniscono alcuni tipi di messaggio une (ma spesso con numeri differenti) e anche alcuni messaggi unici per ciascuno. I tipi di messaggio comune possono anche variare leggermente nel loro comportamento fra versioni di IP.

il protocollo riempie i campi dati di codice e dato a seconda del tipo di messaggio prescelto per condividere informazioni addizionali. Per esempio, un messaggio di destinazione non raggiungibile può avere molti differenti valori di codice a seconda della natura dell’errore.

Rispondi