Slashdot Mirror


Increasing Wireless Network Speed By 1000% By Replacing Packets With Algebra

MrSeb writes "A team of researchers from MIT, Caltech, Harvard, and other universities in Europe, have devised a way of boosting the performance of wireless networks by up to 10 times — without increasing transmission power, adding more base stations, or using more wireless spectrum. The researchers' creation, coded TCP, is a novel way of transmitting data so that lost packets don't result in higher latency or re-sent data. With coded TCP, blocks of packets are clumped together and then transformed into algebraic equations (PDF) that describe the packets. If part of the message is lost, the receiver can solve the equation to derive the missing data. The process of solving the equations is simple and linear, meaning it doesn't require much processing on behalf of the router/smartphone/laptop. In testing, the coded TCP resulted in some dramatic improvements. MIT found that campus WiFi (2% packet loss) jumped from 1Mbps to 16Mbps. On a fast-moving train (5% packet loss), the connection speed jumped from 0.5Mbps to 13.5Mbps. Moving forward, coded TCP is expected to have huge repercussions on the performance of LTE and WiFi networks — and the technology has already been commercially licensed to several hardware makers."

84 of 357 comments (clear)

  1. This is cool. But... by Anonymous Coward · · Score: 5, Insightful

    ...I don't see how it will solve "spectrum crunch" when every nibble of your LTE bandwidth is oversubscribed by 5 to 1. Whether you have 32 users doing 10 Mbps streams, or 320 user doing 1 Mbps streams, it's all accounted for. I'd certainly like to be one of the 10, but 20 Mhz worth of spectrum at 16 symbols/Hertz is not a limitation you can change with fast/excellent forward error correction.

  2. Just like parity files by Ignorant+Aardvark · · Score: 5, Insightful

    If you've ever used Usenet, and you've used parity files to recover missing segments of data, then you know exactly how this technique works.

    Frankly, I'm surprised it took so long for someone to apply it to lossy network environments. It seems obvious in hindsight.

    1. Re:Just like parity files by timeOday · · Score: 4, Interesting

      Forward error correction is a pretty basic principle in encoding and has been used nearly since "the beginning" in the 1940s. They're used in several places up and down the protocol stack; WiMax uses Reed-Solomon coding, for example. But I guess this implementation uses a better algorithm at a different level in the stack.

    2. Re:Just like parity files by Rene+S.+Hollan · · Score: 5, Informative

      Wouldn't bet on it. Probably just reinvented the wheel.

      I coded Reed-Solomon FECs for packet radio in the 1980s to combat picket-fencing for mobile data radios using Z80 CPUs.

      --
      In Liberty, Rene
    3. Re:Just like parity files by oodaloop · · Score: 2

      It seems obvious in hindsight.

      So does everything. Or was that the joke?

      --
      Tic-Tac-Toe, Global Thermonuclear War, and relationships all have the same winning move.
    4. Re:Just like parity files by Anonymous Coward · · Score: 2, Funny

      Well, not so much of a joke as an inevitability, but yeah, a lot of the great inventions seem obvious in hindsight. Yet, for some reason, no one figured it out for awhile.

      One day it will be obvious to us why this is the case.

    5. Re:Just like parity files by SpazmodeusG · · Score: 4, Informative

      Yes, Raptor Codes are the specific ones used by NASA on their newest deep space missions link. Raptor codes are a type of fountain code.

      Fountain codes are worth looking at if you haven't been keeping up with the latest and greatest Comp Sci developments in the last 15 years. With fountain codes you can break up a chunk of data into any number of unique packets. Any subset of those packets that add up to the size of the original packet can be used to reform the original file.

      So say i had a 1MB file to send to Mars. I run a fountain encoder on that and i tell the encoder to make me 10,000,000 packets 1KB in size out of that 1MB file. So the fountain coder gives me 10GB of generated packets from that 1MB file. Now i spam those 10,000,000 packets across a really noisy connection. As soon as the receiver successfully receives any 1,001 of those packets (totalling up to just over 1MB worth of received packets) it can rebuild that file. I don't need to wait for retransmission requests or anything and it doesn't matter what packets make it or not. Just as long as the receiver can eventually successfully receive slightly over X bytes of data it can rebuild an X byte file.

      Traditional error correction codes are great for correcting bit errors in a message that mostly gets there. Fountain codes on the other hand are great in situations where entire chunks of the desired message can be lost, they can avoid the retransmission of these lost packets entirely. The only issue is that they require redundancy in transmission in the first place.

      It seems here they are grouping 50 packets of data together into 1 lot and making 50+R coded packets out of it where R is some number that's variable depending on how much loss they see. So they might send 60 coded packets. If any 50 of the 60 coded packets make it there they should have enough to rebuild the original 50 packets using fountain codes.

  3. Math! by Anonymous Coward · · Score: 2, Insightful

    To everyone who grew up saying that they never used math after high school, and it didn't have any meaningful use further than simple addition... you can kindly eat your own words now.

    I'll just sit here and watch.

    1. Re:Math! by bws111 · · Score: 2

      Yes, clearly this is the first time math has ever been used in computing!

      I'll just sit here and watch. Watch what? All those people who didn't learn math happily using their computers with improved speed? Or do you think it is going to be up to the user to solve the equations to re-create this missing data?

    2. Re:Math! by Grishnakh · · Score: 3, Insightful

      Sorry, but those people were right. They don't need anything more than simple addition to work at Starbucks making crappy burnt coffee drinks. The fact that their mobile phones will work better as they send inane messages to each other on Facebook is nice, but it doesn't require them to know any algebra or other higher math; the engineers (in other countries where math is valued) implementing this stuff need to know that math, but the users don't.

    3. Re:Math! by Grishnakh · · Score: 3, Informative

      Don't be so sure. Lots of people make tons of money in this country without doing any math. Look at contractors (plumbers, HVAC repair, etc.); they make really good money without any real education and without having to do any math. They probably make out better than most engineers. Or look at Mitt Romney: you think he's ever had to do any math in his business? Heck, go all the way back to Thomas Edison: that guy didn't understand math either (that's why he hated AC power). And he got filthy rich basically by using a brute-force method.

    4. Re:Math! by TapeCutter · · Score: 2

      Look at contractors (plumbers, HVAC repair, etc.); they make really good money without any real education and without having to do any math.

      Plumbers make good money because they are educated in plumbing, you think there is nothing to it because you are not educated in plumbing. Here in Oz it takes 4yrs to become a plumber and you must constantly keep your 'tickets' (qualification for doing job X) up to date. It took me 3yrs to get a degree in computer science 20yrs ago and there are no 'tickets' to maintain.

      --
      And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
    5. Re:Math! by CastrTroy · · Score: 4, Insightful

      Sadly, most people who are plumbers are probably better qualified then most people who call themselves programmers. I think that all degrees/diplomas should require some kind of apprenticeship/co-operative education/internship program to get you real on the job experience. There's only so much that can be learned in the classroom. Being on the job, doing actual work allows you to learn a lot of stuff that just would not come up in a classroom.

      --

      Anthropic principle: We see the universe the way it is because if it were different we would not be here to see it.
  4. Introducing... by sootman · · Score: 5, Funny

    ... the new Linksys 802.11x=(-b+/-sqrt(b^2-4ac))/2a router!

    --
    Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
    1. Re:Introducing... by mrbester · · Score: 2

      Or they were imaginary to begin with.

      --
      "Wait. Something's happening. It's opening up! My God, it's full of apricots!"
  5. Re:Congratulations, Baldrick by Anonymous Coward · · Score: 2, Informative

    MIT, Caltech, Harvard, and other universities in Europe

    I understand what they mean, but it's a silly way to write it. Maybe Slashdot should have someone who edits submissions.

  6. Re:This is cool. But... by jargonburn · · Score: 5, Insightful

    I agree that it's not a magic bullet. The point is, however, that the overall throughput of the network was increased by better usage of the available resources! If the *effective* available bandwidth is increased, then the performance of everyone "nibbling" on that network will *also* presumably increase. Also, think how much more money carriers may be able to squeeze out of users without needing to invest more in infrastructure! [/sarcasm]

  7. Error Correction Codes implementation? by Moskit · · Score: 4, Insightful

    Article is very light in details (except "Libraries of Congress" things), but it looks like those guys implemented a kind of error correction code (ECC) to recover lost data through extra data found in other packets. This has been in use for various types of networks (optical, DSL, GSM) for years.

    Of course it is all down to how good the actual algorithm ("algebra") is in terms of overhead vs extent/capability of error correction vs introduced coding delay. There is always a trade-off, but a particular algorithm can take into account technology specifics (WiFi) and optimize it very well for a given task (whole packet lost, but not so often).

    Journalists like to put BIG BUZZWORDS to well known things.

  8. Re:forward endcoding by jschultz410 · · Score: 2

    I don't even think they re-invented FEC. Instead, they simply applied it to TCP in a transparent way. I'm sure they aren't the first people to do something along these lines.

  9. ECC is old by mcelrath · · Score: 3, Interesting

    So basically they're applying interleaved checksumming error correction (a la RAID5)? Good idea. What they didn't say is how much extra data was required to be sent by their solution. If they want to be able to recover 10% packet loss, presumably that means at least 10% more data sent, and there's still a failure point where the loss is greater than the checksum's size.

    We've had these algorithms for decades. I've long been frustrated that checksums/ECC are not used at every single transmission and receiving point. Let's put this into the expansion bus, memory bus (ECC), and filesystem (btrfs/zfs), and of course, wifi and wired networks. Unfortunately the drive to the price floor resulted in everyone wanting to shave that 10% to make things cheaper. ECC was once commonly available in consumer hardware too, now you can only find it on ultra-specialized and ultra-pricey rackmount server hardware.

    The 1980's assumption that the error is 1e-20, so can be ignored, is demonstrably false in nearly every computer application today. We need to (re-)start designing error correction into everything. Hey, why not use adaptive error correction, that increases the size of the checksum when the measured loss increases?

    --
    1^2=1; (-1)^2=1; 1^2=(-1)^2; 1=-1; 1=0.
  10. It's just FEC by Zarhan · · Score: 5, Interesting

    Forward error correction - there are different algorithms that are dime a dozen.

    The one thing that *does* surprise me is that no such thing is built-in to the link layer of 802.11 spec. Physical layer does whatever it can to garner signal from the noise, but there is no redundant data at higher layers at all.

    All this has of course resulted in a gazillion papers on that very topic, hoping to see practical application soon.

    1. Re:It's just FEC by hdas · · Score: 5, Informative

      This is not plain FEC for point-to-point communication. This is based on network coding, e.g., see http://en.wikipedia.org/wiki/Linear_network_coding and how it can increase the capacity in the butterfly network over traditional packet routing schemes, counter to our intuition for flow networks/water pipes.

      Network coding has been a fairly hot research topic in information theory and coding theory over last few years. But it is fairly revolutionary in my opinion. It is still early days in terms of practical coding schemes and implementations.

  11. Re:too specialized on a single protocol? by broginator · · Score: 5, Funny

    You know what the best part about UDP jokes is? I don't care if you get it or not.

    --
    s/[stupid comments]/[intelligent discourse]/gi
  12. Re:Congratulations, Baldrick by TheSpoom · · Score: 4, Insightful

    It's an error-correction method that happens to have compression built-in.

    Also, I really wish people would stop shitting on new technologies like they're some sort of oracle. This is awesome. Accept it.

    --
    It's better to vote for what you want and not get it than to vote for what you don't want and get it.
    - E. Debs
  13. Re:Awesome name by CanHasDIY · · Score: 2

    They named it "coded TCP", not TCP.

    Yea, the phrasing was written in the most confusing way possible.

    On second thought, I take that back - it could have been written in Esperanto.

    --
    An enigma, wrapped in a riddle, shrouded in bacon and cheese
  14. Re:too specialized on a single protocol? by wierd_w · · Score: 3, Informative

    By definition, UDP sessions don't have delivery garantees like TCP does. That's what TCP does! It provides a mechanism for clients to ensure integrity and ordering of received packets. Netbios is an encapsulated protocol over IP, which uses TCP to ensure delivery. ICMP... really? Are you really asking for delivery correction on multi packet ICMP? For real? You do realize that fragmented ICMP is a nono, right, and that ICMP should be wholly contained in single packet messages?

    While true that I wouldn't work for UDP, the clearing of traffic normally consumed by TCP requests and responses would improve performance of UDP by making the medium more available even if the coded TCP method has no direct implication with UDP. (It is up to the UDP session members to negotiate and handle lost datagrams. Not the network stack. UDP is intended for custom user protocols that can't easily live inside a TCP/IP packet, like large video or streaming audio feeds. Normally these protocols can deal with loss, and the burden of ensuring 100% delivery comes at prohibitive performance costs, so UDP with acceptible loss is ideal.)

  15. Comment removed by account_deleted · · Score: 4, Interesting

    Comment removed based on user account deletion

  16. Re:Congratulations, Baldrick by JDG1980 · · Score: 5, Informative

    How is it not compression? It reduces the data size being transferred and is recoverable on the other end.

    No, it slightly increases the data size being transferred, thus allowing it to be recoverable on the other end if there are minor losses.

    Here's an example of how it might work. Say you have a packet that holds 1024 bytes of payload data, plus a few extra for overhead. (Probably not realistic, but this is just to lay out the principles involved.) Now, you could send all 1024 bytes as straight data, but then if even 1 bit is wrong, the whole packet must be re-sent, adding latency. Instead, you send (say) only 896 bytes of actual data, and 128 bytes of recovery data. You break up the data into 64-byte blocks. Thus you have 14 blocks of actual data. The other 2 blocks consist of recovery data, generated by some sort of mathematical equation too complicated to describe here (and which frankly I don't understand myself). Here's the trick: on the receiving end, any 14 of the 16 blocks is enough to recover the whole 896-byte original datagram. Doesn't matter which 2 blocks are bad, as long as no more than 2 are bad, you can recover the whole thing.

    This could be useful in an environment where packet loss is very high. A similar method is currently used when transmitting large binary files on Usenet, since many Usenet servers do not have 100% propagation and/or retention.

  17. Re:Congratulations, Baldrick by Anonymous Coward · · Score: 5, Funny

    Just send a starting position in PI and a length.

    Implementation is left as an exercise.

  18. Re:Congratulations, Baldrick by psmears · · Score: 5, Informative

    How is it not compression? It reduces the data size being transferred and is recoverable on the other end. Maybe I'm not an expert, but isn't that _exactly_ the definition of compression?

    It doesn't make it smaller - in fact, it will make the data larger. It gives improved performance because of the way TCP responds to dropped packets:

    (1) Normally the receiver has to notice the dropped packet, notify the sender, and wait for the packet to be retransmitted - meaning that the data in question (and any data after it in the stream) is delayed by at least one round-trip. With this scheme, there is enough redundancy in the data that the receiver can reconstruct the missing data provided not too much is lost, improving the latency.

    (2)TCP responds to packet loss by assuming that it is an indication of link congestion, and slowing down transmission. With wired links, this is a good assumption, and results in TCP using the full bandwidth of the link fairly smoothly. With wireless links, however, you can get loss due to random interference, and so TCP will often end up going slower than it needs to as a result. The error correction allows this to be avoided too.

  19. Thank you for your interest in this topic. by Sheetrock · · Score: 2, Interesting

    Efficiency in wireless communication is something of a purple elephant, mostly due to interference concerns that aren't at issue in wired Ethernet transactions. True, wired connections will have the occasional collision (though this is largely solved by modern algorithms and operating systems) but digital transmissions over an analog medium are difficult enough when they aren't running into each other in the air. And then you have other interference introduced by microwaves, whether from devices like cell phones, microwaves, or sunspots. It's a very noisy environment!

    The concept of using algebra is a unique step forward in this field. Most here would agree, if you're in a crowded cafe and trying to carry on a conversation, it's easier to shout "Pythagoreas" than to talk about squares and triangles. But with computers it happens to be exactly the opposite because they're designed to compute -- it's what they do and what they like to do. So feed it generalities and, often, it can come up with specifics, much like the Monty Hall Paradox.

    The next step appears to be to move from algebraics to broad descriptions of the type of data you want to download. This is waiting on computers with a great deal more processing power and perhaps emergent AI, but there will come a time where instead of feeding a bunch of packets over a noisy channel the Internet will simply say to your computer "short film with 20-something actor wondering whether to marry now or enjoy life for a while longer" and your system will fill in the rest, completing the transfer mathematically. This is down the road a ways, but newer technology such as lossy compression for data is already available and potentially lucrative for those who are willing to think outside of the conventional box and try something with a few more holes in it.

    --

    Try not. Do or do not, there is no try.
    -- Dr. Spock, stardate 2822-3.




    1. Re:Thank you for your interest in this topic. by Eunuchswear · · Score: 3, Informative

      The concept of using algebra is a unique step forward in this field.

      No it isn't. It's the way all error correcting codes work.

      This stuff is maybe 50 years old!

      --
      Watch this Heartland Institute video
  20. I've yet to get by goldcd · · Score: 2

    3G speeds out of my 3G phone.
    HSPDA+ 'should' be capable of providing me with WAY more bandwidth than I could possibly need from my phone (42MB/ps?).
    I know this is a theoretical speed, but at least in the UK there is a order of magnitude difference between what you actually get using this tech, based on your operator. I.e. the majority of telcos could up their average speed, but for cost reasons choose not to (or more fairly, wouldn't expect the investment to pay off due to the complete lack of interest from the majority of their customers).
    I completely fail to see why LTE will be any different for the consumer - the case for the telco is fantastic, as it removes the need to keep on increasing their pt2pt backhaul, but consumers paying extra for 'LTE' now... eejits. If you want speed switch to a decent 3G telco. If you want to save money, just wait a bit and select the telco that's small/flexible enough to bite the bullet and ask/pay for you to switch.

  21. it does use more spectrum by YesIAmAScript · · Score: 2, Insightful

    It's called forward error correction and it requires sending additional redundant data so you can solve for what is missing. Sending additional redundant data does use more spectrum for the same throughput, because you're sending more data. It may be worth it to avoid retransmissions when data is lost, but it definitely use using additional spectrum.

    This is nothing new, your computer uses FEC on its storage (HDD or SSD) and maybe even on its RAM (if it has ECC RAM).

    --
    http://lkml.org/lkml/2005/8/20/95
  22. Re:This is cool. But... by Firehed · · Score: 5, Informative

    That's kinda the point. Crappy signal results in high packet loss. If you can recover lost packets through some recipient-side magic (clever math, apparently) rather than retransmission, you avoid the overhead of another roundtrip, and get higher bandwidth as a result. This cuts down massively on latency (huge win) and should also decrease network congestion significantly.

    I'm trying to think of a way to put this in the requisite car analogy, but don't honestly know enough about the lower-level parts of the network stack to do so without sounding like an idiot to someone sufficiently informed. But I'm sure there's something about a car exploding and all traffic backs up for tens of miles along the way ;)

    --
    How are sites slashdotted when nobody reads TFAs?
  23. we were being inefficient by OrangeTide · · Score: 4, Insightful

    Shannon Limit shows that there is only so much information that can fit in a channel.

    Plenty of forward error correction codes exist (algebraic encodings) to enable a channel to approach the shannon limit. Most of you have heard of Reed-Solomon or Hamming Code before.

    NASA has used these since the 1970s to provide a more robust link with the effect of utilizing more bandwidth of that link.

    This is a little fancier than what I mentioned, but conceptually similar I imagine. The advantage of just using some existing forward error correction, perhaps combined with one of the popular compression algorithms, is that techniques that have been in use for the past 4 decades probably can't have enforceable patents placed on it.

    --
    “Common sense is not so common.” — Voltaire
  24. Re:This is cool. But... by Jeng · · Score: 4, Insightful

    Also, think how much more money carriers may be able to squeeze out of users without needing to invest more in infrastructure!

    This might actually hurt them then because they charge by what was transmitted, not by what was received.

    --
    Don't know something? Look it up. Still don't know? Then ask.
  25. Coded TCP by XB-70 · · Score: 2

    It's obvious that nothing new has been invented here. It's just that they have put one previous idea cleverly together with another. What they are trying to do is to create Coded TCP... IP!!

    --
    *** Don't be dull.***
    1. Re:Coded TCP by bws111 · · Score: 2

      So putting two previous ideas together 'cleverly' is not a new invention, eh? What exactly would qualify as a new invention?

  26. Re:Congratulations, Baldrick by fa2k · · Score: 4, Informative

    Not data compression, more like ECC or forward error correction

  27. Re:Congratulations, Baldrick by Anonymous Coward · · Score: 3, Informative

    That works, actually!
    The problem is that on average, the number of bits needed to express the starting position in pi is equal to the number of bits you are transmitting.

  28. This only works end to end by flowerp · · Score: 5, Interesting

    This is why I think this will not catch on easily. You can't just put a new router with their coding functionality into your home and expect this to work. It also needs support from the server hosting the content you want to acces.

    The way they designed their system is end to end. Meaning that the internet server has to run a modified TCP stack and the client system (alternatively your router inbetween) also has to understand this modified TCP dialect.

    The chance of millions of Internet servers changing to a (likely) patented, proprietary version of TCP is ZERO.

    This is why this idea will fail.

    Christian

    --
    --- Eat my sig.
    1. Re:This only works end to end by flowerp · · Score: 3, Informative

      And in case you want to read about the changes they made to TCP, here's the paper:
      http://arxiv.org/pdf/0809.5022.pdf

      The paper mentioned in the summary only does a performance evaluation for this TCP
      dialect, but is light on details.

      --
      --- Eat my sig.
    2. Re:This only works end to end by suutar · · Score: 4, Insightful

      It doesn't necessarily need support from the server hosting the content. Any router along the path could take the old-style packets and wrap them in new-style packets. Since the servers are likely to be using wired connections anyway, this technique might not help them a lot anyway; the real win is using this to beef up the connection from the radio tower (be it cell or wifi) to the client (be it cellphone or wireless card), and that's a much smaller set of hardware/firmware to update.

  29. Re:This is cool. But... by Anonymous Coward · · Score: 2, Interesting

    We'll get the extra packets that were re-transmits for sure. But the throughput gain (if I understand their sketchy details correctly) is from dropped packets not causing a pause at the TCP window size limit waiting for the dropped packet. You can just keep streaming them and generally assume the other end is happy.

    But this doesn't increase the available bandwidth of your transport network. And if every packet from 300 users is going out back-to-back with another users packet then it doesn't "fix spectrum crunch" any further than eliminating retries. They were estimating the fast moving train had a 5% drop rate. Assuming your area's 4G is saturated (I'm looking at you AT&T) with the same drop rate, you can expect 1) fewer pauses and a steadeir transmission 2) 5% more bandwidth.

    Applying this technology to the "long fat pipe" problem for ftp-style transfers to Europe however sounds like a grand plan. I hope it becomes an IEEE standard soon.

  30. RAID for packets by ShanghaiBill · · Score: 2

    You've invented data compression.

    This is NOT data compression. It is more like "RAID for packets". If a packet is dropped, you can recreate it from the other packets instead of requesting it again.

  31. What the FEC? by AK+Marc · · Score: 2

    Hasn't this already been solved for before? There are tons of FEC implementations out there. Shoot, from their description, they just PAR'd them all together and transmitted the parity as an (or some) extra packet(s). They just used "algebra" to generate their PAR.

    Cool that someone's using it. Dynamic parity/FEC is a much better loss tolerant scenario than TCP's algorithm, but that doesn't make it new or novel. Silver Peak is a network acceleration device (like Riverbed) that integrates FEC, so it's been out commercially available for years. Putting it on an AP (with a matched wireless client) isn't that interesting. I could have done it 2 years ago with Silver Peak VMs running on the AP and my computer, though not as practical.

    Maybe I'm just jaded because FEC and parity are things I've been working with for 20+ years.

  32. Re:This is cool. But... by gr8_phk · · Score: 2, Informative

    This might actually hurt them then because they charge by what was transmitted, not by what was received.

    Yeah, but you have to consider how they do math. You assume they calculate profit based on usage and rates. The reality is they calculate the rate based on the desired profit and usage. So when you use less data (fewer retransmits) they will just charge you more for the bits that get through.

  33. Network coding. by hdas · · Score: 5, Informative

    This is not simple data compression or error control coding. This is network coding, e.g., see http://en.wikipedia.org/wiki/Linear_network_coding [wikipedia.org] and how it can increase the capacity in the butterfly network over traditional packet routing schemes, counter to our intuition for flow networks/water pipes.

    It is a fairly hot research topic that has been around for last few years. But it is fairly revolutionary. It is still early days in terms of practical coding schemes and implementations.

  34. Re:Congratulations, Baldrick by wonkey_monkey · · Score: 5, Funny

    This is awesome. Accept it.

    I agree, but... this is Slashdot.

    --
    systemd is Roko's Basilisk.
  35. New technologies, but old technique. by Anonymous Coward · · Score: 3, Insightful

    My grandpa used to tell me stories of old men who pulled up into town offering medicinal cures for all sorts of diseases, old age, arthur-itis, bad vision, whatever.

    "Medicine men" would orchestrate a "medicine show" with all sorts of claims and testimonies of the miracles of the precious snake oils he vended. Fistfuls of cash soon filled the air, and his cronies went through them exchanging their hard-earned cash for bottles of God-knows-what. ( Grandpa tells me the most common ingredients were assortments of oily vegetables with a smattering of creosote - same stuff used to preserve telephone poles - thrown in for good measure - and maybe a smattering of moonshine to give it a medicinal smell ).

    These were simple old country folk he sold to - mostly farmers. They knew all about how to run a farm, and respected their doctor - and the charlatans of the medicine show knew full well how to monetize the people's faith in the technical jargon of chemistry.

    A few days after the wagon left town, the people discovered they were no better off, and quite a bit poorer, after the medicine man left.

    Woe to the medicine man if he visited a town a few weeks after another medicine man had pulled his scheme off.

    I think we have seen so much stuff today whose sole purpose is monetizing bullshit, that we are leery of accepting stuff we do not understand. I - for one - would love to understand Rossi's "eCat" cold fusion LENR device, but the shroud of secrecy around it, along with what YouTube video I have seen of it has me believing it is just more snake oil, however much I would love to see something like this actually work..

    As far as packet loss is concerned, if its a problem, put each packet through ECC just as we do on CD's or DVD's - and match the ECC size to the packet size. To me that is obvious - and being I am not advanced in this field - I think I would be reasonable in claiming that is an obvious use of the technology

  36. Re:Congratulations, Baldrick by Bill_the_Engineer · · Score: 4, Insightful

    Actually they came up with yet another method of Forward Error Correction (FEC). I haven't had time to read the article and look forward to see how they compare to Reed-Solomon or other Reed-Muller codes (Walsh-Hadamard code is used in CDMA).

    This isn't exactly new but I'm glad to see someone take the initiative to apply it to today's WiFi networks. The mentality as of late is that the speed is more than fast enough to deliver the data and the occasional resend. FEC currently used where data rates are quite limited or the latencies are such that retransmissions are prohibitive long.

    --
    These comments are my own and do not necessarily reflect the views or opinions of my employer or colleagues...
  37. Re:forward endcoding by AK+Marc · · Score: 2

    I've used Silver Peak before, and they use transparent packet FEC. These guys aren't the first, but they just moved the idea to new devices, an AP and wireless drivers. Not ground breaking, but may expand use to more people.

  38. Re:Congratulations, Baldrick by Anonymous Coward · · Score: 5, Informative

    There is no compression. Its RX error correction. This, seemingly, will reduce latency and increase effective throughput because you are now spending less time in a RX/TX retransmit cycle or a TX-TO retransmit cycle. As such, it allows more time for TCP window scaling to open up, even in the face of lost packets. In turn, a larger window means higher throughput with less protocol overhead.

    I completely agree. Its awesome.

  39. Re:Congratulations, Baldrick by Anonymous Coward · · Score: 4, Funny

    Also, I really wish people would stop shitting on new technologies like they're some sort of oracle. This is awesome. Accept it.

    But if I keep shitting on new stuff like that, I can point back to my posts and say "LOOK! SEE? I SAID SO! I DID! ADMIT I WAS RIGHT FOR ONCE!!!!1!" if it fails. If it succeeds, though, I'm counting on nobody remembering my old posts so I can join in the praising of it later! It's a foolproof win-win for me, and that's all that matters!

  40. 1000% == 11 times by kelk1 · · Score: 2

    It is news for nerds after all.

  41. Re:Congratulations, Baldrick by Eunuchswear · · Score: 2, Insightful

    No, they've invented forward error correction.

    How novel.

    "While the exact process is being kept secret (and has already been licensed by “several companies”), "

    Fuck 'em and the horse they rode in to town on.

    --
    Watch this Heartland Institute video
  42. This is good, but not new by anom · · Score: 3, Interesting

    The reason this is a problem at all is because TCP was developed for wired networks in which packet loss was almost always a signal of congestion -- and therefore the logical response was to reduce the rate.

    In these newfangled wireless networks losses can be completely random, yet TCP will still assume that congestion is responsible and reduce its rate. So, the answer is to either change TCP or do correction at a lower layer to "hide" the losses from TCP -- and, this has been a subject of research in networking for years now.

    Linear coding certainly isn't new -- it has been proposed for a variety of things -- including but not limited to bittorrent, to reduce the reliance on receiving a specific block and rather on simply receiving "enough" information.

    So yes, it is all well and good that we are applying this technique to TCP to reduce the impact of random, noncongestion losses, but there had better be something pretty magical in the way they do it for it to be (IMO) novel enough to be patentable/licensable/etc.

  43. Re:Congratulations, Baldrick by Anonymous Coward · · Score: 2, Funny

    RAIP: Redundant Array of Inexpensive Packets

    I can see why they didn't use that acronym...

  44. Re:This is cool. But... by Gilmoure · · Score: 5, Insightful

    Think of it as bitmap vs vector graphic.

    --
    I drank what? -- Socrates
  45. Re:too specialized on a single protocol? by Anonymous Coward · · Score: 5, Funny

    And the problem with TCP jokes is people keep retelling them slower until you get them.

  46. Why is WiFi's FEC so bad? by Animats · · Score: 4, Interesting

    The actual paper, which I need to read a few more times, proposes at least two mechanisms. One problem with TCP is that, when ICMP Source Quench went away in the 1980s, the assumption was made that a lost packet indicated congestion. So a lost packet means slow down. This is a problem for systems with high packet loss rates and no link level retransmit, like WiFi. Also, with TCP, packets need not arrive in order, but if one is missing, all later packets have to be retransmitted, because the ACK scheme has no way to describe which byte ranges are missing, just the last good sequence number. So losing one packet when there are many in flight costs multiple retransmits.

    Their solution involves addressing both of those issues. Then they add the "algebra", which is a simple form of forward error correction. They send M linear combinations of N packets, M > N, from which all N packets can be reconstructed provided that not more than K packets are lost where K Why is that? This is a link layer problem and ought to be dealt with at the link layer. FEC at the WiFi link layer is apparently not as effective as it should be.

  47. Re:Congratulations, Baldrick by AK+Marc · · Score: 2

    It increases the amount transferred with the intention of minimizing total throughput. Not sending something isn't compression. Compression is sending less than you started with, and recovering the whole thing at the other end. This is FEC, where you send more than the original and then reconstruct the original at the other end.

  48. Re: How is this not compression? by Capt.Albatross · · Score: 2

    How is it not compression? It reduces the data size being transferred and is recoverable on the other end. Maybe I'm not an expert, but isn't that _exactly_ the definition of compression?

    While I agree with the people who say that it is not data compression, it is also worth noting that the question is beside the point - you may as well say 'it is communication' as if the fact that something of that nature has been done before renders it irrelevant. The point is that it is a clever, useful and significant extension to the state of the art.

  49. Re:This is cool. But... by CanHasDIY · · Score: 4, Funny

    The point is it will give them higher data rates for free which they can then charge extra for.

    If you believe carriers will get rich and fat from this, then by all means, buy stock! They are public companies. Put your money where your mouth is.

    I'd put my money in hay bales, personally, considering people such as AC here's propensity for building strawmen.

    --
    An enigma, wrapped in a riddle, shrouded in bacon and cheese
  50. Re:Congratulations, Baldrick by SuperMooCow · · Score: 2, Funny

    I always knew that cloud hosting companies were screwing us.

  51. Re:Congratulations, Baldrick by isaac1987a · · Score: 5, Informative

    I work in Sattelite Communications and we use these algorithims by default. We call it forward error correction. I would assume that they would use a much less aggressive algorithim, maby 1 correction bit per 8-16 bits rather than a 1 for 1 data, or a 1 for 2 data that you see for dirty links in the space operations. See http://en.wikipedia.org/wiki/Viterbi_algorithm or http://en.wikipedia.org/wiki/Reed%E2%80%93Solomon_error_correction. The additional throughput is not from compression but from not having to TCP resend entire packets and probably also prevents the TCP window from resetting.

  52. Re:There's no magic by WillgasM · · Score: 2

    They just need to put copper mesh over all the windows to keep the bits from escaping

  53. Re:Congratulations, Baldrick by mark-t · · Score: 2

    All very well and good, except that the encoded representation of the starting position may take up more space than the length of data you are wanting to send.

  54. Re:This is cool. But... by White+Flame · · Score: 5, Interesting

    It prevents backtracking the stream.

    Say you have 10 packets to transmit. You encode them into 10 linearly combined results, with a 10-byte coefficient header (1 per packet), and transmit those 10 encoded packets.

    If the 5th packet was lost, in standard TCP you'd need to retransmit packets 5-10. With this encoding, you could in theory transmit only 1 packet to complete the set, regardless of which was lost, based on how the new ACKs describe the algebraic degrees of freedom remaining in solving for the original packet bytes. That means that you put out 11 packets instead of 15 packets into the same noisy environment, and the existing TCP window controls perceive less losses. If everybody does that, the overall contention might go down compared to stock TCP.

    In the case where it's very difficult to get any individual packet through, I could see this still encoding 2-3 packets at a time and saving bandwidth on resending vs regular unencoded serial transmission.

    (given my skimming of the paper)

  55. Re:Reinventing the wheel by viperidaenz · · Score: 2

    TCP will also not see network congestion when there is network congestion...

  56. Re:This is cool. But... by Imagix · · Score: 4, Insightful

    Car analogy: Somebody ships you a car. It arrives with a bent bumper. Instead of having the source shipping you a new car, you just unbend the bumper.

  57. Don't Misunderstand by rabtech · · Score: 4, Informative

    Most of the posters here seem to misunderstand what this is; it is NOT just a simple Forward Error Correction scheme.

    TCP has two design decisions (as pointed out by others) that are totally wrong for a WiFi environment where random packet loss is a normal and expected operating condition:

    1. A lost packet means a collision or network congestion, therefore the proper response to a lost packet notification is to slow down the transmit rate

    2. When packet #2 is lost, even though the client has perfectly cromulent copies of packets 3-1094932, they must *all* be thrown away and the entire stream is restarted. There is no facility to go back and retransmit just the missing packet - the ACK can't say "I got packets 1,3-1094932, please just re-send #2".

    This new scheme reconstructs packet #2 in this scenario by using the FEC data in the other packets. This allows the link to tolerate a certain % of packet loss without requiring any re-transmits, thus all those packets from 3 upwards don't have to be retransmitted. It also greatly reduces latency as reconstructing packet #2 is faster (due to the computationally efficient FEC algorithm) than requesting a retransmit. This also prevents the TCP link from scaling back its transmit rate, further improving performance.

    It's definitely clever. One of the downsides of relying on older technology (TCP in this case) is when it makes fundamental assumptions that are completely, horribly wrong for new applications (WiFi).

    To those who ask why not just do this at the link layer? Because then you are wasting the effort on protocols like UDP, etc that may not want or need this kind of correction. It may also introduce delays that are unacceptable for certain applications (like VoIP). A 50ms delay is great to avoid degrading your file transfer from 10mbit to 0.5mbit, but is completely useless during a VoIP call or a multi-player FPS. Personally I'd like to see this kind of tech rolled into the next version of TCP to make it an official part of the standard... then again I'd like to see the standard MTU size increased given the ubiquity of gigabit ethernet these days, but that still hasn't happened as far as I know, due to incompatibilities, interop issues, etc.

    --
    Natural != (nontoxic || beneficial)
    1. Re:Don't Misunderstand by Anonymous Coward · · Score: 3, Informative

      TCP does not require all the packets be re-transmitted when Selective ACK is supported. Selective ACK is ubiquitous.

      Preventing TCP from scaling back the transmit rate is a defect, not a feature.

  58. Re:Congratulations, Baldrick by CmdTako · · Score: 3, Interesting

    Nope, Nowadays we have pi on tap

  59. Re:This is cool. But... by TheGratefulNet · · Score: 4, Interesting

    better: there is an unknown part that was found rattling around inside. you find out what it was and put it back where it should have been.

    --

    --
    "It is now safe to switch off your computer."
  60. Re:Congratulations, Baldrick by Anonymous Coward · · Score: 2, Informative

    The problem is that TCP's congestion control is very poorly designed for wireless communications. TCP is designed with the mindset that if everything is working well, there is no packet loss and any packet loss is a sign of congestion or other abnormal network patterns. For wireless links, this is simply untrue, so TCP is way over conservative in how many packets to send over wireless links. The article is about using error correction to fix that.

  61. Doesn't seem so revolutionary by russotto · · Score: 2

    They've rediscovered forward error correction?

  62. Re:This is cool. But... by __aaltlg1547 · · Score: 2

    What they seem to say they're doing forward error correction, but with giant coding blocks (superblocks) comprising multiple TCP packets. Presumably this is accomplished by swapping the bits around between the packets and then using a conventional block coding algorithm on smaller blocks within each packet. So a whole packet can be lost and the block-decoding algorithm will still decode the superblock correctly even with a missing packet (but not two missing packets).

    It's a clever idea to work around the problem of RF interference in wireless networks (and I'm ashamed I didn't think of it first long ago.).

    Conventional wireless network protocols use FEC in the link layer as well, but they lose packets due to collisions and interference from other devices that share spectrum with them. The only piece of it that I have trouble believing is that there can be a 10x or more increase in network throughput when the original packet drop rates were

  63. Re:This is cool. But... by craighansen · · Score: 2

    This mechanism has been in place for years with the PAR encoding used in USENET messages. A little redundancy permits one or more messages to be dropped without losing the transmission.

    A much simpler mechanism could get most of the claimed benefit:

    In TCP, a packet erasure is assumed to have resulted from congestion. However, if we start receiving packets out of order when the window size is large, we could instead presume that a packet erasure may have occurred. In a sequence of packets sent when the window size is 20 packets, say packets 1-20, packet 5 is missing, instead of NAKing packet 5 and dropping 6-20, ACKing packets 6-20+ could provoke a response of retransmitting packet 5 and once 5 is ACKed, the transmitter can move on past packet 21 (by the time packet 5 is presumed lost, the transmitter would have transmitted even more packets) - thus only lost packets are retransmitted.

    The size of the transmit window can be reduced modestly when this occurs, instead of resetting it to one - perhaps the appropriate adjustment is to where the transmit window would be after successfully ACKing 19 packets after a reset. This can be generalized for multiple lost packets within the transmit window, and no "algebra" on packets would be required, only a similar amount of memory at the receiver and transmitter to the coded TCP scheme. Coded TCP takes additional bandwidth because (1) more redundant packets are sent than are needed (2) the overhead of sending which packets are algebraically combined in each packet.

    The proposal assumes a constant erasure rate with packet size - for many networks this is not true. Reducing the packet size often improves the erasure rate. I've seen this in practice, in a DSL line where reducing the MTU from 1500 to a few hundred made the line usable (until I could get it fixed).

    The coded TCP scheme (or the above scheme) could be implemented in software using UDP packets. Why it needs new (and licensed!?!) hardware is beyond my understanding.

  64. Re:This is cool. But... by craighansen · · Score: 2

    It looks like RFC 1072 (TCP extensions for long-delay paths, 1996) and RFC 2018 (TCP selective Acknowlegement options, 1988) already does what I suggest. Does anyone know why it's not already widely adopted? If these RFCs were in place, the additional speed-up of coded TCP ought to be negligible.

    Here's a quote from the coded TCP paper: "Other variants include those with selective acknowledgment schemes [21]. It may be interesting to compare the performance of the TCP variants with that of TCP/NC. However, we focus on traditional TCP here." The footnote [21] is to a paper that appears to be based on RFC 2018 with matching authors. I'd suggest that if they compared TCP/NC to RFC 2018, they'd see that their mechanism is way more complicated and has negligible advantages.

  65. Re:Congratulations, Baldrick by pipatron · · Score: 2

    Well... Look at it as "parity bits on steroids". This method is sort of the same, but much more powerful.

    The most important difference is that you can't repair damage with a simple parity/checksum, but with these algorithms you can actually use the extra data to fix most of the missing data.

    --
    c++; /* this makes c bigger but returns the old value */
  66. I can see the line item charge now by ThatsNotPudding · · Score: 2

    "Algebraic packet reconstruction fee: $.01/kb"

  67. 1000% increase in sillyness by WaffleMonster · · Score: 2

    When reading this paper it is important to not loose sight of reality.

    "This is due to the fact that TCP requires in-order reception."

    ORLY...

    "A single packet loss within a transmission window forces all subsequent packets in the window to be out of order. Thus, they are discarded by the TCP receiver."

    More like selective amnesia (SACK).

    Translation "our ECC shit only works on sequential frames"

    If you assume the link layer is reliable (trivial to no packet loss in absence of congestion) and error free then the Internet works.. If you don't then it quickly turns to mush.

    TCP is simply the wrong place for this crap. You need to do retransmission/correcting code at link layer if you have a noisy enough environment to warrant.

    We don't see TCP checksums being relied upon to catch actual errors all the heavy lifting is done at link layer with fancy algorithms for a reason: It is closer to the real world/source of error.

    If you have a radio then integrate predictive moderation of correcting codes with QOS/channel provisioning and current knowledge of the RF environment. This way higher layers do not see mixed signals with respect to congestion avoidance.

    Their answer to this was simply to rely on the threshold of loss where the correction scheme was still able to fill in the gaps. This is naive and far from optimal.

    Another benefit if you do these things at radio link there is less lag on detection of head end frame as other frames for unrelated sessions may be used to assist in rapid detection of missing frames.

    Delaying or otherwise bundling frames into some sort of super cork is not the answer either as your just trading throughput for latency.

    Finally I think it is important to consider possibility just maybe TCP/HTTP is the wrong solution for every single problem in the first place. Ultimatly attempting to mask these realities will not only never be optimal but can actually cause harm *IF* people are willing to trade congestion avoidance for gains they don't deserve to have in the first place.

    To be clear I'm not saying there is no merit to error correction schemes... I just don't think they belong in IP.