listen · close

whatFive flows share one link. Each knows nothing of the others: it counts only its own packets in flight, adds one more every round-trip, and halves the moment the shared buffer overflows and it loses a packet. Each line in the weave is one flow, told apart by its dash pattern; the bar across the top is the link, split by current share; the dotted horizontal is fair share.

whyThe claim: from any start, even one flow hogging three quarters of the pipe, blind add-and-halve braids the weave to fair share. No referee, no ledger; the fairness index in the corner climbs toward one and stays. But fairness has fine print: shorten one flow's round-trip and it climbs faster between drops, takes roughly double what its neighbours keep, and the index sags. TCP is only fair between equals.

howAdditive increase, multiplicative decrease, in fluid form: rate is window over round-trip, and the shared buffer adds queueing delay to every round-trip, so bufferbloat is in the physics. An overflow drops a packet from a flow chosen in proportion to its rate. One seeded stream decides the starting mess and every loss, so the same seed replays the same weave. Click a line to shorten its round-trip; click again to repent.