
NAME

	fft - display the route packets take to an IP network host


SYNOPSIS

	fft [-d <dport>] [-m <min>] [-M <max>] [-a <ahead>] [-s <scatter ms>] 
[-t <timeout ms>] [-l <ttl>] [-i] [-n] [-v] <hostname>


DESCRIPTION 

The Internet is a large and complex aggregation of network
hardware,  connected  together  by gateways.  Tracking the
route one's packets follow (or finding the miscreant gate 
way  that's  discarding  your  packets)  can be difficult.

Traceroute utilizes the IP protocol `time to  live'  field 
and attempts to elicit an ICMP TIME_EXCEEDED response from  
each  gateway  along the path to some host.

'traceroute' was  implemented  by  Van  Jacobson  from   a
suggestion  by  Steve Deering.  

Traceroute is available at ftp://ftp.ee.lbl.gov/traceroute.tar.Z

FFT is a sort of `traceroute' that works much faster and goes
through many configurations of packet-filter based firewalls.

Rather than launching UDP-based probes in an attempt to elecit
ICMP TIME_EXCEEDED, FFT essentially does the same using TCP
probes, listening back for the TIME_EXCEEDED messages or TCP_RST
from firewalls or other gateways in the path.

Other options are:
 
  -d <dport>       destination port number at which to start

  -m <min>         minimum number of queries to send per host

  -M <max>         maximum number of queries to send per host

  -a <ahead>       number of hops forward to query before receiving replies

  -s <scatter ms>  minimum number of milliseconds between subsequent queries

  -t <timeout ms>  maximum RTT before assuming packet was dropped

  -l <ttl>         maximum TTL to use on outgoing packets

  -i               don't stop on ICMP other than TTL expired

  -n               don't use the DNS resolver to display hostnames

  -v               show version information


Default is: ./fft -d 25000 -m 1 -M 5 -a 5 -s 20 -t 1000 -l 30 <hostname>

	During operation, FFT immediately prints status as follows:

Send mode: ->( <packet number> / <TTL of packet> )
Recv mode: <( <TTL of packet received> )


SEE ALSO

	traceroute(8), netstat(1), ping(8)


COMPILATION

To compile, use the makefile for your specific system type.  If
your system isn't listed, pick the closest operating system and
adapt as necessary.  

Build example: make -f Makefile.bsd

Post compilation: don't forget to SETUID the executable: chmod 4755 fft

Makefile name     Tested Operating System
----------------  -----------------------
Makefile.linux    Redhat Linux 4.2
Makefile.bsd      BSD/OS 3.0
Makefile.solaris  Solaris x86 2.5.1
Makefile.darwin   Darwin Kernel v5.5 (MacOS X)

Note that before you can compile fft, you need to install libpcap.
It is available from ftp.ee.lbl.gov.


AUTHOR

	FFT was originally implemented by Nils McCarthy <nils@shkoo.com>
	FFT is maintained by MainNerve, Inc. staff and anyone else who
	wants to contribute :-) <software@mainnerve.com>


KNOWN BUGS

Solaris:  On 64-bit systems, the ip and tcp checksum is calculated
incorrectly causing numerous problems.  This is likely a problem with 
getting a 32-bit unsigned int in various places, but hasn't been tracked
down and fixed. 


