Slashdot Mirror


Got (Buffer) Bloat?

mtaht writes, "After a very intense month of development, the Bufferbloat project has announced the debloat-testing git kernel tree, featuring (via suggestion of Van Jacobson) a wireless network latency smashing algorithm, (called eBDP), the SFB and CHOKe packet schedulers, and a slew of driver level fixes that reduce network latency across the Linux kernel by over 2 orders of magnitude. Got Bloat?"

121 comments

  1. what it is by leaen · · Score: 1, Insightful

    It is good to write in summary what program nobody hear before actually do

    1. Re:what it is by firstnevyn · · Score: 5, Informative

      It's about the downside of memory becoming cheap causing latency problems with congestion control mechinisms that rely on the endpoints being able to inform the sender when it's sending too fast.

      Jim Getty's research blog entry explains the problem in detail.

    2. Re:what it is by Anonymous Coward · · Score: 0

      ...but what is it?

    3. Re:what it is by shish · · Score: 4, Informative

      Most traffic throttling algorithms are based on the idea that the router will say "hey, slow down" if a client overloads it -- but when the router has lots of RAM, there is a tendency for it to just keep accepting and accepting, with the client happily pushing data at full speed, while the router is queuing up the data and only moving it upstream very slowly. Because the queues end up being huge, traffic going through that router gets lagged.

      --
      I mod down anyone who says "I will be modded down for this", regardless of the rest of their comment
    4. Re:what it is by TheLink · · Score: 4, Insightful

      IMO it's fine for buffers to be very big.

      What routers should do is keep track of how long packets have been in the router (in milliseconds or even microseconds) and use that with QoS stuff (and maybe some heuristics) to figure out which packets to send first, or to drop.

      For example, "bulk/throughput" packets might be kept around for hundreds of milliseconds, but while latency sensitive packets get priority they are dropped if they cannot be sent within tens of milliseconds (then the sender will faster realize that it should slow down).

      --
    5. Re:what it is by drinkypoo · · Score: 3, Informative

      Oh come on, you only have to follow four links to get to the definition. What are you, lazy?

      Seriously, this is a true failure of web design. You click from the summary, then you go to the wiki, then you go to the faq, and the faq doesn't even tell you, it references a blog post.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    6. Re:what it is by Anonymous Coward · · Score: 3, Informative

      oblig. car analogy, by Eric Raymond no less:
          https://lists.bufferbloat.net/pipermail/bloat/2011-February/000050.html

      == Packets on the Highway ==

      To fix bufferbloat, you first have to understand it. Start by
      imagining cars traveling down an imaginary road. They're trying to get
      from one end to the other as fast as possible, so they travel nearly
      bumper to bumper at the road's highest safe speed.
      [snipped]

    7. Re:what it is by Anonymous Coward · · Score: 0

      How is babby formed?

    8. Re:what it is by Brian+Feldman · · Score: 3, Insightful

      That's a much more complex solution than "don't buffer so much damn stuff for no good reason."

      --
      Brian Fundakowski Feldman
    9. Re:what it is by mtaht · · Score: 2

      The web site has only been up for a month, and I agree with you very much that it is hard to get to the core ideas of bufferbloat from the get-go, we are incorporating information from dozens of very large blog posts, and hundreds of comments, and have been very busy (among other things) getting hardware running and kernel patches done. bufferbloat.net IS a wiki, however, and registration is open to all. If you can help improve the quality, PLEASE join and do so.

    10. Re:what it is by Anonymous Coward · · Score: 0

      I think you grossly underestimate the impact and increased hardware costs on routers as a result of your proposition.

    11. Re:what it is by Anonymous Coward · · Score: 1

      http://en.wikipedia.org/wiki/Active_queue_management Implemented in most of the data-driven parts of e.g. 3G and 4G networks. Another aspect: http://www.akamai.com/ericsson

    12. Re:what it is by maswan · · Score: 1

      But you do need big buffers to be able to do fast single tcp transfers! You need at least rtt * bandwidth in buffer in any place that has a faster uplink than downlink, like distribution switches for instance. And that's several megabytes, per port, in the today's gigabit ethernet world. Otherwise you're going to get bad to horrible throughput for high latency transfers.

      Now, big buffers also need a decent buffer management (just trivial RED is orders of magnitudes better than "lets just fill the buffer up and then drop everything"), but going to small buffers isn't helping.

      This is one of the hardest thing to get in a distribution switch, decently sized buffers. Most switches have horribly small buffers, or no documentation at all on sizes. Usually you have to go up to the chassis based ones to get something not horribly small. And if you want intelligent queue management so you can have both throughput and low interactive latency, well, I've heard Juniper makes one of those. Unfortunately at quite a bit higher price point than the cheap procurve/netgear stuff.

    13. Re:what it is by Anonymous Coward · · Score: 0

      So you want to trade latency for CPU time?

    14. Re:what it is by Idbar · · Score: 1

      Yes, perhaps you have read already Jain's "Myths About Congestion Management in High-Speed Networks". A paper from the early 90s saying how mainly increased transfer speeds and cheap memory would not ease the need of better congestion control mechanism. The problem here is which one is best, how to pick it and mainly, that there's some need that routers also play a role in the problem

      Particularly, with carriers throwing bandwidth at the core, this should be an interesting project for DD-WRT, since gateway routers are those getting the most impact of all. With the increase of access capacities, the next hop will be also impacted and so on.

      Those using pings to see the latency, don't seem to take into account also that when a long TCP flow gets impacted by a packet loss, throttles down, so the latency AND losses impact also the available capacity to TCP clients.

      Now, many Active Queue Management (AQM) mechanisms, such as Random Early Detection (RED), have been proposed. And most of them work well with TCP, but Linux recently moved to CUBIC, is there enough information about the impact of those over CUBIC?

    15. Re:what it is by shentino · · Score: 1

      1. Does said router properly respect QoS when deciding what data gets "rushed"?

      2. Does said client have to pay a premium when sending out packets with elevated QoS?

    16. Re:what it is by shentino · · Score: 1

      Your alternative isn't as simple as you'd like when you have many self interested clients playing zero sum competition over the router's bandwidth.

    17. Re:what it is by Anonymous Coward · · Score: 0

      I think you grossly overestimate your reading comprehension skills.

    18. Re:what it is by A+beautiful+mind · · Score: 1

      What you propose is just dancing around the problem. The slow hop has finite throughput. You either tell the sender to send only as much as the pipe can transfer, or you force the limit on the sender by queueing things which in turn increases latency, which in turn decreases the transfer's bandwidth.

      --
      It takes a man to suffer ignorance and smile
      Be yourself no matter what they say
    19. Re:what it is by mtaht · · Score: 1

      you are conflating - to some extent - two things that a lot of people get mixed up. 1) on the TCP/ip sending and receiving side of the hosts, you already have very big, dynamic buffers in the stack for managing BDP. In this case, without very smart queue management, the TX_QUEUE and the DMA TX ring are completely "extra", and mess up the BDP calculation. There are no "extra buffers" in the TCP equations for the host side. 2) on switches and routers, large receive buffers are ok, for BURSTS, with queue management, flow control, and other AQM features. TX, not so much, and in the general case, small buffers are simply better as you need to signal end-to-end that there is indeed congestion, before catastrophy happens. There are other ways to lower the impact of flooding an individual host from a big fat server, for example multiple forms of weighted fair queueing.

    20. Re:what it is by TheLink · · Score: 1

      1) I didn't post any estimate on that.
      2) where you see a problem others may see a genuine business opportunity (I claim my proposal will give a better user experience than smaller buffers and/or stuff like RED).

      --
    21. Re:what it is by Anonymous Coward · · Score: 0

      If you can not drain out the queues faster than the clients add them in you are creating lag. So instead of seeing what is really going on you just see 'slowness' once and awhile.

      So if say I have a router that holds 512 meg of buffer and can input 2meg a second, and output 1 meg per second with 0 QOS (which most things have) you can introduce up to 512 seconds of lag for every packet. Instead of the router saying 'hey slow down to everyone' it will only say it to some. This is not totally out of the realm of possibility.

      Now as a consumer this is a good thing. As I can get HUGE downloads very quickly. But for a producer of packets this is a bad thing as it means my packets will not show up for awhile.

      The buffer is hiding the actual condition of the network from the producers. The TCP throttle algs do not work if you do that. As they do not know they should slow down.

      Another possibility would be to send a throttle down when stuff ends up in the queue and it is some % full. This way you can keep the queues and use them effectively. Yet everyone is not swamping you.

    22. Re:what it is by jimrthy · · Score: 1

      AQM is one of the first steps in fixing the problem. It's still just a start. This is a big hairy monster with sharp, pointy teeth.

    23. Re:what it is by jimrthy · · Score: 1

      If you're one of the ones behind bufferbloat.net (or even just one of the contributors), I want to say "Thank you."

    24. Re:what it is by ischorr · · Score: 1

      It's a myth that routers have the ability to tell a client to slow down, at least in the majority of environments (particularly ones with Ethernet segments, but other network types too).

      Ethernet Flow Control has very limited utility here. You'll see it kick in in a rare few congestion cases - like if a switch backplane becomes overloaded - but it is used in a very limited number of situations and definitely will not be used end-to-end on a network for a router or host to tell another host (client) to do slow down.

      Instead, when buffers fill, packets will be dropped. Yes, congestion control and FLOW CONTROL are handled using *packet drops* as the signalling method. It's assumed that TCP will use one of number of drop detection methods and congestion control algorithms to recover, and that does work better than one might think, but it's still ridiculously inefficient (especially with some types of drop patterns). I'll say it again, because I've been working on this pretty much daily for 10+ years and it still amazes me - you have to DROP PACKETS for any kind of end-to-end flow control to kick in.

      In Ethernet land, there are some technologies created by folks like Cisco that are collectively being called "lossless Ethernet" that will definitely help here, and provide end-to-end flow control. But I'll pretty much guarantee you don't have hardware that supports it at the moment.

    25. Re:what it is by ischorr · · Score: 2

      And you know, in my experience that's where one of the real problems - and one of the most commonly undiagnosed problems - exists. In nearly 99% of networks I've looked at where buffer overflows were occurring and drops were happening, network admins were not only unaware of the severity of packet drops and didn't understand the impact this was having on their *critical* workloads, they had no idea how to even look for it.

    26. Re:what it is by amorsen · · Score: 1

      The problem with switches is that most switches have not merely small buffers, which would be ok, but microscopic ones. E.g. Cisco 3560G loses traffic on a gigabit port when faced with 50Mbps of bursty traffic in total coming from two ports. 10ms of buffer at 1Gbps is ~1MB, and most switches have nothing near that per port.

      --
      Finally! A year of moderation! Ready for 2019?
    27. Re:what it is by mtaht · · Score: 1

      Well... yes, I'm one of the first 144 on bufferbloat.net But jg defined Bufferbloat so well, that the packet traces I'd seen on my wisp6 design in South America, suddenly made complete and total sense, when I first saw his back in November. I'd had no idea what I was dealing with was actually a worldwide probem. but thank you for the thanks. I blush.

    28. Re:what it is by mtaht · · Score: 3, Informative

      re:"Interesting problem for dd-wrt"

      Agreed.
      We are throwing efforts at both the mainline kernel and openwrt.
      Openwrt is foundational for dd-wrt and several other (commercial) distributions of Linux on the router. I have a large set of debloated routers already, I'm just awaiting further work on the eBDP algorithm to make better....

      http://www.bufferbloat.net/projects/bloat/wiki/Experiment_-_Bloated_LAGN_vs_debloated_WNDR5700

      re: "using pings"
      httpping is a much saner approach than ping, in many cases. Get it from:

      http://www.vanheusden.com/httping/

      re: RED & AQM

      SFB and CHOKEe are in the debloat-testing kernel, as is eBDP.
      RED 93 isn't going to work. nRED may. Experimentation and scripts highly desired. See the bloat and bloat-devel mailing lists for discussions.

      Also:

      http://www.bufferbloat.net/projects/bloat/wiki/Dogfood_Principle

      Also:

      I've seen some VERY interesting behavior with tcp vegas over bloated connections.

      http://www.bufferbloat.net/projects/bloat/wiki/Experiment_-_TCP_cubic_vs_TCP_vegas

    29. Re:what it is by mtaht · · Score: 1

      Which would you rather have? CPU time or personal time?

    30. Re:what it is by Runaway1956 · · Score: 1

      Actually - unless I'm less literate than I thought I was - that's what these kernel patches, driver patches, and utilities are meant to do. The kernel, as well as the drivers, are being patched to do just about what you are saying. And, let's remember - most routers and/or modems have Linux inside. So, most routers and/or modems can probabaly be "fixed" with a firmware update.

      --
      "Windows is like the faint smell of piss in a subway: it's there, and there's nothing you can do about it." - Charlie Br
    31. Re:what it is by Unequivocal · · Score: 1

      This is an important point - and one most people are confused about. I'd like to add a nuance: my understanding is TX buffers are OK IF the router is very smarting about its queuing algorithm within the buffer, so that it drops packets early for any given sender so that the senders don't mistake a large buffer for a large pipe and overspeed the transmission. I believe Gettys &c just released (this article) is such a router/buffer queuing algorithm - smart enough to be effectively utilized with large buffered routers.

    32. Re:what it is by badkarmadayaccount · · Score: 1

      It's called ECN and nobody is arsed to use it.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
  2. What bufferbloat is by Sits · · Score: 5, Informative

    My understanding may not be correct but:

    Bufferbloat (I first came across the term bufferbloat in this blog post by Jim Gettys) is the nickname that has been given to the high latency that can occur in modern network connections due to large buffers in the network. An example could be the way that a network game on one computer starts to stutter if another computer starts to use a protocol like bittorrent to transfer files on the same network connection.

    The large buffers seem to have arisen from a desire to maximise download throughput regardless of network condition. This can give rise to the situation where small urgent packets are delayed because big packets (which perhaps should not have been sent) are queued up in front of them. The system sending the big packets is not told to stop sending them so quickly because its packets are being delivered...

    The linked article sounds like people have modified the Linux kernel source to allow people who know how to compile their own kernels to test ideas people have had for reducing the bufferbloat effect on their hardware and to report back their results.

    Does this help explain things a bit?

    1. Re:What bufferbloat is by MichaelSmith · · Score: 4, Interesting

      high latency that can occur in modern network connections due to large buffers in the network

      Nobody ever explained this to me but I was using ping to measure latency on a network where I was actually most interested in ssh. Ping times went something like 10ms, 50ms, 90ms, 130ms... up to about 500ms, then started again at 10ms, 50ms and so on. Maybe some of my pings shared a buffer with a large, periodic data transfer and when that transfer filled a buffer somewhere my latency dropped.

      I am pretty sure the people actually operating the WAN in question had no idea what was going on either.

    2. Re:What bufferbloat is by Lennie · · Score: 4, Informative

      The code changes to the Linux kernel also reduce the size and ill effects of buffers inside the kernel and drivers.

      --
      New things are always on the horizon
    3. Re:What bufferbloat is by Rising+Ape · · Score: 1

      My home internet connections have previously suffered from enormous buffers in the DSLAM - setting off a big download could cause ping times to increase to about 2 seconds, rendering other interactive use of the connection impossible.

      Still, either this has been fixed now or more modern versions of TCP are more sophisticated, because it doesn't seem to happen any more - at least not to the same degree.

    4. Re:What bufferbloat is by mehemiah · · Score: 1

      thank you

    5. Re:What bufferbloat is by Anonymous Coward · · Score: 0

      This is very interesting. When I first got my ADSL, the ISP would 'cap' the download rate on the line at a rate at, or very slightly below, the sync speed of the modem.

      So, the modem would sync at 8Mb/s, but the actual throughput (even allowing for the overheads I knew about) would be slightly below that rate. However, the cap would occasionally go out of sync with the line rate. E.g. if the modem retrained at 7 Mb/s, it would immediately force the cap down to 7 Mb/s but if the modem subsequently retrained at 8 Mb/s, there would be a delay of a few hours before the cap was reset to 8 Mb/s.

      No one, not even friends who were engineers at ISPs could explain the reason for it, other than it was for 'performance' reasons. So I just regarded it as some sort of mystery setting. Now, it all becomes clear - this was a workaround for the problem of the huge buffers in the DSLAM. If the DSLAM didn't throttle before it buffered, you'd end up with huge amounts of data building up in the buffer if the data rate was higher than the ADSL sync rate, with this problem of uncontrolled latency. And the reason for the lag time before raising the cap was to ensure that the line was sufficiently stable at the new rate to avoid major major packet loss.

    6. Re:What bufferbloat is by mtaht · · Score: 1

      oh, great... point to a HUGE animation on the same website that is being slashdotted... thx...

    7. Re:What bufferbloat is by Predius · · Score: 3, Informative

      I think what you were seeing was more due to ATM overhead than the DSLAM trying to be cute with throttling. Because ADSL encapsulates everything in ATM even small IP / Ethernet frames get broken up into lots of ATM cells which can add upwards of 20% overhead. So an ADSL line trained at 8Mb/s will never provide 8Mb/s of usable throughput to the end user. Some ISPs actually advertise targeted throughput instead of train rate and set the train rate a certain percentage above the target throughput to compensate. Others just advertise train rates and have disclaimers in the fine print.

      I've had my hands inside most Gen 1, 1.5 and 2nd Gen DSLAMs and never seen any with automatic throttling like you described.

      (Gen 1 being units that just function at the ATM layer requiring an external system to bridge to Ethernet or IP. Gen 1.5's being upgraded Gen 1s with crude bridging, and Gen 2 being units that were designed to terminate connections directly from the ground up.)

    8. Re:What bufferbloat is by Anonymous Coward · · Score: 0

      I can assure you that the DSLAM did throttle - or at least it did on my telco's network.

      When I originally got the line, I had an 8 Mb/s sync rate but I was capped at 2Mb/s download. Ruler flat cap. My ISP couldn't help, even a letter to the head of customer services, complaining how I'd called, and e-mailed a total of 57 times, asking for the cap to be removed, failed to remove the cap. They wouldn't even agree to terminate my 12 month contract early and take my business elsewhere.

      It turns out, when I spoke to an engineer from another ISP (who resold my ISP's services) that the DSLAMs automatically throttle to prevent 'performance problems' and that the throttle is dynamically matched to your sync rate. However, at that time, there was a known bug in my ISP's DSLAM firmware that caused the cap to get 'stuck' at 2 Mb/s. He said this was such a frequent support call at his ISP, and that first line support had an application that would allow the support operative to manually adjust the DSLAM cap (he called it the 'RAS profile') on that line.

      Leaving aside the rather poor technical support, that I was having to talk to tech support at another ISP about my ISP's problems, I did eventually find a way to fix it.

      I plugged my DSL modem into the 'filtered' port of a DSL filter. It synced at 128 kbps (lol) and I repeated plugged/unlpugged the modem to simulate severe line noise for a couple of hours. This was sufficient to trigger the DSLAM firmware to adjust the cap.

      I was capped at 128 kbps for nearly 10 days (due to the severity of the conditions I simulated), even though the modem continuted to sync at 8 Mbps once I connected it correctly. After 10 days, the cap returned to 8 Mbps and I got the service I paid for. I wrote to the head of customer service again, explaining how I fixed the problem. I never got a reply.

      However, a couple of years later, when I was helping a family member who was using that same ISP, I had noticed that on their 'speedtest' page, they now reported the DSLAM cap rate as well as DSLAM sync rate.

    9. Re:What bufferbloat is by Anonymous Coward · · Score: 0

      It's called Traffic Shaping and Scheduling. In Linux, look up command `tc`.

      Regarding buffers, I certainly did notice that buffers are increasing in Linux. Recently I was able to `scp` a 1.5MB file "instantly", yet, my upload is only 40kB/s. Yes, the file was stuck in the buffer for half a minute before the process could complete. In the past, the buffer would fill much more quickly.

    10. Re:What bufferbloat is by OeLeWaPpErKe · · Score: 1

      To be fair, it was probably the pppoe terminator that throttled your connection. It's the only device in the network that has the correct position to be able to throttle efficiently on a per-customer basis, for both the upstream and the downstream direction, as well as the information required to do this "dynamic" throttling you talk about.

      The issue technical support has which leads to bufferbloat is equally simple "but your add said 10 Mbit download speed and I'm getting 9.8 according to speedtest.net". The amount of customers that scream bloody murder and "demand their rights" is ridiculous.

      You should check one of the discussions on the so-called "net neutrality" to see how flexible slashdotters are on the subject of isp's delivering slightly less bandwidth than advertised (which will always be the case without huge buffers) to see the problem. Or, God forbid, an isp that demands netflix pays for a customer line instead of a peering line when it is in fact a customer, and not a peer. This results in a *slightly* longer path to netflix, and thus apparently quite a few heathens had to be rounded up and thoroughly burned, despite the fact that this obviously did not involve giving preferential treatment to anyone. Quite the reverse, in fact.

      I don't see this getting fixed any time soon.

    11. Re:What bufferbloat is by DaVince21 · · Score: 1

      1 MB for 5 and a half minutes is hardly huge. Though compared to pageviews it may be.

      Maybe we're causing bufferbloat on their server by watching that video!

      --
      I am not devoid of humor.
  3. Solution: Use a proper protocol (aka ISO) by Anonymous Coward · · Score: 1

    Instead of using TCP/IP (bastardized version of ISO), people should start using real OSI implementations such as the ISO protocol, with 20 byte addresses and QoS level settings for each of the 7 OSI layers.

    Once upon a time it was an issue of cost of h/w logic, IP was the cheaper alternative, today the difference is nil and the benefits of ISO are orders of magnitude better than IP.

    bufferbloat, IP address exhaustion, etc are just a few of the reason why we should drop IP altogether.

    1. Re:Solution: Use a proper protocol (aka ISO) by MichaelSmith · · Score: 2

      The difference is that you can write an smtp server by reading in strings line by line and treating them as commands, then watch the logs and kludge it until it seems to interoperate well enough. With the OSI way of doing things you have to wear a blue tie for a start then you have to print out all the interface definition documents and spread them out on your desk and write the software to the interface.

      You correctly point out that IP is cheaper, but that means all the people who work with it will be cheaper too and the product which is slightly cheaper will always win.

    2. Re:Solution: Use a proper protocol (aka ISO) by firstnevyn · · Score: 3, Funny

      The difference is that you can write an smtp server by reading in strings line by line and treating them as commands, then watch the logs and kludge it until it seems to interoperate well enough. With the OSI way of doing things you have to wear a blue tie for a start then you have to print out all the interface definition documents and spread them out on your desk and write the software to the interface.

      man.. I want your desk if you can spread out all the iso interface definition documents on it and be able to read them

    3. Re:Solution: Use a proper protocol (aka ISO) by Anonymous Coward · · Score: 1

      Erm, that doesn't seem to be the problem here IMHO & as per RTFA the problem is a maladaptive response to packet loss by throwing cheap memory into dumb buffers that effectively break the whole packet loss concept. Packet loss is not the enemy of throughput it is 'big idea' behind maintaing it. But sitting in a bloated buffer is the enemy of throughput, seeing the Internet as as series of sealed pipes is the enemy of throughput, missing the point completely and connecting huge dumb buffers into you OS your router your exchange, *everything* is the enemy of throughput.

    4. Re:Solution: Use a proper protocol (aka ISO) by Anonymous Coward · · Score: 0

      No amount of standardized QoS is going to help when you can't trust the endpoints not to cheat. IP has an 8-bit field you can use for QoS too, but you can't tell realtime from bulk traffic to assign QoS classes.

    5. Re:Solution: Use a proper protocol (aka ISO) by Anonymous Coward · · Score: 0

      Sure, I see all the major providers and isp's out there who have nothing to actually gain from this jumping right on that bandwagon... Let me know when comcast supports it or when apple implements it on the iphone (where they still refuse to even add a simple ipv6 stack).

    6. Re:Solution: Use a proper protocol (aka ISO) by dgatwood · · Score: 1

      Sure it will. You simply cap the customer at the bandwidth he/she is paying for and do QoS within the customer's allocation. Then you don't oversell the bandwidth. :-) Yeah, right. That'll happen.

      Alternatively (and more realistically), you design things such that high priority packets must be sent isochronously (that is, every nth time slot) plus or minus a little jitter. A video codec will have no problem delivering frames at a constant data rate. Random bulk communications will not be able to do so, and those sockets will, after some threshold for maximum failures is exceeded, be automatically de-prioritized down to the level of bulk traffic.

      You further penalize the endpoint by cutting it down to 56k modem speeds for a month if you see it making too many short-lived (<5s) connections to multiple IPs and declaring them isoch. By definition, any such connections are an abuse of the standard.

      That should cover about 95% of the likely abuses.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

    7. Re:Solution: Use a proper protocol (aka ISO) by Mr.+Slippery · · Score: 1

      Once upon a time it was an issue of cost of h/w logic

      No, it was an issue of the ISO specs being bloated and incomprehensible. The human cost had much more to do with their failure than the hardware cost.

      --
      Tom Swiss | the infamous tms | my blog
      You cannot wash away blood with blood
    8. Re:Solution: Use a proper protocol (aka ISO) by tepples · · Score: 3, Interesting

      You further penalize the endpoint by cutting it down to 56k modem speeds for a month if you see it making too many short-lived (<5s) connections to multiple IPs and declaring them isoch. By definition, any such connections are an abuse of the standard.

      But isn't that exactly how channel surfing would work on IP-based television?

    9. Re:Solution: Use a proper protocol (aka ISO) by jimrthy · · Score: 1

      Why is this only rated a 1?

      This may be the best summary of the problem that I've seen yet.

    10. Re:Solution: Use a proper protocol (aka ISO) by PPH · · Score: 1

      I'm not sure if this has anything to do with it (or we were just victims of slick salespeople):

      Bach in the early days of networking, when I was at Boeing, we (engineering) were starting to write some client-server stuff. Every time our IT folks approached us with ISO/OSI networking products as recommendations, there always seemed to be licensing fees attached. Per seat, per process, per user, per CPU, per whatever. While the software gurus were negotiating licenses and contracts, we just said "Screw it. Give me TCP/IP, a socket and get out of my way."

      There may have been some unencumbered implementations out there. But we never saw them. If it wasn't carried in by a vendor in an expensive suit, it got no respect from Boeing Computer Services*.

      *Same thing happened to Linux for a while. Everyone in the computing department wanted managing $100 million product portfolios on their resume. Not burning a bunch of free Slackware distro CDs.

      --
      Have gnu, will travel.
    11. Re:Solution: Use a proper protocol (aka ISO) by Anonymous Coward · · Score: 0

      As he said, 95 percent of abuses. 95 percent of all internet traffic is watching videos after all! (I think 'reality porn' now outweighs 'skin porn' though. :D).

    12. Re:Solution: Use a proper protocol (aka ISO) by dgatwood · · Score: 1

      No. That should generally look like a single, continuous stream from the head end at your cable company. Your machine sends back-channel messages to the head end to indicate that a channel change should occur, and it sends down a different stream. There's really no good reason to disconnect and reconnect when changing channels; doing so would constitute a rather serious abuse of the network due to all the overhead of setting up and tearing down an isochronous transport stream.

      Now if by "changing channels" you mean rapidly switching between separate streams from content sources on the Internet, then yes, but on the other hand, most streaming videos are almost invariably not being transmitted live, and thus have no need to be isochronous in the first place. (The only reason to send data isochronously is if you cannot buffer forwards in time arbitrarily far to compensate for network congestion. Otherwise, you should be sending data in bulk. YouTube, for example, should be sending all of its data as bulk data.) As such, again, using isoch connections in that way would constitute abuse.

      In short, you might be able to come up with a few edge case exceptions, but you'd have to try pretty hard. In general, isoch connections should be used for live streams from special events, video chat, VoIP, and a single isoch connection to the head end for anything that resembles IPTV. Chances are, anything that falls very far at all outside those bounds would constitute abuse of the standard.

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

  4. Two orders of magnitude! ? by Anonymous Coward · · Score: 0

    Does that mean the network becomes a hundred times faster? Oh well, at least I can dream.

    1. Re:Two orders of magnitude! ? by Lennie · · Score: 3, Interesting

      It is about reducing latency. So it helps prevent problems with VoIP failing when there is a lot of other data flowing over the same connection(s).

      Some buffers are really large and it turns out some introduce latency of several seconds (!).

      --
      New things are always on the horizon
    2. Re:Two orders of magnitude! ? by Kjella · · Score: 4, Interesting

      Most network throughput is at least 80-90% efficient already, so it won't get much faster. It will make it more responsive though, which is good if you're browsing the web, playing an online game or something else interactive.

      I assume this is under load though, because on ping there's not much to be saved. On local sites I have 8-12 ms ping, on slashdot I have 140-150 ms. Since the theoretical round trip in a straight line at light speed is some 110 ms, there's not even room for a 50 ms drop. A lot of weirdness can happen under load though if stuff gets buffered up various places.

      --
      Live today, because you never know what tomorrow brings
    3. Re:Two orders of magnitude! ? by mtaht · · Score: 5, Informative

      The core work where we saw latency under load drop by 2 orders of magnitude was in the wireless driver stack on Linux. Examples were the iwl driver (130ms to ~2), and the ath9k driver ( > 200ms to ~d) (and these numbers were for GOOD connections, at high wifi rates. You can get 3 orders of magnitude improvement if you are on a slow wifi connection.) There's a new rate sensitive algorithm for wireless (eBDP) that we are trying in this kernel tree. It's not fully baked yet. 802.11n wireless package aggregation is HARD. That said there's bloat in all the other wired drivers too. We are doing far too much uncontrolled buffering in the kernel - specifically the dma tx ring on many devices - for slower networks. As one example, A gigE interface, connnected to a 3Mbit cable modem - does bad, subtle, things to the stack.

    4. Re:Two orders of magnitude! ? by mtaht · · Score: 1

      not just voip. Think: dns, dhcp, nd, ntp & arp.

    5. Re:Two orders of magnitude! ? by jimrthy · · Score: 1

      And that's exactly what this is about. That "weirdness [that] can happen under load..."

    6. Re:Two orders of magnitude! ? by Runaway1956 · · Score: 1

      All those technical terms are confusing to slashdotters. /end sarcasm But, seriously - let's just reduce all of that to two words: online gaming. I'm most certanly not a serious gamer - and the wife even less so. But, we both complain about LAG!! I seriously doubt that our ISP uses any form of optimization for VOIP or anything else. Whatever their QoS, it's probably the most basic and most outdated jury rigged trash in use at the time the servers were manufactured, and still running at default settings. All of which discourages me from experimenting with this stuff. I mean - big deal if I optimize MY stuff - I still have to rely on the ISP's ancient junk.

      --
      "Windows is like the faint smell of piss in a subway: it's there, and there's nothing you can do about it." - Charlie Br
    7. Re:Two orders of magnitude! ? by buchner.johannes · · Score: 1

      Most network throughput is at least 80-90% efficient already, so it won't get much faster. It will make it more responsive though, which is good if you're browsing the web, playing an online game or something else interactive.

      I assume this is under load though, because on ping there's not much to be saved. On local sites I have 8-12 ms ping, on slashdot I have 140-150 ms. Since the theoretical round trip in a straight line at light speed is some 110 ms, there's not even room for a 50 ms drop. A lot of weirdness can happen under load though if stuff gets buffered up various places.

      Doesn't this also mean that under high bittorrent pressure, pings will not time out and and ssh will remain responsive.

      --
      NB: The message above might reflect my opinion right now, but not necessarily tomorrow or next year.
    8. Re:Two orders of magnitude! ? by Vegemeister · · Score: 1

      DHCP? Are 2 second leases the new black or something?

  5. That is a battle which was lost 20 years ago by Colin+Smith · · Score: 3, Interesting

    A lot of our problems today would not be here if.

    OSI stack instead of TCP/IP.
    DCE & DFS instead of passwd/whatever + the bastard abomination which is NFS.

    Meh. People are lazy and cheap. Free with the network effect always wins. The Lowest Common Denominator. It's going to take another 15 years before we are near where we were 15 years ago. But this time it will be in Java!
     

    --
    Deleted
    1. Re:That is a battle which was lost 20 years ago by Anonymous Coward · · Score: 0

      what did tp4 say that would affect this behaviour

    2. Re:That is a battle which was lost 20 years ago by thanasakis · · Score: 2

      OSI stack instead of TCP/IP

      Can you please elaborate?

    3. Re:That is a battle which was lost 20 years ago by russotto · · Score: 1

      A lot of our problems today would not be here if.
      OSI stack instead of TCP/IP.
      DCE & DFS instead of passwd/whatever + the bastard abomination which is NFS.

      Meh. People are lazy and cheap. Free with the network effect always wins. The Lowest Common Denominator. It's going to take another 15 years before we are near where we were 15 years ago. But this time it will be in Java!

      Did you ever use those things? I've never used the OSI stack (though I have had the misfortune of looking at some of the specs), but DCE and DFS had terrible perfomance 15 years ago, and were a bear to set up. Having never worked with the originals (Kerberos and Andrew File System), I don't know if this was a problem added in the "standardization" or if it came with the territory.

    4. Re:That is a battle which was lost 20 years ago by BitZtream · · Score: 1

      Having never worked with the originals (Kerberos and Andrew File System), I don't know if this was a problem added in the "standardization" or if it came with the territory.

      I can't speak about historical implementations, but the current (and I assume most modern implementations elsewhere) implementations of Kerberos used by Microsoft and the FreeBSD project can be configured for a system with a 5 line config file that could be generated from the output of a hostname -f call if the client is otherwise configured properly (Has its domain name set properly). It does require a proper DNS setup which can be obnoxious if you try to configure it by hand, but there again, its an implementation issue. Microsoft's implementation (part of ActiveDirectory) pretty much just works out of the box and requires pretty much no effort to use.

      Of course, you still have to sync user ids :) Which is also simple with nss_ldap and ActiveDirectory+Service for Unix, but thats pretty trivial and could be done with a generic script that would work for almost everyone in the world out of the box.

      There may be decent UNIX implementations of Kerberos and LDAP out there as well, but Microsoft has at least one implementation that doesn't suck to actually implement for no apparent reason.

      I have never dealt with AFS, but making everything on my network use kerberos was pretty easy, but until its the standard way of authenticating I wouldn't expect anyone other than MS to put real effort into making it easy for an idiot ... or just not a pain in the ass.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    5. Re:That is a battle which was lost 20 years ago by Blakey+Rat · · Score: 1

      Call me an idiot, but I thought TCP/IP was part of the OSI stack.

      I'd also like to hear an explanation.

    6. Re:That is a battle which was lost 20 years ago by thanasakis · · Score: 1

      Well, no. In my (limited) experience, you'd use CLNP instead of IP if you were using OSI. And instead of IP addresses you would have NSAP addresses. It's a whole different world actually.

  6. Latency again by Twinbee · · Score: 3, Insightful

    I've seen it time and time again, people just generally don't care about latency, or even deny it exists in many cases (buffer bloat is certainly one cause of latency).

    Everything from changing channel on your TV remote, to a mobile phone number entry, to the frame delays you get from LCD monitors, to the soundcard delay, to the GUI widgets you click on;......... it's all over the place, and it can wreck the experience, or reduce it somewhat according to how big the delay is. Just because latency is harder to measure, that doesn't mean it isn't very important, especially when it builds up with lots of other 'tiny' delays to make one big delay.

    --
    Why OpalCalc is the best Windows calc
    1. Re:Latency again by mtaht · · Score: 1

      latency issues were driving me insane upon my return to the USA. http://nex-6.taht.net/posts/Beating_the_speed_of_light_on_the_web/ the huge bandwidths advertised here, and the actual "speed" reminded me of a scene in the Marching Morons, where someone steps into their hot looking sportscar, smoke and sounds come out like he is doing 100 mph, the speedo says the same, and then he looks outside the car to see the countryside slooooowly going by. Many Americans have confused "Bandwidth", with "Speed". Bandwidth = **capacity**, not speed. Latency - the time it takes to click on something and get a result - is far more important to your perception of speed. Which would you rather drive down the information superhighway? The Titanic? or a Tesla?

    2. Re:Latency again by PPH · · Score: 1

      Yeah. But if it messes with my first post status, I want it fixed!

      --
      Have gnu, will travel.
    3. Re:Latency again by Anonymous Coward · · Score: 0

      Which would you rather drive down the information superhighway? The Titanic? or a Tesla?

      It depends on what I'm doing. If I'm gaming or surfing I want to drive the tesla. If I'm doing uploads/downloads, I want the titanic. If people are surfing my website, tesla, if they're downloading some of my code modules, the titanic. If I've just started watching a movie on netflix, then tesla, if i want to be able to free up my pipe for torrents again while I watch my movie, the titanic (ie: buffer the film on the local device).

      Can't I have a Tesla with trunk space?

    4. Re:Latency again by timeOday · · Score: 1
      The bulk of Internet traffic in the US these days is streaming video. For that you need big bandwidth and big buffers, not low latency.

      That said, I wish we could settle on an Internet-wide QOS implementation and get both. Some packets have a legitimate need to cut in line. It would be workable if ISPs advertized both 'total' bandwidth and a smaller amount of 'turbo' bandwidth, or whatever stupid name they want to use for it, which is the fraction of your bandwidth that is not over-subscribed. By setting the QOS bits you could prioritize part of your traffic.

    5. Re:Latency again by mtaht · · Score: 3, Insightful

      "The bulk of Internet traffic in the US these days is streaming video. For that you need big bandwidth and big buffers, not low latency. " Emphatically not true. ESPECIALLY for streaming video, you need a functioning feedback mechanism (tcp acks or ECN or some other mechanism) to slow down the video periodically, so that it *doesn't* overflow what buffers you have, and catastrophically drop all the packets in the queue, resulting in stuttering video.

    6. Re:Latency again by Idbar · · Score: 1

      The problem is not just latency. It's latency AND packet losses, which can dramatically reduce the available capacity for TCP flows. Particularly, if the router is not well designed and there's no algorithm in place to counteract for a suboptimal design.

      A poorly designed router can sabotage the performance TCP, causing overall slowness to your connections. Particularly, those 10Mbps you're paying for and want them to properly work.

    7. Re:Latency again by rcpitt · · Score: 1
      And that is exactly the problem with QOS that is under the control of someone who has a stake in the outcome.

      "I want everything louder than everything else" (Meat Loaf) epitomizes the net today - we have Google screwing with the fast start window and Microsoft pretty much ignoring it and setting it as large as possible in some cases (they do other things right though it seems)

      The buffer bloat problem is one born of history and ignorance:

      History - it used to be that we could not put enough buffer RAM into the device because it was too expensive - so we designed our algorithms to use all that was available "because there's never enough."

      Ignorance - we now have a generation of network "engineers" who have grown up not having to deal with really congested networks (until very recently) and simply don't bother to turn on things like RED (Random Early Detection) in their router products or ECN (Explicit Congestion Notification) on their servers and links - or ensure that ECN is actually passed through and not zero'd. Now they don't even recognize the problem and we have to teach them (and get them to un-learn their bad habits - like "any packet loss is bad")

      5 months ago my prototype of our old company's first generation embedded Linux router software, running on an old '486 chassiz, finally died. When I replaced it with a recent D-Link, my connection from my home office to the world went from quite acceptable to almost useless whenever I was up or downloading anything larger than a couple of hundred K. The buffer on the router fills up and the latency goes from 10-20ms to 4000ms (4 seconds) - and my streaming radio stops - and my xload monitors and other remote monitors on servers stop - and my nagios system checks go off thinking that the remote systems are down.

      This is unacceptable - and it is a LOCAL problem. In systems where the ISP's equipment is to blame, there's little I could do but rate-limit my connection to something under the threshold of pain.

      Even turning on the router's "QOS" setting (switch, not knob - no control over parameters) that should give me "better gaming results" does not eliminate the problem or do much at all.

      Bufferbloat is real - but the good news is that it can be fixed if we start asking the right questions of our suppliers and get them to admit there is a problem. The Bufferbloat community is in the process of putting together test facilities to help you and the ISPs and manufacturers get definitive information on the problem; things like a mixed-mode lantency/throughput test that measures 2 or 3 different stream types at the same time instead of just raw "bits through the pipe from source to destination"

      I expect that even if ISO had won the war (and I was there in the trenches at the time the war was being fought) we'd have come to this point at some time - but IMHO that would have been some time in the next century as the ISO "standards" regime (and cost) was a huge damper on development and deployment. We would not have had the digital revolution at all if it was ISO anchored.

      --
      Been there, done that, paid for the T-shirt
      and didn't get it
    8. Re:Latency again by rcpitt · · Score: 3, Informative
      I deal with streaming video daily - from a producer, distributor and support point of view.

      "Why does the web site load so slowly?" is the classic question - caused in many cases by the "eagleholic" having 4 live eagle nest video streams running in one window while trying to post observations and screencaps to the web site in another.

      Believe me - there is ample reason to deal with the problem as most of today's home networks are used for more than just one thing at a time. Mom is watching video, sis is uploading pictures of her party to Facebook, son is playing online games and dad is trying to listen to streaming audio - and NOTHING is working correctly despite the fact that this is a trivial load for even a T1 (1.45Mbps) let alone today's high-speed cable (30Mbps down and 5Mbps up). We used to run 30+ modems and web sites and email and all manner of stuff over bonded 56K ISDN lines for pity sake - and we got better latency than the links today.

      What's the problem? The latency for the "twitch" game packets has gone from 10ms to 4000ms or more - and the isochronos audio stream is jerky because it's bandwidth starved and the upload takes forever because the ACKs from FB can't get through the incoming video dump from YouTube (with its fast start window pushed from default 3 to 11 or 12) and by the time the video is half over, the link to YouTube has dropped because it took 30 seconds or more for the buffer to drain after the first push and the link had timed out.

      That's the problem - you need low latency for some things at the same time you need high throughput for others - and it is possible and can be done - and IS done if things are tuned correctly. But correctly tuning the use of buffers is an art today, not a science - and the ever-changing (by 3-4 orders of magnitude) needs of today's end-point routers has pushed the limits of what AQM (automated queue management) algorithms are currently available, even if they're turned on (which in most cases they're not it seems)

      --
      Been there, done that, paid for the T-shirt
      and didn't get it
    9. Re:Latency again by rcpitt · · Score: 1
      "Any packet loss is bad" - that's the mantra I get from network engineers - and then the idiots don't turn on ECN (Explicit Congestion Notification) or run some bad-ass piece of crap that resets the ECN that is already on the packets they're transiting - or their routers don't respect the notifications or...

      (Reasonable) packet loss or ECN - pick one - and then tell your up and downstream neighbors why you picked it (hopefully ECN will find its way into near 100% deployment ASAP) and why they should respect it and follow on.

      Then - when the Bufferbloat gurus get the testing systems working, test and report so we can do our jobs and let the world know good/bad setups and such.

      Lead, Follow, or get the hell out of the way

      --
      Been there, done that, paid for the T-shirt
      and didn't get it
  7. Re:Do they have a solution by mtaht · · Score: 1

    Move to Nicaragua. Surf a lot. Hack from the beach. http://www.nicaraguasurfreport.com/reportlist.php?id_secc=25 It worked for me.

  8. Keeping big buffers but managing them better by Geoff-with-a-G · · Score: 2
    That is indeed part of the solution Jim Gettys suggests - Active Queue Management or Random Early Detect.

    The first problem is that a ton of transit systems on the Internet (like indeed a ton of systems everywhere) are effectively running the default behaviors in this respect, with no special tuning. That means FIFO with whatever queue size is available.

    The second is that even if all the ISP operators decided to fix this, "QoS stuff" has the potential to run afoul of Network Neutrality. The current thinking is that they shouldn't be discriminating between "bulk/throughput" packets and others. Some would suggest discrimination between traffic types is okay, so long as you don't discriminate between traffic sources (ie prioritize all VoIP, but don't let Comcast give Comcast VoIP preference over Vonage VoIP) but implementation would be tricky - all too easy to implement a "vendor neutral" policy that coincidentally doesn't seem to identify Vonage's traffic quite right.

    The simplest and most neutral solution to all this is simply to decrease the buffer size in those big default FIFO queues. Even the bulk/throughput packets won't really suffer from that - TCP is specifically designed to have packets dropped in a timely manner, rather than held in a queue for a long time. One of the problem behaviors that Jim identifies is that if your real RTT to say, a server in California, is 40 msec, but there's 4 seconds worth of delay in the buffers. TCP will send a window full of data (let's say 64K) then wait for a reply for 40, 80, maybe 120 msec. Not getting it, he sends the whole window again. And again. And again. Finally an ACK squeezes through, and the process begins again. Instead of shrinking his transmission size, he does the opposite - he sends big multiples of every packet, making the congestion worse.

    1. Re:Keeping big buffers but managing them better by TheLink · · Score: 1

      RED is random.

      I'm proposing they use an AQM algorithm that isn't that stupid/random but rather based on the QoS AND _age_of_packet_. The latter I believe is important.

      One can determine the QoS by fields in the packet header and/or guessing.

      Guessing isn't necessarily that difficult or error prone - latency sensitive stuff uses mostly small packets (because bigger packets = higher latency). And high throughput stuff uses mostly big "max size" packets.

      With my proposal if say a 1Mbps ADSL user gets a quick burst of multiple HTTP downloads (a single page often involves multiple concurrent HTTP downloads) the router can queue them up in its buffers, but this doesn't have to interfere with the user's latency sensitive game connection, nor does it have to significantly lower HTTP throughput.

      Whereas if you have small buffers, and the small buffers overflowed by the bursts, you get packet drops which reduce throughput and can still also interfere with latency sensitive packets (because they get dropped it the buffers happen to be full).

      Many games (e.g. WoW) use TCP (require nonlossy comms) and a missing packet means an effective delay in the magnitude of RTT + timeouts since they have to detect that the packet got lost and then resend it. If your RTT /"ping" is high, a missing packet hurts you a lot.

      For example if you have a 1Mbps connection and your game ping is 200 milliseconds (server is far away), if your 256 byte latency sensitive packet is just delayed for 12 milliseconds (the time it takes to send a 1500 byte bulk http packet down a 1Mbps link - because it was in the process of being sent, it has to be sent before the low latency packet) it doesn't matter that much. But if the packet is dropped just because the buffers are full you're going to have to wait a few hundred milliseconds to get its replacement.

      Most devices need to put the packet in a queue first before they can do fancy decisions on it. If the queue is full, they drop the packet. With my proposal the queues can be big so the latency sensitive packets don't have to be dropped just because of bursts.

      --
    2. Re:Keeping big buffers but managing them better by mtaht · · Score: 1

      Please feel free to write some code. Writing a new qdisc for Linux and BSD is not very hard.

      Writing a good qdisc, insanely so.

      That said, I tend to feel that time-stamping more packets and doing more guessing may make sense, as does concepts in TCP vegas.

      But: Before starting, read these:

      http://pollere.net/Pdfdocs/bcit_6.2001.pdf Kathleen Nichols - who proved to Van Jacobson that RED was wrong -

      And Van Jacobson: http://pollere.net/Pdfdocs/QrantJul06.pdf

    3. Re:Keeping big buffers but managing them better by Unequivocal · · Score: 1

      You may be right about some of your points, but (if I understand your point) you're wrong about the QoS and net neutral stuff. FCC has never indicated that net neutrality regulations will impinge on "reasonable network management" practices. If folks need to route certain kinds of packets or manage certain kinds of buffers in specific ways to get performant networks, that's just great as far they're concerned (or anyone else with a legislative/regulatory angle I've ever read about or talked with).

      I corresponded with some FCC staff about this bufferbloat issue specifically, and they are interested in it and definitely talking with the tel/cable cos about how to fix this. Net Neutrality is supposed to prevent these companies from taking unfair advantage of their position as network providers, not about making them worse network providers.

    4. Re:Keeping big buffers but managing them better by Geoff-with-a-G · · Score: 1

      Indeed, when I referenced "net neutrality", I wasn't referring to the specific implementation by the FCC, but rather the concept itself. The actual language does include an exception for "reasonable network management", but many network neutrality proponents were (I think somewhat rightfully) concerned at the size and flexibility of such a loophole.

      Several providers saw their networks being loaded up with bit-torrent, and believed that limiting that specific protocol would constitute "reasonable network management". Naturally, many readers of slashdot disagreed. Also as I mentioned in the previous comment, I believe a triple-play provider could plausibly concoct a "reasonable network management" policy that would favor their own traffic without referencing themselves specifically. Say that Comcast used a different UDP port range for their RTP/VoIP bearer than Vonage did. Or say that to avoid allowing users to overwhelm priority queues, they refused to mark VoIP based on ports, but rather required it be destined for "verified legitimate voice gateways" (ie those administered by or registered formally with the provider, thus preventing Skype direct calls and the like from being priority-queued).

      I am of course speculating wildly, but my point is that these unintended consequences are conceivable and that proponents of absolute network neutrality should be aware of the trade-offs with QoS (and vice versa). Also that while "Net Neutrality is supposed to prevent these companies from taking unfair advantage of their position as network providers, not about making them worse network providers", history is littered with laws and corporate policies that were "supposed to" achieve all sorts of laudable goals, but instead lead to unexpected exploitation by self-interested parties. I have no perfect solution in mind; I'm simply trying to call attention to the trade-offs involved and warn of possible unintended consequences.

    5. Re:Keeping big buffers but managing them better by badkarmadayaccount · · Score: 1

      QoS policies can be written neutral, or at least reasonably so, provider abuse is a market problem, not a technical one. Also, a genetic timing algorithm (coming to all FLOSS apps in 3...2...1...), can and will screw up anything at all that tries to do something sneakier than bandwidth*latency*jitter=const, so let them shoot themselves in the foot. Unless they do true destination based scheduling, they won't be able to screw with anything. But QoS can't save you from bufferbloat. ECN can. Simple standard solution to all of bufferbloats' problems.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
    6. Re:Keeping big buffers but managing them better by badkarmadayaccount · · Score: 1

      Multiple smaller ques would be more efficient.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
    7. Re:Keeping big buffers but managing them better by Geoff-with-a-G · · Score: 1

      I understand that QoS policies can be written neutral, my concern is that they won't be. Dismissing the actions of ISPs and carriers as "a market problem" doesn't really constitute useful policy. Similarly, ignoring all network hosts who aren't FLOSS apps written after 2011 is also not helpful.

      The issues being examined in the bufferbloat discussions are not about whether there is a technically possible solution somewhere in the world (indeed, both ECN and AQM have been around for a while). The issues relate to providing a robust Internet which can be/is administered by a large and diverse group of self-interested organizations in such a way that it productively serves a vastly diverse population of clients. Ignoring the ISPs, carriers, and non-FLOSS users isn't solving the problem, it's ignoring the problem.

    8. Re:Keeping big buffers but managing them better by badkarmadayaccount · · Score: 1

      "verified legitimate voice gateways" are anti-competitive practice, and port based anything is discrimination against destination and source, not to mention that NAT would screw up that scheme totally.

      --
      I know tobacco is bad for you, so I smoke weed with crack.
  9. Every packet is sacred by RevWaldo · · Score: 4, Funny

    Every packet is sacred.
    Every packet is great.
    If a packet is wasted,
    TCP gets quite irate.

    Let the heathen drop theirs
    When their RAM is spent.
    TCP shall make them pay for
    Each packet that can't be sent.

    Every packet is wanted.
    To this we are sworn.
    From real-time data from CERN
    To the filthiest of porn.

    Every packet is sacred.
    Every packet is great.
    If a packet is wasted,
    TCP gets quite irate.

    .

    1. Re:Every packet is sacred by mtaht · · Score: 1

      oh, that was a wonderful parody of an already wonderful parody. Thanks for that. I'd probably modify it a little bit for accuracy, if you'd let me paste a copy over to our humor page? http://www.bufferbloat.net/projects/bloat/wiki/Humor The bufferbloat problem is so big - in hundreds of millions of devices today and millions more in the pipeline, that if we didn't laugh sometimes, we'd explode.

    2. Re:Every packet is sacred by Anonymous Coward · · Score: 0

      (From Ross Olson)

      Every Packet’s Sacred

      With apologies to Mr.’s Palin & Jones, Cerf & Metcalf

      There are POTS in the world.
      There are Tokens.
      There are Arcnets and fibre channels, and then
      There are those that send in Morse, but
      I’ve never been one of them.

      I’m an Ethernet Router,
      And have been since before I was spec’d,
      And the one thing they say about Routers is:
      The data they pass on is perf’ct.

      You don’t have to be hundred meg’ T.
      You don’t have to have a VPN.
      You don’t have to have DHCP on. You’re
      A Router the moment you’re plugedin!,

      Because
      Every packet’s sacred.
      Every packet’s great.
      If a packet is wasted,
      Vint gets quite irate.

      Let the Belkins ‘jack theirs -
      and have a pop-up spawn.
      Metcalf’ll make them pay for
      Each packet that’s not passed on.

      Every packet’s wanted.
      Every packet’s good.
      Every packet’s needed
      In your neighbourhood.

      RIAA, Studios, Lawyers,
      Want to block yours any time,
      But Vint loves those who treat their
      Packets as sublime.

      Every packet’s sacred.
      Every packet’s great.
      If a packet is wasted,
      Vint gets quite irate.

      Every packet’s useful.
      Every packet’s fine.
      the Net sends ev’rybody’s.
      Mine!
      And mine!
      And mine!

      Let the Censors spill theirs
      O’er “beaver”, “breast”, and “cocaine”.
      Metcalf’ll strike them down for
      Each packet that’s dropped in vain.

      Every packet’s sacred.
      Every packet’s good.
      Every packet’s needed
      In your neighbourhood.

      Every packet’s sacred.
      Every packet’s great.
      If a packet is wasted,
      Vint gets quite iraaaaaate!

    3. Re:Every packet is sacred by RevWaldo · · Score: 1

      Glad to be of assistance, however small. Cheers!

    4. Re:Every packet is sacred by CAIMLAS · · Score: 1

      Best. Comment. Ever. That's going on my door at work - thanks.

      --
      ~/ssh slashdot.org ssh: connect to host slashdot.org port 22: too many beers
    5. Re:Every packet is sacred by Anonymous Coward · · Score: 0

      Actually the TCP algorithm is producing this latency when it expects packets to be dropped rather than buffered. The lack of dropped packets prevents TCP from throttling and it instead decides to keep blasting the poor router with packets. This prevents anything realtime from getting through properly because there's this huge buffer of unsent packets in the way of the more important stuff. TCP would be happy if all these routers weren't using XBOX HEUG buffers.

  10. Better link to the animation by Sits · · Score: 1
    1. Re:Better link to the animation by Anonymous Coward · · Score: 0

      thx for finding a safer place for that bit!

      I note we (with a thoroughly debloated set of servers) survived the day without a hitch.

      Proof that the concept works... although the slashdotting was kind of in slow motion... I look forward to seeing how many hits we withstood.

  11. Most delays are due to the ethernet packet buffers by uksv29 · · Score: 1

    Most delays are due to users connecting to their ADSL modem via Ethernet and not traffic managing properly.

    On a congested link this can cause large delays as Ethernet normally has a 1000 packet buffer in the Linux kernel and the ADSL modem has a similar buffer. You only need a couple of heavy connections which want to go faster than the ADSL will support and those buffers start to fill up real fast. You can easily end up with latencies measured in seconds if you have a lot of connections running (say bittorrent).

    There are several solutions to this but the best in my experience is to change the queuing discipline to SFQ and rate limit using HTB. This has been in the kernel for years and works extremely well. You need to limit the traffic upstream and downstream to slightly less (5% less) than the ADSL link speed. This ensures that the modem never queues traffic. Uplink you can use all sorts of fancy queuing but downlink all you can really do is policing of traffic unless you install the IMQ patch to the kernel.

    I've a script which I got from somewhere a while ago, don't remember where though. I've put it at http://ams1.x31.com/~andy/ppp0-ratelimit.sh if anyone wants to look at it. It expects to work on ppp0 but can be adapted as required.

    I've played a lot more recently with Linux kernel disciplines and it has produced surprising performance on congested links. One link is running mail, remote access and Internet access over a 1mbit symmetric link for about 60 users. in the morning it hits 95% link capacity at the start of work and stays there until everyone goes home but ssh sessions are fully interactive without noticeable lag all this time. Yes web browsing is a little slow but it is the same for everyone and one user can't flood the link and upset everyone else.

    Linux QOS is the future, pity about the documentation

  12. Who pointed it out? by jimrthy · · Score: 1

    Have you done the research to see just who you're disagreeing with about this?

    And why they engineered TCP the way they did?

    I won't pretend that I've walked through the experiments to try to verify their conclusions. I'm not even sure I know enough to interpret to interpret But...the people shouting the warnings aren't your average Chicken Littles.

    1. Re:Who pointed it out? by BitZtream · · Score: 1

      Have you considered they still could be wrong?

      Personally I've never seen a buffer in software designed they way they described. I've never heard of hardware acting that way, but as you said they certainly know more than I.

      I stopped reading when they said 'it waits for the buffer to fill up until sending', which is true on a per packet level for a lot of things at a end point, in transit everything I've ever dealt with will forward packets without waiting UNTIL the output link becomes too congested to do so, THEN buffering starts happening. So the issue doesn't come into play until you are near saturation. When you hit that point, you're going to want buffering or the latency will be way worse when you start having to wait for retransmission.

      --
      Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
    2. Re:Who pointed it out? by mtaht · · Score: 1

      I think you are referring to an early draft of an article by Eric Raymond, which was wildly incorrect on this point, which was thoroughly discussed on the bloat mailing list. See the incredibly long thread starting at: https://lists.bufferbloat.net/pipermail/bloat/2011-February/000050.html There is a newer, fully corrected piece coming out soon. In the meantime, consider the words of Van Jacobson, Vint Cerf, and others. Carefully. https://lists.bufferbloat.net/pipermail/bloat/2011-February/000108.html http://www.bufferbloat.net/projects/bloat/wiki/Quotes

    3. Re:Who pointed it out? by jimrthy · · Score: 1

      Of course they could be wrong!

      My only point here was: are you looking at their credentials?

      As I understand it, you just re-stated the problem. Which is why they engineered TCP to work the way it does in the first place

  13. Buffer bloat is (not) an illusion... by WaffleMonster · · Score: 2
    For home users with a linux router set an HTB queue /w maximum egress rate to modem a little less than than your sustained upstream rate. At least this worked for me... never had problems with saturated upstream causing huge lags after doing this.

    After reading this guys buffer bloat rant I largly agree with him with some exceptions:

    1. What does multiple TCP sessions have to do with circumvention of congestion avoidance? TCP congestion avoidance needs to work with lots and lots of TCP sessions at once not just one or two. HTTP 1.1 sessions need NOT be short lived. I don't see why a large number of TCP sessions can't all be subject to congestion avoidance...responding individually to the conditions they see? How does this work to effectivly bypass congestion avoidance? I've seen this talking point in a few places but noone has ever explained WHY this is so. I can see an argument based on a static suboptimal initial congestion window but HTTP 1.1 supports pipelining...

    2. Two connections per server is not sufficient for browsers. TCP is a stream protocol with head of line blocking... High latency links will never use the available bandwidth properly unless they either use lots of sessions or start with massive windows which is not good for congestion. There is also a problem of ordering dependancies of resource requests within the web content. Without lots of concurrent fetches the user gets to wait longer for page loads. The presentation sounded to me like someone either not understanding necessary details of TCP and higher layer considerations or trying to have their cake and eat it too.

    Lastly we don't need to replace HTTP - we need to replace TCP... HTTP over SCTP would be a much more significant improvement than any reasonable change to HTTP. No matter what you do to HTTP you still have to live with the underlying transports limitations!

    1. Re:Buffer bloat is (not) an illusion... by mtaht · · Score: 1

      Sort of in answer to both of your questions the bufferbloat.net servers are configured as follows:

      http://www.bufferbloat.net/projects/bloat/wiki/Dogfood_Principle

      trying at every point to make sure http 1.1 actually got used.

      We survived today's slashdotting. Handily.

      That said, your points are well made. SPDY is part of the chromium browser and looks to have some potential.

      In my case, I like the idea of smarter - and eventually sctp-enabled - proxies, especially on wireless hops. See thread at:

      https://lists.bufferbloat.net/pipermail/bloat/2011-February/000068.html

    2. Re:Buffer bloat is (not) an illusion... by jg · · Score: 2

      Re: 1. I've always thought that the congestion window to the same end-point should be shared: but that's not the way TCP implementations work, and wishing they worked that way won't make the problem go away. And, as I've shown, bufferbloat is not a TCP phenomena in any case.

      Re: 2. HTTP is a lousy protocol in and of itself, and having to do it on top of TCP makes it yet harder. It is the fact that HTTP is so ugly that makes so much else difficult. And I disagree with your claim that high latency links won't use the bandwidth; in fact, lots of sessions is just making things harder. You can read our HTTP/1.1 Sigcomm performance paper.

      I'll be writing more on this topic this week.

      And we need to replace HTTP, and something other than TCP would be highly desirable. Personally, I'm much more fond of CCNx than any IP based transport.

  14. Corrected Git URL by JamieF · · Score: 3, Informative

    The link in the /. story to debloat-testing should go here: git://git.infradead.org/debloat-testing.git.

    git:gitinfradeadorgdebloat-testinggit is not a valid URL.

  15. Re:Most delays are due to the ethernet packet buff by Anonymous Coward · · Score: 0

    Thanks. I was hoping someone would post something like this. My experience with ADSL modems has been a very slow responsiveness (ie. choppy ssh, slow browsing) whenever the [smaller, say 1mbps] upstream bandwidth is exceeded. This slowness can happen even with just one fast upload capable of saturating the link. From my understanding, the bulk data (ie. big/many ftp/bittorent packets) fill the FIFO buffers on the ADSL modems. Now when an outgoing http request is made, it gets stuck at the back of the FIFO and even though the [larger, say 3mbps] downstream bandwidth is nowhere near capacity, since the http request [click] has to wait (say a second) before it goes out, the response [web page or image] obviously isn't going to start on it's way. That's at the http level.

    Now say there is a download already happening... stuff , say a "big" 2MB print-ready version of the bufferbloat logo, is zipping down your nearly empty download pipe... well, it comes in "little" chunks - say 1500bytes at a time - but for each chunk that is sent by the bufferbloat webserver, it expects to receive a "tiny" ACK packet back before it sends the next chunk (or decides to retransmit). Well, your browser gets the "little" chunk and your quad-core glowing blue machine immediately fires that ACK back at lightning speed... SMACK! there it lands at the back of the ADSL modem's FIFO buffer and patiently waits there for a second until it get's it's turn to zip up the pipe and say "right on! all's cool, send me the next chunk of bufferbloat logo!"

    Of course in the meantime, the bufferbloat webserver has probably taken this delay to be an indication that the client is probably in orbit around the moon and will certainly not try to send the next chunk in a big rush.

    So yes, one fix would be to limit your output (or that of all the machines behind the ADSL modem) to slightly less than the upstream bandwidth since you probably cannot have much influence on the FIFO buffer -- my impression was that this buffer might actually be on the far side of the ADSL modem.

    But, when it comes to doing this (or to control the similar thing that happens when being hammered [slashdotted] by excessive incoming traffic, or to police incoming traffic) and your link to the world is not an ADSL modem, but a wireless link -- you have a similar (and perhaps less solvable) problem:

    The wireless link is say nice fairly stable 30mbps link but when under [a shared] load it get's a little shaky and drops speed to 20mbps -- do you set your policing/SFQ whatever settings for 30 or 20 (or 10mbps)?

    I always (as an AC slashdotter) suspected that these buffers were introduced as a "freedom of speech" impediment to punish "producers/publishers" of information by, by default, destroying their interactivity, voip, surfing, whatever, should they decide to broadcast/publish/share. The buffers were certainly not implemented in the opposite direction because, well, that would interfere with "consuming" bandwidth.

    Interesting problems to solve, but I think by bringing the realities of bufferbloat to the "consumer/producers" aka public we can move towards a situation where ISP charges trend towards the transit charges that really more closely reflect the true (non-capital) cost of providing last-mile internet -- really a call to cut out the middleman/ISP and put the bottlenecks back where they belong - (intercontinental/backbone links). :D

  16. Which streams does this head end carry? by tepples · · Score: 1

    [Changing channels] should generally look like a single, continuous stream from the head end at your cable company. [...] Now if by "changing channels" you mean rapidly switching between separate streams from content sources on the Internet, then yes, but on the other hand, most streaming videos are almost invariably not being transmitted live

    In other words, streams MUST NOT be live unless the viewer subscribes to a cable television service and the streams have been approved by the operator of such service.

    In general, isoch connections should be used for live streams from special events, video chat, VoIP, and a single isoch connection to the head end for anything that resembles IPTV.

    This raises the question: should each IPTV user have access to multiple head ends? News and sporting events appear to qualify as "special events" for this purpose, but someone might want to watch news and sports offered by a provider without a specific carriage agreement with the head end owned by your particular ISP. For example, a small or remote provider might offer a live stream. Otherwise, it's cable TV carriage disputes all over again.

    1. Re:Which streams does this head end carry? by badkarmadayaccount · · Score: 1

      Shared slot best effort isochronous, per client. Eat the set-up/tear-down cost. Screw the abuser on bandwidth - cap isochronous transfers at sub-link speed, inversely proportional to network load. That would not upset multiple transfers, or multiple backends - only the idiots using that for torrents.

      --
      I know tobacco is bad for you, so I smoke weed with crack.