[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico] [volume] [parte]
I messaggi ICMP qualificano i pacchetti del protocollo ICMP, che al contrario di TCP e di UDP non hanno le porte. Il messaggio ICMP è composto da un numero, che ne definisce il tipo, con l'aggiunta eventuale di un altro numero che indica il codice, da intendere in pratica come un sottotipo. L'elenco successivo è limitato ai tipi fondamentali:
|
Il Ping funziona attraverso l'invio di un pacchetto ICMP di tipo 8, che rappresenta una richiesta di eco, con la quale si ottiene normalmente una risposta consistente in un pacchetto ICMP di tipo 0.
|
$
ping -c 3 dinkel.brot.dg
[Invio]
PING dinkel.brot.dg (192.168.1.1): 56 data bytes 64 bytes from 192.168.1.1: icmp_seq=0 ttl=255 time=0.4 ms 64 bytes from 192.168.1.1: icmp_seq=1 ttl=255 time=0.5 ms 64 bytes from 192.168.1.1: icmp_seq=2 ttl=255 time=0.7 ms --- dinkel.brot.dg ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 0.4/0.5/0.7 ms |
I pacchetti Ping, sia di richiesta di eco, sia di risposta, possiedono un numero di ordine, icmp_seq, che consente di verificare con quale sequenza vengono restituiti i pacchetti di risposta dalla rete.
I pacchetti IP possiedono un'informazione denominata TTL, ovvero Time to live. Il valore di questo campo va da 0 a 255 e viene deciso da chi genera il pacchetto. Ogni volta che un pacchetto attraversa un nodo (un router o qualcosa che svolge un compito simile), questo nodo deve provvedere a ridurre di un'unità questo valore. Quando un nodo riceve un pacchetto con un valore TTL pari a zero, lo elimina, mandando al mittente un pacchetto ICMP di tipo 11, «tempo scaduto», che indica l'impossibilità di raggiungere la destinazione con quel valore TTL di partenza.
|
I messaggi ICMP di tipo 3 sono essenziali per garantire il funzionamento della rete. |
Traceroute sfrutta i messaggi ICMP di tipo 11 e di tipo 3 per disegnare la mappa dei pacchetti inviati a un certa destinazione. Invia una serie di pacchetti, UDP o ICMP, partendo da un valore TTL iniziale pari a zero, incrementando successivamente, fino a raggiungere la destinazione richiesta.
|
$
/usr/sbin/traceroute www.swlibero.org
[Invio]
traceroute to master.swlibero.org (62.152.34.17), \ |
Traceroute chiama il valore TTL come hop, salto. Nell'esempio viene usato un valore massimo di 30 (che comunque risulta più che sufficiente).
Traceroute utilizza generalmente un pacchetto UDP destinato alla porta 33 434+n, dove n rappresenta il valore TTL iniziale. Supponendo che non ci sia nulla in ascolto in quella porta nel nodo di destinazione, l'ultimo nodo restituisce un pacchetto ICMP di tipo 3, codice 3: «porta irraggiungibile».
Quando un pacchetto di un protocollo TCP o UDP raggiunge un router che non è in grado di instradarlo, perché consapevole di non poter raggiungere la destinazione richiesta, il pacchetto viene bloccato, restituendo al mittente un pacchetto ICMP di tipo 3: «destinazione irraggiungibile».
|
I messaggi ICMP sono importanti per garantire il funzionamento della rete; in particolare, i messaggi di tipo 3 sono fondamentali per garantire il funzionamento dei router dinamici che modificano l'instradamento al mutare delle condizioni della rete.
Appunti di informatica libera 2007.02 --- Copyright © 2000-2007 Daniele Giacomini -- <daniele (ad) swlibero·org>
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome messaggi_icmp.htm
[successivo] [precedente] [inizio] [fine] [indice generale] [indice ridotto] [indice analitico]