11 ms·
My experience with Spectrum is that they allow a large accumulation of in-transit packets when traffic rate is near the provisioned capacity. Some people call t
by dboreham 5y ago
My experience with Spectrum is that they allow a large accumulation of in-transit packets when traffic rate is near the provisioned capacity. Some people call this "buffer bloat".
Some background:
If you study traffic shaping, you'll discover that TCP behaves poorly if packets are simply dropped when throughput approaches the limit (congestion collapse). So traffic shaping usually _delays_ packets rather than dropping, at least initially. This works in that TCP backs off its send rate gracefully and throughput approaches the provisioned limit. However you've now introduced a large delay into every packet's transit through the shaper box. This isn't a problem for bulk TCP flows -- they work ok in the presence of latency but it is problematic for unrelated latency sensitive traffic (e.g. UDP, SSH). To work around this problem traffic shaping usually introduces some notion of delay per flow. This can be done in a few different ways e.g. RED (random early detection), or per-flow queues.
Ok so back to Spectrum: my experience has been that their shaper box does not do anything good as far as per-flow queues, RED etc. It seems pretty basic and dumb. The result is that latency approaches infinity as throughput approaches the provisioned limit.
I work around this by deploying my own shaping on my edge router. Through experiment, I have configured it to limit at just below the threshold where Spectrum begins severely delaying my traffic. I use RED on my router to give good latency for traffic unrelated to bulk flows. You'll need a router capable of traffic shaping, e.g. Mikrotik, Linux iptraf, Cisco IOS.
- b20000 5y agothanks. would you recommend building a linux router then or buying one off the shelf ready to go?
- orojackson 5y agoWhy recommend RED for client-side routers? Better to use more modern AQM approaches such as fq_codel or its successor cake [1][2]. Both of them are far easier to apply to client-side routers without fussing too much with settings: setting your download/upload bandwidth limits is enough to get nearly all of the benefits. Other than that, you're 100% correct on Spectrum's ridiculously high buffer sizes on their end. [1] https://tcpcc.systemsapproach.org/aqm.html#controlled-delay https://tcpcc.systemsapproach.org/aqm.html#controlled-delay [2] https://www.bufferbloat.net/projects/codel/wiki/CakeTechnical/ https://www.bufferbloat.net/projects/codel/wiki/CakeTechnica...
- b20000 5y agook, thanks, still wondering what to do, build a router with debian or put pfsense on it or buy mikrotik or something else that is ready to go :)