Slashdot Mirror


Bufferbloat: Dark Buffers In the Internet

Expanding on earlier work from Jim Gettys of Bell Labs with a new article in the ACM Queue, CowboyRobot writes that Gettys "makes the case that the Internet is in danger of collapse due to 'bufferbloat,' 'the existence of excessively large and frequently full buffers inside the network.' Part of the blame is due to overbuffering; in an effort to protect ourselves we make things worse. But the problem runs deeper than that. Gettys' solution is AQM (active queue management) which is not deployed as widely as it should be. 'We are flying on an Internet airplane in which we are constantly swapping the wings, the engines, and the fuselage, with most of the cockpit instruments removed but only a few new instruments reinstalled. It crashed before; will it crash again?'"

124 comments

  1. Is this a problem? by sunderland56 · · Score: 1

    the existence of excessively large and frequently full buffers

    Seems better than the existence of excessively large and seldom if ever full buffers.

    1. Re:Is this a problem? by Anonymous Coward · · Score: 4, Insightful

      You never want a full buffer. At that point, it ceases to do its job.

    2. Re:Is this a problem? by skids · · Score: 4, Informative

      Seems so, but isn't. For TCP traffic, a shallow buffer that drops traffic will result in more goodput than a deep buffer. Which is the point.

    3. Re:Is this a problem? by CyprusBlue113 · · Score: 5, Informative

      That is actually the exact problem. You do not want buffers larger than the flight time of your circuit. You absolutely want the buffers to fill and drop packets otherwise.

      --
      a handful of selfish greedy people are no match for millions of selfish, greedy people -u4ya
    4. Re:Is this a problem? by pla · · Score: 5, Informative

      Seems so, but isn't. For TCP traffic, a shallow buffer that drops traffic will result in more goodput than a deep buffer. Which is the point.

      Yes and no...

      If you don't (or only rarely) fill your buffer, a smaller buffer introduces less latency than a large one, while still allowing you to maximize throughput. If, however, you usually have your buffer full, you increase latency for literally no benefit, since you've already maximized throughput simply through resource demand.

      The former will occur when your average load falls below your actual bandwidth, and allows you to get the most out of your link. The latter occurs when you consistently exceed your bandwidth, in which situation you may as well not even have a buffer, because it only increases latency without increasing throughput. That describes TFA's real point.

      What he suggests amounts to actively choosing between those two conditions - If your average demand falls below your link speed, a larger buffer will help smooth the load over time. If, however, your average demand exceeds your link speed, throw away the buffer because it doesn't help.

      But as per the GP's point - If you have an always-full buffer, you literally gain nothing but latency.

    5. Re:Is this a problem? by CyprusBlue113 · · Score: 5, Informative

      The problem with buffers is most all of the time they are configured by size in bits. They need to be sized based on bit flight time of the circuit, which is in delay ms times throughput in bits. The disconnect between those values is a problem in *either* direction, especially past the retransmit threshold on the above side.

      Buffers should be dynamicly sized based on flight time of data on the specifc link, and ideally kept updated. WRED is also highly suggested.

      What really exacerbates the issue is devices with buffers that must be the same size for all links on X (be it card, slot, or chassis).

      --
      a handful of selfish greedy people are no match for millions of selfish, greedy people -u4ya
    6. Re:Is this a problem? by skids · · Score: 3, Insightful

      What he suggests amounts to actively choosing between those two conditions - If your average demand falls below your link speed, a larger buffer will help smooth the load over time.

      That's a pretty simplified way of putting it, but basically correct. Major equipment vendors have been slow to adopt more advanced queuing strategies (Stochastic Fair Queuing integrated with some of the more advanced flavors of early discard.) Fortunately we're budgeted for and piloting a shaper for purchase soon, and this time around have a chance to get something both well supported and cutting edge.

      Personally I pine for ATM's ABR CoS with it's fast end-to-end congestion notification, but as history has shown us, the inevitable fate of the tech world is for the inferior to be gradually, painfully, and kludgingly adapted to become the same thing as the technologies it displaced through lowballing. In this case, that inferior thing being IP/ethernet.

    7. Re:Is this a problem? by icebike · · Score: 4, Informative

      Seems so, but isn't. For TCP traffic, a shallow buffer that drops traffic will result in more goodput than a deep buffer. Which is the point.

      Exactly.

      Early Congestion notification along with ONLY a minimal amount of client side buffering is really all you need.
      The deep buffer just make it worse for everyone.

      Oh, and And just as a Car Analogy is inappropriate to describe TCP traffic the Airplane Analogy is worse.

      --
      Sig Battery depleted. Reverting to safe mode.
    8. Re:Is this a problem? by Ethanol-fueled · · Score: 1, Offtopic

      ...the inevitable fate of the tech world is for the inferior to be gradually, painfully, and kludgingly adapted to become the same thing as the technologies it displaced through lowballing.

      In this case Gettys is acting as an apologist for the municipal and/or corporate resistance to augmenting American infrastructure to 21st century standards. Whenever you have an elite few pinching pennies at the expense of the many, then you know that the ZOG machine is behind it. Their propaganda will explain everything away using bureaucratic technobabble while the final solution* to the problem is painfully obvious to anybody.

      * the final solution being to railroad more fiber directly into the processing facilities.

    9. Re:Is this a problem? by skids · · Score: 1

      Early Congestion notification along with ONLY a minimal amount of client side buffering is really all you need. The deep buffer just make it worse for everyone.

      There's something to be said for shaping at intermediate hops, even with ECN (and especially when ECN isn't implemented) but it has to be done in a manner that it doesn't add latency out of proportion to the unladen RTT.

    10. Re:Is this a problem? by ObsessiveMathsFreak · · Score: 5, Interesting

      What we need is a ferry analogy.

      Packet transmission is like a ferry, crossing a river at fixed intervals. But ferry sets off when it is full rather than at set times.

      People wait at the shore and generally don't have to wait too long as the ferry is pretty fast and only needs a few people to fill up. For most people, walking onto the ferry involves very little waiting before the ferry actually departs and crosses the river.

      Buffer bloat is when big buffers act like ferrys with huge capacity. People enter a huge 2000 passenger capacity boat, and are let on by their hundreds with seemingly no delay. But the ferry will not depart until it is reasonably full. So the people who got on first may have to wait for hours before the ferry actually departs and crosses the river.

      It is clear that bigger ferries are no substitute for more ferries....or smaller rivers. Or possibly a bridge. In any case, you can get away without introducing cars or airplanes, so my job is done here.

      --
      May the Maths Be with you!
    11. Re:Is this a problem? by CyprusBlue113 · · Score: 2

      No, buffers are not for "rare peaks". They are fundamentally required due to the physics of data transmission from one device to another, especially when the link speeds are different from one hop to the next.

      --
      a handful of selfish greedy people are no match for millions of selfish, greedy people -u4ya
    12. Re:Is this a problem? by Idbar · · Score: 1

      I'm not sure about goodput, but for sure shallow buffers result in better latency.

      ECN helps to increase goodput, and AQM can help to keep high thoughput. The main concern of some (at least my research topic) is how to implement AQM to spread traffic spikes such that the link utilization increases while buffer occupancy reduces.

    13. Re:Is this a problem? by Anonymous Coward · · Score: 0

      If it works, it'll make us free. At that point I'd just follow whatever orders came my way.

    14. Re:Is this a problem? by houstonbofh · · Score: 1

      No, because it only takes one congested link, and then the buffers start filling up along the entire path. In other words, my crappy d-link router can start filling up the buffers in the core Internet. OK, not just mine, but a few dozzen crappy routers, and it can be a regional problem. And we all know those "free" cable modems are of the highest quality...

    15. Re:Is this a problem? by blahplusplus · · Score: 0

      "May the Maths Be with you!"

      May the understanding of reason be with you:

      http://bit.ly/dYaWUc

    16. Re:Is this a problem? by LordLimecat · · Score: 1

      It is clear that bigger ferries are no substitute for more ferries....or smaller rivers. Or possibly a bridge.

      Or intergalactic starships, and teleporters?

      What were we talking about, again?

    17. Re:Is this a problem? by skids · · Score: 4, Informative

      That analogy doesn't quite do the trick. TCP windowing is a bit more sophisticated than that. You can think of it maybe as a commander sending couriers out to support a mobile squad through hostile territory. If too many of them never make it to the squad, or back, he sends them less frequently so they can sneak through more discretely. If the troops make it through then he sends them faster because the more ammo he can get through the better. But he also has to decide how many men to put on courier duty. If the couriers take too long the squad has obviously moved further away from the base, and if he waited for the next one to return, he wouldn't be sending enough ammo. If the couriers return quickly, he can make do with less couriers.

      Big buffers are like a flimsy rope bridge in the courier's path that takes a long time to cross. Couriers have to wait on one side because only one can cross at once, but the large groups waiting at the side of the cliff is more likely to get attacked. Until they do get attacked, however, the commander starts to think the squad has moved very far away, so he puts more couriers on duty. Since he thinks the squad is far away, he is not expecting them to return for a longer amount of time, it takes him longer to realize that they are starting to go missing entirely.

      One of the best solutions to this problem turns out to be for some of the couriers to randomly go AWOL, and for more of them to go AWOL the bigger the crowd at the rope bridge gets. This basic concept is called Random Early Discard, and there have been a lot of ways invented for deciding who goes AWOL and why. If some of the couriers go AWOL, the commander thinks they are being attacked, so he slows down and also takes some troops off courier duty.

    18. Re:Is this a problem? by egamma · · Score: 1

      Now if we could just back off the military spending, even just a little, we could upgrade infrastructure in the US. But military spending feeds campaigns more than citizens do...... and here we are.

      Huh? You are aware that the Internet is owned by companies like Level3, which doesn't spend any money on military campaigns, aren't you?

    19. Re:Is this a problem? by Just+Some+Guy · · Score: 1

      I see what you did there.

      --
      Dewey, what part of this looks like authorities should be involved?
    20. Re:Is this a problem? by TheLink · · Score: 3, Interesting

      You don't necessarily have to size them in flight time of the circuit.

      What you can do is have huge buffers, but just drop packets that are older than say 50 milliseconds since the time they entered the device (if the link/hop is supposed to be fast and low latency).

      If the link is slow and/or high latency, you may wish to use higher values - 100 milliseconds. But not too high. I'm no networking expert but I don't really see the purpose of adding hundreds of milliseconds to a hop just to save a few packets that are likely to be dropped anyway, or should be dropped as an indirect signal that whoever is sending those packets should slow down.

      --
    21. Re:Is this a problem? by Anonymous Coward · · Score: 0

      Except against Cogent...

    22. Re:Is this a problem? by Shinobi · · Score: 3, Interesting

      Except that Cogent is the trouble instigator in every single instance. They are like the little trouble maker who runs around poking, kicking, pinching, insulting the larger kid at the playground, yet cries loudly and acts very hurt when he gets slapped in return.

    23. Re:Is this a problem? by Anonymous Coward · · Score: 0

      That's not the purpose of a buffer : a buffer is used for handling differences in speed.

      For example , if you would read a video stream directly, then most of the time , your connection would be fast enough to allow you to view the video in real time.
      However, during some moments, it might be too slow, and you would have to wait.

      By buffering , you take advantage of the moments when the speed is higher , to be able to handle moments when the speed is slower.

      So you don't need to fit 11 bytes in a 10 bytes bucket : you store 10 when your speed is good , and start using it up when your speed becomes lower.
      The problem is not that whether your buffer gets full , but that it might get empty.

      However, if your speed is constantly bad, having a larger buffer won't improve it . The buffer will be empty all the time , and you get a lot of overhead.

    24. Re:Is this a problem? by syousef · · Score: 5, Funny

      That is actually the exact problem. You do not want buffers larger than the flight time of your circuit. You absolutely want the buffers to fill and drop packets otherwise.

      You talkin' smack, fool? I will end you! I bloat like a buffer, sting like a TCP!

      --
      These posts express my own personal views, not those of my employer
    25. Re:Is this a problem? by __aancvu2993 · · Score: 0

      > a smaller buffer introduces less latency than a large one

      > a smaller RETARDED buffer introduces less latency than a largeR one

      FTFY

      More to the point: FUH FUH BAHFAH BAD, WAT DO. SUBMARINE SKNKING, ALARMS A-WAILIN' SO SCARED!!ONEELEVEN

      How about abandoning this sorry state of scare reporting and taking a scientific view for once? You know, like, measuring things? Where does the problem happen? Under what circumstances? Test your assumptions, be honest? Oh, I know, screw that, this is IT, we run around in flames and then order something from Cisco. Protip: retards don't run core routers and queue management and traffic control are these new things now, but don't just tell anyone, only l33t h4x0rs now about them.

      tldr: shut up.

      somewhat 4channing b/c this rubbish deserves it.

    26. Re:Is this a problem? by Troke · · Score: 1

      Maybe the passengers need swimmies? or life jackets so they can be tossed overboard! either way, +1 to explanation being clear, concise, informative, and funny.

    27. Re:Is this a problem? by Anonymous Coward · · Score: 0

      Example for bufferbloat:
      1. Take a standard DSL setup with a WLAN router.
      2. Place your notebook in a location where the speed of the WLAN link is lower than the speed of the DSL line. For a fast DSL line the WLAN speed should be much lower.
      3. Watch youtube and try to access the web interface of your WLAN router.

      In most cases you won't be able to access the router. Since the router fills up it's huge buffer before dropping packets, the TCP speed (of the video streaming) can't adapt to the speed of the WLAN link. Any packets of additional connections will be at the end of the buffer and likely be dropped.

      Solution:
      Buffer sizes should be dynamic based on the link speed. In case of WLAN it should be client-specific (each client may have another link speed).

    28. Re:Is this a problem? by pla · · Score: 3, Informative

      You know, like, measuring things? Where does the problem happen? Under what circumstances?

      You mean, like figure-2 or even better, figure-5, in TFA? Where the (most common) 2^n buffer sizes stand out so obviously in the data that you'd need to try not to notice the trend?

      Of course, this situation doesn't actually require much "real" data to prove. If each 1500 byte packet takes 10ms to transmit, and you have a full 256KB buffer - Which will unavoidably happen any time you try to sustain a transmit faster than your link can handle - You will have 1.7 seconds of latency in a FIFO queue.


      tldr

      Don't worry, we could tell.

    29. Re:Is this a problem? by sgt+scrub · · Score: 2

      Early Congestion notification along with ONLY a minimal amount of client side buffering is really all you need.

      Unfortunately, early notification doesn't work with a ton of wireless devices. Their drivers have minimal abilities to be controlled and they always send data at the speed of their negotiation. .eg if they connect at 11g they always send data at that speed and always send acks with window size adjustments to speed traffic up to that speed until they receive multiple window size adjustments telling them to STFD. Wireless devices are the dumbest things ever to be unleashed on the net and they are multiplying.

      --
      Having to work for a living is the root of all evil.
    30. Re:Is this a problem? by Anonymous Coward · · Score: 0

      AWOL = Awake With Old Lobster ?

    31. Re:Is this a problem? by Anonymous Coward · · Score: 0

      Not level3, your money is going to finance whatever campaign military pending feels it needs to promote to survive.

      The problem is you have money and they're gonna take it from you to put to their use (which supposedly you didn't want when you cast your vote).

    32. Re:Is this a problem? by Anonymous Coward · · Score: 0

      Which is why you need a proxy between WiFi and the real link. Or at least shaping, if you mostly communicate with fast peers.

    33. Re:Is this a problem? by T+Murphy · · Score: 2

      In any case, you can get away without introducing cars

      The only ferries I've ever been on were for cars, so you kinda did. Maybe you should've used a paraglider analogy, I've never seen a car use a paraglider.

    34. Re:Is this a problem? by trschober · · Score: 2

      you sir, did not understand which buffers are being discussed buffering a movie in no way compares to tcp buffering

    35. Re:Is this a problem? by Surt · · Score: 2

      And the right balance between buffer size, drop percentage, and throughput should be measurable. But I bet those lazy bastards at cisco have never thought to measure performance, which is why no one uses their equipment.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    36. Re:Is this a problem? by Surt · · Score: 1

      They don't pay taxes?

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    37. Re:Is this a problem? by ravenshrike · · Score: 0

      Cutting military spending entirely would still leave us with a deficit in eah year's budget(Oh wait, a budget hasn't been passed in the past 4 years?) that is only going to grow exponentially from social programs, and that was before Obammy went on his spending spree and guaranteed a metric asston of future spending.

    38. Re:Is this a problem? by Surt · · Score: 2

      Umm ... your 1500 byte packet had best not take more than about 10 us to transmit. 10ms would be quite ridiculous.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    39. Re:Is this a problem? by egamma · · Score: 1

      They don't pay taxes?

      Do you have some evidence that if we weren't at war, that taxes would be lower? Or even if taxes were lower, that the extra money would be spent on infrastructure rather than stock dividends?

    40. Re:Is this a problem? by MagicM · · Score: 1

      But what if I want to bring my goat?

    41. Re:Is this a problem? by pla · · Score: 1

      your 1500 byte packet had best not take more than about 10 us to transmit. 10ms would be quite ridiculous.

      1500 bytes per 10ms comes out to 1.2Mbit, very close to my actual (admittedly sucky) internet connection. 1500 bytes per 10us would mean you have a 1.2GIGAbit connection, faster than most LANs.

    42. Re:Is this a problem? by Surt · · Score: 1

      We're talking about 40+Gbit/sec internet backbones in this article, not end user connections.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    43. Re:Is this a problem? by Surt · · Score: 1

      I thought that was the premise, not the argument.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    44. Re:Is this a problem? by pla · · Score: 2

      We're talking about 40+Gbit/sec internet backbones in this article, not end user connections.

      The entire first half of TFA talks about his 1Mbit WiFi connection. I care about my paltry 1.2Mbit intenet connection.

      Now in fairness, the same problem does indeed apply at the backbone level... But I didn't call you "ridiculous". :)

    45. Re:Is this a problem? by Surt · · Score: 1

      Sorry, I just read the 'bufferbloat' article, which seemed to be all about the transit, and not the endpoints.

      --
      "Who is the Journal of Quantum Physics going to believe?" --Stephen Hawking
    46. Re:Is this a problem? by Anonymous Coward · · Score: 1

      True, but the buffer requred for a single interface should only be large enough to cover the bit-rate difference between the slowest outbound intereface and the highest inbound interface.

      more or less.

    47. Re:Is this a problem? by jg · · Score: 1

      Yes, and since the BDP is not knowable usually (neither the bandwidth or delay are predictable these days in many/most circumstances), we have to be smart (need AQM).

    48. Re:Is this a problem? by jg · · Score: 1

      Heh. The worst problems (as far as I've seen) we have are in the edge.

      In our hosts and home routers (most of which are Linux boxes).

      The problem occurs anytime you are next to a bottleneck, and the "municipal and/or corporate resistance" have now built out the core of the internet to the point that the problem is most severe at the very edge, including your laptop/handheld device.

      *EVERYONE* has made the same set of mistakes. I have done so too at times....

    49. Re:Is this a problem? by jg · · Score: 2

      You can have an overall congested network. I've seen this on occasion.

      But it is very easy (and even more common) for you (or people in your house) to do it to you, than to have the overall ISP network congested. This is something a simple file copy can/does do to you, in practice.

      Some ISP's run AQM properly (e.g. RED) in the cores of their networks; some do not. On the ones that do not, you'll see problems at peak hours. Similarly on corporate networks.

    50. Re:Is this a problem? by jg · · Score: 1

      Huh?

      It talks primarily about what I observed on my *home* connection...

      The Netalyzr data is all about edge connections.

      There are problems in the core, but the worst problems I've seen are at the edge, and the edge is where most of the congestion is these days.

    51. Re:Is this a problem? by Anonymous Coward · · Score: 0

      You have to marry it first.

    52. Re:Is this a problem? by badkarmadayaccount · · Score: 1

      ECN exists. It works. Just like S/MIME. And similarly, no one uses it.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
  2. Cringely again... by beetle496 · · Score: 4, Informative

    Cingely has been writing about this all year. He cites Jim Gettys too. See: http://www.cringely.com/tag/bufferbloat/

    --
    I paid the going retail price for a Windows screen reader and got a free Unix computer!
    1. Re:Cringely again... by hairyfeet · · Score: 4, Interesting

      Uhhh...I just read the link but am a little confused. Even Cringley points out at the first of his article that originally TCP was written for a VASTLY different and weaker network than we have now, so instead of trying to make the networks go back to a mid 1980s design, wouldn't it be smarter just to update TCP to take advantage of new tech advances?

      Now i'm not really a heavy network guy so excuse me if I put it in more of my lingo, but lets compare it to something I've got more first hand experience with, hard drives. If you don't write the controller code to take advantage of the large cache frankly the cache becomes worthless but if you DO write the controller code to take into account the size of the buffer it makes a BIG difference, so much so that I've seen 5400RPM drives whip 7200RPM drives simply by having better cache management.

      So wouldn't the right way to go be to update TCP for the times? i mean we didn't slow computers down so we could keep PATA or PCI, we came up with new tech like SATA and PCIe to take advantage of the faster throughput. Shouldn't we do the same here as well?

      --
      ACs don't waste your time replying, your posts are never seen by me.
    2. Re:Cringely again... by mellon · · Score: 5, Insightful

      Buffer and cache are not the same thing. Packets are written to a buffer once and read from it once. Caches are useless if, on average, blocks aren't read from them more than they are written to them. So treating them as analogous is highly misleading.

      The deal with throughput is that you can only win by storing packets if there is going to be room to send them without delay. If you buffer every packet that's sent, it does get delivered, but by the time it gets to its destination, it's too late. You can adjust the TCP algorithms to behave somewhat less badly in this situation, but what you can't do is get genuine flow control with big buffers, because the endpoints have no way to determine the throughput of the network.

      The only way the endpoints can determine the throughput of the network is if packets get dropped when there's congestion. When packets don't get dropped, what you see is that whenever there is more traffic to send over the link than the link can hold, it just winds up in a buffer. Latency rises. Eventually all the senders give up. Then the buffers start to drain, and packets get delivered. Then the acks start coming back. Now the endpoints think they are on a high latency link, so they crank back up again and fill the buffers again.

      So what you see is a network that works great as long as the total load presented to the network is less than the aggregate capacity of the network. As soon as the demand for bandwidth exceeds the supply, every single stream starts to stall. If you've stayed at a hotel recently, you've seen this: a dozen people try to watch video streams over a fairly wimpy connection, and then you can't do _anything_ over the connection, because the buffer fills up.

      If you didn't have that giant buffer, all the endpoints would be able to tell that the link was congested, and would slow down. If the total available bandwidth wasn't enough, the video streams would basically fail, but you could still get mail and surf the web. But with bufferbloat, not only can't you watch video streams, you also can't surf the web or get email or ssh to your server.

      You can see this by pinging a server somewhere out on the internet. When the link isn't congested, you'll see reasonable round trip times, typically 100ms. Then when it gets congested, you'll see packets dropped, and you'll see the RTT rise to as much as a minute. Then as all the senders notice that their packets aren't being delivered, they back off and suddenly the RTT starts to drop again, and you start to hope the network's been fixed. But it's fool's gold: as soon as the senders notice, they bomb the buffer again, and the RTT goes back up. Rinse and repeat until you give up.

      You probably don't see this very often on your home link, because you probably aren't saturating it. But it happens a lot at Wifi hotspots in particular, and also sometimes on 3G networks. It's quite disheartening, particularly when you're paying for the connection. You also see it on big ISPs like Comcast when you try to reach content providers that aren't willing to pay the ransom to Comcast to get on their uncongested link.

    3. Re:Cringely again... by Idbar · · Score: 1

      I'll give you a few more names: Sally Floyd, Van Jacobson, Leonard Kleinrock and, of course, Raj Jain have been writing about this since 1983.

    4. Re:Cringely again... by Idbar · · Score: 3, Informative

      Basic, and worth reading is Raj Jain's 1992 paper.

    5. Re:Cringely again... by m.dillon · · Score: 5, Interesting

      Well, you definitely CAN tell when one or more buffers along the path begins to fill up, because latency increases. Packet loss is not necessary and, in fact, packet loss just makes the problem worse since many TCP connections implement SACK now and can keep the bandwidth saturated even in the face of packet loss.

      The ideal behavior is probably not to start dropping packets immediately... eventually, sure, but definitely not immediately. Ideally what you want to do is to attempt to shift the problem closer to the edges of the network where it is easier to fairly apportion bandwidth between customers.

      Send-side bandwidth limiting is very easy to implement since TCP already has a facility to collect latency information in the returned acks. I wrote a little beastie to do that in FreeBSD many years ago, and I turn it on in DragonFly releases by default.

      The purpose of the feature is not to completely remove packet buffering from the network, because doing so would put the sending server at a severe disadvantage verses other servers that do not implement similar algorithms (which is most of them).

      The purpose is to unload the buffers enough such that the algorithms in the edge routers aren't overloaded by the data and can do a better job apportioning bandwidth between streams.

      Our little network runs this coupled with fair queueing in both directions... that is, we not only control the outgoing bandwidth, we also pipe all the incoming bandwidth through a well connected colo and control that too, before it runs over the terminal broadband links. This allows us to run FAIRQ in both direction in addition to reserving bandwidth for TCP acks and breaking down other services. FAIRQ always works much better when links are only modestly overloaded and not completely overloaded. Frankly we don't have much of a choice, we HAVE to do this because our last-leg broadband links are 100% saturated in both directions 24x7. Anything short of that and even a single video stream screws up the latency for other connections beyond hope.

      This sort of solution works great near the edges.

      For the center of the network, frankly, I think about the best that can be done is modest buffering and RED and then trying to reduce the load on the buffers in the center with algorithms run on the edges (that can sense end-to-end latency). The modest buffering is needed for the edge algorithms to be able to operate without bits of the network having to resort to dropping packets. In otherwords, you want the steady state load for the network to not have to drop packets. Dropping packets should be reserved for the case where the load changes too quickly for the nominal algorithms to react. That's my opinion anyhow.

      -Matt

    6. Re:Cringely again... by WaffleMonster · · Score: 4, Interesting

      So wouldn't the right way to go be to update TCP for the times? i mean we didn't slow computers down so we could keep PATA or PCI, we came up with new tech like SATA and PCIe to take advantage of the faster throughput. Shouldn't we do the same here as well?

      We have SCTP which was intended to replace TCP except nobody seems to care.

      At the end of the day the concept of TCP is not rocket science - there is a limit and diminishing returns to what more can be done twoard making TCP a perfect reflection of the concept of TCP.

      Congestion management and ack/windowing have certainly evolved into high arts..but fundementally all TCP does is implement a loss free ordered data stream on top of an unordered lossy packet switched network.

      This means your core limitation is embedded in the definition of TCP itself...the problem of head-of-line blocking. By using TCP you are by definition limiting yourself to the constraints of TCP.

      Realtime voice/video and multi-player games use their own protocols because they are not willing to accept the constraints of TCP. It is not the implementation of TCP that is holding them back. It is the *concept* of TCP.

      In my opinion we need more IP protocols to better handle varied use cases more than we need a new TCP.

    7. Re:Cringely again... by evilviper · · Score: 4, Interesting

      Even Cringley points out at the first of his article that originally TCP was written for a VASTLY different and weaker network than we have now, so instead of trying to make the networks go back to a mid 1980s design, wouldn't it be smarter just to update TCP to take advantage of new tech advances?

      There's nothing about a "weaker" network that necessitates a protocol redesign. TCP has had problems with congestion handling from day one, that have necessitated a million and one hacks and workarounds, because it stupidly conflates packet loss with congestion... Some links will have packet loss without any congestion, and others (like these with huge buffers) will have congestion without (immediate) packet loss. It was a bad design decision.

      What's worse is that IP was designed correctly to begin with. The original design has ICMP control messages (eg. source-quench) to signal congestion, much like many other networking protocols. The real problem was that the specifics were vague, and there was no exact standard on how much to slow down, how it affects higher level protocols, etc., so it became a prisoner's dilemma, and highly unfair, and was deprecated.

      Of course, this problem could occur with TCP's congestion control just as easily if any particular implementations reduced the rate of exponential backoff, so there's nothing fundamentally wrong with the original congestion control design, just the lack of consistent implementation.

      Controlling congestion by dropping packets is like controlling freeway traffic by randomly pushing cars off the road with a bulldozer.

      --
      Slashdot gets worse every day... Pipedot: News for nerds, without the corporate slant
    8. Re:Cringely again... by jgrahn · · Score: 2

      We have SCTP which was intended to replace TCP except nobody seems to care.

      Some telecom standards are built on SCTP (we use it at work). Not sure if it's all that great though -- a lot of its problems are probably hidden by the fact that few care about it, and that it's used in isolated, high-quality networks.

      At the end of the day the concept of TCP is not rocket science - there is a limit and diminishing returns to what more can be done twoard making TCP a perfect reflection of the concept of TCP. [---] In my opinion we need more IP protocols to better handle varied use cases more than we need a new TCP.

      And we need application-level protocols on top of TCP which suck less, and implementations which suck less. You need some elemental understanding of TCP to use it efficiently, and from what I've seen, most programmers don't have it.

      PS. As I recall it, last time Getty was in the media with his buffer bloat theory, several high-profile TCP experts (e.g. John Nagle) criticized him. We may be reacting to nonsense here.

    9. Re:Cringely again... by Anonymous Coward · · Score: 1

      wouldn't it be smarter just to update TCP to take advantage of new tech advances?

      But then you'll have a TCPv6 situation where no-one can communicate between the 2 different internets.

    10. Re:Cringely again... by sgt+scrub · · Score: 1

      I thought IBM designed SCTP to replace UDP. Regardless, I think your right. Using SCTP would benefit the web.

      --
      Having to work for a living is the root of all evil.
    11. Re:Cringely again... by mellon · · Score: 1

      What you are missing in this analysis is that retransmissions are no more expensive whether they're done by the router or the end node, but when they are done by the end node, the end node has more information. Storing something in a buffer to send later when there's room in the pipe is exactly equivalent to retransmitting, except that there is no way for the router to inform the end node that this has happened.

    12. Re:Cringely again... by pehrs · · Score: 1

      We have SCTP which was intended to replace TCP except nobody seems to care.

      Some telecom standards are built on SCTP (we use it at work).
      Not sure if it's all that great though -- a lot of its problems are probably hidden by the fact that
      few care about it, and that it's used in isolated, high-quality networks.

      We have used SCTP in production for some time. There are some serious and well known problems with using SCTP, but as far as I know the protocol itself is solid, far more so than TCP. The three major problems you run into with SCTP are:

      1. The LKSCTP implementation in the linux kernel has a few nasty bugs related to multihoming, that have been patched but the patches are slow to be pushed to all distributions.
      2. There are a lot of D-Link, NetGear and similar crap nat boxes on the internet that happily destroys all packets they don't recognize, preventing you from using SCTP toward end users unless you tunnel them over UDP (and even then you might find that those nat boxes rewrite your packets!)
      3. Some ISP's filter out IP protocols they don't recognize, once again forcing you to tunnel over UDP.

      Especially number 2 makes deployment of any new IP protocol a very frustrating process outside core networks. If SCTP does not make it I think we risk being stuck with TCP "forever".

    13. Re:Cringely again... by foniksonik · · Score: 1

      Could it be used as a mid point to mid point protocol such that the big backbones convert to sctp, use it to transmit between each other, attempt to transmit to ISPs - convert if the attempt fails. Same could be done by ISPs as the transition over from TCP to SCTP, attempt to transmit with conversion as a failure mode.

      The premise is to start the transition with a backup to convert.

      A possible efficiency would be to whitelist successful attempt targets, ISPs that accept SCTP for instance. These ISPs could also whitelist IP addresses or MAC addresses (with an expiration date if IP is used to avoid a scenario where an SCTP aware router is replaced with a non-aware router by an ignorant end user).

      This is a typical legacy system transition pattern. When enough legacy equipment is replaced you flip a switch and inform end users that they will have to upgrade if needed and provide lists of known good hardware to switch to.

      --
      A fool throws a stone into a well and a thousand sages can not remove it.
  3. Push or Pull by JoeMerchant · · Score: 5, Funny

    To configure your active queue management, the first thing I need to know is: do you have a push system, or a pull system?

    Neither, sir, we have a suck system.

  4. Re:Alarmism? by quasius · · Score: 1

    As this is not my area of expertise, I have no idea if this is valid or not; but something having dire consequences does not allow you to simply dismiss it as "alarmism."

  5. Re:SPAM by larry+bagina · · Score: 1, Funny

    not only that, but Getty's buffer bloat theory has been featured on slashdot before. Maybe the dupe queue was full?

    --
    Do you even lift?

    These aren't the 'roids you're looking for.

  6. Re:SPAM by jibjibjib · · Score: 4

    Maybe posting a new article on an issue that was also an issue a year ago is not a "dupe", but an acceptable and possibly even normal thing for a news site to do?

  7. Re:Alarmism? by Anonymous Coward · · Score: 5, Informative

    Except it is an alarmist. The current situation isn't optimal but being optimal and having a critical issue are two different things. The crux of the problem is basically "Long delays from bufferbloat are frequently attributed incorrectly to network congestion, and this misinterpretation of the problem leads to the wrong solutions being proposed." That means is the administrators *might* mistake large buffer slow downs for other causes of network congestion. Idealy, it should definitely be dealt with better but it's hardly a collapse of the network.

    A network buffer acts just as that, a buffer to smooth out traffic spikes. A buffer does this at the cost of latency. If a buffer is large AND consistently full, that means that network link is always being fully utilized to where a large buffer isn't needed which basically induces large latency on top of waiting for the link to clear for no benefits (the extra latency *may* confuse administrators is basically the "danger"). On the other hand, if the link is under utilized the majority of times, the a large buffer is beneficial to deal with spike traffic. The majority of networks are the latter and hence designed as such. Two solutions, get faster links or deal with it more intelligently.

  8. Re:thank god. i am so sick of the internet by MachDelta · · Score: 1

    ...he said, over the internet.

  9. A lot more to interoperate with by tepples · · Score: 5, Insightful

    A replacement for PATA or PCI has to interoperate only with other components in the same chassis, or possibly on the same desk in the case of eSATA and Thunderbolt. A replacement for TCP would have to interoperate with every other computer in the world. Imagine what a flag day that would be.

  10. really? calling Jim Gettys a spammer? by Chirs · · Score: 2

    Feel free to try it out yourself...I have and the problem is real.

  11. Re:SPAM by phayes · · Score: 4, Insightful

    And just maybe some of us are interested in how research has progressed since the last article...

    --
    Democracy is a sheep and two wolves deciding what to have for lunch. Freedom is a well armed sheep contesting the issue
  12. endpoints can't fix individual hop buffering by Chirs · · Score: 2

    Each hop has its own buffer. Endpoints can fix their own buffers, but they can't do anything about buffering in the next hop. If something changes in the network to reduce the available bandwidth, the ideal behaviour is for packets to start getting dropped right away so that the originator gets notified of the drop and can slow itself down to compensate.

    If some device in the core network just buffers up seconds worth of packets instead of droping them it destroys the ability of the sender to adapt to the changing conditions.

  13. Re:thank god. i am so sick of the internet by Ethanol-fueled · · Score: 1, Offtopic

    I'm also on the internet, but he's right. This pretty much sums up how I feel about the internet.

  14. Re:Alarmism? by CyprusBlue113 · · Score: 2

    But that's the point, the buffers smooth the link, but not the streams going across them. At enough of a buffer bloat, the buffers actually make the link have to retransmit the same data multiple times due to the design of TCP congestion avoidance.

    --
    a handful of selfish greedy people are no match for millions of selfish, greedy people -u4ya
  15. I've definitely noticed it on my DSL by Just+Brew+It! · · Score: 4, Interesting

    As soon as I start trying to shove (or suck) more bits through the pipe than it can handle, round trip latency to "nearby" points of the Internet increases from ~25 ms to ~1 second. When I need to transfer a lot of data, I use rsync or wget if at all possible, and throttle the transfer to just below the rate the connection can handle; this results in ping times staying sane while only slowing down the transfer slightly. We shouldn't need to resort to doing stuff like this to make the network function properly!

    1. Re:I've definitely noticed it on my DSL by Rising+Ape · · Score: 1

      I've had similar problems a few years back, but either TCP implementations are better or the buffer sizes in DSLAMs are better tuned these days because it doesn't seem to happen. Yes, latency goes up if I saturate the connection with a big download, but not so much that all other connections grind to a halt.

      Not like a few years back when a big download would cause latency to go go up to ~ 2 seconds and you could kiss goodbye to doing anything else with the connection at the same time, at least at tolerable speed. Now it's about 100 ms, and everything else is a bit slower but still perfectly usable.

    2. Re:I've definitely noticed it on my DSL by Anonymous Coward · · Score: 0

      I used to do similar things with torrents. Though the torrent programs seem to do a much better job these days of doing it themselves...

    3. Re:I've definitely noticed it on my DSL by Just+Brew+It! · · Score: 2

      Forgot to mention, I also run the Folding@home distributed computing client. Uploads of completed work units were causing horrible lag spikes until I started routing them through a throttling proxy (implemented via apache + a Python script I cobbled together).

    4. Re:I've definitely noticed it on my DSL by badkarmadayaccount · · Score: 1

      You are simply implementing ECN by hand.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
  16. article's analogy is like by OrangeTide · · Score: 4, Funny

    This analogy is like a bathtub, full of spiders, and on fire. It sounds dangerous, but it's self limiting.

    --
    “Common sense is not so common.” — Voltaire
    1. Re:article's analogy is like by Anonymous Coward · · Score: 0

      Huzzah! How many points do you recieve?

    2. Re:article's analogy is like by John+Hasler · · Score: 1

      That does sound like a dangerous analogy. What if the curtains catch?

      --
      Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
  17. Re:Alarmism? by OrangeTide · · Score: 1

    fine then, ignore the warnings, but don't come crying to me when you can't download pornography one day.

    --
    “Common sense is not so common.” — Voltaire
  18. Buffer bloat animation by Twinbee · · Score: 5, Informative
    I thought this animation by Richard Scheffenegger was a good way to show what's happening: http://www.skytopia.com/project/articles/lag/nam00000.avi Here's a description of the video:

    The bad Bufferbloat setup is on the left (yellow dots), and the 'good' setup (i.e. how things used to be configured about 10-20 years ago when RAM was more expensive!) is on the right (cyan/blue dots).

    Both sides start off okay, but notice how the left side 'queues' (tall yellow dot columns) keep on growing over time, while the right side blue columns stop short because of the small buffer size. As they stop short, some data 'packets' must be dropped, and this gets reported back to the upload site that it's shoving data to the user too fast. As a result, the upload site temporarily slows the sending of data, and thus the system self-corrects.

    Meanwhile, on the left side, these packets of data never get dropped, so the giant bloated yellow buffers get filled more and more, but the computer at the upload site doesn't realise the carnage of these giant queues further down the line, and instead thinks "All is okay, let's keep sending data fast!".

    Finally, when a smaller piece of data needs to be sent to the user (see 2:30+ signified by red dots on the left and dark blue dots on the right), the left side shows the red dots (which could be say, a small email) wading through giant queues to reach their destination, really slowly. Furthermore these tiny bits of data often need special 'emergency' treatment as they hold up other larger data associated with it. On the good right side, the dark blue dots have no such giant queues.

    --
    Why OpalCalc is the best Windows calc
  19. All group transport mechanism run to a schedule by Colin+Smith · · Score: 1

    So none are an appropriate analogy.

    HTH

    --
    Deleted
    1. Re:All group transport mechanism run to a schedule by Anonymous Coward · · Score: 0

      Not entirely true - consider the taxibus/share taxi/jitney ( http://en.wikipedia.org/wiki/Taxibus ).

    2. Re:All group transport mechanism run to a schedule by Colin+Smith · · Score: 1

      They all have a schedule. Even it it's no more than "today".
       

      --
      Deleted
  20. Lag-o-Meter-of-Internet-Doom by WaffleMonster · · Score: 4, Interesting

    If you look at buffers allocated to fast multi-gigabit interfaces at the core of the network they are simply not large enough compared to forwarding rates involved to be able to induce the kinds of delays needed to cause Internet wide problems.

    You can argue they may not be ideal for real time voice, game or video communication when these links are oversubscribed but no doomsday is possible.

    Today buffer bloat effects are mostly observed at the edge even though they need not always be.

      Failure of a congestion control algorithm to control link saturation does not translate into congestive collapse of the larger network. It just results in *your* network connection turning to shit. When netalyzer runs it intentionally saturates your link at that time. In the real world only a few portions of the edge are ever saturated to the extent congestion control failure becomes an issue leading to more packets through core routers. The number of edge machines in this category would need to be significant to cause a rerun of previous issues.

    That condition can not be met due to self feedbacks. If everyone maxed their pipes at once the core would saturate self-limiting edge saturation due to gross over-provisioning of available edge bandwidth in relation to core bandwidth which would ensure congestion control algorithms function properly.

    I'm not arguing there is not a problem or more can't be done. I'm just arguing the doomsday congestive collapse scenario is bullshit.

    1. Re:Lag-o-Meter-of-Internet-Doom by jg · · Score: 1

      There are significant networks that do not look like the consumer edge Internet, one of which reportedly collapsed in a nasty way (not necessarily in the same way as 1986). Don't presume that the network that may collapse is the global internet (though time based self synchronizing phenomena are a worry there). One of the functions of AQM algorithms is to ensure that TCP flows don't synchronize their behavior. And those AQM algorithms are MIA on many networks today.

      Those of us who lived through the 1986 congestion collapse are somewhat worried.

      That we don't know is what worries us, as we're flying in an area we don't fully understand.

  21. Doing it wrong, again by Animats · · Score: 4, Interesting

    That's a pretty simplified way of putting it, but basically correct. Major equipment vendors have been slow to adopt more advanced queuing strategies (Stochastic Fair Queuing integrated with some of the more advanced flavors of early discard.)

    Right. The problem is not big buffers, per se. It's big dumb FIFO queues. There's nothing wrong with one big flow, like a file transfer, having a long latency, provided that other flows with less data in flight aren't stuck behind it. That's what "fair queuing" is all about. Each flow has its own queue, and the queues are serviced in a round-robin fashion. (With stochastic fair queuing, some hashing is done to eliminate some of the bookkeeping on flows, but the effect is roughly the same.)

    I figured this out in the early 1980s (see RFC 970) and by the late 1990s, it was an established technology. We shouldn't be having this problem at this late date.

    I wonder how much of the trouble comes from devices that are doing TCP-level processing in the middle of the network. Stateful firewalls and ISP ad-insertion engines can introduce substantial latency.

    If you want to test for bad behavior, try running two flows, one that never has more than one packet outstanding, and one that just does a big file-transfer like operation like a download. If the latency of the low-traffic flow goes up to the same as that of the bulk flow, there's a big dumb buffer in the middle. If the packet loss rate of the low-traffic flow goes up, there's a small dumb buffer in the middle.

    1. Re:Doing it wrong, again by sgt+scrub · · Score: 1

      big dumb buffer

      Nice. Stupid ToS settings, devices that always send the maximum data until they receive 100 ACK window size adjustments telling it to SLFD, and big dumb buffers. I like it!

      --
      Having to work for a living is the root of all evil.
    2. Re:Doing it wrong, again by John+Hasler · · Score: 1

      I wonder how much of the trouble comes from devices that are doing TCP-level processing in the middle of the network. Stateful firewalls and ISP ad-insertion engines [isp-planet.com] can introduce substantial latency.

      I doubt that the processing itself is the cause of more than a few milliseconds of latency, but the machines doing it may have been configured with large buffers not because the processing needed them but because those configuring them thought erroneously that bigger buffers are always better.

      --
      Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
    3. Re:Doing it wrong, again by jg · · Score: 2

      To solve this, I think we need both AQM fully at the edge of the network, and some sort of "fair" queueing at the edge. The headache is that the classic AQM algorithms won't work in the edge case (and are flawed). "Fairness" is in the eyes of the beholder and a complex question. You may consider it "fair" your kids get half the bandwidth you do, for example. But having a situation where talking to a local CDN 10ms away gets tons more bandwidth than something across the globe may not be "fair" in your view, nor that your web browser can put a horrible transient into the queues as it opens 10 TCP connections simultaneously, and it's unfair what it does to other people sharing your home circuit.

      1) Some sort of AQM is necessary to tell the end points to slow down in a timely fashion (by signalling the end point TCP's). Or the buffers fill, and stay full, and you are in fundamental trouble. Consider this the "high order" bit to solving the problem.
      2) TCP does not guarantee any "fairness" between flows of different RTT's, Note that what you consider "fair" inside your house is your business: your ISP has some obligation around "fairness" between customers. This is the next bit of precision. Anyone who thinks TCP is "fair" by itself believes in magic that does not exist.

      Note these two issues might be addressed by one algorithm, or multiple algorithms, and what is best might be different in a host than in your home router, and different yet again elsewhere in the network. Exactly what we need (and will work well) is as yet unknown, though almost anything (even going back to semi-sane buffer sizes selected with even trivial amounts of thinking) can improve things a lot. And getting there is going to require analysis and testing. I encourage people to help out: for example, we've not yet really played with SFB to see how it behaves in the face of variable bandwidth. Classic RED won't work in a sane fashion at all in that case.

      But hugely oversized, dumb, unmanaged, tail-drop buffers have got to go.

      Thankfully, at the edge of the network (your host and home router), we have lots more cycles to play with per packet than in a core router and can burn some of them well for this purpose. And that's where we're almost always congested (your ISP may have other congestion problems, but at the aggregation level of those devices, classic AQM algorithms can function, even if maybe not ideally).

      The article that was posted yesterday is the short CACM article; Kathy and I have a much longer paper in preparation that will go into this in more detail. But CACM has a word count limit we could not meet, and the "fairness" topic is mostly on the cutting room floor, and now being picked up and finished.
      I wasn't expecting the Queue posting to go "live" until next month (i was being naive), so the long paper is not finished. CACM really wanted to lead off January with a bang, so redirected our efforts toward the short, and in many ways incomplete, discussion.

  22. Re:thank god. i am so sick of the internet by Anonymous Coward · · Score: 0

    the pedophile's favorite invention of all time

    Surely you confuse internet with organized religion & enforced celibacy.

  23. solution by m4kesense · · Score: 2

    The bloated or big buffers causing more latencies than necessary only if it is designed with a single queue for all flows. If each flow gets a queue in the buffer and all queues are read and send out in round robin, the ping packet would not have to wait till the earlier started big file transfer which has completely filled the buffer would be through. The ping packet would practically overtake the large amount of queued bytes of the big file transfer instead of going behind it in a single queue.

  24. Easy solution? by Anonymous Coward · · Score: 1

    This government has literally spent billions through DHS to fehn internet safety. I may be simple, but that same overreaching government could give $500m to 4 private non-profits to actively deal with this and other "infrastructure" issues like IPv6, more rural broadband, urban wireless, and other issues.

    It has been done in the past through Red Cross for disaster relief, in floods, earthquakes, epidemics and the like. Society impact issues.

    NGO's have far more efficient resource allocation than the government and they also receive assistance from industry and citizens on a tax favorable basis.

    JJ

    1. Re:Easy solution? by mtaht · · Score: 1

      What Jim and the bufferbloat.net's group of volunteers have accomplished in a year - on nearly no money - boggles my mind.

      Today's commentary on slashdot is a hundred times more clueful than it was last year - and a few days back Byte Queue Limits went into linux's net-next tree, which fixes much of the bloat problems that exist at the ethernet driver layer.

      What has been discussed as 'Time in Queue' limits in the higher level schedulers is still awaiting a clean way to avoid layer violations. I've been too distracted by the BQL merge to pursue that next phase of fixes.

      What we could have done this year with *some money* - nowhere near the amounts you describe above! - could have been amazing, and as for the next year, well, who knows? It is going to take many man-years worth of effort to make the internet responsive again.

      And even with that said, to have harnessed the powers of hundreds first, now thousands, of talented minds, to help solve the bufferbloat problem - has been a far more effective - and wonderful! thing than all the money in the world.

  25. Kind of pointless when you think about it. by sgt+scrub · · Score: 0

    IMHO. If ISP's would build out their networks instead of relying on buffers there would not be an argument here. My attention would be on fixing dumb wireless devices and drivers that ignore every attempt of making them play nice.

    --
    Having to work for a living is the root of all evil.
  26. parallel cable? by Anonymous Coward · · Score: 0

    we need more then one FAT cable to connect two points. the FAT ONE cable is a latency bottle-neck.
    if you connect two points with many smaller cables ... latency problems go away. but it's $$MORE EXPENSIVE$$.
    -
    many on ramps to the one-lane highway (which goes very very fast). you have to wait on te one ramp until it's you time to go on the very-fast hghway.
    if you had many more "smaller" fast highways, you wouldn't have to wait on the ramp soo long. but it's $MORE EXPENISVE$.

  27. Classic problem by Charliemopps · · Score: 1

    This is a classic problem of economics. Publicly owned resources that are not owned by any one individual or company are very difficult for market factors to work on. A good example is fishing. The fish in a bay are not owned by any particular person, so their welfare is not in the economic interest of any particular person. It may be in a commercial fishermans long term interest to conserve the fish population and not over fish, but he's not the only fisherman. If he cuts back on his catch, other fisherman can simply catch the fish he left behind, the fishery is depleted just as if he'd exploited it, the only difference is the cut in profits he took. The other fisherman are thinking the same thing. They may all collectively want to conserve the fish but it's impossible for them to trust each other and agree to cut back on fishing. Sadly if the fishery were owned by a single person, even a terrible, fish hating monster, he would never allow the damage being done to the population that occurs when it's a public resource. A healthy amount of fish is his income and retirement, it's worth millions to him. But we can not allow such a thing to be "owned" and so we're stuck.

    The same applies here. The "internet" is not owned by any particular person, as a result you have dozens of ISPs all fighting to provide the same service at the expense of all of the others. Their cutting their own throats to stay in business and have no way of trusting one another. Government regulation is woefully inadequate and will likely never catch up to technology. At the same time, the thought of a government owned system for transmitting information/data sounds horrifying given the recent actions by our elected officials.

    This is unfortunately a situation that is very much like the classical Gordian Knot, and sadly I think the problem will likely be "solved" by a tyrant just like the original. The constitutional and privacy problems the solution causes will probably dwarf the congestion problems we started with.

  28. Article in LinuxPro Magazine June 2011 by seifried · · Score: 1

    Disclaimer I'm the author. I covered this in my June 2011 column: http://www.linuxpromagazine.com/Issues/2011/127/Security-Lessons-Bufferbloat/%28kategorie%29/0 direct link to the PDF http://www.linux-magazine.com/w3/issue/127/058-059_kurt.pdf. In a nutshell: my link latency at home is usually ~50ms to seifried.org, but with one single outbound file transfer to saturate my uplink ping times go to over 1000ms (1 second) reliably (which completely breaks VOIP/games/etc.).

  29. How can I improve my own connection? by Edgester · · Score: 3, Interesting

    What can I do with my own laptop and wifi router to make my own situation better?

    1. Re:How can I improve my own connection? by Chirs · · Score: 4, Interesting

      As an end-user there are only a few things you can do:

      1) Reduce the outgoing tcp queue size.
      2) Reduce the tx ring buffer size in the network device driver
      3) Set your router's upstream quality-of-service settings to throttle your upstream data transmission rate to just less than your upstream bandwidth.

      Alternately, if you only have one heavy user of upstream bandwidth you could do something like what is described at "http://wanners.net:8000/blog/2011/05/zapping-upload-bufferbloat-with-one-command/". Basically throttling the upstream bandwidth directly on the machine in question rather than on the router.

  30. Thought by bongey · · Score: 0

    Thought is said buffalo bloat for a second. Really there are that many fat buffalos on the internet .

  31. net neutrality wont help by Anonymous Coward · · Score: 1

    The proposed solution of actve queue management is exactly the sort of discrimination the net neutrality folks want to forbid, no?

    1. Re:net neutrality wont help by jg · · Score: 1

      No, it isn't based on who you are talking to....

  32. Re:Alarmism? by jg · · Score: 1

    The problem is *we don't know* what will happen.

    The network is operating in a regime it wasn't intended to... And we lack the instrumentation we need to understand how the internet is operating.

    The buffers are now so large that we've defeated the basic congestion avoidance algorithms (slow start and congestion avoidance). Technically, TCP congestion avoidance is operating, but the time gets so long that TCP thinks the path changed, and probes more aggressively for a new operating point, as explained in the article.We are flying in a piece of the flight envelope that has not been tested. That was a big surprise, when we dug into the traces.

    That should make us nervous.

    We've also had one credible report of a significant network that collapsed and was very difficult to restart. We don't know exactly what all happened (and hopefully never will; we just are frustrated we don't have packet traces).

  33. Much respect 2U & why... apk by Anonymous Coward · · Score: 0

    For that http://tools.ietf.org/html/rfc970 : Not every /.'er has things like that to their credit/name as you do, hence my subject-line.

    (For my part here, it sounds like those buffers need a form of tunable/parameterizable aging system to do more than a FIFO queue/buffer is doing currently).

    * Lastly: I recall seeing you mentioned on this before here in the past, & iirc, I said the same thing pretty much in response!

    APK

    P.S.=> Anyhow/anyways: I try to give credit where it's due, & thus, I have to give folks like yourself some respect, in that your "type" actually gets out there & does things that help "improve the human condition" (yes, even in telecommunications)...

    ... apk

    1. Re:Much respect 2U & why... apk by Anonymous Coward · · Score: 0

      You are making a mistake here, in thinking that anyone (at all, whatsoever, anywhere) is in any way interested in your respect.

      Fact: Nobody is interested in your respect.

      Animats deserves respect. That much is correct. But nobody wants it from you.

  34. Some what I've done in Comp. Sci. of note by Anonymous Coward · · Score: 0

    So, let's see if YOU have done more, earlier, & better than I have, ok? Here goes:

    ----

    Windows NT Magazine (now Windows IT Pro) April 1997 "BACK OFFICE PERFORMANCE" issue, page 61

    (&, for work done for EEC Systems/SuperSpeed.com on PAID CONTRACT (writing portions of their SuperCache program increasing its performance by up to 40% via my work) albeit, for their SuperDisk & HOW TO APPLY IT, for a finalist position @ MS Tech Ed, two years in a row 2000-2002, in its HARDEST CATEGORY: SQLServer Performance Enhancement).

    WINDOWS MAGAZINE, 1997, "Top Freeware & Shareware of the Year" issue page 210, #1/first entry in fact (my work is there)

    PC-WELT FEB 1998 - page 84, again, my work is featured there

    WINDOWS MAGAZINE, WINTER 1998 - page 92, insert section, MUST HAVE WARES, my work is again, there

    PC-WELT FEB 1999 - page 83, again, my work is featured there

    CHIP Magazine 7/99 - page 100, my work is there

    GERMAN PC BOOK, Data Becker publisher "PC Aufrusten und Repairen" 2000, where my work is contained in it

    HOT SHAREWARE Numero 46 issue, pg. 54 (PC ware mag from Spain), 2001 my work is there, first one featured, yet again!

    Also, a British PC Mag in 2002 for many utilities I wrote, saw it @ BORDERS BOOKS but didn't buy it... by that point, I had moved onto other areas in this field besides coding only...

    Being paid for an article that made me money over @ PCPitstop in 2008 for writing up a guide that has people showing NO VIRUSES/SPYWARES & other screwups, via following its point, such as THRONKA sees here -> http://www.xtremepccentral.com/forums/showthread.php?s=ee926d913b81bf6d63c3c7372fd2a24c&t=28430&page=3

    It's also been myself helping out the folks at the UltraDefrag64 project (a 64-bit defragger for Windows), in showing them code for how to do Process Priority Control @ the GUI usermode/ring 3/rpl 3 level in their program (good one too), & being credited for it by their lead dev & his team... see here -> http://ultradefrag.sourceforge.net/handbook/Credits.html or here http://sourceforge.net/tracker/?func=detail&aid=2993462&group_id=199532&atid=969873

    AND lastly: http://g-off.net/software/a-python-repeatable-threadingtimer-class where I got other programmer's work WORKING RIGHT (in PyThon no less, which I just started learning only 2 week ago no less) by showing them how to use a "Dummy Proxy Function" as I call it, to make a RepeatTimer class (Thread sub-class really) to take PARAMETERIZED FUNCTIONS, ala:

    def apkthreadlaunch():
    getnortonsafeweb(sAPKFileName = "APK_1_NortonSafeWeb360Extracted.txt".rstrip())

    a = RepeatTimer(900, apkthreadlaunch) # 900 is 15 minutes... apk

    Where it was NOT working for many folks there, before (submitted to the maker of the RepeatTimer class no less, & yes, it WORKS!)

    ----

    What do I have to say about that much above? I can't say it any better, than this was stated already (from the greatest book of all time, the "tech manual for life" imo):

    "But by the grace of God I am what I am: and his grace which was bestowed upon me was not in vain; but I labored more abundantly than they all: yet not I, but the grace of God which was with me." - Corinthians Chapter 10, Verse 10

    (And, because I got LUCKY to have been exposed to some really GREAT classmates, professors, & colleagues on the job over time as well)