Un traceroute è una applicazione avente lo scopo di tracciare il percorso effettuato dai pacchetti sulle reti informatiche. Scopo del traceroute è, in altre parole, quello di garantire la tracciabilità dell’indirizzo IP di ogni router che è stato oggetto del suo percorso per raggiungere il destinatario del pacchetto. Oltre alla applicazione in quanto tale, il termine traceroute serve anche ad indicare il percorso compiuto dalla stessa applicazione.
Per potere adempiere alla propria funzione, tale applicazione gioca il proprio ruolo sul campo TTL proprio del protocollo IP. Il campo TTL specifica quanti apparecchi il pacchetto potrà attraversare prima di essere bollato come scaduto. Matematicamente e logicamente parlando, il modo di ottenere tale scopo è molto semplice, dal momento in cui ogni router che riceve il pacchetto, prima di continuare la catena ed inviarlo di nuovo, diminuisce tale valore di uno. Qualora tale valore dovesse raggiungere lo 0, colui il quale ha azionato il pacchetto riceverebbe un errore ICMP.
Conclusivamente, il meccanismo del traceroute è presto detto: esso invia un pacchetto al soggetto del quale si vuole ottenere la tracciabilità il cui campo TTL è impostato ad 1. Il primo router con cui esso entrerà in contatto invierà un errore al mittente. L’applicazione terrà in memoria l’indirizzo IP del primo router ed invierà un ulteriore pacchetto, con TTL settato a 2, fino a che il pacchetto non sarà arrivato al destinatario. Scopo del procedimento, come detto, è ottenere l’elenco degli indirizzi IP dei router attraversati dai pacchetti.
Tale meccanismo, per quanto ingegnoso, non è ovviamente perfetto: un primo inconveniente è quello per il quale se i pacchetti ed i relativi messaggi di errore dovessero seguire percorsi differenti, ovviamente non sarebbe possibile operare un calcolo sulla risposta del router; secondo problema è palesemente quello per cui i pacchetti possono seguire differenti percorsi. In questo modo gli indirizzi ottenuti si riferiscono a percorso differenti, e l’operazione perde di affidabilità.