Have you ever noticed weird I’net blockages downloading a CD image or something? You are not alone. Jim Getty tells the story starting with Whose house is of glasse, must not throw stones at another.
Any time you have a large data transfer to or from a well provisioned server, you will have trouble.
It’s bufferbloat!
By inserting such egregiously large buffers into the network, we have destroyed TCP’s congestion avoidance algorithms. … by inserting big buffers into the network, we have violated the design presumption of all Internet congestion avoiding protocols: that the network will drop packets in a timely fashion.
It is detective story, a serial murder case, really. Until recently it has been a number of individual crimes. Getty has discovered it is a more fundamental problem resulting from advances in technology (cheap memory leading to large buffers) that impacts fundamental data transfer protocol assumptions.
We’re all frogs in heating water; the water has been getting hotter gradually as the buffers grow in subsequent generations of hardware, and memory has become cheaper. We’ve been forgetting what the Internet *should* feel like for interactive applications. Us old guy’s memory is fading of how well the Internet worked in the days when links were 64Kb, fractional T1 or T1 speeds. For interactive applications, it often worked much better than today’s internet.
He also notes ‘observer bias’ in that those who were most likely to detect and diagnose the subtle problem often had premium connections that suffered less. It is a subtle problem because it builds as the buffers fill, which can take several seconds or more and because modern operating systems (post XP) which optimize traffic in a way that tends to fill buffers (for some reason, I keep typo-ing that to buggers …). It is also a multivariate problem with both bandwidth and latency as critical components that have to be tested together.
run tests for yourself. Suspect problems everywhere, until you have evidence to the contrary. Think hard about where the choke point is in your path; queues form only on either side of that link, and only when the link is saturated.
Interesting stuff. In a typical home network, you’ve got your router and cable modem in the path and each of those has its contribution to consider.
Post a Comment