close

ICMP

Vai alla navigazione Vai alla ricerca
ICMP
Nome Protocollo messaggi di controllo Internet
Livello (secondo il modello OSI ) Rete
Famiglia TCP/IP
Specifica RFC 792
 File multimediali su Wikimedia Commons

ICMP (  Internet Control Message Protocol ) è un protocollo di rete incluso nello stack del protocollo TCP/IP .  ICMP viene utilizzato principalmente per segnalare errori e altre eccezioni che si verificano durante la trasmissione dei dati, ad esempio il servizio richiesto non è disponibile o l'host o il router non risponde. Anche alcune funzioni di servizio (servizi) sono assegnate a ICMP.

Dettagli tecnici

Il protocollo ICMP è descritto in RFC 792 del 1981 da Jon Postel (con aggiunte in RFC 950 ). ICMP è uno standard Internet (incluso in STD 5 insieme a IP ). Sebbene il protocollo utilizzi formalmente IP (i pacchetti ICMP sono incapsulati in pacchetti IP), è parte integrante di IP ed è obbligatorio quando si implementa lo stack TCP/IP . La versione corrente di ICMP per IPv4 si chiama ICMPv4. IPv6 ha un protocollo simile, ICMPv6 .

Un messaggio ICMP viene creato dai pacchetti IP che hanno generato la risposta ICMP. Il protocollo IP incapsula il messaggio ICMP corrispondente con una nuova intestazione IP (per inviare il messaggio ICMP al mittente) e inoltra i pacchetti ricevuti.

Ad esempio, ogni macchina che inoltra pacchetti IP (come un router ) decrementa di uno il campo TTL ( Time to live ) dell'intestazione del pacchetto IP; se il TTL raggiunge 0, un messaggio ICMP TTL superato viene inviato all'origine del pacchetto.

ICMP si basa sul protocollo IP. Ogni messaggio ICMP è incapsulato direttamente all'interno di un singolo pacchetto IP e quindi, come UDP ea differenza di TCP , ICMP è un cosiddetto. “inaffidabile” (non controlla la consegna e la sua correttezza). A differenza dell'UDP, in cui l'implementazione dell'affidabilità è assegnata al software del livello dell'applicazione, ICMP (a causa delle specifiche dell'applicazione) di solito non ha bisogno di implementare una consegna affidabile. Il suo scopo è diverso da quello dei protocolli di trasporto come TCP e UDP: generalmente non viene utilizzato per inviare e ricevere dati tra sistemi finali. ICMP non viene utilizzato direttamente nelle applicazioni utente di rete (ad eccezione degli strumenti Ping e Traceroute ). Lo stesso Ping, ad esempio, di solito serve proprio per verificare la perdita di pacchetti IP lungo il percorso.

Utilizzo dei messaggi ICMP

I messaggi ICMP (tipo 12) vengono generati quando vengono rilevati errori nell'intestazione di un pacchetto IP (ad eccezione dei pacchetti ICMP stessi, in modo da non portare a un flusso infinitamente crescente di messaggi ICMP sui messaggi ICMP).

I messaggi ICMP (tipo 3) vengono generati dal router quando non esiste un percorso verso la destinazione.

L' utilità Ping , che verifica se i pacchetti IP possono essere consegnati, utilizza messaggi ICMP di tipo 8 (richiesta eco) e 0 (risposta eco).

L' utilità Traceroute , che visualizza il percorso dei pacchetti IP, utilizza i messaggi ICMP di tipo 11.

I messaggi ICMP di tipo 5 vengono utilizzati dai router per aggiornare le voci nella tabella di routing del mittente .

I messaggi ICMP di tipo 4 vengono utilizzati dal destinatario (o router) per controllare la velocità con cui i messaggi vengono inviati dal mittente.

Formato pacchetto ICMP

