The principal motivation of the paper is the observation that flow control alone, implemented as it is at the communication endpoints, cannot guarantee a congestion free network, let alone fair usage of the network's bandwidth. The first reason is straightforward: flow control (mostly) assumes that congestion is a condition that occurs at the other endpoint; the core network resources can give no feedback, and hence are hidden. The second is that implementing more robust flow control mechanisms at these endpoints misses the point, because congestion avoidance is entirely elective: a user who isn't concerned about network performance overall can simply disregard the packet conservation principle and ignore feedback. The problem must instead be addressed at the queues of the core routers: first come, first served treatment of the queues must be replaced with an algorithm that, in a game-theoretic fashion, rewards the well behaved users and punishes the abusers, where the "well-behaved" designation can be achieved by endpoints by implementing reasonable flow control.
The problem is solved logically by Nagle's algorithm: instead of maintaining one queue managed in FCFS fashion, maintain a queue per "user" (a debatable designation; Demers et al. define a flow as analogous to a socket: a connection between two endpoints) or flow, then apply FCFS within queues and round robin among them. This clearly achieves the desired fairness properties at the packet level, but the authors show that to address differences in packet sizes something like a bit-wise round robin scheme, while unrealistic, would be desirable. They go on to demonstrate that a packet-wise round robin scheme can be realized by applying the same accounting used in bitwise RR, and using the BR finish times as the packet ordering. To address the issue of rewarding users with promptness who have had less demand (again, giving that telnet session a break), actual BR finishing times are replaced by bids derived similarly but with reference to a magic parameter that influences the "memory" of a flow's history.
This last detail and the following performance section were fairly difficult to follow. It is clearly tricky to reason mathematically about periodic functions and queue dynamics, but the idea is at bottom so intuitive that I was unsure it was well served by so difficult a discussion. Their results are very convincing: as we feared, hosts that do not implement flow control fared better under FCFS, and the miscreants were rewarded, whereas fair queueing kept its promise of rewarding conservative users and effectively protecting the bandwidth of compliant flows from abusive ones.
I found myself thinking about OS schedulers while I read this paper. Is that so wrong?