Tool: traceroute
Use: Reconnaissane & Footprinting
Version: 2.1.0
OS: Linux & others.
Vendor/Author: Dmitry Butskoy
URL: Unknown
Status: Unknown/Active
Description: Print the route packets trace to network host.

From the MAN page:
Traceroute tracks the route packets taken from an IP network on their way to a given host. It utilizes the IP protocol's time to live (TTL) field and attempts to elicit an ICMP TIME_EXCEEDED response from each gateway along the path to the host.

This program attempts to trace the route an IP packet would follow to some internet host by launching probe packets with a small ttl (time to live) then listening for an ICMP "time exceeded" reply from a gateway. We start our probes with a ttl of one and increase by one until we get an ICMP "port unreachable" (or TCP reset), which means we got to the "host", or hit a max (which defaults to 30 hops). Three probes (by default) are sent at each ttl setting and a line is printed showing the ttl, address of the gateway and round trip time of each probe.
The address can be followed by additional information when requested. If the probe answers come from different gateways, the address of each responding system will be printed. If there is no response within a certain timeout, an "*" (asterisk) is printed for that probe.
This tool has the capability to handle IPv6 also, either with the -6 option or the alias traceroute6, also, it can to tracerouting using TCP either by using the -T option or the tcptraceroute alias. The lft command works much like tcptraceroute but attempts to provide compability with the original lft implementation.

The Microsoft Windows equivalent to the linux traceroute command is tracert, but as it is not the same program, some variations in the functionality exists.