Table of Contents


tracerate - A hop-by-hop capacity estimation tool


tracerate [-nNFSARE] [ -i interface ] [ -f first ttl ]
[ -l length ] [ -q number of queries ] [ -t tos ]
[ -m max ttl ] [ -p source port ] [ -s source address ]
[ -w wait time ] host [ destination port ] [ length ]


tracerate is a tool for evaluating the hop-by-hop capacity of a path. It works the same way as traceroute does. It probes the path with increasing TTL packets and tries to give you some information about this path (delay, loss and capacity). For more details on the used method, feel free to consult this research report.

The implementation of this tool is mainly based on:

tcptraceroute -- A traceroute implementation using TCP packets
Copyright (c) 2001, 2002 Michael C. Toren <>


Set the number of queries to be sent for each hop. Default is 20.
Display numeric output, rather than doing a reverse DNS lookup for each hop. By default, reverse lookups are never attempted on RFC1918 address space, regardless of the -n flag.
Perform a reverse DNS lookup for each hop, including RFC1918 addresses.
Set the initial TTL used in the first outgoing packet. The default is 1.
Set the maximum TTL used in outgoing packets. The default is 30.
Use the specified local TCP port in outgoing packets. The default is to obtain a free port from the kernel using bind(2). Unlike with traditional traceroute(8), this number will not increase with each hop.
Set the source address for outgoing packets. See also the -i flag.
Use the specified interface for outgoing packets.
Set the timeout, in seconds, to wait for a response for each probe. The default is 3.
Set the TCP SYN flag in outgoing packets. This is the default, if neither -S or -A is specified.
Set the TCP ACK flag in outgoing packets. By doing so, it is possible to trace through stateless firewalls which permit outgoing TCP connections.
Set RST flag in the second probe.
Send ECN SYN packets, as described in RFC2481.
Set the IP TOS (type of service) to be used in outgoing packets. The default is not to set any TOS.
Set the IP "don't fragment" bit in outgoing packets.
Set the total packet length to be used in outgoing packets. If the length is greater than the minimum size required to assemble the necessary probe packet headers, this value is automatically increased.
Enable debugging, which may or may not be useful.


To trace the path to the machine foobar using 100 probes:
tracerate -q 100 foobar


No error checking is performed on the source address specified by the -s flag, and it is therefore possible for tracerate to send out TCP SYN packets for which it has no chance of seeing a response to.


Mathieu Goutelle <mgoutell[at]users[dot]sourceforge[dot]net>

The author of tcptraceroute is: Michael C. Toren <>


For updates, please see:

See Also

traceroute(8), ping(8), tcptraceroute(8)

Table of Contents