pathrate.org

An open network-measurement project

Send two packets.
Read the whole path.

Pathrate is building a distributed way to quantify the quality of your network path to the internet — not the throughput of one TCP flow to a nearby test server, but the actual capacity and condition of the links your traffic crosses.

C₁ — fast link
C₂ — narrow link
C₃ — fast link
Two packets leave back to back. The narrowest link in the path can only forward them one serialization time apart — so the gap that comes out the far end, Δ = L/C, carries the capacity of the narrow link. No router cooperation, no saturating the line. The path measures itself.

A speed test tells you a number. Dispersion tells you why.

A bulk-transfer speed test measures one thing: how fast a TCP flow ran to a well-connected server, right then, competing with everything else on your line. It cannot distinguish a slow link from a busy one, and it floods the path to find out.

Packet-dispersion techniques probe with pairs and short trains of packets and read the time structure of what arrives. The dispersion distribution separates capacity — what the narrow link could do — from the effects of cross traffic — what everyone else is doing on it. Long trains yield a third quantity, the average dispersion rate, that brackets the truth from both sides:

available bandwidth ADR capacity One measurement run bounds what the path can carry and what it is carrying.

Run that from many vantage points, continuously and cheaply — the probing load is kilobits per second, not a flood — and you get something a speed test can never give you: a quantified, comparable picture of path quality across your network and out to the internet.

Three modes, for three levels of access

You can't install software on every device you care about. Pathrate degrades honestly: each mode states what it can and cannot know.

MODE 1 — agent ↔ agent

Both ends cooperate

A pathrate agent at each end: UDP probe trains, one-way dispersion measured at the receiver with kernel timestamps, plus iperf-class throughput checks. The full methodology.

yields: capacity · ADR · loss · full path map

MODE 2 — agent → service

Far end just responds

Probing a live TCP or UDP service plus ICMP. Dispersion is inferred from protocol replies, so the reverse path is in every number — reported as an indication, never dressed up as a measurement.

yields: capacity estimate · RTT · loss

MODE 3 — ping only

All you have is ICMP

Back-to-back echo trains against a device you can only ping. Bounds the round-trip narrow link and characterizes latency, jitter, and loss — with the confidence honestly marked down.

yields: bounded estimate · RTT · jitter · loss

Standing on twenty years of measurement research

The methodology comes from the literature that named this domain: packet-pair and packet-train dispersion, multimodal mode detection, and ADR-filtered capacity estimation as implemented in the original pathrate tool. This project is an independent, open-source continuation of that line of work, not affiliated with the original authors.

C. Dovrolis, P. Ramanathan, and D. Moore, “Packet-Dispersion Techniques and a Capacity-Estimation Methodology,” IEEE/ACM Transactions on Networking, vol. 12, no. 6, pp. 963–977, Dec. 2004. doi:10.1109/TNET.2004.838606
Follow the work on GitHub →