unixnetworkingtraceroute

How does traceroute work?


It seems almost magical. What is the traceroute command doing in order to map out the entire path to some other node on the Internet?


Solution

  • Traceroute transmits packets with small TTL (Time To Live) values. The TTL is an IP header field that is used to prevent packets from running into endless loops. When a router that handles the packet subtracts one from the packet's TTL. The packet expires and it's discarded when the TTL reaches zero.

    Traceroute sends ICMP Time Exceeded messages, (RFC 792), back to the sender when this occurs. By using small TTL values, the packets will quickly expire, so traceroute causes all routers along a packet's path to generate the ICMP messages that identify the router.

    For example, TTL = 1 should produce the message from the first router, TTL = 2 generates a message from the second router in the path, and so on...