Ogni pacchetto di dati inviato include un valore TTL all'interno dell'intestazione del pacchetto IP. Questo si riferisce al numero di salti che i dati possono attraversare prima di essere scartati. In base al traffico di rete tra host, è possibile prevedere quale sistema operativo è in esecuzione su un sistema. Ogni sistema operativo ha il suo modo unico per implementare lo stack TCP/IP. Un metodo passivo molto semplice ma efficace consiste nell'esaminare il tempo di vita iniziale (TTL) nell'intestazione IP:
"Time to live superato" questo errore ping ICMP è dovuto al raggiungimento del valore zero del campo TTL o al timeout per il riassemblaggio dei segmenti. Come soluzione, raccomanderò di aumentare il valore TTL (Time To Live) (il più alto è 255).
Soluzione
Ad esempio, esegui traceroute su indirizzo IP 8.8.8.8 (il server DNS pubblico di Google). E trova il numero di salti verso la destinazione.
[root@server ~]# traceroute 8.8.8.8 (in linux distro) C:\>tracert 8.8.8.8 (in Windows OS)
Per me sono 6 salti a 8.8.8.8. Quindi è necessario un valore TTL minimo di 6 per raggiungere i pacchetti icmp a 8.8.8.8 e ottenere la riproduzione del ping. E non è possibile eseguire il ping su 8.8.8.8 con un valore TTL pari o inferiore a 5.
Risultati ping con valori TTL diversi:
[root@server ~]# ping 8.8.8.8 -t 5 (-t 5 is for custom TTL value of 5) PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. From 192.168.1.1 icmp_seq=1 Time to live exceeded From 192.168.1.1 icmp_seq=2 Time to live exceeded From 192.168.1.1 icmp_seq=3 Time to live exceeded From 192.168.1.1 icmp_seq=4 Time to live exceeded
# ping 8.8.8.8 -t 6 (-t 6 è per il valore TTL personalizzato di 6)
PING 8.8.8.8 (8.8.8.8) 56(84) byte di dati.
64 byte da 8.8.8.8:icmp_req=1 ttl=55 time=48,9 ms
64 byte da 8.8.8.8:icmp_req=2 ttl=55 time=49,5 ms
64 byte da 8.8.8.8:icmp_req=3 ttl=55 tempo=50,4 ms
64 byte da 8.8.8.8:icmp_req=4 ttl=55 tempo=49,4 ms