Ottetto (byte) 0 uno 2 3 quattro 5 6 7 otto 9 dieci undici 12 13 quattordici quindici 16 17 diciotto 19 venti 21 22 23 24 25 26 27 28 29 trenta 31
[0-3] Tipo di Il codice Verifica somma
Dati (il formato dipende dai valori dei campi "Codice" e "Tipo")
Tipi di pacchetti ICMP
Tipo di Stato Il codice Messaggio Dati (lunghezza, bit)
0 0 risposta eco
ID (16) Numero di sequenza (16)
Dati (variabile)
12 non usato riservato
3 Destinazione irraggiungibile
Non utilizzato (32)
Intestazione IP, inizio del datagramma di origine (64)
0 Rete irraggiungibile
uno Nodo irraggiungibile
2 Protocollo irraggiungibile
3 Porto irraggiungibile
quattro È richiesta la frammentazione, ma il relativo flag di disabilitazione (DF) è impostato
5 Percorso non valido dalla fonte
6 Rete di destinazione sconosciuta
7 Host di destinazione sconosciuto
otto Sorgente del nodo isolata
9 La rete è amministrativamente vietata
dieci Il nodo è amministrativamente vietato
undici Rete non disponibile per ToS
12 Nodo irraggiungibile per ToS
13 La comunicazione è amministrativamente vietata
quattordici Violazione dell'ordine delle preferenze del nodo
quindici Eliminazione dell'ordine di preferenza attiva
quattro obsoleto 0 Contenimento della sorgente (arresto della sorgente in caso di overflow della coda)
5 reindirizzare
Indirizzo del router (32)
Intestazione IP, inizio del datagramma di origine (64)
0 Inoltro di pacchetti alla rete
uno Inoltro di pacchetti a un host
2 Inoltro per tipo di servizio (ToS)
3 Inoltro di un pacchetto a un host per ogni tipo di servizio
6 obsoleto 0 Indirizzo host alternativo
7 non usato riservato
otto 0 richiesta di eco
ID (16) Numero di sequenza (16)
Dati (variabile)
9 0 Annuncio del router
Numero di indirizzi (8) Dimensione articolo (8) Validità (16)
Indirizzo[1] (32)
Preferenza[1] (32)
Indirizzo[N] (32)
Preferenza[N] (32)
dieci 0 Richiesta router
Non utilizzato (32)
undici Durata del datagramma scaduta
Non utilizzato (32)
Intestazione IP, inizio del datagramma di origine (64)
0 Tempo di permanenza del pacchetto (TTL) scaduto durante il transito
uno La durata del pacchetto è scaduta durante la creazione di frammenti
12 Parametro non valido (problema con i parametri del datagramma: errore nell'intestazione IP o opzione richiesta mancante)
0 Il puntatore indica un errore
Puntatore (8) Non utilizzato (24)
Intestazione IP, inizio del datagramma di origine (64)
uno Manca l'opzione richiesta
Non utilizzato (32)
Intestazione IP, inizio del datagramma di origine (64)
2 Lunghezza errata
13 0 Richiesta marca temporale
ID (16) Numero di sequenza (16)
Orario di inizio (32)
Orario di ricezione (32)
Orario di partenza (32)
quattordici 0 Risposta con timestamp
quindici obsoleto 0 Richiesta di informazioni
ID (16) Numero di sequenza (16)
16 obsoleto 0 Risposta informativa
17 obsoleto 0 Richiesta maschera indirizzo
ID (16) Numero di sequenza (16)
Maschera (32)
diciotto obsoleto 0 Risposta maschera indirizzo
19 riservato Riservato (per sicurezza)
20-29 riservato Riservato (per esperimenti di tolleranza agli errori)
trenta obsoleto Traccia percorso
ID (16) Non utilizzato (16)
Numero di luppoli in uscita pacchetto (16) Numero di salti del pacchetto di ritorno (16)
Velocità di collegamento (32)
Collegamento MTU (32)
0 Pacchetto in uscita inviato correttamente
uno Percorso del pacchetto in uscita non trovato, pacchetto distrutto
31 obsoleto Errore di conversione del datagramma
Puntatore (32)
IP e intestazione di trasporto del datagramma originale
0 Errore sconosciuto o non specificato
uno Impossibile convertire l'opzione
2 Opzione richiesta sconosciuta
3 Opzione richiesta non supportata
quattro Protocollo di trasporto non supportato
5 Lunghezza totale superata
6 La lunghezza dell'intestazione IP è stata superata
7 Numero protocollo di trasporto maggiore di 255
otto Numero di porta fuori intervallo
9 La lunghezza dell'intestazione del protocollo di trasporto è stata superata
dieci Attraversamento del confine a 32 bit e set di bit ACK
undici Opzione del protocollo di trasporto richiesta sconosciuta
32 obsoleto Reindirizzamento dell'host mobile
33 obsoleto IPv6 Dove sei (dove sei)
34 obsoleto IPv6 I-Am-Here (sono qui)
35 obsoleto Richiesta di reindirizzamento del nodo mobile
36 obsoleto Risposta a una richiesta di reindirizzamento per un nodo mobile
37 obsoleto Richiesta del nome di dominio
38 obsoleto Risposta a una richiesta di nome di dominio
39 obsoleto SKIP messaggio ICMP rilevamento algoritmo
40 Photuris  
0 riservato
uno Indice delle impostazioni di sicurezza sconosciuto
2 Le impostazioni di sicurezza sono corrette, ma si è verificato un errore di autenticazione
3 Le impostazioni di sicurezza sono corrette, ma la decrittografia non è riuscita
quattro Autenticazione richiesta
5 Autorizzazione Richiesta
41 sperimentale
42-252 riservato
253-254 sperimentale Riservato per la sperimentazione RFC 3692
255 riservato riservato

Regole per la generazione di pacchetti ICMP

  1. Se un pacchetto ICMP viene perso, non ne viene mai generato uno nuovo.
  2. I pacchetti ICMP non vengono mai generati in risposta a pacchetti IP con un indirizzo broadcast o multicast in modo da non causare congestione della rete (denominata " tempesta di trasmissione ").
  3. Se un pacchetto IP frammentato è danneggiato, il messaggio ICMP viene inviato immediatamente dopo aver ricevuto il primo frammento danneggiato, poiché il mittente ritrasmetterà comunque l'intero pacchetto IP.

Vedi anche

Note

  1. Protocollo ICMP . Estratto il 29 ottobre 2017 . Archiviato dall'originale il 14 marzo 2016.

Collegamenti