What is Traceroute good for?
Traceroute is used to test your network connection.
It can determine the path that packets travel from one computer to another.
Basic concepts
Not quite like Frogs
A term called "hop" is used to measure something like distance on the
Internet. A path of just 1 hop means that the packet has just been
handed from one computer A to its immediate Internet neighbor Z. A path
of 2 hops means that a packet needed to go through an intermediary B on its
way from A to Z (so packet goes from A to B, and then from B to Z).
In general, a path of N hops requires N - 1 intermediaries.
An effective solution for Traffic Congestion
It can happen that a packet never reaches its destination, especially
if that machine is down for maintenance purposes. Instead of being
held by another machine for later delivery, and instead of circulating
the network forever, the packet "goes away". (Parents may opt for another
euphemism.) This is controlled by a parameter called TTL, or Time To Live.
Every machine that handles a packet decreases this parameter by 1 before
passing it to another computer (unless it becomes 0, in which case
the packet does not get transferred to a machine on this astral plane).
Thus a packet that has a TTL value of 3 as it leaves A can make it as
far as a machine that is 3 hops away from A. (One hopes that its
destination Z is not 4 hops away!)
How does it work?
Traceroute determines a path to a computer by trying to get responses from
those machines on the path. It starts by sending out some number (often 3)
of packets to the destination computer Z, but with a TTL of 1. Any machine
(other than the detsination computer Z) that receives a packet of this value
will return a message to the source computer A indicating that the packet's
TTL parameter was not large enough to ensure delivery to Z. The machine
identifies itself in the message.
Thus A (usually) gets 3 responses from the 3 packets it just sent, usually
from the same machine B which is 1 hop away from A. Now A sends out three
more packets to Z, this time with TTL set to 2. This will elicit a response
from a computer that is 2 hops away from A.
This continues until some maximum number is set (usually 30), or until the
destination machine itself responds (with a slightly different message).
The output of traceroute is the TTL parameter, an address of the machine
that responded to that packet, and round trip times from that packet sent
by A to the response received by A for that packet. Sometimes more than
one machine will respond to the packets with a given TTL value, in which
case all machines that responded are listed. If no machine responds to
a particular packet, an asterisk will be printed.
Where do I get Traceroute?
You should run the traceroute program that comes with your tcp/ip software.
For windows 3.1 users who have the trumpet winsock the traceroute program
is called trumphop.exe and is in the trumpet distribution package.
For windows for workgroups and windows 95 users the program is called
tracert.exe and should be found in your windows directory.
MacOS users check out WhatRoute.
For linux and unix users traceroute will be included with your operating
system. Users of other tcp/ip packages should read their documentation to
find out if traceroute is included.
If your software did not come with a
traceroute program you might try looking for which is available at
windows shareware sites.
How do I use Traceroute?
Read the instructions that come with your traceroute program.
In general, you tell traceroute to what destination machine you want
to find a path.
Traceroute will tell you whether your packets got a response and
how long it took to get the response.
The format of the results are different from one machine to another,
but usually you will get either a number (indicating round trip time)
or something like an asterisk (indicating no response).
Many ping programs will automatically send some number of packets, like 1 or 3 or 5. Some ping programs will let you tell them how many packets to send; 5 is a good number to use. For each packet sent you should get a response; so, ideally, 5 packets sent gets you 5 responses.
If you have just set up your tcp/ip software it may be useful to ping localhost. Localhost is just a word that means 'my own computer'. If you do not get a numeric response from a ping to localhost you probably have an error in your tcp/ip configuration.
If you suspect that your network connection is not working, it may be useful to ping one of your provider's machines. Prado customers can ping zoe.prado.com or foo.prado.com. If you get no numeric response to either of these pings then something about your dial-up connection is not right. Try pinging zoe by address instead of by name. Enter zoe's address 206.85.220.130 just the way you would enter a name. If you get a response to the address ping, but not to the name ping, then probably your nameserver information is incorrect.
If you are having trouble getting information from some specific computer out on the net, you might want to ping that machine. If you can ping your provider's machine and get a good response, but you don't get a good response to the ping to the far away machine, then you can feel pretty sure that the problem is not with your software or your connection, but is out on the net somewhere. There is really nothing you can do about this, but it is reassuring to know that it is not your problem.
If you send 5 packets, and none of them get back to you, then something is probably dead between you and your destination machine. Try to reach the machine later, the problem may have been corrected.
If you are finding all of this absolutely fascinating then you will probably be interested in also trying ping, another diagnostic tool.