Inefficient coding, basically.
Traceroute is based on modifying the Time To Live of the packet. Packets have a TTL field so that you can’t have a situation where a packet just circles around the network forever if a loop is somehow made. So each packet has a TTL value, which is decremented on every router it passes through. Once you reach zero, the router drops the packet, and sends an ICMP Time Exceeded packet to the sender.
That’s how you get that list: first try a TTL of 1, then 2, then 3…
It’s slow probably because you’re using a simply coded and inefficient program that doesn’t exploit parallelism and instead goes step by step. On Linux try `mtr` instead.
Latest Answers