Fair enough. Sounds like you're saying that automatic buffer management algorithms don't work well because modern links often have variable bandwidth. Thus better algorithms need to be devised.
It is striking that many end users are told what bandwidth they achieve (numbers in browser download, file copy windows), but not link latency. Perhaps that has given ISPs an incentive to optimize for bandwidth (i.e. FastStart, or jack up buffer sizes) and not care about latency because it's hard to measure.
And if AQM/ECN requires all users of a link to turn it on, then adoption will be difficult. Tasks that want maximal bandwidth and don't care about latency (like browser downloads) have no incentive to use it.
Someone needs to write a mobile app that forces packet drops after it detects congestion and speeds up the browser experience. You do that and users will be clamoring for AQM.
Bufferbloat: Dark Buffers in the Internet (ACM Queue)
Posted Dec 6, 2011 19:51 UTC (Tue) by dlang (✭ supporter ✭, #313)
[Link]
AQM isn't an application thing, it's a system network stack thing.
in the past, entities have tested their systems for latency (usually with tiny packets using a small amount of bandwith) and separately for bandwidth (usually with huge packets)
if you bandwidth isn't saturated, the small packets never queue up and so the device shows good latency on the latency test. buffer size doesn't matter.
in the bandwidth test, larger buffers prevent packets from being dropped (and therefor retransmit times), so larger buffers help bandwith measurements (even if only marginally).
so this has lead to thinking that larger buffers are always better. Add in the fact that memory is getting cheaper (OLPCv1.5 went from 256M of ram to 1G of ram because it was cheaper to buy the 1G memory modules). If you are building a router and have more memory, what are you going to use it for besides larger buffers?
the bufferbloat problem is that when the bandwidth is saturated, latency becomes horrible. This is not a combination that vendors have been testing.