Traceroute (även känd som tracert i Windows) är ett nätverksverktyg som bestämmer sökvägen för paket över Internet eller ett privat nätverk genom att använda Internet Control Message Protocol (ICMP) Echo Request och Echo Reply-meddelanden. Traceroute hjälper till att lokalisera var potentiella nätverksproblem, såsom latens, paketförlust eller överbelastning, kan uppstå längs vägen mellan två nätverksanslutna enheter.
Det allmänna konceptet för hur traceroute använder ICMP ECHO-förfrågningar för sökvägsspårning är följande:
1. Traceroute börjar med att skicka ett ICMP ECHO-begäranmeddelande med ett lågt Time-to-Live-värde (TTL), vanligtvis från 1. TTL-fältet i ett IP-paket anger hur många nätverksenheter (routrar eller switchar) paketet kan passera genom innan den slängs.
2. ICMP ECHO-begäran skickas till destinations-IP-adressen som användaren vill spåra rutten till.
3. Varje nätverksenhet längs vägen som tar emot ICMP ECHO-begäran minskar TTL-värdet med 1. Om TTL når 0 innan paketet når sin destination skickar enheten tillbaka ett ICMP Time Exceeded-meddelande med originalpaketet inkluderat.
4. Traceroute tar emot ICMP Time Exceeded-meddelanden och extraherar IP-adressen och annan relevant information från nätverksenheterna som svarade. Denna information används för att bestämma vägen som paketen tar.
5. Traceroute fortsätter att skicka ICMP ECHO-förfrågningar med gradvis ökande TTL-värden tills destinationens IP-adress nås, eller tills ett maximalt TTL-värde uppnås. Detta gör att traceroute kan identifiera hela rutten som paketen tar.
Genom att analysera svaren som mottagits från nätverksenheterna längs vägen, kan traceroute visa en lista över mellanliggande hopp (nätverksenheter) som paketen passerar, tillsammans med den tid det tar för varje hopp och eventuella paketförluster. Denna information hjälper nätverksadministratörer och användare att felsöka problem med nätverksanslutning, identifiera latenspunkter och bestämma den bästa vägen mellan två noder i ett nätverk.
Det är värt att notera att även om traceroute främst använder ICMP ECHO-förfrågningar, kan vissa versioner också använda andra protokoll, såsom User Datagram Protocol (UDP) eller Transmission Control Protocol (TCP), för sökvägsspårning. På Windows-system kan tracert-kommandot dessutom använda TCP istället för ICMP som standard.