05. Ping e traceroute

Ping

Il programma ping, disponibile su tutti i principali sistemi operativi, utilizza il protocollo ICMP per ottenere informazioni circa la raggiungibilità di un nodo di cui si conosca l'indirizzo IP.

Il programma invia il messaggio ICMP Echo Request ottenendo come risposta il messaggio Echo Replay.

Durante l'esecuzione il programma calcola il Round Trip Time (acronimo RTT), che rappresenta il tempo (espresso in millisecondi) impiegato da un pacchetto per raggiungere il destinatario e tornare indietro.

E' possibile utilizzare il comando ping per risalire al valore MTU della rete utilizzando alcune opzioni del comando. In ambiente Windows le opzioni sono:

Il comando da utilizzare è quindi del tipo:

ping 8.8.8.8 -l 2000 -f

Si tenga conto che l'intestazione di un pacchetto IP è di 20 byte e quella del pacchetto ICMP (incapsulato in IP) è di 8 byte.

Quindi con il precedente comando ping si valuterà se il valore di MTU è 2000+28=2028.

Nell'esempio mostrato in figura, poiché il pacchetto non raggiunge il destinatario, si potrà affermare che MTU è inferiore a 2028.

Procedendo per tentativi si può determinare il primo valore utile.

In questo esempio, il valore MTU rilevato è 1464+28=1492.

Il valore di partenza del campo TTL dipende dal sistema operativo (tipicamente i sistemi basati su linux partono dal valore 64 mentre Windows da 128) . Con il comando ping è possibile forzare tale valore con l'opzione -i. Ad esempio:

ping 8.8.8.8 -i 5

Traceroute

Questo programma consente di identificare i nodi attraversati da un pacchetto per raggiungere un destinatario.

Il programma sfrutta il campo TTL dell'header del datagram IP impostando valori crescenti in invii successivi.

In ambiente Windows il comando assume la seguente forma:

tracert 8.8.8.8

dove, ovviamente, l'indirizzo può essere qualsiasi.