![]() You can see this still being used when you run a speed test, and the connection starts at a very slow speed, and then ramps up quickly. The first technique introduced was slow start. Put simply, in order to send as quickly as possible, traffic needed to be intelligently slowed down. The solution was a series of algorithms added to BSD’s TCP implementation, which have now been adopted as part of the standard. The early Internet unintentionally DDoS’d itself. Several hosts trying to send too much data over the too-narrow connection results in a congestion collapse, a feedback loop of traffic. When packets were dropped, or congestion pushed the round trip time beyond the timeout threshold, the sender immediate re-sent - generating more traffic. In a congestion scenario, more than 30 packets back up at the gateway, and the extra packets were just dropped. To deal with this mismatch, the gateways on either side of the link has a small buffer, roughly 30 packets worth. On the early internet, particularly this particular Berkeley link, the 10 Mb/s LAN connection was funneled down to 32 kbps or 56 kbps. On a Local Area Network, where there’s a uniform network speed, this works out just fine. And second, if a packet was dropped along the way, it would resend it as soon as possible. First, it would start sending packets at full wire speed right away. The 4.3 release of BSD had a TCP implementation that did a couple interesting things. It’s a very similar model to what happens when too many cars are on the same stretch of highway - traffic slows to a crawl. ![]() Instead of 56 Kbps, this link was suddenly transferring at an effective 40 bits per second. Late 1986, links suddenly saw extreme slowdowns, like the 400 yard link between Lawrence Berkeley Laboratory and the University of California at Berkeley. In those days, cutting edge local networks were running at 10 megabits per second, but the site-to-site links were only transferring 56 kilobits per second at best. By 1984, there was a problem brewing, and in 1986 the Internet suffered a heart attack in the form of congestion collapse. January 1st, 1983, the ARPANET adopted TCP/IP - the birthday of the Internet. The Domain Name System replaced hosts.txt as the way hostname to IP resolution was done in 1982. The Internet in the 1980s was a very different place. There are even a few of the big speed test sites that now offer bufferbloat tests. If your latency under load goes through the roof, you likely have bufferbloat. Run a speed test, and run a ping test while your connection is being saturated. That’s bufferbloat, and it’s actually really easy to do a simple test to detect it. When someone else is streaming a movie, or a machine is pushing a backup up to a remote server, it all falls apart. Let it run for a hundred packets, and essentially no packet loss. You know how to use a command line, so you try a ping test. What if you have a non-obvious problem? Sites load, but just a little slower than it seems like they used to. It’s pretty easy to spot a broken connection, even if finding and fixing it isn’t so trivial. Your VoIP calls get cut off, or have drop-outs. And if something really goes wrong, you know it right away. Each of those hops represents another place for things to go wrong. It’s amazing that the whole thing works at all, really. ![]() Or maybe through that convoluted chain of devices in reverse, to arrive at another desktop. When your computer sends a TCP/IP packet to another host on the Internet, that packet routes through your computer, through the network card, through a switch, through your router, through an ISP modem, through a couple ISP routers, and then finally through some very large routers on its way to the datacenter. Many programmers and engineers, like Vint Cerf, Dave Taht, Jim Gettys, and many more have cracked this nut for our collective benefit. Oh, and a huge shout-out to all the folks working on this problem. What it is, how to test for it, and finally what you can do about it. OK, there’s probably several diseases, but today we’re talking about bufferbloat. There’s a dreaded disease that’s plagued Internet Service Providers for years.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |