How does traceroute calculate asymmetric routing ?

This was a question i raised a while ago but never ended up getting round to creating an article.

So as we know the basics of traceroute is that it sends out a bunch of UDP packets each packet with a TTL 1 higher then the previous one. When the hop receives the packet and the TTL becomes 0 it sends back a ICMP TTL exceeded and the traceroute has all the information to trace the route.

At the point of the TTL exceeded packet being sent the device sets its TTL to 255 which calculates the amount of hops the packet takes on the way back which allows traceroute to match the UDP TTL to the return ICMP TTL and if they do not match announce an asymmetric route.

Tags: Traceroute