Tech Info on Ping and Traceroute


Traceroute is historically, and in accordance with internet standards, correctly implemented by sending UDP packets to unused, high number port numbers (typically starting at port 33434 with the port number incrementing once per hop usually), and changing the packet Time To Live value (TTL). The result is a series of ICMP TTL Exceeded packets being sent back from the intermediate nodes (routers and what have you). When the TTL is set high enough, the ICMP TTL Exceeded responses change to ICMP Port Unreachable the expected reply once the distant node is reached, meaning that there is no process listening to that port. It is the change in reply as a result of the decrementing TTL that traceroute uses to determine the number of hops in the path.

The really neat thing about traceroute is that it reveals the IP addresses of the intermediate hops taken by a packet. It is able to do this because the ICMP TTL Exceeded responses come from the router that decremented the TTL to zero, using the IP address of the router, not the destination IP.

Microsoft chose to implement ping and traceroute differently, i.e. in a way that does not conform to Internet Standards (surprise, surprise!). M$ decided (without consulting any standards body) to write their network utilities to use ICMP Echo Request (ping) type packets.

We block ICMP Echo Request packets at our border routers to protect our customers who should have turned Directed Broadcast off at all their router interfaces, but for one reason or another, have not done so.


Currently it is on in Austin Texas.
Since August 30, 2000 there have been hits to this page.

Last update: 2000-August 28