Slashdot Mirror


Better Bandwidth Utilization

jtorin writes "Daniel Hartmeier (of OpenBSD fame) has written a short but interesting article which explains how to better utilize available bandwidth. In short it gives priority to TCP ACKs over other types of traffic, thereby making it possible to max both upload and download bandwidth simultaenously. Be sure to check ot the nice graphs! Also note the article on OpenBSD Journal. OpenBSD 3.3 beta is now stable enough for daily use, so why not download a snapshot from one of the mirrors and try it out?"

196 comments

  1. frosty by Anonymous Coward · · Score: -1, Troll

    Enjoy my post plz.

  2. first post by Anonymous Coward · · Score: -1, Troll

    frost piss! 1234

  3. Hmmm by Gortbusters.org · · Score: 0, Flamebait

    can I better utilize bandwith by downloading OpenBSD too? :P

    --
    --------
    Free your mind.
    1. Re:Hmmm by Anonymous Coward · · Score: 0

      If all you care about is bandwidth, yeah. If you don't like the idea of having to switch distros, then don't bother and wait for other systems to implement this kind of solution.

    2. Re:Hmmm by Anonymous Coward · · Score: 0

      The BSDs aren't distros. They are forked from each other, and don't share a common kernel.

    3. Re:Hmmm by Anonymous Coward · · Score: 0

      Except when they steal code off each other, possibly breaking each others license. Even Microsoft steals BSD code.

    4. Re:Hmmm by nmilford · · Score: 0

      bsd license. as long as they give proper credit (which the bsds usually do sans microbsd) they can do what they please with the code. You cannot steal code from a bsd license, only miscredit.

  4. Developer lashes out: What Killed FreeBSD by Anonymous Coward · · Score: -1, Troll
    The End of FreeBSD

    [ed. note: in the following text, former FreeBSD developer Mike Smith gives his reasons for abandoning FreeBSD]

    When I stood for election to the FreeBSD core team nearly two years ago, many of you will recall that it was after a long series of debates during which I maintained that too much organisation, too many rules and too much formality would be a bad thing for the project.

    Today, as I read the latest discussions on the future of the FreeBSD project, I see the same problem; a few new faces and many of the old going over the same tired arguments and suggesting variations on the same worthless schemes. Frankly I'm sick of it.

    FreeBSD used to be fun. It used to be about doing things the right way. It used to be something that you could sink your teeth into when the mundane chores of programming for a living got you down. It was something cool and exciting; a way to spend your spare time on an endeavour you loved that was at the same time wholesome and worthwhile.

    It's not anymore. It's about bylaws and committees and reports and milestones, telling others what to do and doing what you're told. It's about who can rant the longest or shout the loudest or mislead the most people into a bloc in order to legitimise doing what they think is best. Individuals notwithstanding, the project as a whole has lost track of where it's going, and has instead become obsessed with process and mechanics.

    So I'm leaving core. I don't want to feel like I should be "doing something" about a project that has lost interest in having something done for it. I don't have the energy to fight what has clearly become a losing battle; I have a life to live and a job to keep, and I won't achieve any of the goals I personally consider worthwhile if I remain obligated to care for the project.

    Discussion

    I'm sure that I've offended some people already; I'm sure that by the time I'm done here, I'll have offended more. If you feel a need to play to the crowd in your replies rather than make a sincere effort to address the problems I'm discussing here, please do us the courtesy of playing your politics openly.

    From a technical perspective, the project faces a set of challenges that significantly outstrips our ability to deliver. Some of the resources that we need to address these challenges are tied up in the fruitless metadiscussions that have raged since we made the mistake of electing officers. Others have left in disgust, or been driven out by the culture of abuse and distraction that has grown up since then. More may well remain available to recruitment, but while the project is busy infighting our chances for successful outreach are sorely diminished.

    There's no simple solution to this. For the project to move forward, one or the other of the warring philosophies must win out; either the project returns to its laid-back roots and gets on with the work, or it transforms into a super-organised engineering project and executes a brilliant plan to deliver what, ultimately, we all know we want.

    Whatever path is chosen, whatever balance is struck, the choosing and the striking are the important parts. The current indecision and endless conflict are incompatible with any sort of progress.

    Trying to dissect the above is far beyond the scope of any parting shot, no matter how distended. All I can really ask of you all is to let go of the minutiae for a moment and take a look at the big picture. What is the ultimate goal here? How can we get there with as little overhead as possible? How would you like to be treated by your fellow travellers?

    Shouts

    To the Slashdot "BSD is dying" crowd - big deal. Death is part of the cycle; take a look at your soft, pallid bodies and consider that right this very moment, parts of you are dying. See? It's not so bad.

    To the bulk of the FreeBSD committerbase and the developer community at large - keep your eyes on the real goals. It's when you get distracted by the politickers that they sideline you. The tireless work that you perform keeping the system clean and building is what provides the platform for the obsessives and the prima donnas to have their moments in the sun. In the end, we need you all; in order to go forwards we must first avoid going backwards.

    To the paranoid conspiracy theorists - yes, I work for Apple too. No, my resignation wasn't on Steve's direct orders, or in any way related to work I'm doing, may do, may not do, or indeed what was in the tea I had at lunchtime today. It's about real problems that the project faces, real problems that the project has brought upon itself. You can't escape them by inventing excuses about outside influence, the problem stems from within.

    To the politically obsessed - give it a break, if you can. No, the project isn't a lemonade stand anymore, but it's not a world-spanning corporate juggernaut either and some of the more grandiose visions going around are in need of a solid dose of reality. Keep it simple, stupid.

    To the grandstanders, the prima donnas, and anyone that thinks that they can hold the project to ransom for their own agenda - give it a break, if you can. When the current core were elected, we took a conscious stand against vigorous sanctions, and some of you have exploited that. A new core is going to have to decide whether to repeat this mistake or get tough. I hope they learn from our errors.

    Future

    I started work on FreeBSD because it was fun. If I'm going to continue, it has to be fun again. There are things I still feel obligated to do, and with any luck I'll find the time to meet those obligations.

    However I don't feel an obligation to get involved in the political mess the project is in right now. I tried, I burnt out. I don't feel that my efforts were worthwhile. So I won't be standing for election, I won't be shouting from the sidelines, and I probably won't vote in the next round of ballots.

    You could say I'm packing up my toys. I'm not going home just yet, but I'm not going to play unless you can work out how to make the project somewhere fun to be again.

    = Mike

    --

    To announce that there must be no criticism of the president, or that we are to stand by the president, right or wrong, is not only unpatriotic and servile, but is morally treasonable to the American public. -- Theodore Roosevelt
    1. Re:Developer lashes out: What Killed FreeBSD by Anonymous Coward · · Score: -1, Offtopic

      Sod off will you.

    2. Re:Developer lashes out: What Killed FreeBSD by Anonymous Coward · · Score: -1, Troll

      An Elegy For *BSD


      I am a *BSD user
      and I try hard to be brave
      That is a tall order
      *BSD's foot is in the grave.

      I tap at my toy keyboard
      and whistle a happy tune
      but keeping happy's so hard,
      *BSD died so soon.

      Each day I wake and softly sob
      Nightfall finds me crying
      Not only am I a zit faced slob
      but *BSD is dying.

  5. How ironic by JPDeckers · · Score: 4, Funny

    How ironic, an article about better utilizing available bandwidth, and already /.-ed with 0 comments. Guess bandwidth is utilized now.

    1. Re:How ironic by TopShelf · · Score: 4, Funny

      Guess we better implement this idea without any delay, then!

      --
      Stop by my site where I write about ERP systems & more
    2. Re:How ironic by Xformer · · Score: 2, Funny

      What do you expect? It's on an island, after all... :-)

      --
      All I want is a kind word, a warm bed and unlimited power.
    3. Re:How ironic by cdrudge · · Score: 1

      You do realize that the cx is not necessarily indicitive of it being on Christmas Island don't you? It appears that the server resides in Switzerland.

    4. Re:How ironic by Xformer · · Score: 1

      Of course I do. It was meant as a joke.

      I know that, and you know that... those that have written me, thinking I was in Niue, obviously don't.

      --
      All I want is a kind word, a warm bed and unlimited power.
    5. Re:How ironic by Anonymous Coward · · Score: 0

      Actually, the web server is the same host that created the graphs, it's a mere 128kbps uplink.

      It's dropping about 30% of the (unprioritized :) http replies since about 8 hours, while outgoing connections are prioritized, keeping the downlink fully useable at the maximum rate. See

      http://www.benzedrine.cx/pfstat.html
      http://www.benzedrine.cx/statistics.html

      (maybe later... ;)

  6. How to better utilize bandwidth by gmuslera · · Score: 4, Funny

    rule 1: don't put an article in slashdot pointing to your site

  7. Oh, that's where OpenBSD is... by dereklam · · Score: 4, Funny
    Thanks for linking to OpenBSD... I was wondering what that whole BSD thing was!

    Now if only I could find that Linux thing...

    1. Re:Oh, that's where OpenBSD is... by Loki_1929 · · Score: 0, Funny

      "Now if only I could find that Linux thing..."

      Oh, it's right here, I think.

      --
      -- "Government is the great fiction through which everybody endeavors to live at the expense of everybody else."
    2. Re:Oh, that's where OpenBSD is... by JRHelgeson · · Score: 2, Funny
      No, if you're looking for THE BEST Linux around, forget SuSe - Red Hat is a Joke!

      This is where you need to go to get your Linux Desktop Replacement!

      Regards,

      Joel

      --
      Boys, Keep It Wrinkled...

      --
      Good security is based upon reality and common sense. Common sense is a function of having common knowledge.
    3. Re:Oh, that's where OpenBSD is... by Loki_1929 · · Score: 1

      Hey, I saw something like that once.

      --
      -- "Government is the great fiction through which everybody endeavors to live at the expense of everybody else."
    4. Re:Oh, that's where OpenBSD is... by Loki_1929 · · Score: 1

      Lol, Linux fanboy-moderators to the rescue! :P

      Luckily, there's more than enough karma on my profile for me to be able to make light-hearted jokes about Linux and Microsoft and still withstand the hyper-militant types who happen to have some mod points at the time. :)

      --
      -- "Government is the great fiction through which everybody endeavors to live at the expense of everybody else."
  8. like wondershaper does for months now? by Anonymous Coward · · Score: 5, Informative
    1. Re:like wondershaper does for months now? by Anonymous Coward · · Score: 0

      Years probably.

      This did seem to be one of those "No shit, Sherlock" articles, but then most slashdotters are morons.

    2. Re:like wondershaper does for months now? by gmuslera · · Score: 4, Informative

      Wondershaper uses other approach, like having a scheduler and (de)prioritize certain ports and hosts . I think that right now it not specially prioritize TCP ack, and, well, that could improve the good job what do wondershaper right now if it works.

    3. Re:like wondershaper does for months now? by gmuslera · · Score: 4, Informative

      Second revisions are always better. It prioritizes small packets (of less of 64 bytes), and I suppose that this include ACKs :)

    4. Re:like wondershaper does for months now? by Captain+Pedantic · · Score: 5, Interesting

      From the Wondershaper script:

      # To speed up downloads while an upload is going on, put ACK packets in
      # the interactive class:


      tc filter add dev $DEV parent 1: protocol ip prio 12 u32 \
      match ip protocol 6 0xff \
      match u8 0x05 0x0f at 0 \
      match u16 0x0000 0xffc0 at 2 \
      match u8 0x10 0xff at 33 \
      flowid 1:10

      --

      None are more hopelessly enslaved than those who falsely believe they are free. Johann Wolfgang von Goethe.
    5. Re:like wondershaper does for months now? by spydir31 · · Score: 1
      You can add this to wondershaper to prioritise acks,
      tc filter add dev $DEV parent 1:0 prio 10 u32 \
      match ip protocol 6 0xff \
      match u8 0x10 0xff at nexthdr+13 \
      flowid 1:10
      not tested, but should work (I think)
    6. Re:like wondershaper does for months now? by stratjakt · · Score: 4, Informative

      And from the explanation in the readme:

      "To make sure that uploads don't hurt downloads,
      we also move ACK packets to the front of the queue."

      It's pretty cool, it throttles your speeds to just under what the maximum should be, so that queueing will only happen on your linux box, and then you can prioritize what you want.

      --
      I don't need no instructions to know how to rock!!!!
    7. Re:like wondershaper does for months now? by spydir31 · · Score: 4, Informative
      better version, I think
      tc filter add dev $DEV parent 1:0 prio 10 u32 \
      match ip protocol 6 0xff \
      match u8 0x10 0x10 at nexthdr+13 \
      flowid 1:10
    8. Re:like wondershaper does for months now? by Anonymous Coward · · Score: 0

      ahh, you are quite correct.

      2 things.

      1. Wondershaper is covered by a non-free license
      2. altq has been doing this for a few years

    9. Re:like wondershaper does for months now? by Anonymous Coward · · Score: 0

      Hm, together with firewall rules ?

    10. Re:like wondershaper does for months now? by Anonymous Coward · · Score: 0
      most slashdotters are morons.

      I speak on behalf of roughly 0.0001% of the trolls and crapflooders. We really do think /.ers are the gloriest people ever. Please don't get mad at this one Anonymous Coward. He doesn't understand.

    11. Re:like wondershaper does for months now? by XMichael · · Score: 1

      Check out this company's (Eyeball Networks) technology called "Any Bandwidth". It is a pretty solid implementation that works at a user space level. It allows application developers to take advantage the maximum bandwidth available without having to modify a firewall; http://www.eyeball.com/company/anybandwidth.html

  9. Elegy for *BSD by Anonymous Coward · · Score: -1, Offtopic

    Elegy For *BSD


    I am a *BSD user
    and I try hard to be brave
    That is a tall order
    *BSD's foot is in the grave.

    I tap at my toy keyboard
    and whistle a happy tune
    but keeping happy's so hard,
    *BSD died so soon.

    Each day I wake and softly sob
    Nightfall finds me crying
    Not only am I a zit faced slob
    but *BSD is dying.

  10. This will be of most use to ... by adzoox · · Score: 4, Insightful
    I think this may be of most use to two way satellite connections and maybe to service providers - however; I don't see how one can get much faster than a cable modem or DSL connection - the internet comes through at the same bandwidth and speed whether I am wireless or T1 or cable modem/DSL - this is the majority of network traffic nowadays

    Corporate networks are already optimized under 100 or gigabit ethernet with Cisco routers which automatically handle collisions and error corrections.

    --
    Yell & scream & rant & rave... it's no use... you need a shaaaave ~ Bugs Bunny
    1. Re:This will be of most use to ... by arkanes · · Score: 4, Informative

      If you have a non-shaped asynchronous connection, like most forms of DSL and cable, it's pretty easy to cap out your upstream. When you do that, your downstream goes through the floor because your ACKs don't get through. This just says that if your routers prioritize ACKs, your downstream will still be fine even if your upstream is saturated. This isn't exactly new, my cable ISP already does this.

    2. Re:This will be of most use to ... by Anonymous Coward · · Score: -1

      You are a fucking moron.

      Try using your cable upstream at full capacity, and then tell me your downstream is as fast ever.

      Now try limiting your upstream so that it uses 90-95% of its capacity, and compare your downstream.

      This benefits everybody whether they use a modem or some fuck off big pipe straight to the backbone. If your upstream is full, your downstream suffers.

      Remember, YOU are a fucking moron.

    3. Re:This will be of most use to ... by Anonymous Coward · · Score: -1, Troll
      So why now? Why did *BSD fail? Once you get past the fact that *BSD is fragmented between a myriad of incompatible kernels, there is the historical record of failure and of failed operating systems. *BSD experienced moderate success about 15 years ago in academic circles. Since then it has been in steady decline. We all know *BSD keeps losing market share but why? Is it the problematic personalities of many of the key players? Or is it larger than their troubled personalities?

      The record is clear on one thing: no operating system has ever come back from the grave. Efforts to resuscitate *BSD are one step away from spiritualists wishing to communicate with the dead. As the situation grows more desperate for the adherents of this doomed OS, the sorrow takes hold. An unremitting gloom hangs like a death shroud over a once hopeful *BSD community. The hope is gone; a mournful nostalgia has settled in. Now is the end time for *BSD.

    4. Re:This will be of most use to ... by Anonymous Coward · · Score: 0

      don't confuse the internet with the WWW. websites may not see a great deal of performance boost with direct connections, but direct connections and WANs can always be improved upon.

    5. Re:This will be of most use to ... by adzoox · · Score: 1

      I agree about the generalization, but aren't large corporate networks already optimized (in theory)?

      --
      Yell & scream & rant & rave... it's no use... you need a shaaaave ~ Bugs Bunny
    6. Re:This will be of most use to ... by SlugLord · · Score: 1

      Funny, my the internet comes out of the faucet much faster than my friends the internet. I'm just going to go ahead and assume that's because my connection is faster. (Yes, he has a cable modem and yes, I'm on a T3.) The point is that when you're uploading, your download speed can be cut short, but this isn't really a problem with (essentially) unlimited-bandwidth, synchronous connections (right?).

    7. Re:This will be of most use to ... by Malc · · Score: 1

      I disagree. Seeing as I regularly max out my 1184/160Kbs DSL connection on individual downloads, I have a feeling I can go faster, especially from high bandwidth sites like MSDN. On top of this, I actually like doing things concurrently, so more bandwidth will definitely help me. Finally, the upstream is so low compared to the downstream on my service that I really can't use it in both directions at once: 120KB/s download consumes 20-30% of my upstream bandwidth, and so any kind of upload kills downstream throughput. I sent out a bunch of 3MB emails the other day and my internet connection was crippled with very poor latency and incredibly slow downloads for 20-30 minutes. Fortunately I'm moving to a place with better phone lines and will be getting 3.5Mbs/800Kbs for about CAD$50/month (USD$33). :D

    8. Re:This will be of most use to ... by Anonymous Coward · · Score: 0

      I hate to say this, but lately MSDN doesn't seem to be as high bandwidth as it used to be. It's become too popular.

    9. Re:This will be of most use to ... by Malc · · Score: 1

      That's odd. I often see 400-500KB/s from our co-location facility.

    10. Re:This will be of most use to ... by Anonymous Coward · · Score: 0

      HAHAHAHAHAHAHAHAHA :) No.
      Corporate IT is infamous (ever read Dilbert?) for making bad decisions and being told to do stupid things by managers who make bad decisions.
      --os

    11. Re:This will be of most use to ... by AnotherScratchMonkey · · Score: 1
      It's useful when you share your connection. I love having a Linux-based gateway running WonderShaper.

      Now if only all the FPS games started tagging their UDP packets as interactive. For now I have to do it with an iptables rule. (The guy porting the Battlefield 1942 server to Linux just added this as an option, though.)

  11. From one of the links - Script for linux by Anonymous Coward · · Score: -1

    For educational purpose i'll post the script. Author unknown. Here it is: #!/usr/local/bin/bash # The Ultimate Setup For Your Internet Connection At Home # # # Set the following values to somewhat less than your actual download # and uplink speed. In kilobits # (EDIT THESE) DOWNLINK=1024 UPLINK=256 DEV=random # clean existing down- and uplink qdiscs, hide errors tc qdisc del dev $DEV root 2> /dev/null > /dev/null tc qdisc del dev $DEV ingress 2> /dev/null > /dev/null ###### uplink # install root CBQ tc qdisc add dev $DEV root handle 1: cbq avpkt 1000 bandwidth 10mbit # shape everything at $UPLINK speed - this prevents huge queues in your # DSL modem which destroy latency: # main class tc class add dev $DEV parent 1: classid 1:1 cbq rate ${UPLINK}kbit allot 1500 prio 5 bounded isolated # high prio class 1:10: tc class add dev $DEV parent 1:1 classid 1:10 cbq rate ${UPLINK}kbit allot 1600 prio 1 avpkt 1000 # bulk and default class 1:20 - gets slightly less traffic, # and a lower priority: tc class add dev $DEV parent 1:1 classid 1:20 cbq rate $[9*$UPLINK/10]kbit allot 1600 prio 2 avpkt 1000 # both get Stochastic Fairness: tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10 tc qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10 # start filters # TOS Minimum Delay (ssh, NOT scp) in 1:10: tc filter add dev $DEV parent 1:0 protocol ip prio 10 u32 match ip tos 0x10 0xff flowid 1:10 # ICMP (ip protocol 1) in the interactive class 1:10 so we # can do measurements & impress our friends: tc filter add dev $DEV parent 1:0 protocol ip prio 11 u32 match ip protocol 1 0xff flowid 1:10 # To speed up downloads while an upload is going on, put ACK packets in # the interactive class: tc filter add dev $DEV parent 1: protocol ip prio 12 u32 match ip protocol 6 0xff match u8 0x05 0x0f at 0 match u16 0x0000 0xffc0 at 2 match u8 0x10 0xff at 33 flowid 1:10 # rest is 'non-interactive' ie 'bulk' and ends up in 1:20 tc filter add dev $DEV parent 1: protocol ip prio 13 u32 match ip dst 0.0.0.0/0 flowid 1:20 ########## downlink ############# # slow downloads down to somewhat less than the real speed to prevent # queuing at our ISP. Tune to see how high you can set it. # ISPs tend to have *huge* queues to make sure big downloads are fast # # attach ingress policer: tc qdisc add dev $DEV handle ffff: ingress # filter *everything* to it (0.0.0.0/0), drop everything that's # coming in too fast:

    1. Re:From one of the links - Script for linux by REBloomfield · · Score: 1

      lol, some tags wouldn't go amiss ;)

    2. Re:From one of the links - Script for linux by spydir31 · · Score: 0, Redundant

      looks like Wondershaper to me.

  12. Optimized ACKs by somethingwicked · · Score: 0

    In short it gives priority to TCP ACKs over other types of traffic, thereby making it possible to max both upload and download bandwidth simultaenously

    It appears that server ACKs have been optimized as well.

    SERVER-ACK*wheez*ouch*ACK*sizzle*Damnit*

    I am sure, however, that the bandwidth is being optimized as it came back almost immediately unreachable

    Joking aside, this is the ultimate hack if it works as breezed through in the summary-just tweaking the priorities, more bandwidth!

    --

    ---"What did I say that sounded like 'Tell me about your day?'"---

  13. *BSD is dying by Anonymous Coward · · Score: -1, Troll
    It is official; Netcraft now confirms: *BSD is dying

    One more crippling bombshell hit the already beleaguered *BSD community when IDC confirmed that *BSD market share has dropped yet again, now down to less than a fraction of 1 percent of all servers. Coming on the heels of a recent Netcraft survey which plainly states that *BSD has lost more market share, this news serves to reinforce what we've known all along. *BSD is collapsing in complete disarray, as fittingly exemplified by failing dead last in the recent Sys Admin comprehensive networking test.

    You don't need to be a Kreskin to predict *BSD's future. The hand writing is on the wall: *BSD faces a bleak future. In fact there won't be any future at all for *BSD because *BSD is dying. Things are looking very bad for *BSD. As many of us are already aware, *BSD continues to lose market share. Red ink flows like a river of blood.

    FreeBSD is the most endangered of them all, having lost 93% of its core developers. The sudden and unpleasant departures of long time FreeBSD developers Jordan Hubbard and Mike Smith only serve to underscore the point more clearly. There can no longer be any doubt: FreeBSD is dying.

    Let's keep to the facts and look at the numbers.

    OpenBSD leader Theo states that there are 7000 users of OpenBSD. How many users of NetBSD are there? Let's see. The number of OpenBSD versus NetBSD posts on Usenet is roughly in ratio of 5 to 1. Therefore there are about 7000/5 = 1400 NetBSD users. BSD/OS posts on Usenet are about half of the volume of NetBSD posts. Therefore there are about 700 users of BSD/OS. A recent article put FreeBSD at about 80 percent of the *BSD market. Therefore there are (7000+1400+700)*4 = 36400 FreeBSD users. This is consistent with the number of FreeBSD Usenet posts.

    Due to the troubles of Walnut Creek, abysmal sales and so on, FreeBSD went out of business and was taken over by BSDI who sell another troubled OS. Now BSDI is also dead, its corpse turned over to yet another charnel house.

    All major surveys show that *BSD has steadily declined in market share. *BSD is very sick and its long term survival prospects are very dim. If *BSD is to survive at all it will be among OS dilettante dabblers. *BSD continues to decay. Nothing short of a miracle could save it at this point in time. For all practical purposes, *BSD is dead.

    Fact: *BSD is dying

    1. Re:*BSD is dying by dusty123 · · Score: 1

      Hmmm, what about OS-X by Apple? OS-X heavily relies on BSD. And AFAIK OS-X is gaining more and more users.

    2. Re:*BSD is dying by Anonymous Coward · · Score: 0

      Some mac users are switching back from other dying platforms (like OS2 and BeOS), but it's not gaining any significant ammounts of new users.

    3. Re:*BSD is dying by zquestz · · Score: 1

      I already posted a darwin/bsd tool that can be used to implement ack packet priority. You can find it at http://www.intrarts.com/throttled.html. It does everything hbe describes in his whitepaper except it utilizes divert sockets instead of the openbsd packet filter. Hope you guys find it useful.

  14. We figured this before by Thijssss · · Score: 5, Interesting

    Actually ever since my isp changed from A2000 to Chello we had the same problem as this guy has with his download being killed by his upload, a few months ago me and some friends figured the same solution but we had no idea how to actually do it on a windows based machine, anyone with a idea?

    1. Re:We figured this before by Anonymous Coward · · Score: 0

      Write your own software for the windows platform or run everything thru a wmware linux-router..

    2. Re:We figured this before by Anonymous Coward · · Score: 0

      Decrease his MTU from 1500 to 128. The small window will make certain that his upload won't be a problem.

    3. Re:We figured this before by Anonymous Coward · · Score: 1, Insightful
      we had no idea how to actually do it on a windows based machine, anyone with a idea?

      run openbsd inside vmware on the windows machine, have it queue your packets as described in the article.

    4. Re:We figured this before by Anonymous Coward · · Score: 0

      Microsoft ISA Server allows this, but is almost certainly way overkill in this situation.

      Then again, if you can afford $1500 per processor, knock yourself out. :-)

    5. Re:We figured this before by Anonymous Coward · · Score: 0
  15. The problem is by anthony_dipierro · · Score: 2, Interesting

    some P2P software will start distributing a "P2P accelerator" which marks all packets as ACKs.

    1. Re:The problem is by The+Evil+Couch · · Score: 4, Informative

      it's a possible way to game the system, however they can also ignore what the packets are marked as and just boost the priority of the smaller packets, which are almost always system messages. if the bump up everything under 64 bytes, then they'd get the same effect, but without the possibility of someone cheating the system like that. though I'm pretty sure someone else has already done that.

    2. Re:The problem is by Anonymous Coward · · Score: 0

      We only priorize TCP ACKS which have no data payload. thus, this will not work.

      henning@cv.openbsd.org

    3. Re:The problem is by Tafs · · Score: 1

      Quote : "Hence, the idea is to priorize TCP ACKs that have no payload." Doh.

    4. Re:The problem is by anthony_dipierro · · Score: 1

      You can send data through TCP ACKs that have no payload.

    5. Re:The problem is by XMichael · · Score: 0, Redundant

      Check out this company's technology called "Any Bandwidth". It is a pretty solid implementation that works at a user space level. It allows application developers to take advantage the maximum bandwidth available without having to modify a firewall; http://www.eyeball.com/company/anybandwidth.html It is pretty good solution that my company licenced for use in a video game

    6. Re:The problem is by Mr+Z · · Score: 1

      Yes, but it wouldn't be much of a speedup, now would it? (Even in the case of competing against another stream, that is.)

      --Joe
    7. Re:The problem is by anthony_dipierro · · Score: 1

      Yes, but it wouldn't be much of a speedup, now would it?

      Depends on the situation. If you have more bandwidth to your next hop then you have across the whole internet, because of competing traffic, and that additional bandwidth more than compensates for the high overhead, then, yes. I'd think that's a likely scenario, at least for those of us with broadband.

  16. Interesting by Ec|ipse · · Score: 3, Interesting

    I was able to read up to the results section due to being /.'d but what I have read was quite interesting. I like the idea of prioritizing which packets go out first by what their intent is rather then everything goes out and fights for the bandwidth.

  17. Very nice solution! by Anonymous Coward · · Score: 1, Insightful

    Of course, the effectiveness of this technology depends on both networks which handle the ACK to have the service implemented.

    Still, a very simple and effective solution to an age-old problem. I like.

    1. Re:Very nice solution! by Oculus+Habent · · Score: 1

      Not completely. If you have a severe up/downstream difference, providing priority to packets on your end will improve the availability of your bandwidth, even when you are maxing it out.

      --
      That what was all this school was for... to teach us how to solve our own problems. -- janeowit
  18. Linux solution by eddy · · Score: 3, Informative

    The Linux Advanced Routing & Traffic Control HOWTO discuss how to achieve the same thing on linux using QoS. See section 9.2.2.2(Sample configuration)

    --
    Belief is the currency of delusion.
    1. Re:Linux solution by pe1rxq · · Score: 5, Informative

      No it doesn't....
      It is a differend solution to a different problem caused by the same thing....

      The cause is the big cache in the modem, it results in a delay on outgoing traffic.
      One problem is that interactive traffic gets, well, less interactive (e.g. the echo characters in a remote shell have a delay). This is solved in the HOWTO you refered to.
      Another problem is that the downstream acks get delayed resulting in less downstream data. This is solved in the mentioned article.

      A combination of the two would be really great and could probably be done in both linux and openbsd.

      Jeroen

      --
      Secure messaging: http://quickmsg.vreeken.net/
    2. Re:Linux solution by Anonymous Coward · · Score: 0

      See here.

      Note how Wondershaper does it all? Who needs BSD?

    3. Re:Linux solution by eddy · · Score: 1

      Yes it dows. It's not a different problem. I can only read the description; "how to better utilize available bandwidth", which is exactly what the FAQ describes how to do (that is, making sure the ACKs get through so that uploading doesn't kill your downloads, which gives better utilization).

      If the article _IS NOT_ about "how to better utilize available bandwidth" then I guess you have a point, but then I can only suggest you address the submitter and ask him to properly describe his submissions in the future.

      --
      Belief is the currency of delusion.
    4. Re:Linux solution by pe1rxq · · Score: 0, Flamebait

      So besides not reading the article (which seems to be standard on slashdot these days) you didn't even read past the subject line?

      Even the little blurp on slashdot had enough information like the line that says that its a method to maximize both up and downstream...

      Jeroen

      --
      Secure messaging: http://quickmsg.vreeken.net/
    5. Re:Linux solution by grub · · Score: 2, Insightful


      Who needs BSD?

      People that love UNIX. The Finnish hack is for people that hate Microsoft.

      --
      Trolling is a art,
    6. Re:Linux solution by Anonymous Coward · · Score: 0

      Actually, the way I see it these days, BSD is for those who hate Linux.

      *BSD is just another Linux to those who need something that's not quite used as much as the alternatives.. Of course, once Linux becomes too mainstream for the likes of them, they will move to something like BSD (which a few elitists have chose to do), which will then become too mainstream and then people will move to yet another obscure OS to claim they love..

      My question is, when will it stop? When are you people going to grow up and realize that the popularity of an OS is NOT a reason to hate it?

  19. My solution: by Black+Parrot · · Score: 5, Funny


    Put lower priorities on p0rn, MP3s, Windows viruses, and Slashdot referrals. That should speed everything else up by about two orders of magnitude.

    --
    Sheesh, evil *and* a jerk. -- Jade
    1. Re:My solution: by beowulfcluster · · Score: 1, Funny

      But... what else is there than p0rn, mp3s, Windows viruses and Slashdot referrals that could fill the void...?

    2. Re:My solution: by radish · · Score: 5, Funny

      What is this "everything else" of which you speak?

      --

      ---- Den ene knappen er powerknapp, den andre er Bender voice knapp "Bite My Shiny Metal Ass"

  20. Note the article is all about low bandwidth setups by jj_johny · · Score: 4, Insightful
    Daniel has done some good work in micromanaging the available bandwidth to make sure that ACKs get through to minimize retransmits due to drops as well as other causes. When you look at low bandwidth links the time in queue and to transmit can be much bigger than the near instananious transmission times that you expect on high capacity lines.

    A little off topic but I always find it interesting that people with hicap gear (Foundry, Cisco, etc.) are always talking about QOS when it really only makes sense most times on low bandwidth lines. So his work is really important when you look at where it is in scheme of things - out at the end users line.

  21. Very Usefull by volts · · Score: 2, Interesting

    This is a really useful pointer to a very simple optimization. We've recently replaced our SonicWall firewalls with OpenBSD, so using ALTQ will be really straightforward. I wonder how easy it is to accomplish on Linux.

    1. Re:Very Usefull by Anonymous Coward · · Score: 0

      It is reasonably easy to do this with Linux. I use a HTB filter and give acks and other interactive traffic priority.

    2. Re:Very Usefull by Gothmolly · · Score: 1

      Replacing your SonicWalls with anything is bound to be an improvement.

      --
      I want to delete my account but Slashdot doesn't allow it.
  22. Is this related to another article? by vasqzr · · Score: 3, Funny
    1. Re:Is this related to another article? by Anonymous Coward · · Score: 0

      The real question:

      How much more pr0n can you download with prioritizd ACKs?

  23. erm... by lingqi · · Score: 0, Offtopic
    Be sure to check ot the nice graphs!

    so exactly how many people is this comment directed to? I mean, might we get as much as 1% of the readership checking out the graphs before certain unfortunate server suffers a horrible death / temporary trauma?

    --

    My life in the land of the rising sun.

  24. Daniels original email by blkwolf · · Score: 5, Informative

    You can find Daniels original email on the subject at:
    http://marc.theaimsgroup.com/?l=openbsd-pf&m= 10463 0260218727

    It contains a little more of the pf rules than the article does, and has all the relevant information you need except for the nice /.'d graphs

  25. ./ed by solcity · · Score: 1

    hmm.. ./ed already Looks like ./ proved him wrong on this one!

    1. Re:./ed by Anonymous Coward · · Score: 0

      what's dot-slash?

  26. Article title should read: reduce latency by Anonymous Coward · · Score: 1, Informative

    Bandwidth is fixed. Any number of crappy operating systems can max out bandwidth. What they meant to say is how to reduce latency.

  27. *BSD is dead by Anonymous Coward · · Score: -1, Troll
    It is now official. Netcraft has confirmed: *BSD is dying

    One more crippling bombshell hit the already beleaguered *BSD community when IDC confirmed that *BSD market share has dropped yet again, now down to less than a fraction of 1 percent of all servers. Coming on the heels of a recent Netcraft survey which plainly states that *BSD has lost more market share, this news serves to reinforce what we've known all along. *BSD is collapsing in complete disarray, as fittingly exemplified by failing dead last in the recent Sys Admin comprehensive networking test.

    You don't need to be a Kreskin to predict *BSD's future. The hand writing is on the wall: *BSD faces a bleak future. In fact there won't be any future at all for *BSD because *BSD is dying. Things are looking very bad for *BSD. As many of us are already aware, *BSD continues to lose market share. Red ink flows like a river of blood.

    FreeBSD is the most endangered of them all, having lost 93% of its core developers. The sudden and unpleasant departures of long time FreeBSD developers Jordan Hubbard and Mike Smith only serve to underscore the point more clearly. There can no longer be any doubt: FreeBSD is dying.

    Let's keep to the facts and look at the numbers.

    OpenBSD leader Theo states that there are 7000 users of OpenBSD. How many users of NetBSD are there? Let's see. The number of OpenBSD versus NetBSD posts on Usenet is roughly in ratio of 5 to 1. Therefore there are about 7000/5 = 1400 NetBSD users. BSD/OS posts on Usenet are about half of the volume of NetBSD posts. Therefore there are about 700 users of BSD/OS. A recent article put FreeBSD at about 80 percent of the *BSD market. Therefore there are (7000+1400+700)*4 = 36400 FreeBSD users. This is consistent with the number of FreeBSD Usenet posts.

    Due to the troubles of Walnut Creek, abysmal sales and so on, FreeBSD went out of business and was taken over by BSDI who sell another troubled OS. Now BSDI is also dead, its corpse turned over to yet another charnel house.

    All major surveys show that *BSD has steadily declined in market share. *BSD is very sick and its long term survival prospects are very dim. If *BSD is to survive at all it will be among OS dilettante dabblers. *BSD continues to decay. Nothing short of a miracle could save it at this point in time. For all practical purposes, *BSD is dead.

    Fact: *BSD is dying

  28. Trip down memory lane... by eldimo · · Score: 3, Interesting

    Ahhh... That bring down memories of the infamous ZModem protocol that was widely used in warez BBSs. There was a rule that said "you need to upload if you want to download". Therefore, the fastest way to get a software would be to upload at the same time as the download. The funny thing is that the synchronization was done by hand. Meaning that you needed to see the download caracter at the screen, to start uploading. If you miss by a couple of seconds, you could not get the synchronization right, and had to start over.

    1. Re:Trip down memory lane... by heh2k · · Score: 1

      there's nothing "infamous" about zmodem. it was widely used and not just on warez boards.

    2. Re:Trip down memory lane... by Surak · · Score: 3, Informative

      Ummm...

      A) Zmodem is still around, at least in the *nix world. You can get lrzsz from here.
      Some telnet clients still support Zmodem, and you can use lrzsz to transfer files via telnet. Personally, I'd rather use ssh as it's a lot more secure, but in cases where either you can only use telnet or when you are on network you can trust (i.e., not the Internet), you can still use Zmodem.

      b) Zmodem is not, nor has it ever been a bidirectional protocol -- you can't upload and download at the same time unless you have two different connections. There *were* protocols that would let you do this (Puma comes to mind), but you most decidedly could NOT do this with Zmodem.

    3. Re:Trip down memory lane... by syle · · Score: 1

      No, zmodem was one-way, though it was the most widely used (everywhere, not just BBS or warez). It was usually slightly faster than ymodem and leaps and bounds above xmodem. I'm fairly sure the bidirectional protocol was just called 'bimodem.'

      --

      /syle

    4. Re:Trip down memory lane... by rayvd · · Score: 1

      The bidirectional protocol I recall using was HS/Link. Heck, the protocol even had a chat interface so you could talk with the sysop or user on the other end as you transferred!

    5. Re:Trip down memory lane... by emf · · Score: 1

      I think the protocol that let you upload & download at the same time was bimodem. It also let you chat with the sysop while the file transfers where going.

      It was released on December 7, 1988.

      Here's a link to textfiles.com timeline

    6. Re:Trip down memory lane... by Anonymous Coward · · Score: 0

      There were at least for file transfer protocols that supporte download and upload at the same time. Puma, Bimodem, HSLink and Smodem. Out of these HSLink was most popular. Smodem on the other hand is techically superior compared to any other protocol. Up+down at the same time, chat with sysop or other BBS users etc. There was even patch that allowed you to upload, download and use Unix shell at the same time using regular modem. It opened connection to BSDI box using DOS PacketDriver and rlogin. All you needed at home was terminal emulator and Smodem client. You can find some smodem info using google. Anyway it's finnish innovation like Linux. :)

    7. Re:Trip down memory lane... by gl4ss · · Score: 1

      smodem springs to mind of those bi-directional protos.

      it had chat too which was extra cool during big downloads or when trading files with friend..
      (and it was simple to use and needed no by hand synchronising if you had setup the terminal program ok, if my memory serves me well you could initiate the uploads during downloads too, though i barely dialed up to any bbs's after we got isdn circa summer of '96..)

      --
      world was created 5 seconds before this post as it is.
    8. Re:Trip down memory lane... by teeker · · Score: 2, Informative

      Err... you must have Zmodem confused with something else..it was one way only. You are right about the widely used part though, and not ony warez boards but everywhere. In fact it was the only thing going in the later BBS days.

      Maybe puma or one of those oddball protocols are bidirectional, but that was pretty useless to warez runners back in the day, because everybody knows that real k-k00l warez runners use USRobotics Courier HST 9600 high-speed modems, and they were only fast in one direction. Real warez runners spit on v.32 modems...Ahhh the good old days ;-) Sorry for the OT folks...

      --
      teeker
    9. Re:Trip down memory lane... by Surak · · Score: 1

      smodem was another one, but it wasn't as popular as Puma or Lynx (the protocol -- not to be confused with Lynx the browser, that is :) or BIModem, at least in the Detroit Area.

      Maybe had something to do with T.A.G. or Telegard (one of the two) having a default config for Puma, I think.

    10. Re:Trip down memory lane... by b1t+r0t · · Score: 1
      You're right about Zmodem. However there was one little trick that usually worked. It was called "leech Zmodem", and it took advantage of loopholes to keep your download ratio good. When it received the last block of a file correctly, instead of acknowledging it, it would NAK and request a re-transmit from near the beginning of the file, then abort the download.

      Poorly written BBS software would only remember the last block downloaded as an indicator of how much you downloaded.

      --

      --
      "Open source is good." - Steve Jobs
      "Open source is evil." - Microsoft
    11. Re:Trip down memory lane... by teeker · · Score: 1

      That is true! I know the guy that wrote it! I shouldn't name him here, but I can tell you he ran an Amiga BBS (AmiExpress rocked baby) in the late 80s and the original leech program was written in C on the Amiga and tested against other boards in our local calling area. It was all good for the better part of a year before a lot of the boards started upgrading their systems. Usually the fix was if the last CRC check failed, then the account was deducted regardless of whether it was a legitimate error or not. I remember seeing the front end source for Cnet BBS with this fix written into it...

      Wow. I can't believe people still remember what that is! that is so cool...

      --
      teeker
    12. Re:Trip down memory lane... by cswiii · · Score: 1

      The bidir protocol we used all the time was "HS/Link" or something. It was pretty damn cool... although yes, we did see all the other assortment of bidir protocols back then (Mpt, Puma, smodem (?), jmodem, etc.)

    13. Re:Trip down memory lane... by gl4ss · · Score: 1

      hmm. well, at least in europe, particularly in finland, puma/bimodem support was very weak, and everybody seemed to switch to smodem when it came available..

      but i guess there were lots of worldwide differences regarding to what protocol was used. here smodem was used by almost everyone.. and few larger bbs's had partyline chatting when transferring.

      --
      world was created 5 seconds before this post as it is.
  29. *BSD is DYING by Anonymous Coward · · Score: -1, Redundant
    It is official; Netcraft confirms: *BSD is dying

    Yet another crippling bombshell hit the already beleaguered *BSD community when IDC confirmed that *BSD market share has dropped yet again, now down to less than a fraction of 1 percent of all servers. Coming on the heels of a recent Netcraft survey which plainly states that *BSD has lost more market share, this news serves to reinforce what we've known all along. *BSD is collapsing in complete disarray, as fittingly exemplified by failing dead last in the recent Sys Admin comprehensive networking test.

    You don't need to be a Kreskin to predict *BSD's future. The hand writing is on the wall: *BSD faces a bleak future. In fact there won't be any future at all for *BSD because *BSD is dying. Things are looking very bad for *BSD. As many of us are already aware, *BSD continues to lose market share. Red ink flows like a river of blood.

    FreeBSD is the most endangered of them all, having lost 96% of its core developers. The sudden and unpleasant departures of long time FreeBSD developers Jordan Hubbard and Mike Smith only serve to underscore the point more clearly. And most recently, due to problems with his professional behavior and conflicts with other developers, Matt Dillon, "the guy most responsible for making FreeBSD 4.x the most rugged and stress-proof free operating system in existence," was unceremoniously banned from developing FreeBSD and now spends his days tinkering with XBox modchips. There can no longer be any doubt: FreeBSD is dying.

    Let's keep to the facts and look at the numbers.

    OpenBSD leader Theo states that there are 7000 users of OpenBSD. How many users of NetBSD are there? Let's see. The number of OpenBSD versus NetBSD posts on Usenet is roughly in ratio of 5 to 1. Therefore there are about 7000/5 = 1400 NetBSD users. BSD/OS posts on Usenet are about half of the volume of NetBSD posts. Therefore there are about 700 users of BSD/OS. A recent article put FreeBSD at about 80 percent of the *BSD market. Therefore there are (7000+1400+700)*4 = 36400 FreeBSD users, or 36399 with Dillon's departure. This is consistent with the number of FreeBSD Usenet posts.

    Due to the troubles of Walnut Creek, abysmal sales and so on, FreeBSD went out of business and was taken over by BSDI who sell another troubled OS. Now BSDI is also dead, its corpse turned over to yet another charnel house.

    All major surveys show that *BSD has steadily declined in market share. *BSD is very sick and its long term survival prospects are very dim. If *BSD is to survive at all it will be among OS dilettante dabblers. *BSD continues to decay. Nothing short of a miracle could save it at this point in time. For all practical purposes, *BSD is dead.

    Fact: *BSD is dying

  30. Uh, no, I don't think so by somethingwicked · · Score: 4, Informative

    That "Intro to the Internet" class from college is a little hazy now, but I don't recall it being as simple as the "internet" coming out of the pipe like water.

    Someone far more knowledgable than myself will get to correct me, but I seem to recall there was a process of-

    Send some stuff-wait for ACK.

    When you get the ACK, send some more.

    By turbocharging the ACKs, you are reducing that lag time

    --

    ---"What did I say that sounded like 'Tell me about your day?'"---

    1. Re:Uh, no, I don't think so by aminorex · · Score: 1

      If you *really* want to speed things up, send
      pre-emptive ACKs before you get the data, right
      about when they would be expected.

      What, you lost a packet? Go back and fetch it
      later using the application-layer protocol.

      Voila, hyper-http.

      --
      -I like my women like I like my tea: green-
    2. Re:Uh, no, I don't think so by addaon · · Score: 1

      If you're using an application-layer protocol anyway, just use UDP and save the bandwidth on ACK entirely.

      --

      I've had this sig for three days.
    3. Re:Uh, no, I don't think so by Patrick · · Score: 4, Informative
      Send some stuff-wait for ACK.

      When you get the ACK, send some more.

      By turbocharging the ACKs, you are reducing that lag time

      Not quite. TCP streams use pipelining: you send N packets (N is the "window size"), and each time you get an ACK you send one more. So in the ideal case there's no lag, because the ACK for packet 3 lets you go ahead and send packet 10 (if N=7).

      When a packet (or its ACK) gets dropped, TCP assumes the network is congested, and cuts N in half, and very slowly increases it back to where it was. So after each dropped packet or ACK you have a while during which you're not using the full link. Several drops in a row can reduce your throughput by a factor of 100 or more.

      Prioritizing ACKs doesn't reduce the lag time. It reduces the likelihood that TCP will overreact and reduce its sending rate due to perceived congestion.

    4. Re:Uh, no, I don't think so by Ed+Avis · · Score: 1

      Yes, it's a pity that HTTP doesn't use UDP to start with. Why design a stateless protocol and then put it on top of TCP, requiring a connection to be set up and torn down for each HTTP request?

      (OK, newer HTTP versions can fetch multiple pages while keeping the connection open - but still it seems that UDP would be a better fit. Except, perhaps, for POST requests, since those are not usually idempotent.)

      --
      -- Ed Avis ed@membled.com
    5. Re:Uh, no, I don't think so by anthony_dipierro · · Score: 2, Interesting

      Why design a stateless protocol and then put it on top of TCP, requiring a connection to be set up and torn down for each HTTP request?

      Because you want reliability. Unfortunately, reliable UDP (or transactional TCP) is not widely supported.

      Also, because many HTTP responses don't fit in a single UDP packet.

    6. Re:Uh, no, I don't think so by anthony_dipierro · · Score: 1

      If you *really* want to speed things up, send pre-emptive ACKs before you get the data, right about when they would be expected.

      Actually, even that wouldn't work without prioritizing the ACKs, since some of those pre-emptive ACKs would still be dropped.

    7. Re:Uh, no, I don't think so by jrstewart · · Score: 1

      Prioritizing ACKs doesn't reduce the lag time. It reduces the likelihood that TCP will overreact and reduce its sending rate due to perceived congestion.

      Prioritizing ACKs may prevent drops but the main feature is essentially reducing lag time. TCP is self clocking, in that the sender can't send any more packets until it sees an ACK. If you get the ACKs out faster you'll get the replies faster. Thus prioritizing ACKs will make your downloads go faster. Since they are small packets this probably won't too adversely affect your upload bandwidth (may increase latency slightly).

      This won't incorrectly set TCP's RTT timer because if anything you've shaved a few ms off your RTT. The new RTT may be less but it's not a lie.

    8. Re:Uh, no, I don't think so by Ed+Avis · · Score: 1

      If UDP is reliable enough for NFS, it should be reliable enough for web pages, right? If the reply to your request doesn't arrive after a certain time you can just send the request again.

      Good point about the response not fitting in a UDP packet: does NFS avoid this problem by always requesting small enough chunks of data to fit in a single packet?

      Once you start having to do both rerequesting dropped packets and reordering those that arrive out of sequence it does start to look as though TCP is a better bet, since it does these things for you. Nonetheless, since dropped UDP packets are fairly uncommon in practice it might be quicker most of the time to save on the overhead of setting up a TCP connection and just send a single UDP packet instead.

      --
      -- Ed Avis ed@membled.com
    9. Re:Uh, no, I don't think so by anthony_dipierro · · Score: 1

      If UDP is reliable enough for NFS, it should be reliable enough for web pages, right?

      NFS is designed for local area networks, which drop packets much more rarely.

      Once you start having to do both rerequesting dropped packets and reordering those that arrive out of sequence it does start to look as though TCP is a better bet, since it does these things for you. Nonetheless, since dropped UDP packets are fairly uncommon in practice it might be quicker most of the time to save on the overhead of setting up a TCP connection and just send a single UDP packet instead.

      Dropped UDP packets are not uncommon at all when sending files over the internet. There is a certain optimal bandwidth available between the webserver and the client. Send too fast, and you'll start losing packets. Send too slowly, and you're not utilizing your bandwidth. TCP does a (fairly) good job discovering that optimal bandwidth. One problem occurs when the link is asynchronous. Acknowledgement packets get dropped, and bandwidth is underutilized. Prioritizing ACKs largely solves that problem.

    10. Re:Uh, no, I don't think so by Ed+Avis · · Score: 1

      I was thinking about networking textbooks which say things like 'though a UDP packet could in theory get dropped en route, this hardly ever happens in practice'. I didn't take account of the fact that these books were talking mostly about LANs and other private networks rather than the big, bad Internet.

      --
      -- Ed Avis ed@membled.com
    11. Re:Uh, no, I don't think so by monas · · Score: 1

      I was and still am sure, that tcp window is measured in bytes not packets.

    12. Re:Uh, no, I don't think so by anthony_dipierro · · Score: 2, Insightful

      If you're only sending a single UDP packet, sure. But if you're exceeding the end to end bandwidth of the network, then clearly packets need to either be queued or dropped. If you're exceeding the maximum bandwidth by more than just a little, then you're going to fill up the buffers, and packets will get dropped.

      Without seeing the quote I'd only be speculating on what the textbook was talking about. Could be LANs, but it could be that they were talking about single UDP packets, rather than pounding a few megs of HTML and images all at once. Or maybe the quote was that UDP packets rarely get dropped for reasons other than congestion. Perhaps they could have been talking about packets that are mangled en route? That is something which could happen in theory but in reality rarely (if ever) happens.

      Of course, maybe I'm just wrong. It does happen from time to time :).

    13. Re:Uh, no, I don't think so by Patrick · · Score: 1
      I was and still am sure, that tcp window is measured in bytes not packets.

      Correct, mostly. The congestion window is measured in bytes, but it is incremented by one full packet (by SMSS bytes) whenever a new ACK is received. So the self-clocking behavior I described (get an ACK, send one new packet) and the multiplicative decrease (lose a packet, cut your window in half) are both true. Referring to N=7 packets instead of the equivalent number of bytes was an oversimplification to make the Van Jacobsen paper and RFC-2581 fit in a Slashdot comment. :)

      The fact that the congestion window is measured in bytes, but incrementing it is measured in full segments leads to interesting vulnerabilities.

    14. Re:Uh, no, I don't think so by Patrick · · Score: 1
      Prioritizing ACKs may prevent drops but the main feature is essentially reducing lag time. TCP is self clocking, in that the sender can't send any more packets until it sees an ACK. If you get the ACKs out faster you'll get the replies faster. Thus prioritizing ACKs will make your downloads go faster.

      No, no, no. The article showed a 10:1 drop in average throughput, and extreme variability in instantaneous throughput. That cannot be explained away as just a matter of latency.

      You can increase the latency of a link, and it will still run at full speed, once TCP's estimate of RTT is properly updated. Except in extreme cases (a T3 to Mars, say), a TCP pipe will be full regardless of its latency, as long as the drop rate is low and the latency is roughly constant.

      So what's happening here is that the ACKs are either getting dropped (falling off the end of a queue) or are getting delayed so far past the average RTT that TCP thinks they've been dropped. When an ACK is dropped (or presumed dropped), the sender halves its outgoing bandwidth. Each additional drop, the bandwidth gets halved again.

      Prioritizing ACKs here is about keeping them at the head of the queue so that they don't get dropped. It has almost nothing to do with latency.

  31. IDAWTP by handybundler · · Score: -1

    in the past, the numbers have clearly been 5678.

    --


    a/s/l here. Sorry, adding domain tags to your s
  32. The price of failure -- Hard times for *BSD by Anonymous Coward · · Score: -1
    So why now? Why did *BSD fail? Once you get past the fact that *BSD is fragmented between a myriad of incompatible kernels, there is the historical record of failure and of failed operating systems. *BSD experienced moderate success about 15 years ago in academic circles. Since then it has been in steady decline. We all know *BSD keeps losing market share but why? Is it the problematic personalities of many of the key players? Or is it larger than their troubled personalities?

    The record is clear on one thing: no operating system has ever come back from the grave. Efforts to resuscitate *BSD are one step away from spiritualists wishing to communicate with the dead. As the situation grows more desperate for the adherents of this doomed OS, the sorrow takes hold. An unremitting gloom hangs like a death shroud over a once hopeful *BSD community. The hope is gone; a mournful nostalgia has settled in. Now is the end time for *BSD.

  33. same bandwidth in relation to what ? by johnjones · · Score: 0, Flamebait

    ok statments like that tick me off its a silly thing to say

    if your route is long then the chances are that along the way you will have a bottleneck and when you go across water it gets worse as all the repeaters get in on the act

    saying things like " internet comes through at the same bandwidth" is plain silly

    regards

    John Jones

    1. Re:same bandwidth in relation to what ? by adzoox · · Score: 1
      Same bandwidth on my laptop whether optimized with this solution or any connection that I can connect to.

      A T1 to T1 connection usually gets me no better gameplay or internet page render speed than a cable modem connection or DSL connection or WiFi connection.

      --
      Yell & scream & rant & rave... it's no use... you need a shaaaave ~ Bugs Bunny
  34. .CX Domain by goldspider · · Score: 4, Funny

    Was I the only one who was a little apprehensive about clicking on a link from the .cx domain?

    --
    "Ask not what your country can do for you." --John F. Kennedy
  35. Better Bandwidth Utilization by beredon · · Score: 0, Redundant

    Perhaps they should use it for their site... Shashdotted already.

  36. Security hole by sn0rt · · Score: 3, Funny

    Isn't there an attack that essentially floods a server with ACK's? Just wondering what effect that would have if ACK had priority over other traffic.

    Or maybe it was flooded with SYN's? Damn. I can't remember.

    1. Re:Security hole by Arethan · · Score: 5, Interesting

      It's called SYN flooding. The idea is that a system only has so much memory to work with. Each established TCP session has memory overhead for packet ordering and split packet reassembly. Generally, when a system recienves a SYN packet, it assumes that the session is going to be valid, and it begins the process of completing the TCP session building, which happens to include setting aside some memory for session management.

      For each SYN packet you send, you eat up a little bit more memory and CPU time on the victim. Do it enough times, and the system runs out of memory or processor time, and the system becomes unable to perform its regular operations. Effectively causing a Denial of Service.

      If you're smart, you'll form the SYN packets to have source addresses that differ from your real IP, otherwise a) you're traceable; and b) your machine will be flooded with SYN/ACKS. If you are even smarter, you'll use an IP that, while valid and routable, belongs to a host that either doesn't exist, or is currently off. Otherwise the 2nd level victim recieving the SYN/ACKs from your initial target will send RSETs for every SYN/ACK, since it never requested to initial the connection. When your target gets the RSET for the SYN/ACK, it will close the session, freeing up the memory and CPU time that you are desparately trying to fill. Essentially, a non-existant host will never respond to a SYN/ACK, so the target system has to wait for a timeout duration before closing the session, which makes it easier for you to eat up CPU and memory. Unfortunately though, the fake spirce IP on your SYN packets will likely have to be within your ISP's network range, as all smart ISP network administrators perform egress packet filtering to prevent such attacks from originating within their network.

      Better tactics include sending the SYNs from multiple machines that have different providers. Thus preventing load from the SYN/ACKs from filling your ISPs pipe. This effectively makes the attack a DDoS, rather than a DoS.

      Either way, you can't really perform these attacks in much safety, as competent network administrators will have sniffers in place to detect these attacks as they cross their network. So #1) if your ISP admin is smart, you're busted by them regardless; and #2) if the chain of smart admins follows you all the way back to your sources, you're busted by the authorities (which if you cross state lines means the Feds, which will suck quite adamently).

      So, that is how it works, but I wouldn't recommend trying it.

  37. You're not fooling me by mao+che+minh · · Score: 0, Offtopic

    I don't click on any .cx domains!

  38. Bandwidth Throttle Control by Anonymous Coward · · Score: 0

    I would like to see a program that allows me to specify certain percentages of bandwidth for different programs. One feature could be, if a program is not in the throttled section it has up to 100%, but throttled have to there max only.

  39. What the hell? by Anonymous Coward · · Score: -1

    some moron claiming he read the article.
    people just don't read articles on slashdot.

  40. It looks like..... by whazzy · · Score: 1

    ...my packets are being acknowledged extremely well by the author.
    Trace Routing to the author's link
    <a href ="http://www.benzedrine.cx">Insomnia Site</a> yields the following path:
    ....

    6 pop1-hou-P7-2.atdn.net [66.185.136.77]
    7 bb2-hou-P0-2.atdn.net [66.185.150.146]
    8 bb2-tby-P7-0.atdn.net [66.185.152.247]
    9 bb1-tby-P1-0.atdn.net [66.185.152.242]
    10 bb2-atm-P7-0.atdn.net [66.185.152.245]
    11 bb2-cha-P6-0.atdn.net [66.185.152.31]
    12 bb2-ash-P13-0.atdn.net [66.185.152.50]
    13 pop1-ash-P1-0.atdn.net [66.185.139.195]
    14 BritishTelecom.atdn.net [66.185.151.110]
    15 t2c1-ge6-2.us-ash.concert.net [166.49.208.221]
    16 t2c1-p8-0.nl-ams2.concert.net [166.49.208.133]
    17 t2c1-p8-0.uk-lon2.concert.net [166.49.208.90]
    18 t2c1-p2-1.ch-zur.concert.net [166.49.164.46]
    19 t2a1-ge5-0-0.ch-zur.concert.net [166.49.186.17]
    20 ixp1-p0-0-0.ch-zur.concert.net [166.49.223.10]
    21 gw.dl.zhl-zhh-00.netstream.ch [62.65.130.1]
    22 gw.fiber.dd-zh-00.netstream.ch [62.65.128.133]
    23 gw.fiber.dd-dd-01.netstream.ch [62.65.128.146]
    24 ...
    .................

    I think he was expecting 'nightmares' anywayz,that'z why he chose to name his machine INSOMNIA:-)

  41. Slashdotted - Mirror by SILIZIUMM · · Score: 5, Informative

    Since the website seems slashdotted now I've set up a mirror. You can see it there.

    1. Re:Slashdotted - Mirror by Anonymous Coward · · Score: -1

      jesus christ.. .

      don't click, it's a goatse.cx link.

  42. Better Bandwidth Utilization... by Anonymous Coward · · Score: 1, Insightful

    Less pr0n and warez?

  43. Michael Jackson specials by 200_success · · Score: -1, Offtopic

    Why did my TV suddenly decide that I wanted to see three specials about Michael Jackson every week?

    Because your TiVo thinks you want to watch them.

  44. Try it by genka · · Score: 4, Funny


    "OpenBSD 3.3 beta is now stable enough for daily use, so why not download a snapshot from one of the mirrors and try it out?"


    Windows XP is now stable enough for daily use, so why not download a snapshot from one of the mirrors and try it out?"

    (intended as a joke)

    1. Re:Try it by Anonymous Coward · · Score: 0

      > (intended as a joke)

      Fucking inbred redneck honkies. Have some BBQ and some Nascar tickets and go away.

      Fucking thicklipped nigger monkeymen. Here, boy, have some watermelon then dance.

      Fucking useless taco eating wetbacks. My field needs picking, so get to it.

      Fucking dog-eating slant-eyed chinks, japs, and gooks. We should of bombed all of you.

      That goes double for you fucking ragheaded oil hoarding bearded motherfuckers. You should all be lined up against the wall and shot, maybe then you'd learn to love this country.

      I ain't forgot you, you fucking hook nosed soulless profiteering Jews. And you fucking self-righteous bible-beaters - Jesus preached LOVE and TOLERATION, assholes!

      But you who don't kneel and worship Him as the One True God - you're all going to Hell! All you fucking heathens, cross burners, Hindoos, Mooslims, Wikkans, and Protesters - you'll all burn! Cos God loves you!

      But God doesn't love you fucking cocksmokers and cunteaters! No way! God's straight and straight is God's way! It wasn't Adam and Steve, bitches! You'll all be in Hell too!

      All you fucking limp-wristed pussy pansy 'peace' marchers listen up! I know it's fucking 'trendy' to stick your head in a hole in the ground and pretend there's no threat! There's people out there who hate us, and it's fucking kill or be killed! And I ain't dying on my knees!

      You fucking bloodthirsty warmongers! Fuck Bush! He ain't my president! Give peace a chance! o/ How many times can a man turn his head, and pretend that he just doesn't see? o/ Don't you understand you're sending people over there to die? MURDERER! Bring the boys home!!

      Oh, and by the way: (intended as a joke).

      Gee. Doesn't magically solve all problems stemming from your head being so far up your ass you could look out your own throat, does it?

    2. Re:Try it by Anonymous Coward · · Score: 0

      sheez. I get your point, but do you have to be so offensive about it?

      - etosin

  45. Broadband implications by Arethan · · Score: 2, Insightful

    Seems to me that this could really help broadband providers supply a better service if this was implemented in the firmware of the modems and the headend equipment.

    Then again, since when have most broadband providers really ever cared about supplying good speeds when the user maxes out the outrageously capped upstream...

  46. Slashdotting and DOS by Anonymous Coward · · Score: 2, Insightful

    True enough.

    rule 2: Have a backup plan in case someone sends you a bunch of ACK ACK ACK ACK ACK ACK to cause a denial of service.

    1. Re:Slashdotting and DOS by Mr+Z · · Score: 1

      Uhm, this has to do with ACKs you generate yourself. I guess the real problem would be SYN's, wouldn't it, since SYNs are responded to with ACKs IIRC. (I'm not a TCP god, mind you.)

      --Joe
    2. Re:Slashdotting and DOS by QuMa · · Score: 1

      SYN's either get responded to with SYN|ACK if the port is open, or RST|ACK if it's closed.

  47. Title is correct! by DarkMan · · Score: 5, Interesting

    Your correct, bandwidth is fixed. This is about better bandwidth utilisation.

    The article is /.ed but the gist is that if you consider a full duplex conection, and you max out one side of that, say uploads, then the ACK packets get swamped, so your downstrem bandwidth is spent re-transmitting, or empty whilst the other end is waiting for ACKs.

    The bandwidth is there, it;s just under utilised. By prioritisng the ACK's, so that they get boosted through, it becomes possible to saturate both upstream and downstream pipes at once, at peak efficency, rather than one of the coasting along, waithing for the other.

    Note that this only applies for TCP/IP and similar, reliable, protocols. If you had a UDP app (e.g. media streaming done properly), then this trick won't affect it at all, as it doesn't wait for an ACK.

    1. Re:Title is correct! by Anonymous Coward · · Score: 0

      Sure, for a single TCP/IP connection. But consider a web serving hosting many simultaneous connections. The aggregate data flow of all sockets will saturate both upstream and downstream with or without this hack.

  48. Remove HTML cruft by Anonymous Coward · · Score: 0

    Removing M$ and dreamweaver specific cruft in HTML and forbiding sending of html email would do a lot to help conserve bandwidth.

  49. *BSD is dying by Anonymous Coward · · Score: -1, Troll
    It is official; Netcraft now confirms: *BSD is dying

    One more crippling bombshell hit the already beleaguered *BSD community when IDC confirmed that *BSD market share has dropped yet again, now down to less than a mere fraction of 1 percent of all servers. Coming on the heels of a recent Netcraft survey which plainly states that *BSD has lost more market share, this news serves to reinforce what we've known all along. *BSD is collapsing in complete disarray, as fittingly exemplified by failing dead last in the recent Sys Admin comprehensive networking test.

    You don't need to be a Kreskin to predict *BSD's future. The hand writing is on the wall: *BSD faces a bleak future. In fact there won't be any future at all for *BSD because *BSD is dying. Things are looking very bad for *BSD. As many of us are already aware, *BSD continues to lose market share. Red ink flows like a river of blood.

    FreeBSD is the most endangered of them all, having lost 93% of its core developers. The sudden and unpleasant departures of long time FreeBSD developers Jordan Hubbard and Mike Smith only serve to underscore the point more clearly. There can no longer be any doubt: FreeBSD is dying.

    Let's keep to the facts and look at the numbers.

    OpenBSD leader Theo states that there are 7000 users of OpenBSD. How many users of NetBSD are there? Let's see. The number of OpenBSD versus NetBSD posts on Usenet is roughly in ratio of 5 to 1. Therefore there are about 7000/5 = 1400 NetBSD users. BSD/OS posts on Usenet are about half of the volume of NetBSD posts. Therefore there are about 700 users of BSD/OS. A recent article put FreeBSD at about 80 percent of the *BSD market. Therefore there are (7000+1400+700)*4 = 36400 FreeBSD users. This is consistent with the number of FreeBSD Usenet posts.

    Due to the troubles of Walnut Creek, abysmal sales and so on, FreeBSD went out of business and was taken over by BSDI who sell another troubled OS. Now BSDI is also dead, its corpse turned over to yet another charnel house.

    All major surveys show that *BSD has steadily declined in market share. *BSD is very sick and its long term survival prospects are very dim. If *BSD is to survive at all it will be among OS dilettante dabblers. *BSD continues to decay. Nothing short of a miracle could save it at this point in time. For all practical purposes, *BSD is dead.

    Fact: *BSD is dying

  50. this may break TCP flow control! by mekkab · · Score: 5, Interesting

    If the acks are sped up, this interferes with TCP keeping track of the statistical average Round Trip Time.

    So if the network is congested and an ACK SHOULD time out but doesn't, TCP will keep on flooding the network, ruining the pool for everyone.(see: Tragedy of the commons)

    Yes, I agree that this is a big-O style worse case scenario, but its something to consider.

    --
    In the future, I would want to not be isolated from my friends in the Space Station.
    1. Re:this may break TCP flow control! by anthony_dipierro · · Score: 5, Informative

      So if the network is congested and an ACK SHOULD time out but doesn't, TCP will keep on flooding the network, ruining the pool for everyone.

      No. If the downstream is flooded, the packets won't be received, and no ACK will be sent. ACKs have higher priority, but even that can't make them appear out of thin air.

  51. Re: Kinda been done with TFTP by somethingwicked · · Score: 2, Informative

    Again, to the best of my recollection, what you are suggesting is similar to the TFTP and many streaming techniques approach:

    Take FTP and strip the overhead error checking and if something doesn't come out right, refresh and download it again.

    For streaming, you get more throughput, and every now and them you might miss a frame in exchange for the higher quality you can obtain with the lower overhead

    --

    ---"What did I say that sounded like 'Tell me about your day?'"---

  52. W. Richard Stevens TCP/IP Illustrated, Volume 1 by puzzled · · Score: 5, Informative



    It seems to me that a great many /. readers have a cursory knowledge of how TCP/IP works. This is true of almost every other topic and I don't have a generalized solution for ignorance, but in this case a quick read of the first volume of Stevens' excellent TCP/IP Illustrated Series should do the trick.

    Reading that book will give you a foundation to understanding how a single endpoint behaves in an IP network. If you want some understanding of the guts of a large scale internetwork I'd suggest the Cisco Press IP Quality of Service book.

    There are a great many things near and dear to /. reader's hearts - the god given right to steal music by treating a retail DSL/Cable connection like a dedicated wholesale circuit being the prime example - that are more easily understood after a read of these two books.

    If you're impatient you can look at my journal - I've covered some of the issues there.

    --
    I am very easy to get along with, but I don't have time to waste being nice to people who are being stupid. -Theo
    1. Re:W. Richard Stevens TCP/IP Illustrated, Volume 1 by Anonymous Coward · · Score: 0

      " There are a great many things near and dear to /. reader's hearts - the god given right to steal music by treating a retail DSL/Cable connection like a dedicated wholesale circuit being the prime example - that are more easily understood after a read of these two books."

      Thanks. I think I'll download a copy. :)

    2. Re:W. Richard Stevens TCP/IP Illustrated, Volume 1 by Anonymous Coward · · Score: 0

      re: journal entry; "Residential customers will mostly use the 15:00 - 24:00 timeslot and will mostly browse and send email."

      24:00 hours is not possible on earth(last time I checked :).

  53. Yeah ok by Anonymous Coward · · Score: 0

    Hi

    hum i have been doing this for a long time now
    in 2.4.x linux kernel

    is this not yesterdays news ?

  54. OpenBSD and why I don't use it... by LoneRanger · · Score: 1

    This is cool and all, but what I don't get is why OpenBSD still doesn't have SMP support. Is it because they focus so much on security that other things fall by the wayside or is SMP insecure? :)

    I won't use OpenBSD until SMP gets in. Until then, I'll stick with FreeBSD.

    1. Re:OpenBSD and why I don't use it... by Anonymous Coward · · Score: -1, Offtopic


      Nobody is missing you here.

    2. Re:OpenBSD and why I don't use it... by Anonymous Coward · · Score: -1, Troll

      Good, OpenBSD doesn't need your clueless n00b ass.

    3. Re:OpenBSD and why I don't use it... by Anonymous Coward · · Score: 0

      My router/firewall on a P166 could really use ANOTHER P166. Yeah, that should be a priority.

  55. TCP Daytona by Patrick · · Score: 3, Informative
    send pre-emptive ACKs before you get the data, right about when they would be expected.

    The technique you suggest is one of several proposed by Stefan Savage in TCP Congestion Control with a Misbehaving Receiver. He called it TCP Daytona. :)

  56. Re:Note the article is all about low bandwidth set by Jennifer+Ever · · Score: 1

    Not necessarily. Even organizations with extremely high-bandwidth connections have budgets. If you can up throughput by 10% using a QoS solution when a corresponding bandwidth increase would cost twice as much, which would you choose? Obviously this particular project is more geared toward end users and small shops with limited bandwidth, but QoS as a whole does have benefits for everyone.

  57. are there any floppy based routers that do this? by Freqdog · · Score: 2, Interesting

    looking to replace my hddless router with package that utilizes the same concept or is there any hardware cable routers that do bandwidth shaping?

  58. Server got /.'ed before 0 comments... by JRHelgeson · · Score: 4, Informative
    For the benefit of all: The follwing is the article in its entirity - sans the graphics which can be seen at: (provided the servers are working)

    http://www.benzedrine.cx/ackpri-norm.jpg
    http://www.benzedrine.cx/ackpri-priq.jpg

    benzedrine.cx - Prioritizing empty TCP ACKs with pf and ALTQ Prioritizing empty TCP ACKs with pf and ALTQ

    Introduction ALTQ is a framework to manage queueing disciplines on network interfaces. It manipulates output queues to enforce bandwidth limits and priorize traffic based on classification.

    While ALTQ was part of OpenBSD and has been enabled by default since several releases, the next release will merge the ALTQ and pf configuration into a single file and let pf assign packets to queues. This both simplifies the configuration and greatly reduces the cost of queue assignment.

    This article presents a simple yet effective example of what the pf/ALTQ combination can be used for. It's meant to illustrate the new configuration syntax and queue assignment. The code used in this example is already available in the -current OpenBSD source branch.

    Problem I'm using an asymmetric DSL with 512 kbps downstream and 128 kbps upstream capacity (minus PPPoE overhead). When I download, I get transfer rates of about 50 kB/s. But as soon as I start a concurrent upload, the download rate drops significantly, to about 7 kB/s.

    Explanation Even when a TCP connection is used to send data only in one direction (like when downloading a file through ftp), TCP acknowledgements (ACKs) must be sent in the opposite direction, or the peer will assume that its packets got lost and retransmit them. To keep the peer sending data at the maximum rate, it's important to promptly send the ACKs back.

    When the uplink is saturated by other connections (like a concurrent upload), all outgoing packets get delayed equally by default. Hence, a concurrent upload saturating the uplink causes the outgoing ACKs for the download to get delayed, which causes the drop in the download throughput.

    Solution The outgoing ACKs related to the download are small, as they don't contain any data payload. Even a fast download saturating the 512 kbps downstream does not require more than a fraction of upstream bandwidth for the related outgoing ACKS.

    Hence, the idea is to priorize TCP ACKs that have no payload. The following pf.conf fragment illustrates how to set up the queue definitions and assign packets to the defined queues:

    ext_if="kue0"

    altq on $ext_if priq bandwidth 100Kb queue { q_pri, q_def }
    queue q_pri priority 7
    queue q_def priority 1 priq(default)

    pass out on $ext_if proto tcp from $ext_if to any flags S/SA \
    keep state queue (q_def, q_pri)

    pass in on $ext_if proto tcp from any to $ext_if flags S/SA \
    keep state queue (q_def, q_pri)
    First, a macro is defined for the external interface. This makes it easier to adjust the ruleset when the interface changes.

    Next, altq is enabled on the interface using the priq scheduler, and the upstream bandwidth is specified.
    I'm using 100 kbps instead of 128 kbps as this is the real maximum I can reach (due to PPPoE encapsulation overhead). Some experimentation might be needed to find the best value. If it's set too high, the priority queue is not effective, and if it's set too low, the available bandwidth is not fully used.
    Then, two queues are defined with (arbitrary) names q_pri and q_def. The queue with the lower priority is made the default.

    Finally, the rules passing the relevant connections (statefully) are extended to specify what queues to assign the matching packets to. The first queue specified in the parentheses is used for all packets by default, while the second (and optional) queue is used for packets with ToS (type of service) 'lowdelay' (for instance interactive ssh sessions) and TCP ACKs without payload.

    Both incoming and outgoing TCP connections will pass by those two rules, create state, and all packets related to the connections will be assigned to either the q_def or q_pri queues. Packets assigned to the q_pri queue will have priority and will get sent before any pending packets in the q_def queue.

    Result The following test was performed first without and then with the ALTQ rules explained above:

    • -10 to -8 minutes: idle
    • -8 to -6 minutes: download only
    • -6 to -4 minutes: concurrent download and upload
    • -4 to -2 minutes: upload only
    • -2 to 0 minutes: idle

    The first graphs shows the results of the test without ALTQ, and the second one with ALTQ:

    Image 1, ACK PRI Normal

    Image 2, ACK PRI PRIq

    The improvement is quite significant, the saturated uplink no longer delays the outgoing empty ACKs, and the download rate doesn't drop anymore.

    This effect is not limited to asymmetric links, it occurs whenever one direction of the link is saturated. With an asymmetric link this occurs more often, obviously.

    Related links

    --
    Good security is based upon reality and common sense. Common sense is a function of having common knowledge.
  59. Go away, troll. by Anonymous Coward · · Score: 0

    Go away, troll.

  60. Not just low bandwidth by TFloore · · Score: 5, Interesting

    Though you might see more effects of this on a low bandwidth link, it is not just for low bandwidth.

    A fair number of protocols do transmit windows of a certain size. They'll send a certain amount of data, and not send more data until the oldest packest in the window gets an ACK back. You therefore only have so much data "in-flight" at any one time. Strongly asynchronous link (like aDSL and cablemodems) can require strikingly different window sizes than synchronous links.

    The right amount of in-flight data is dependent on the speed of your pipe, obviously, but a lot of applications still use defaults set for low-bandwidth pipes. You can argue that the proper solution for this is to change the defaults, but if you just give ACKs priority, you don't need to worry about it, and the less you force users to change, the better. (The transmit window size has to be a user setting, directly or indirectly, either by asking a window size, or by asking "what kind of pipe do you have?" and guessing a window size from that.)

    This is dependent on the protocol, true, but giving ACKs priority is actually a decent generic solution to what many consider an application-specific problem.

    QOS is also often about bandwidth guarantees, not necessarily throughput. You have a 155mbit link shared among several applications, and an application that *requires* 45mbit. So you use QOS to guarantee that application gets 45mbit if it wants it, and everything else shares the remainder. If the app isn't going, then that 45mbit it requires can be made available to other apps until it is required.

    --
    This is my sig. There are many like it but this one is... Oops. Frank, I've got your sig again! Where's mine?
  61. Yeah well... by Loki_1929 · · Score: 0, Flamebait

    "so why not download a snapshot from one of the mirrors and try it out?" "

    Yeah, see, I would, but I'm a bit concerned about security on my network, so I think I'm going to stay with Windows 2000 for now.

    --
    -- "Government is the great fiction through which everybody endeavors to live at the expense of everybody else."
    1. Re:Yeah well... by Loki_1929 · · Score: 1

      Oh lighten up, it was a joke.. lol

      Do some moderators actually believe that someone would seriously make this statement? If so, then I suppose the real joke is on the moderators themselves - probably the same folks with a basement full of duct tape and plastic. :)

      --
      -- "Government is the great fiction through which everybody endeavors to live at the expense of everybody else."
  62. Would this be useful to a WISP like myself? by numbski · · Score: 1

    Would I be able to put this inline between our AP's and our bandwidth manager - http://www.etinc.com ? Or is this only useful on the client side? It would be very nice to be able to prioritize like this and reduce latency for everyone involved...

    --

    Karma: Chameleon (mostly due to the fact that you come and go).

  63. UDP prioritization possible? by Anonymous Coward · · Score: 0

    Is there anyway to prioritize UDP packets so I can have low latency in online games using UDP and still download / surf the net?

    -pug (too lazy to make an account)

    1. Re:UDP prioritization possible? by Anonymous Coward · · Score: 0

      No. UDP is connectionless. All you can do is forward UDP traffic as quickly as possible in your firewall rules.

  64. Windows Version? by Anonymous Coward · · Score: 0

    Is it possible to control packets this way in Winodws?

    1. Re:Windows Version? by Anonymous Coward · · Score: 0

      Try upgrading to a better OS. ;-)

    2. Re:Windows Version? by Anonymous Coward · · Score: 0

      Yes

  65. Not just low bandwidth-Rice burners for TCP/IP. by Anonymous Coward · · Score: 0

    Isn't there any research going on, on auto-tuning a link? Maybe recording over a period of time a links characteristics, and the nature of the traffic. Then setting appropriate settings throught the networking system.

  66. Re:Note the article is all about low bandwidth set by meridian-gh · · Score: 2, Informative
    It's really useful for things like Frame Relay WANs, where you can get mixed and matched speeds all over the place.

    For example, I have the equivilent of a T1 (1.544mb CIR Frame) going to Qwest. From Qwest, I have a 256k CIR Frame link going to a remote office.

    When the office sends data to me, it's fine. When I send back, there are massive amounts of Red Frames. Dropped packets means re-transmits which means delay. Delay is bad when you are running an interactive application over these links. Think of a garden hose connected to a fire hydrant. The garden hose could dump water into the fire hydrant fine (assuming the water for the hydrant is turned off elsewhere...). When the fire hydrant turns on, however...

    Now I have QoS maps based off of the DLCI for each office, so it throttles back our link to Qwest to match the remote connection, so everyone talks happily, instead of blasting the little link into oblivion. Now, Red Frames aren't seen very often, unless the Qwest circuit is saturated, and we get chopped back to our base CIR. It makes a difference. Not a huge one, but a noticeable difference.

    Traffic Shaping is your friend. It's all about making the mose efficient use of what you have. (Or making sure that you still have bandwidth when your roommate is leeching gigs of pr0n...) M

  67. So, how to do this on freebsd by Anonymous Coward · · Score: 0

    Anyone got any idea about how to do this on freebsd? Can ipfw be configured to do this?

    1. Re:So, how to do this on freebsd by Ded+Bob · · Score: 2, Informative

      RTM :) Specifically, dummynet is the part that does queueing.

      I just need to find out how to do this with ipf instead of ipfw.

    2. Re:So, how to do this on freebsd by Ded+Bob · · Score: 1

      I found my answer: IPF FreeBSD FAQ

      Stuff to play with tonight. :)

  68. Dear Editors by Anonymous Coward · · Score: 0

    Slashdot needs a new moderation option, the "First Post" moderation, something that all of us who browse at 0 and -1 can use to send these posts to -9 or something.

  69. How does this compare to a DDR Fairness? by Froqen · · Score: 4, Informative

    Windows XP uses a DDR Fairness technique to solve the same problem, I wonder how the two techniques compare?
    See "QoS for Modems and Remote Access" at this KB article.

  70. Same concept for WANs by golo · · Score: 2, Informative

    I've heard that this guys have implemented the same idea as one of the trick they use in their traffic shaping/QoS products. They're for WAN links IIRC so that any client (in the remote sites) can take advanatge of it.

  71. Re:How does this compare to a DRR Fairness? by Froqen · · Score: 1

    DRR - Distributed Round Robin..
    There are too many acroynms in this industry.

  72. Working Link by bill_mcgonigle · · Score: 2, Insightful

    Honest, I'm not Karma-whoring, it just ticks me off.

    link

    --
    My God, it's Full of Source!
    OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
  73. ACK Shaping by nimrod_me · · Score: 4, Informative

    This is what is known today as "ACK traffic shaping". First on the market, I believe, was packeteer (www.packeteer.com) with their PacketShaper.

    Unlike most conventional traffic shapers which queue and control the data rate on the outgoing channel, PacketShaper controls the rate of acknowledgements on the reverse channel.

    This is usually used to *slow* traffic. I.e., instead of having the router drop packets (thereby wasting resources until the source TCP understands that the net is congested and reduces load) it just slows the ACKs and the sender automatically reduces its sending rate.

    Anyway, the real nice thing about the OpenBSD implementation is that they merge their packet filter (pf) with the ALTQ queuing code. Now this is really powerful.

    Sounds like a good time for all BSDs to adopt this new combination instead of relying on less-capable mechanisms. E.g. FreeBSD has ipfw for filtering and dummynet for queue management. I don't know how pf compares with ipfw but ALTQ is definitely better than dummynet.

    Nimrod.

  74. throttled by zquestz · · Score: 3, Informative

    Just in case you don't run openbsd or linux (wondershaper) and are looking for ack packet priority, you can get throttled from http://www.intrarts.com/throttled.html and have the same functionality for Mac OS X and freebsd. It is great to see this information finally getting out to the public, as it does offer significant improvements in network performance.

  75. ACKs vs. Server? by Anonymous Coward · · Score: 0

    Wasn't that a movie? ;)

  76. To quote Fry on Futurama by LittleLebowskiUrbanA · · Score: 1

    Magic. Got it.

  77. strange by Spydr · · Score: 1

    the graphs on the page show the download finishing at the same time.

    one just appears to send way less data.

    am i reading the graphs wrong?

    1. Re:strange by Anonymous Coward · · Score: 0

      I think the idea is that the upload and download filesizes are very very large. The author manually controls when they start and stop.

  78. I set up a mirror... by Anonymous Coward · · Score: 0

    http://www.kay0909.com/ackpri/

    In case anyone missed it or something.

    -Kay0909

  79. Elegy for BSD by Anonymous Coward · · Score: 0

    Elegy For *BSD


    I am a *BSD user
    and I try hard to be brave
    That is a tall order
    *BSD's foot is in the grave.

    I tap at my toy keyboard
    and whistle a happy tune
    but keeping happy's so hard,
    *BSD died so soon.

    Each day I wake and softly sob
    Nightfall finds me crying
    Not only am I a zit faced slob
    but *BSD is dying.

  80. Just a comment... by Anonymous Coward · · Score: 0

    so why not download a snapshot from one of the mirrors and try it out?

    I play 3D games. Thats why I use Linux instead.

  81. Last Post! by alpg · · Score: 0

    They seem to have learned the habit of cowering before authority even when
    not actually threatened. How very nice for authority. I decided not to
    learn this particular lesson.
    -- Richard Stallman

    - this post brought to you by the Automated Last Post Generator...