A patch panel with network cables running in ordered loops, cold machine-room light
Slowyslowyapp.com

Bandwidth control on the Mac: throughput, latency, loss, and the queues underneath.

Lead entry · Bufferbloat

Where the delay comes from

The delay is not on the wire; it is in a queue somewhere, waiting for its turn.

Ordered loops are the last point at which a connection is simple; everything after the panel queues. slowyapp.com picture kit

Making a fast connection behave like a bad one

The job is easy to say and awkward to do. Three quantities have to move independently: how much gets through, how long each packet waits, and how many never arrive.

The tools that do it sit at different layers of the path, and the layer decides what they can reach — one application, one machine, or every device on the segment. Underneath all of them is the reason a fast link can be unusable: the queue.

They work the same queues we do.

Organisations whose attention sits at the same bottleneck this site was built around.

Three dials, turned separately

Section 01 · Making a link worse →
01

Throughput

A rate of release, not a slower packet.

Read throughput →
02

Added latency

A wait added to every packet, and it can differ in each direction.

Read added latency →
03

Loss and reordering

The signal a sender was built to hear — and the one that only looks like it.

Read loss and reordering →

Where the shaping happens

Section 02 →
01

Inside the kernel

Reaches everything the machine sends. Nothing above it can opt out.

02

The settings panel

A named profile instead of a rule set — the whole machine, one setting at a time.

03

Through a proxy

Only what is routed through it. Precise, and partial.

04

At the link

Every device on the segment, including the forgotten ones.

An analyser screen showing a repeating waveform trace in a dim room
The trace repeats because a sender climbs until something drops. Nothing dropping is what flattens it against the ceiling.slowyapp.com picture kit

Section 03 · Bufferbloat

Memory got cheap and the queue got long

Jim Gettys named the condition: equipment given buffers far larger than the paths it serves, queueing a packet for seconds rather than dropping it.

The wire is fast. The wait is in a queue.

The record, and this domain

Browse all 23 entries →
PapersThe congestion-control literature is unusually readable, and the 1988 work is the document the modern internet rests on.
SpecificationsThe standards documents define what implementations must do, and reading them settles most arguments.
PeopleA small number of named engineers are responsible for most of this, and they published as they went.
LaboratoriesTestbeds where this is measured rather than argued about.
What Slowy wasA small Mac utility that made a connection behave badly on purpose, so software could be seen doing what it does on a bad link. It is no longer available.
Why the name staysThe name describes the problem better than any replacement would, and the problem has outlasted the tool.