Benchmarks · measured 2 Oct 2026

Every number on this site, and how we got it.

Every speed claim on farwing.io links here. Each one is a median of three runs on a real path, with the method and the raw results.

Download raw resultsTry the calculator

Test setup

Date2 Oct 2026
PathOregon, USA to Sydney, Australia, over a public cloud backbone
Round trip139 ms
HostsTwo 16-core cloud hosts See published benchmark JSON (hosts to be labelled)
Path capacity12.4 Gbit/s with no loss tool
Added loss0%, 0.1%, 1% and 3%, random, added at the receiver (loss tool labelled in results JSON). The tool caps every sender near 8 Gbit/s.
Runs20-second streams and 1 GiB copies, median of three
Farwingsee release tag, default settings (4 lanes, --policy auto)
TCPLinux default CUBIC, TCP BBR, 8 parallel BBR streams; default buffers

Throughput, Oregon to Sydney

useful data delivered per second, Mbit/s. 20-second runs, median of three.

Added lossFarwing8 × TCP BBRTCP BBRTCP CUBICFarwing vs BBR
0%6,7214,8844,1992,9501.6×
0.1%6,0585,1882,84110.42.1×
1%6,8015,0841,9981.23.4×
3%6,6274,4791,4000.574.7×

No loss tool: the path gives 12.4 Gbit/s. Farwing 11,523 Mbit/s, 8 CUBIC streams 11,051, 8 BBR streams 10,811, one TCP flow about 4,300. Farwing used about 2 of 16.

1 GiB copy, start of command to checked file

Added lossFarwingscp
0%2.2 s83 s
0.1%2.4 sdid not finish
1%2.6 sdid not finish
3%3 sdid not finish

A 5-minute limit per run. Repeat copies: SSH session reused, path speed remembered. A first copy to a new host took 4.5–4.8 s with no loss.

Sharing the link

With the default 4 lanes, one long TCP flow kept about half its speed while Farwing ran.

With --lanes 1, Farwing ran next to a 4.8 Gbit/s TCP flow and did not slow it at all.

How the calculator estimates

The calculator uses a small model fitted to the runs above and to emulated paths from 2 to 250 ms with up to 10% loss. Farwing fills a steady share of the link, less the lost packets. One TCP connection is capped by the classic loss formula, scaled at each loss level to what Linux TCP really did. scp is also capped by the SSH window. First copies add the SSH login and a speed ramp.

ConstantValueWhat it means
fwEff0.93Share of the link Farwing fills with no loss (11.5 Gbit/s of 12.4 Gbit/s)
fwLossSlope1.5Extra trim per unit of loss, on top of the lost packets
fwCeilingMbps11,500Fastest copy measured so far
fwSetupRtt / fwWarmSetupRtt3 / 4.5Farwing start-up, in round trips (first copy / repeat copy)
sshLoginRtt13A fresh SSH login, in round trips
sshLossSec3 sExtra time a fresh SSH login took on a lossy path
startMbps · rampFit20 · 1.25First-copy start rate, doubling each round trip
tcpEff0.95Share of the link one TCP connection fills with no loss
tcpLossFit3.2 → 0.55Scale on the classic loss formula, from 0.1% to 10% loss
scpWindowBits · scpFit16 Mbit · 0.86SSH keeps about 2 MiB in flight per channel
freeCapMbps1,000Free Farwing speed limit
Test your own path.It sends test data only and writes nothing to disk.
$farwing bench user@host --size 5G