Slashdot Mirror


Rerouting the Networks

prostoalex writes "Scientific American looks at a new approach to clearing networking jams, in research funded by the US military. Instead of using routers to route the packets from point A and point B, thus making some hop in the sequence critical for delivering the message, researchers are exploring a new approach called 'network coding.' (Here is the illustration cited in the article.)" Quoting: "[Four researchers] then at the University of Hong Kong published groundbreaking work that introduced a new approach to distributing information across shared networks. In... network coding, routers are replaced by coders, which transmit evidence about messages instead of sending the messages themselves. When receivers collect the evidence, they deduce the original information from the assembled clues. Although this method may sound counterintuitive, network coding, which is still under study, has the potential to dramatically speed up and improve the reliability of all manner of communications systems and may well spark the next revolution in the field. Investigators are, of course, also exploring additional avenues for improving efficiency; as far as we know, though, those other approaches generally extend existing methods.'"

28 of 108 comments (clear)

  1. Waste of Taxpayer money by SpaceLifeForm · · Score: 4, Funny

    All of that new NSA equipment would have to be re-worked.

    I doubt that the taxpayers would approve.

    --
    You are being MICROattacked, from various angles, in a SOFT manner.
    1. Re:Waste of Taxpayer money by grcumb · · Score: 3, Funny

      All of that new NSA equipment would have to be re-worked. I doubt that the taxpayers would approve.
      I am posting in this thread because I'm fresh out of mod points... But even if I weren't, there isn't any "+1, Deftly Ironic" moderation or I'd set you up with one of those...

      It was removed because people kept using it when they should have chosen the "+1, Biting Satire" option instead.

      (For reference, this post should be modded "+1, Deadpan".)

      --
      Crumb's Corollary: Never bring a knife to a bun fight.
  2. don't worry by geedra · · Score: 5, Funny

    we'll cut costs by outsourcing to china ;)

  3. This sounds vaguely like by idontgno · · Score: 4, Interesting

    the information transmission equivalent of holography. On one level, it seems sensible and obvious. On another level, it's rather novel (at least, the application of holographic distribution of data to a network architecture). At least, I've never heard of it, either in real-world technology research or even (to my recollection) SF technology.

    --
    Welcome to the Panopticon. Used to be a prison, now it's your home.
    1. Re:This sounds vaguely like by beyondkaoru · · Score: 2, Informative

      this already happens on really lossy transmissions -- especially things like satellite tv or, say, deep-ish space missions don't want to waste time retransmitting (in satellite tv, if you didn't get it, you can't ask for it again, your picture just looks terrible for a split second).

      so, they use error correcting codes, like, for example, parity (like raid 4,5) or reed-solomon (i think that's used in raid 6 or 7 or something), or turbo-codes.

      fyi, for the latter i don't actually know how it works.

      anyway, this is a pretty good idea (even though it's certainly been thought before); i'd be happy to see tcp replaced with something a bit smarter and just as functional.

      --
      the privacy of one's mind is important.
      you do have something to hide.
  4. I must be missing something. by khasim · · Score: 2, Insightful
    The numbers they give do not correspond to the diagram.

    Suppose we additionally send Amy's missive to Carl along link 1 and Ben's to Dana along link 4. Sending these two messages uses network resources (links 1 and 4) that the routing system could not usefully employ for meeting Amy's and Ben's demands. Carl's node receives Amy's transmission and knows for each instant (from link 6) whether the number of 1s in the pair of messages issued by Amy and Ben is even or odd. If Carl's node is programmed to also "know" the rule used by the coders at the start of link 5 or if it can infer the rule from the evidence itself, the collected evidence will enable it to decipher the message sent by Ben. And Dana's node will similarly uncover Amy's message.

    So they had originally started with one channel from A to D and that channel was also used by B sending to C.

    They said that it was inefficient because A to D would have to wait at times for B to C.

    Their "solution" seems to be to add a SECOND CHANNEL that will transmit a bit AS FAST AS THE PRIMARY CHANNEL and so both messages will get to their destination sooner.

    Why not just use that secondary channel to transmit the data in the first place?

    Did I miss something?
    1. Re:I must be missing something. by LiquidCoooled · · Score: 2, Informative

      What happens when the second node goes down?
      If you automatically broadcast the knowledge of the message across all available channels, if it gets to the other end its won.

      This is the not putting all your eggs in one basket scenario which attempts to address bandwidth limitation issues.

      It was only recently I was thinking about global communications on a wireless mesh without ISP involvement (reroute the backbone across home networks), I wonder if this could be the kickstart it needs?

      --
      liqbase :: faster than paper
    2. Re:I must be missing something. by markov_chain · · Score: 3, Informative

      You're right, their example is not very clear. It works best when there are extra resources available to the system that *can't* be used for other purposes; the best example of this is wireless communication, where all transmissions are broadcast. For example, if A sends a packet to B, but C also hears it, we can't possibly use the A-C transmission for some other data.

      --
      Tsunami -- You can't bring a good wave down!
  5. realistic receiver connectivity and bandwidth by dltaylor · · Score: 2, Interesting

    In the article, I need to transmit all three messages to all receivers and the transmitter/intermediate node link has been fabricated as an obvious bottleneck. How often, in a real network, are the receivers going to have that much connectivity and bandwidth? Also, where is the knowledge that all receiver links are up? The loss of any receiver link means that it will get NO messages, since no complete message is routed of any of its links. If I add enough parity data to allow reconstruction of partial messages, I've just consumed a significant fraction of the supposedly free bandwidth and imposed a higher processing cost at the receiver, which is likely to be the a lower-performance device.

    Great way to create battlefield targets, though. Take out any one intermediate link and lots of the troops at the receiver end are cut off.

    1. Re:realistic receiver connectivity and bandwidth by johndoe42 · · Score: 2, Insightful

      Not at all. This idea is cooler than it sounds in the article.

      Rather than using the silly parity schemes as mentioned in the article, you'd use a long code (i.e. a code that could extend beyond a single transmission). Then, if you lose part of the transmission, you could request enough additional symbols to reconstruct the message. Any decent (i.e. maximum distance separable) erasure code has the property that the amount of data you need does not exceed the size of the message, even if you lose a subset of it that is unknown to the sender. These codes exist -- Reed-Solomon is an example. (As a stupid analogy, you could send a bunch of data by mailing a wad of RAID-6 hard drives (although you'd use a code that could survive more than two erasures) using different carriers, and then, when some get lost, you just mail more of the RAID array.)

      I imagine that the current research is on even better codes that wouldn't require as much feedback to work well.

      (Note: I am not a network coding theorist, but I have some knowledge of information theory and non-network coding.)

  6. Man in the Middle Attacks by jihadist · · Score: 3, Interesting
    The problem with metadata, as Microsoft found out (note: not an MS-bashing post, just an example), is that by making information about information a higher source of "truth" than the information itself, you create an opportunity for any who control the metadata source (mass media, religion, network controllers) to re-define what is true.

    From that, they can stage any number of man-in-the-middle attacks -- the least potent but most widespread of which is convincing a clueless electorate^W userbase that they are certain sources of acclaimed truth, and manipulating them for their own narrow or evil ends.

    Philosophers write about this in inspiring 5-page screeds like "On Truth and Lies in a Non-Moral Sense" by Friedrich Nietzsche. That theory in itself is the foundation of postmodernism and some more dangerous philosophies as well. Could it be that philosophy applies to computer science?

  7. This is for multicast by Animats · · Score: 4, Informative

    Note that this is a distribution network for multicasting. Nothing wrong with that, but it doesn't do anything for ordinary point to point Internet communications. The cable TV people might find it useful, though.

  8. That still wouldn't work. by khasim · · Score: 2, Informative

    For their system to work, it seems that A has to send to B and C

    which blocks C from sending anything

    but C must be sending to D at the same time so that the messages can be merged at the "coder" point.

    And the coder would then use TWO transmissions to send the "hint" and the merged data.

    It's still sending two data streams (one for merged stream and one for hints) when they were originally complaining about how it was a single channel.

    1. Re:That still wouldn't work. by markov_chain · · Score: 5, Informative

      The standard example in wireless networks goes like this. Suppose we have a 3-node chain A-B-C, where A has stuff to send to C, and vice versa, i.e. the communication is bidirectional. A and C are too far from each other, so they need to go through B.

      Without any coding this is how time is spent:
      1. A->B: pAB
      2. B->C: pAB
      3. C->B: pBA
      4. B->A: pBA

      Note than in steps 2 and 4, thanks to the nature of wireless channels both A and C get the packet transmitted by B. One of these receptions is thus wasted. With coding, it can be used to send the same data in 25% less time:

      1. A->B: pAB
      2. C->B: pBA
      3. B->A, B->C: pAB xor pBA

      To decode, A xors the received data with pAB, C with pBA.

      --
      Tsunami -- You can't bring a good wave down!
    2. Re:That still wouldn't work. by SurturZ · · Score: 3, Interesting

      What about bad packets? Wouldn't error correction stuff the whole thing up? i.e. one re-sent packet and you lose out?

  9. "deduce the original information..." by NewbieV · · Score: 3, Funny

    ... "from the assembled clues"?

    Congratulations. You've just hardwired a rumor mill. Everyone knows how fast those things travel.

    --


    "For every right, an equal responsibility..."
  10. butterfly and quantum networks by kidquantum · · Score: 5, Informative

    There is a good explaination in this reference. Although that paper mostly treats the case of quantum networks (which is ubber cool) it gives the background. The standard example (not explained well in TFA) is the http://en.wikipedia.org/wiki/Network_coding>butter fly network and the wikipedia article does a reasonable job explaining it. Basically, even with the three different routes, there is still a bottleneck if you just reroute information. But by coding the information, you get it all through. The example of the butterfly network is very simple and worth learning -- just google it if the wikipedia entry or the arxiv paper doesn't help.

  11. Re:Or you know... by the_greywolf · · Score: 4, Funny

    Comcast already does this.

    It's called "cable Internet service."

    --
    grey wolf
    LET FORTRAN DIE!
  12. Re:Umm most traffic is unicast by Spy+Hunter · · Score: 3, Interesting

    Actually, most Internet traffic (BitTorrent) is multicast mapped onto unicast in a terribly inefficient manner. We are forced to use BitTorrent because ISPs refuse to implement multicast (which makes it hardly surprising that there is no multicast traffic on the Internet).

    --
    main(c,r){for(r=32;r;) printf(++c>31?c=!r--,"\n":c<r?" ":~c&r?" `":" #");}
  13. Where is "D"? by khasim · · Score: 2, Interesting

    Their discussion isn't about
    A to B to C
    and
    C to B to A

    It's about A sending to D while at the same time B is sending to C.

    You've left off "D".

    And you failed to account for how B would know ahead of time that C would be sending a message. Which fails completely when you try to account for "D" in the equation. You need to account for the packets telling B which points wish to transmit.

    In your wireless example, it would be easier to just skip B and have A broadcast its message to all and sundry and then C can broadcast. B and D would pickup whatever was meant for them.

    1. A broadcasts to everyone, D receives the message.
    2. B broadcasts to everyone, C receives the message.

    Only two steps required. A further 33% savings and it includes an additional recipient.

  14. 20 Questions by BinarySkies · · Score: 4, Funny

    Point A: (sends a picture of a ladybug)
    Point B: 'Okay... is it an animal, vegetable, or mineral?'
    Coder: 'It's an animal'
    Point B: 'Is it... red?'

    Sounds efficient!

  15. Re:Isn't comprehensible to me by BridgeBum · · Score: 5, Interesting

    Think of solving simultaneous equations. Something like:

    2x + y - z = 1
    x - y + z = 2
    x + 2y - 3z = -4

    Okay, now instead of x,y & z being numbers, imagine they are blocks of data. Bits. And instead of using addition and subtraction, make your operand xor.

    Next step, pretend that your original message is the variables strung together in order, xyz.

    Easy as 1,2,3.

    --
    My UID is the product of 2 primes.
  16. The algorithm looks good, but there are holes. by postbigbang · · Score: 4, Informative

    Consider using the described method instead of routers, which use the ISO/OSI stack. The message uses an inference, in some ways like how striping works in a RAID 5 drive failure; the failed drive can be inferred from data on the surviving striped drives. Not a big deal. Chunks/nibbles of the messages have a low occupancy time within a cloud, but many receivers must evaluate many messages-- not all are intended for them and must be discarded or validated (imagine spoofing in such a concept as described in the diagrams!).

    But in the message diagram, there's a talker, and a receiver that gets messages through inference. Between the two, the cloud between them becomes unbelievably saturated with diffuse messages-- the same reason that ATM looks good on paper with its 53-byte packets, but in reality can't deal with traffic jams. This is why MPLS and other deterministic routing methods were invented-- to qualify transmission routes, not just shoot them like a shotgun into a cloud, hoping that the intended receiver gets the message and deciphers it through receive-side heuristics.

    This has been done before, and it didn't work. I'd love to hear comments on why this should succeed.

    --
    ---- Teach Peace. It's Cheaper Than War.
  17. Re:Umm most traffic is unicast by glwtta · · Score: 5, Funny

    Switch to someone that provides IPv6 (or use a 4-to-6 connection), IPv6 mandates support for multicast.

    Hmm, that's like telling someone who's complaining that horses are hard to find to get a unicorn instead.

    --
    sic transit gloria mundi
  18. Network coding by gardarh · · Score: 4, Informative

    Network coding is far from a brand new idea. It is introduced in a paper by Ahlswede http://pdos.csail.mit.edu/decouto/papers/ahlswede0 0.pdf published in 2000 and has ever since been a very popular research topic in the networking world (http://www.ifp.uiuc.edu/~koetter/NWC/index.html). These "clues" are linear equations where actual packets can be retrieved by applying a gaussian reduction on the equations. Its most obvious applications are with multicasting where utilization of network links can indeed be increased in an informational theoretical perspective. The tradeoffs are increased CPU load on the intermediate and end nodes. The research so far is a bit from getting into the practical stages but it has promise. As for "99% of internet traffic being unicast"; even though that might be true, one needs to think outside the box. If it turns out that multicasting will be much cheaper than now (multicasting is now in most cases basically multiple unicasting), broadcasting TV through packet networks might become much more efficient and this proportion could change. Finally, don't forget that research is still in early stages. I believe there are some years, even decades (if ever), until we will see any of this in practice. Maybe it turns out to be useless for computer networks, who knows. Even so, the basic principle might still prove useful for other applications such as routing inside solid state chips.

  19. Nothing to see here folks by Anonymous Coward · · Score: 3, Interesting

    First of all, this particular algorithm is really only suited for multicasting the same data to many nodes at the same time. It does not help at all with point-to-point unicasting, which is what the majority of Internet traffic looks like. Secondly, the only real trick here is that you can XOR the data together to transmit more information. So if you have equal length messages A, B, and C, instead of transmitting all three to any particular node, you only transmit XORs of some subset of them (A^B and B^C, or A^C and B^C, etc.) and from those XOR'd versions you can then extract the original 3 messages. Magic! Transmit the equivalent of 2 messages but get 3 messages worth of data! Not groundbreaking; not revolutionary; it's actually a pretty old trick. I've thought for a long time about what real world situation this might be practical for, and have come up with pretty much nothing. It's cute, though.

  20. Re:No. by SurturZ · · Score: 3, Informative

    I worked it out, coding is still better.

    For the example before:
    1. A->B: pAB
    2. C->B: pBA
    3. B->A, B->C: pAB xor pBA

    Assume that at time=3 a bird flies between B & C. The sequence becomes:
    1. A->B: pAB
    2. C->B: pBA
    3. B->A, B->C: pAB xor pBA [B->A SUCCESS, B->C ERROR]
    4. B->C: pAB xor pBA [retry]

    B resends the packet, but addresses it only to C. This is still quicker than routing, which would take 5 time slices.

  21. Mod parent up! by khasim · · Score: 2, Informative

    Exactly. Their diagram is pretty and has unused resources in the overly simplified "before" case ... but it does NOT scale when your have multiple senders and not every receiver wants every message.

    So each point in their diagram will either have to be aware of every other point (you think routing tables are bad right now) or they have to send MASSIVE amounts of extra data.

    Just from their diagram, they went from 3 lines to 6 lines at the first router. Then they fed those into 6 routers each with TEN lines.

    That is a total of 7 routers and and 66 lines to deliver 3 messages to 20 recipients (60 transmissions). Or, 10% more than would be needed if you just ran 1 each.

    Now add 2 more senders and 20 more recipients. But 5 of those only want 1 message, 10 want both the new messages and the other 5 want all 5 of the messages from all five of the senders.

    You end up with congestion just from the packets telling the receivers which streams are merged and which streams they need to unlock them.

    And the machines that only want 1 message have to decode 5 messages to get it.