ITTC main logo

Bandwidth estimators

Bandwidth estimation based on non-obtrusive testing can be useful in live networks; however, the techniques that are being deployed suffer from various problems, mostly related to operating system issues. As such, some work well on one OS and not another. One of the most common techniques involves using the RTT and packet size, that is, simply measuring the RTT and varying the packet size should in principle give you a reasonable estimate. The most advanced application in this respect is pathchar. However, Van Jacobson decided not to release the source for this tool publicly. Most of these tools are reliant upon either UDP or ICMP, and in the case of ICMP root privileges are most commonly required. Another drawback of these tools is that the techniques are somewhat basic at this point, and simply lack some robustness.


Bing uses different sized ICMP packets and RTTs to estimate bandwidth. It takes considerable experimentation, and does not neccesarily produce trustworthy figures.



PathChar is similar to bing, in that it uses different sized packets, and statistics to derive intermediate bandwidth between hops. Once again the problem is that the results are only marginally trustworthy. There is no source available for this tool. Written by Van Jacobson at LBL. Only documentation available is the talk he gave at MSRI, both in PDF and PostScript

Compiled versions of patchar



BCProbe runs on IRIX only - it required modification to work on other architectures. It is ICMP-based and peforms basic bandwidth estimation. It does not use RTT/packet size measurements, but rather it measures the gaps between two packets it sends in rapid succession.



TReno is an adaptation of the TCP Reno algorithm to work with UDP packets and as a user level process. This allows a user to obtain 'TCP' statistics without having to modify a kernel. Written by Matt Mathis at the Pittsburgh Supercomputer Center.


Benchmarking tools (intrusive testing)




NetPerf is an enhanced, improved version of TTCP, more carefully crafted, and with better functionality.



This is a Java (yet compatible) version of ttcp. Since Java is interpreted, there are significant performance limitations.

NetSpec       ITTC Developed

NetSpec is a network testing framework that allows a user to simplify control of multiple network connections and associated measurements. In addition, it has a fairly enhanced TCP and UDP traffic generation engine. It is fairly portable, but due to its fairly advanced algorithms it is a bit unstable. It was developed at ITTC at the University of Kansas.


Diagnostic tools

NikHef diagnostic tools

Eric Wassenaar at the Dutch institute for Nuclear Physics and High Energy Physics crafted and enhanced these, they are the most basic tools that you need for debugging IP networks. He has maintained these utilities for some time, and they are the defacto tools being used on Linux. They offer enhanced functionality above the versions available on most UNIXs. They are highly portable.

  • Host, enhanced version of the commonly used host program on Unix machines; with an external server can also list AS numbers.
  • Ping, enhanced statistics are rather useful.
  • TraceRoute



Fast Ping, send pings in parallel, extremly useful for pinging large numbers of hosts, and checking for connectivity.



Top is an active load display tool, with process activity sorting.


File transfer tools (ftp)


Anonymous secure ftp daemon, written by Dan Bernstein.


NcFtp       ITTC Modified for TCP Long Windows

A very nicely crafted ftp client. In the ITTC version the TCP window size is may be changed on the fly. It also includes batch utilities, which are extremely useful for benchmarking purposes. These have been used for the DREN ftp tests. This is the latest version available; the forthcoming official version will have the enhanced long window support included. For having full featured command line completion, libreadline is required; it will work however without this.


The NCSA versions of wuftpd and ncftp       ITTC Modified for TCP Long Windows

Modified versions of Washington University of St Louis ftpd, and ncftp. These were used for the ftp tests run on DREN.



Xftp is an enhanced version of the ftp protocol that allows multiple data connections. This is useful in the case of limited window scaling support. An approach to utilize a high bandwidth delay link without long windows support is to use multiple connections, along the philosophy that many small ones make a big one. Many web browsers have used this general approach for the past few years due to the large number of individual elements in a typical web page, and it has proven to be successful (however most servers tend to be modified in order deal with the storm of connection requests).

Paper on the extensions required to the ftp protocol.

NetPipe (np)

NetPipe was written because ttcp became a benchmarking tool, and lost some of its original functionality, namely the ability to copy files conveniently accross a network connection. NetPipe provides a simple stdin/stdout socket interface and is tailored to be convenient for copying files. Another comparable tool that performs similar functions, and is a little less convenient, is NetCat (nc).


ProFtpD       Supports TCP Long Windows

ProFtpD is the apache of ftp servers. wufptd has not been supported actively since 1996, and as such there was a vacuum which has been filled by proftpd. It is a highly configurable ftp daemon meant for running large ftp sites. It supports large windows.


Web tools (http)


Webcopy is a simple command line tool for recursively fetching web pages. It is written in perl.



THTTPD is written by Jeff Poskanzer. It is a simple (no bells and whistles) secure http server.



Apache is the defacto web server, that at this point in time is used by roughly 70% of the Internet's web sites.


Last update: 08:47 PM, March 05, 1999 Questions? Comments?
Send mail to