Rerouting the Networks 108
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.'"
Waste of Taxpayer money (Score:5, Funny)
I doubt that the taxpayers would approve.
don't worry (Score:5, Funny)
Re: (Score:2)
Re: (Score:2)
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...
Re:Waste of Taxpayer money (Score:4, Funny)
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".)
This sounds vaguely like (Score:5, Interesting)
Re: (Score:2, Informative)
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
Re: (Score:2)
Paul B.
I must be missing something. (Score:3, Insightful)
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?
Re: (Score:2)
It sounds the article's original hypothesis is 'Frames go from Router A to Router B.' So what they do to solve it is...add more routers. The diagram simply looks like 1 router that can route to 6 further routers (A-F) which then route to a further 20 (G-Z).
I'm probably missing something too...that seems too easy.
And they added FASTER routers. :) (Score:2)
The second rank of routers can handle TEN outbound connections at 1 bit per second (total 10 bits per second).
And they aren't adding any time delays for the merging of the data streams.
I think I can see what they're trying to do the pictures. And it doesn't look right to me (but who am I anyway). Their choke point (the first router) needs a LOT of information about the second rank of routers.
In essence, they'
Re: (Score:1)
Re: (Score:2)
Re: (Score:2, Informative)
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?
Re: (Score:2)
Re:I must be missing something. (Score:4, Informative)
That still wouldn't work. (Score:3, Informative)
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.
Re:That still wouldn't work. (Score:5, Informative)
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.
Re:That still wouldn't work. (Score:4, Interesting)
No. (Score:1)
Packet loss/retransmits doesn't matter much, IMHO. In GP example, host B could use some explicit out-of-band signaling to tell A and C what packets are used as xor context. Like, via IP options / IP ID field or something.
Re:No. (Score:4, Informative)
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.
Re: (Score:2)
Where is "D"? (Score:3, Interesting)
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 br
Re: (Score:2)
I wasn't explaining their example, I was giving you a different example where network coding can be put to good use with a clear reason for the existence of the additional unused resources. There are more good examples in wikipedia. [wikipedia.org]
And you failed to account for how B would know ahead of time that C would be sending a message.
That's an implementation detail. It's been solved by buffering some packets at B. There are good papers on this out there, like xor in the air. [mit.edu]
In your wi
Fascinating. (Score:1)
So while the discussion was about their example (did you notice the part where I said that the numbers in the diagram didn't match up with their example) you decide that you should be talking about something completely different.
Yes, I'm glad you managed to work your way through the simple A B C problem.
It's just a shame
Re: (Score:2)
Re: (Score:2)
In your example, C's response dos not depend on what C receives from A. Also, B is magically able to simutanously send two messages (no serial device can do that).
If the responce (C -> A) is indeed independent from the first message (A -> C), then A and C can sart sending in parallel, thus eliminating the gain in speed. Also, you assume that the message sent from A to C is identical to the message sent from C to A. Assuming that, I'd offen the even more efficient startegy of using A -> A,
butterfly and quantum networks (Score:5, Informative)
Re: (Score:1)
The original submitter missed something. The illustration in the summary has nothing to do with the example in the article. The illustration is a completely separate example illustrating multicasting using network coding.
The example in the article has 6 nodes (A,B,...,F) and 7 links (1,2,...,7). You can reconstruct the topology based on the textual information in the article. The links are 1:(A,C) 2:(A,E) 3:(B,E) 4:(B,D) 5:(E,F) 6:(F,C) 7:(F,D).
Leave it to the DoD (Score:1)
I'm all for it... (Score:1)
3 years too late (Score:1)
Re: (Score:2)
- sm
realistic receiver connectivity and bandwidth (Score:2, Interesting)
Re: (Score:2, Insightful)
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
Re: (Score:1)
Yup, rateless codes (e.g. LT, Raptor and online codes) produce an endless stream of output symbols, any sufficiently large subset of which can be used to reconstruct the input.
Re: (Score:2)
Man in the Middle Attacks (Score:3, Interesting)
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" [anus.com] 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?
Re: (Score:1)
Re: (Score:2)
Re: (Score:1)
- The topic is MitM attacks
- Someone posts a link to anus.com
Any decent content filter would mark that one as suspect.
Re: (Score:1)
Re: (Score:2)
Do you trust the university?
Do you trust the textbook/course notes/literature? (since usually you have not performed the experiments yourself, nor walked through the supporting proofs and/or math)
Do you trust the professor/teacher?
And more specific to computer science...
Do you trust the algorithm?
Do you trust the compiler?
Do you trust the computer hardware?
What about "post-modernism" do you find problemat
Or you know... (Score:2)
Re:Or you know... (Score:5, Funny)
It's called "cable Internet service."
This is for multicast (Score:5, 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.
Also wireless (Score:2)
Also the coding people are going crazy about this too. There were a couple papers showing that network coding is a simple extension of linear block codes.
Insecure routing why not... (Score:1, Troll)
Re: (Score:2)
SSL would not work for example because it could not be trusted.
It would only be usable for Multicast where you don't care about the integrity of the data (ex: IPTV).
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.
It's a solution in search of a problem. We already have Multi
"deduce the original information..." (Score:4, Funny)
... "from the assembled clues"?
Congratulations. You've just hardwired a rumor mill. Everyone knows how fast those things travel.
Re: (Score:1)
Umm most traffic is unicast (Score:1, Informative)
Re:Umm most traffic is unicast (Score:4, Interesting)
Re: (Score:2)
Re:Umm most traffic is unicast (Score:5, Funny)
Hmm, that's like telling someone who's complaining that horses are hard to find to get a unicorn instead.
IPv6 multicast (Score:2)
Besides, if you're using a tunneling method, you'll by definition be creating a unicast stream to the v6 endpoint, which is probably topologically further away than the actual source of the content. Now, if you were able to buy a native IPv6 connection from some provider which didn't rely on IPv4 somewhere, you might be in luck. Then again, it would probably be easier to get most providers to implement IPv4 multicast than nat
Re: (Score:2)
We are forced to use BitTorrent because ISPs refuse to implement multicast
If by "implement" you mean "turn on", you are correct. Virtually all networking hardware still in use will have multicast support built in. The ISPs just don't want to turn it on because they don't know how to make it fit their existing billing model. Think about it, right now, they accept one packet from a peer, they know they're only going to have to deliver at most one packet to another peer. With a (typical) multicast packet, they could have to deliver thousands of packets, but there isn't an effici
Already 'sort of' happens? (Score:2)
I might be wrong; I just though this already sort of happens.
Re: (Score:1)
Re:Isn't comprehensible to me (Score:5, Interesting)
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.
Re: (Score:2)
Don't get me wrong. I think that what the research team has come up with is remarkable. I just don't see it as being an efficient use of resources. Demonstrate that the CPU cycles to do all this math won't impact throughput and latency, and I'll be the first to applaud them. Otherwise, it's just a nifty way of recovery that covers such small set of corner cases that it's not worth engineering for.
Re: (Score:2)
Having said that, it certainly doesn't seem to me that the math involved here (Gaussian elimination) would be very processor intensive, certainly compared to other common protocols such as TLS/SSL. There are SSL acceleration cards, I could see the Gaussian elimination being done in hardware as well.
20 Questions (Score:4, Funny)
Point B: 'Okay... is it an animal, vegetable, or mineral?'
Coder: 'It's an animal'
Point B: 'Is it... red?'
Sounds efficient!
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
It was a flight booking system. People always complain that computers are hard to use so we'll link it to something they understand in the real world. Pretty much everyone knows the concept of higher or lower games so we considered a system which would tell you an available flight and you could decide to take it or ask for one earlier or later.
Routing protocols (Score:1)
In a well designed network, nothing is dependent on one hop, no matter where it is. We call this a multi homed network and most ISPs utilize more than one path to a certain area of the net.
Another thing to consider is that link state routing protocols are capable of quickly seeing that a route is down and picking another route from the topology table, and inserting that route into the routin
Re: (Score:1)
In a well designed network, nothing is dependent on one hop, no matter where it is. We call this a multi homed network and most ISPs utilize more than one path to a certain area of the net.
I seem to remember this coming up a few years back. ISP A has connections to backbone provider B using various paths C, D, E, and F--which while seeming redundant actually all pass through point G wh
Re: (Score:1)
Every area of most properly engineered networks are multi homed via at least 2 physical paths.
In our CO's each different physical path comes in to a separate fiber patch panel, leaves out different paths out of the CO, and should be riding on different sides of the street etc, usually in different
Re: (Score:1)
The algorithm looks good, but there are holes. (Score:5, Informative)
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.
Mod parent up! (Score:3, Informative)
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.
Th
Network coding (Score:4, Informative)
Re: (Score:2)
It's Parchive [wikipedia.org] and it is crucial for the transmission of large data files through the usenet network. Usenet is essentially a multicast network, like that in the article and the development of parchive error correction files made it significantly more efficient, essentially bringing the need for retransmits down to nearly zero at a slight cost of 5-10% more data transmitted than would be necessary in a perfectly lossless network.
Re: (Score:2)
Nothing to see here folks (Score:3, Interesting)
Re: (Score:1)
XOR would be a bad choice.
Assume you have A^B, B^C, and A^C
A^B ^ B^C = A^C
A^B ^ A^C = B^C
B^C ^ A^C = A^B
No matter what you do, without *one original message*, you cannot reconstruct the originals. (Now, this is cool for things like one time pad encryption, but it won't work for network coding).
However, if you *do* have an original message, they all fall out (assume A^B, B^C, and you have, say, 'A')
A^B ^ A = B (that's one!)
B^C ^ B = C (that's the other!)
So to reconstruct all three me
Essentially Erasure Channels (Score:1)
and digital fountains. The problem with these codes are that even
though they near Shannon's limit, they are not nice towards other
forms of data transmission such as TCP (aka bandwidth hungry).
By using such codes the round-trip overheads that are evident in
protocols such as TCP are eliminated.
These codes are mainly used for massive multi-cast and stateless
loss transmissions.
But using these codes doesn't mean you get rid of routers, it just
means
Far-reaching implications (Score:1)
When the data locally, between two nodes, look like gibberish, does it make it harder to charge traffic by the content in it? Like how a provider may in the future, with IPV6 charge you more per megabyte for say, downloading streaming video than for websurfing. Unlike IPV6 encryption, even the sender and receiver identities would be obfuscated.
If network coding ends at my ISP, it could still charge me. Websites could also char
The rise of the stupid network ... (Score:1)
However, even though we would design a workable technology from this idea, I expect huge resistance from router vendors but also from some Internet designer at IETF.
Embedding such an advanced function within the network would violate the dogma where Network needs to be kept stupid and most of the function are to be supported by terminals.
Of course, Internet is no
isn't this just a trade-off? (Score:2)
I do NOT want end nodes to have to work harder than they do today. and routers already do their thing very well. adding MORE complexity to save line bandwidth seems silly to me unless you are still dial-up bound.
Missing diagrams (Score:2)
Rerouting? (Score:1)
Same as ECIP (Score:2)
www.ecip.com
I called is server based routing, were a cluster of servers would keep tabs on each others status and network communication quality.
How much latency and loss between each node.
Then when a message was to be sent, they could try direct or go around the blockage by reflecting packets off a series of servers.
Packets would also be split of across mul
Mmmmm brains.... (Score:1)
Re: (Score:1)
I already switched to ROT13 encoding... (Score:2)
Re: (Score:2)