[Cake] A few puzzling Cake results

Jonathan Morton chromatix99 at gmail.com
Wed Apr 18 10:12:40 EDT 2018

> On 18 Apr, 2018, at 2:25 pm, Toke Høiland-Jørgensen <toke at toke.dk> wrote:
> So if there is one active bulk flow, we allow each flow to queue four
> packets. But if there are ten active bulk flows, we allow *each* flow to
> queue *40* packets.

No - because the drain rate per flow scales inversely with the number of flows, we have to wait for 40 MTUs' serialisation delay to get 4 packets out of *each* flow.

Without that, we can end up with very high drop rates which, in ingress mode, don't actually improve congestion on the bottleneck link because TCP can't reduce its window below 4 MTUs, and it's having to retransmit all the lost packets as well.  That loses us a lot of goodput for no good reason.

So I do accept the increase in intra-flow latency when the flow count grows beyond the link's capacity to cope.  It helps us keep the inter-flow induced latency low while maintaining bulk goodput, which is more important.

 - Jonathan Morton

More information about the Cake mailing list