Java Code Generator

Traceroute’s Working and Problems With It

This article is intended for the audiences who are are interested to know how traceroute utility actually works and what problems\shortcomings are faced while using this utility.

What is traceroute and how it works?

TRACERT is a network diagnostic utility  which determines the route taken to a destination/target by sending Internet Control Message Protocol (ICMP) echo packets with varying IP Time-To-Live (TTL) values to the destination/target. Each router along the path should decrement the TTL on a packet by at least 1 before forwarding it to the next hop/router, so the TTL is effectively a hop count. When the TTL on a packet reaches 0, the router should send an ICMP Time Exceeded message back to the source computer.

TRACERT determines the route by sending the first echo packet with a TTL of 1 and incrementing the TTL by 1 on each subsequent transmission until the target responds or the maximum TTL is reached. The route is determined by examining the ICMP Time Exceeded messages sent back by intermediate routers. Note that some routers silently drop packets with expired TTLs and are invisible to TRACERT, we will explain that in the later section. Also, round trip times are reported for each packet in the group. Traceroute also reports any additional ICMP messages (such as destination unreachables).

ICMP TYPE 11 messages (TTL exceeded) messages are sent back by the intermediate routes and ICMP TYPE 8 message (Echo reply) is sent by the Target Host.

TRACERT prints out an ordered list of the routers in the path that returned the ICMP Time Exceeded message. If the -d switch is used then no DNS lookup is performed on each IP address, the IP address of the near- side interface of the routers is reported in the ICMP reply message.


Tracing route to []over a maximum of 30 hops:

1 <1 ms <1 ms <1 ms122.16.82.18

2 21 ms 21 ms 22 ms []





C:\>tracert -d

Tracing route to []over a maximum of 30 hops:

1 <1 ms <1 ms <1 ms122.16.82.182

2     *        20 ms 20 ms





TRACERT syntax:

tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name



It specifies to not resolve addresses to host names.

-h maximum_hops

It specifies the maximum number of hops to search for target.

-j host-list

It specifies loose source route along the host-list.

-w timeout

Waits the number of milliseconds specified by timeout for each reply.


Name or IP address of the target host.


User Encountered Problems:

TCP/IP was not designed to support traceroute thus obviously several kinds of problems can be faced while using traceroute. I am listing a few following:

Changing paths or Different Paths

It is not the path of one packet that is being traced but of many. Hopefully, all those packets will follow the same route but this is never assured. Suppose a link/router/hop fails during the traceroute after handling a first few packets? Your remaining packets may be rerouted, and traceroute’s output becomes a confused combination of two or more separate routes.

Routing problems

TCP/IP’s routing problems may cause the router not to have a route back to the sender, or to have a route through some interface other than the one it received the packet on. In these cases, you will either receive no reply at all or a reply showing an IP address that never handled the original packet.

Improper TCP/IP implementations

Some of the problems that have found are, code that fail to decrement TTL,code that does not generate ICMP Timeouts, code that forwards packets with zero TTL to the next hop and code that sends ICMP echo messages with the same TTL as the original packet. ICMP reply Timeouts message being sent with zero TTL is a case which makes it sure that the packet won’t reach the sender.

Related Posts

Article written by

Avatar of razdanajay

Please comment with your real name using good manners.

Leave a Reply

Are you human? Click the Pineapple...
Content is Protected by Objective c Examples