Traceroute, like ping, is a network diagnostic utility. Traceroute is very similar to ping in function, but differs in purpose.
The Internet is true to its name. Inter- is defined as "between or among", meaning that the Internet is comprised of millions of networks all joined together. Unsurprisingly, when information, in the form of "packets", are sent from one computer to another, they must cross several of these networks.
While ping focuses with a specific target server, traceroute is more concerned about the routers and networks between you and the target.
In practical terms, traceroute essentially pings every router along the path between your computer and the target compupter.
Using traceroute - Windows
First, we need to open the Command Prompt.
- On Windows 7 and earlier, Command Prompt can be found in:
Start Menu > All Programs > Accessories.
- On Windows 8, Command Prompt can be found in:
Start Screen > Apps Screen > All Apps > Windows System
Then, simply type tracert (note the trunctation), followed by either the hostname or IP address of the computer or server you need to check, then press Enter. For example:
Using traceroute - OS X
There are two ways to ping using OS X.
- Using Terminal (see Linux steps below)
- Using Network Utility
The easiest way to open either of these applications is to search for them via Spotlight (The magnifying glass on the top right corner of the screen).
To use Network Utility, simply click the Traceroute tab, put in the target hostname or IP, and click Trace.
Using traceroute - Linux and OS X
Under OS X, open Terminal. Under Linux, simply use your shell of choice. Then, simply input:
What do the results mean?
As packets are sent to the destination / target, traceroute will determine which routers - belonging to each network you traverse - the packet is being routed through, and ping each one as it goes.
Traceroute will display:
- The hop count
- The hop/router hostname or IP
- 3 ping results per hop, in milliseconds
With this in mind, the results are quite straightforward:
- 1st hop - Will likely be your local modem / router.
- 2nd hop - Your router will then send the packet to your ISP.
- 3rd hop - Your ISP's router will then pass it onto another router.
- ...and so on. Thus the path, or route.
- The final hop will be the actual target computer itself.
The path or route of a packet does have a geographical element. A packet going from Sydney to Melbourne may only need to traverse a handful of networks. A packet going from Sydney to somewhere further away, say, the USA or Europe, will need to traverse many more networks. This will mean more hops to reach its destination, and more hops may possibly mean:
- Higher latency (higher ping times),
- Reduced bandwidth (bottlenecks),
- More points of failure.
In reality, it's not at all too different from a trip interstate or overseas. Sending a person from Sydney to Melbourne may mean one hop from their home to the airport, a second hop from Sydney to Melbourne airports, and a third hop from the airport to their hotel. A trip from Sydney to London will require several more stops, each introducing their own delays along the way - and thus taking much more time.
Identifying speed and latency issues
Traceroute can help indicate what might be making a particular server/website slow. As traceroute pings each server, the response time or latency is displayed. Local and ISP networks will often be very fast (i.e. a low ping).
If a particular hop, and all subsequent ones, displays a sudden spike in ping times, this may indicate the link between that hop and the one prior is a slow one.
Identifying a point of failure
If a server is unavailable, and the packet isn't reaching its destination, traceroute can help reveal where that packet may be getting lost.
If every hop after your local router times out, then the problem would exist on the connection between you and your ISP. If the packet makes it to your ISP, but not beyond, then your ISP may be having issues. If the packet leaves your ISP, and times out elsewhere along its path, then the problem may lie elsewhere on the Internet.
However, this is not conclusive (see the next point).
Like ping, try visitng a few websites, or ping / traceroute some alternate servers to ensure your own Internet connection is working properly.
Why else might some hops return no results / time out?
As stated, each router along the path gets pinged. On the Internet, it is possible for computers and routers to be configured to ignore pings. This doesn't necessarily mean that particular router or hop is not working - that router could still likely route packets along its path just fine.
In this scenario, the pings will time out, and the hostname/IP will not be displayed. We will know that there is a router at that hop, but we won't know any more than that.
It's also possible for the target computer itself to ignore ping as well.
With this in mind, it's true to say that traceroute may not be able to inform us as to the complete path a packet takes to reach its destination, or conclusively tell us whether the packet makes it to its destination or not. Ultimately, we are interacting with networks belonging to third parties. Problems with these networks aren't be the fault of the target computer's host (eg, Crucial), your ISP, or your own network or equipment.