About Visual Ping

The visual ping tool shows a graphical representation of the time taken for packets of different size to traverse the Internet between the Webserver and the user's machine. To a first approximation this may be used to give some idea of available bandwidth. Typical figures are about 400kbps on a loaded Ethernet backbone, 100kbps across an Internet backbone, 50kbps on an ISDN connection, and 10k on a PPP line. The tool cannot measure real bandwidth, or backbone bandwidth where it is greater than the bandwidth from the server.


The tool consists of two scripts; a shell script which generates an HTML document, and a Perl script which performs the ping operations and generates an inline GIF.

For each of several different packet sizes, the target is pinged a few times. Response time is plotted against packet size. From each group, the minimum response time is taken and used in a straight line fit, which is also plotted. The fitted line is used as an indication of available bandwidth and baseline delay to the node.

The tool may run either as a CGI script on a Webserver, or standalone using X-11. When running standalone, the node to ping is given as an argument, eg. visual-ping.pl myhost.net
When running as a CGI script, the node is given as an argument using http GET. Usually the shell script visual-ping is used as a wrapper, in order to generate the GIF as an inline image. If no argument is given, the script may either use the browser's address, or prompt for an address, depending on the configuration.

Source Code

The source code is available at /pub/visual-ping.tar.gz

The script requires Perl 4, gnuplot, ping and optionally giftool to render the GIF transparent. It should run on any Unix system (it has been tested on Linux and Irix)

Vancouver Webpages