Page tree
Skip to end of metadata
Go to start of metadata


Characterize the bandwidth, latency and loss on network links. (See below the example for information on how pchar works)

(debian package : pchar)


pchar to ( using UDP/IPv4
Using raw socket input
Packet size increments from 32 to 1500 by 32
46 test(s) per repetition
32 repetition(s) per hop
 0: (
	 Partial loss:		0 / 1472 (0%)
	 Partial char:		rtt = 0.124246 ms, (b = 0.000206 ms/B), r2 = 0.997632
							  stddev rtt = 0.001224, stddev b = 0.000002
	 Partial queueing:  avg = 0.000158 ms (765 bytes)
	 Hop char:			 rtt = 0.124246 ms, bw = 38783.892367 Kbps
	 Hop queueing:		avg = 0.000158 ms (765 bytes)
 1: (
	 Partial loss:		0 / 1472 (0%)
	 Partial char:		rtt = 1.087330 ms, (b = 0.000423 ms/B), r2 = 0.991169
							  stddev rtt = 0.004864, stddev b = 0.000006
	 Partial queueing:  avg = 0.005093 ms (23535 bytes)
	 Hop char:			 rtt = 0.963084 ms, bw = 36913.554996 Kbps
	 Hop queueing:		avg = 0.004935 ms (22770 bytes)
 2: (
	 Partial loss:		5 / 1472 (0%)
	 Partial char:		rtt = 697.145142 ms, (b = 0.032136 ms/B), r2 = 0.999991
							  stddev rtt = 0.011554, stddev b = 0.000014
	 Partial queueing:  avg = 0.009681 ms (23679 bytes)
	 Hop char:			 rtt = 696.057813 ms, bw = 252.261443 Kbps
	 Hop queueing:		avg = 0.004589 ms (144 bytes)
 3: (
	 Path length:		 3 hops
	 Path char:			rtt = 697.145142 ms r2 = 0.999991
	 Path bottleneck:	252.261443 Kbps
	 Path pipe:			21982 bytes
	 Path queueing:	  average = 0.009681 ms (23679 bytes)
	 Start time:		  Mon Jun  6 11:38:54 2005
	 End time:			 Mon Jun  6 12:15:28 2005

If you do not have access to a Unix system, you can run pchar remotely via:

The README text below was written by Bruce A Mah and is taken from, where there is information on how to obtain and install pchar.

Bruce A. Mah
$Id: PcharTool.txt,v 1.3 2005/08/09 16:59:27 TobyRodwell Exp www-data $


pchar is a reimplementation of the pathchar utility, written by Van
Jacobson.  Both programs attempt to characterize the bandwidth,
latency, and loss of links along an end-to-end path through the
Internet.  pchar works in both IPv4 and IPv6 networks.

As of pchar-1.5, this program is no longer under active development,
and no further releases are planned.



pchar sends probe packets into the network of varying sizes and
analyzes ICMP messages produced by intermediate routers, or by the
target host.  By measuring the response time for packets of different
sizes, pchar can estimate the bandwidth and fixed round-trip delay
along the path.  pchar varies the TTL of the outgoing packets to get
responses from different intermediate routers.  It can use UDP or ICMP
packets as probes; either or both might be useful in different

At each hop, pchar sends a number of packets (controlled by the -R flag)
of varying sizes (controlled by the -i and -m flags).  pchar determines
the minimum response times for each packet size, in an attempt to
isolate jitter caused by network queueing.  It performs a simple
linear regression fit to the resulting minimum response times.  This
fit yields the partial path bandwidth and round-trip time estimates.

To yield the per-hop estimates, pchar computes the differences in the
linear regression parameter estimates for two adjacent partial-path
datasets.  (Earlier versions of pchar differenced the minima for the
datasets, then computed a linear regressions.)  The -a flag selects
between one of (currently) two different algorithms for performing the
linear regression, either a least squares fit or a nonparametric
method based on Kendall's test statistic.

Using the -b option causes pchar to send small packet bursts,
consisting of a string of back-to-back ICMP ECHO_REPLY packets
followed by the actual probe.  This can be useful in probing switched


Router implementations may very well forward a packet faster than they
can return an ICMP error message in response to a packet.  Because of
this fact, it's possible to see faster response times from longer
partial paths; the result is a seemingly non-sensical, negative
estimate of per-hop round-trip time.

Transient fluctuations in the network may also cause some odd results.

If all else fails, writing statistics to a file will give all of the
raw data that pchar used for its analysis.

Some types of networks are intrinsically difficult for pchar to
measure.  Two notable examples are switched networks (with multiple
queues at Layer 2) or striped networks.  We are currently
investigating methods for trying to measure these networks.

pchar needs superuser access due to its use of raw sockets.


– Main.FrancoisXavierAndreu & Main.SimonMuyal - 06 Jun 2005

-- Main.HankNussbacher - 10 Jul 2005 (Great Plains server)

-- Main.TobyRodwell - 09 Aug 2005 (added Brudce A Mah's Readme text)

  • No labels