ICMP

Internet Control Message Protocol (ICMP)), una rete di protocollo che ha la responsabilità di segnalare gli errori attraverso la generazione e l'invio di messaggi all'indirizzo IP di origine in caso di problemi di rete che il sistema incontra.[1] I messaggi generati dall'ICMP indicano che non è possibile raggiungere un certo gateway, router, servizio o persino un host che dovrebbe connettersi a Internet. In sostanza, il destinatario non può ricevere pacchetti durante la trasmissione. Qualsiasi dispositivo di rete IP può inviare, generare, ricevere ed elaborare messaggi di errore ICMP.

In altre parole, si può immaginare ICMP come una squadra che produce parti meccaniche per veicoli. Il modo migliore per assemblare un veicolo sarebbe quello di produrre ogni singolo pezzo prima di spedire ciascuno di questi pezzi alla catena di montaggio che li assemblerebbe in un prodotto più complesso. Tuttavia, come tutti sappiamo, ci saranno momenti in cui il team di produzione non sarà in grado di inviare alcuni dei pezzi in un lasso di tempo programmato. Se mai ci saranno parti mancanti, allora la catena di montaggio dovrà informare il team di produzione, quindi l'ICMP funziona allo stesso modo. In sostanza, l'ICMP svolge il ruolo di messaggero che trasmette dati e informazioni dal destinatario al mittente.

Funzionalità

Questo protocollo è in realtà piuttosto complesso. Ha numerose altre funzioni oltre alla semplice segnalazione di errori nella trasmissione dei pacchetti e di host che non possono essere raggiunti. Trasmette anche messaggi di eco, oltre che di risposta eco, anche messaggi. Questo viene utilizzato attraverso un noto comando PING che permette alla maggior parte degli utenti di trasmettere un eco ad un host ricevente. Invia una risposta eco ogni volta che viene ricevuto un eco.

Come tale, i messaggi ICMP forniscono un modo per la rete e il sistema per notificare l'indirizzo IP di origine, che è l'estremità di inoltro, se l'host remoto, che è l'estremità ricevente, non riceve i pacchetti che sono stati trasmessi.[2]

Un router viene utilizzato per trasmettere il popolare messaggio "Destinazione irraggiungibile" all'host di origine.[3] Questo lo invierebbe poi al dispositivo o al programma che per primo ha trasmesso i pacchetti di dati. Questi messaggi di errore avrebbero poi fatto sapere al programma che c'era un problema di connettività della rete. Una volta che il programma sorgente ha ricevuto l'informazione che alcuni di quei pacchetti di dati non sono arrivati al destinatario, ritrasmette queste informazioni al destinatario.

Come funzione principale, l'ICMP non è necessariamente utilizzato regolarmente dai singoli individui nelle applicazioni dell'utente finale, ma è utilizzato da numerosi amministratori di rete al fine di risolvere eventuali errori presenti nelle connessioni internet attraverso una diagnosi di utilità come:[4]

  1. Ping
  2. Traceroute

Il protocollo principale che l'ICMP utilizza è utilizzato da dispositivi intermedi, router e persino da host per comunicare in caso di errore e aggiornare i router, i dispositivi intermedi e gli host necessari. In questo caso, l'IPv4 (Internet Protocol versione 4) di uso universale e l'IPv6, molto più recente, utilizzano versioni simili del protocollo ICMP, che si chiamano rispettivamente ICMPv4 e ICMP6.[5]

In termini di come l'ICMP si riferisce alle diverse intestazioni di pacchetto, l'intestazione ICMP appare dopo l'intestazione di pacchetto IPv4 o IPv6 mentre viene riconosciuta da un numero di protocollo. Questo complesso protocollo contiene tre diversi componenti principali:[6]

  • Il componente principale che riconosce i messaggi ICMP.
  • Il codice minore che contiene i dati e le informazioni su questo certo tipo di campo.
  • La somma di controllo che aiuta effettivamente ad individuare il particolare problema introdotto durante la trasmissione del messaggio.

Messaggi ICMP

Il messaggio più popolare e conosciuto di un datagramma ICMP è il messaggio "Destinazione irraggiungibile".[1:1] Ci sono diversi motivi per cui viene generato questo messaggio, che include problemi come non riuscire a raggiungere una rete, un host, una porta o anche un protocollo difettoso.

La maggior parte degli utenti deve essere consapevole e deve anche tener conto del fatto che anche se il messaggio "Destination Unreachable" è il messaggio più comune ricevuto, non è l'unico messaggio che l'ICMP può trasmettere. Ci sono altri messaggi di errore che includono:[2:1]

  • Redirect Message - Questo è ciò che un gateway utilizza per far sapere all'host sorgente che sta per inviare traffico ad un router diverso.
  • Time Exceeded - Questo è ciò che un router dirà all'host sorgente che un certo pacchetto ha superato un certo lasso di tempo chiamato Time to Live (TTL). Quando un determinato host inizia a ricevere i pacchetti di informazioni "Time Exceeded", questo è un segno che c'è un problema all'interno del sistema in cui esiste un ciclo di feedback sul flusso di informazioni.
  • Source Quench - Questi sono messaggi che vengono inviati da un router verso l'host. In questo modo, la capacità di buffering è ora piena e interromperà brevemente il processo di trasmissione in modo da poter recuperare il resto dei dati.

Altri messaggi includono Problema di Parametro, Richiesta e risposta di Maschera di Indirizzo, Data e ora.

Restrizioni

Nonostante tutti questi ruoli che l'ICMP deve eseguire, ha alcune restrizioni funzionali. L'ICMP non aiuta l'host di origine o l'IP a diventare più affidabile e non riceve o invia dati che possono essere utilizzati per la trasmissione.[5:1] L'ICMP esiste semplicemente come un modo per identificare i problemi sui pacchetti persi e su qualsiasi instradamento interrotto.

Un ICMP non invia messaggi che riguardano messaggi ICMP.[2:2] Se questo dovesse mai accadere, questo causerebbe un ciclo di feedback che si rivelerebbe un danno per il sistema in quanto creerebbe un messaggio ICMP dall'altra parte. In questo modo la rete si replicherebbe rapidamente, al punto da inondare la rete, rendendola inefficace.


  1. https://searchnetworking.techtarget.com/definition/ICMP ↩︎ ↩︎

  2. https://www.pcwdld.com/what-is-icmp-and-port ↩︎ ↩︎ ↩︎

  3. https://www.comparitech.com/net-admin/what-is-icmp/ ↩︎

  4. https://www.techopedia.com/definition/5362/internet-control-message-protocol-icmp ↩︎

  5. http://www.enterprisenetworkingplanet.com/netsp/article.php/3584166/Networking-101-Understanding-and-Using-ICMP.htm ↩︎ ↩︎

  6. https://www.webopedia.com/TERM/I/ICMP.html ↩︎