How MIT and Caltech's Coding Breakthrough Could Accelerate Mobile Network Speeds
colinneagle (2544914) writes "What if you could transmit data without link layer flow control bogging down throughput with retransmission requests, and also optimize the size of the transmission for network efficiency and application latency constraints? In a Network World post, blogger Steve Patterson breaks down a recent breakthrough in stateless transmission using Random Linear Network Coding, or RLNC, which led to a joint venture between researchers at MIT, Caltech, and the University of Aalborg in Denmark called Code On Technologies.
The RLNC-encoded transmission improved video quality because packet loss in the RLNC case did not require the retransmission of lost packets. The RLNC-encoded video was downloaded five times faster than the native video stream time, and the RLNC-encoded video streamed fast enough to be rendered without interruption.
In over-simplified terms, each RLNC encoded packet sent is encoded using the immediately earlier sequenced packet and randomly generated coefficients, using a linear algebra function. The combined packet length is no longer than either of the two packets from which it is composed. When a packet is lost, the missing packet can be mathematically derived from a later-sequenced packet that includes earlier-sequenced packets and the coefficients used to encode the packet."
The RLNC-encoded transmission improved video quality because packet loss in the RLNC case did not require the retransmission of lost packets. The RLNC-encoded video was downloaded five times faster than the native video stream time, and the RLNC-encoded video streamed fast enough to be rendered without interruption.
In over-simplified terms, each RLNC encoded packet sent is encoded using the immediately earlier sequenced packet and randomly generated coefficients, using a linear algebra function. The combined packet length is no longer than either of the two packets from which it is composed. When a packet is lost, the missing packet can be mathematically derived from a later-sequenced packet that includes earlier-sequenced packets and the coefficients used to encode the packet."
and what if the coefficients get lost or corrupted?
"A better coding for data error correction and redundancy than Reed-Solomon" - this is News for Nerds after all.
And why the "oooh - flappy birds on my phone might be faster" slant? I want a faster SAN!.
Code on 45
Ay? Ay?
Sounds like Parchive from usenet, which is a really good idea in a lossy environment now that I think about it.
they've invented forward error correction, this could enable data communications and audio CDs.
Nullius in verba
And why do they use TCP if they are trying to avoid retransmissions due to lost/corrupt packets?
This seems to say that it's most trying to avoid link-layer retransmission, not transport-layer. So somehow I need to figure out all the links my transmission is traversing and disable link-layer retransmission on all of them?
http://lkml.org/lkml/2005/8/20/95
Xfinity video in your face 4650% faster! Xfinity introduces the RLNC fast lane data transmission! Its like an over caffeinated jaguar solving linear matrices while orbiting the earth in the space shuttle and doing coke. RAAAWRR! Don't like the jaguar? Tough floating jaguar shit, you don't have a choice! We own teh tubes! ©omcastic!
It will be better to purchase from an owner who is a good farmer and a good builder.
In over-simplified terms, each RLNC encoded packet sent is encoded using the immediately earlier sequenced packet and randomly generated coefficients, using a linear algebra function. The combined packet length is no longer than either of the two packets from which it is composed. When a packet is lost, the missing packet can be mathematically derived from a later-sequenced packet that includes earlier-sequenced packets and the coefficients used to encode the packet.
If that's "over-simplified" I am not sure I want to try to read the paper. That paragraph alone gave me a headache. Maybe it's the grapevine and the paper hurts less to read. Meh, tomorrow.
"the immediately earlier sequenced packet". There a word for that. It's called "previous". As in "the previous packet".
Better known as 318230.
Sounds like a principle similar to http://en.wikipedia.org/wiki/Parchive
I like.
I remember working on a project where network coding was proposed for micro satellite cluster communications. If I remember correctly, network coding requires that all the nodes in the network have complete knowledge of the state of the network at any given transmission window. This requires transmission of the network state which used something like 7% overhead. The routing of a message from one end of the cluster to the other was difficult. I believe it might have been an np-complete problem. Have they solved the routing issues?
Resume.
yeah TFA says it's link-layer flow control:
it can "piggyback" on TC-IP but you have to use their "software" on either end
i'm not sure where they want this to be used, "mobile" WiFi and LTE are mentioned but I dont see this as anything other than a demonstration of a capability, not an application
i come from a CCNA background but I've never worked with or seen something like this...seems like they would use it in data centers?
Thank you Dave Raggett
It seems the coding sequence does some compression. Forward error correction uses *extra* bits to allow bit errors to be corrected. The redundant data means that the TV station I'm watching on the other monitor is streaming data into my TV tuner card at 32 Mb/s, and the effective data rate is 19.39 Mb/s (so 12.61 Mb/s is the redundant data). They mentioned (at least twice) that the packet length for this scheme is exactly the same. So if its like FEC, its damned efficient.
If the RLNC is five times faster than the native lines, It mean that the entire transmission network may go on a roll?
How MIT and Caltech's Coding Breakthrough Could Accelerate Mobile Network Speeds
I wish they also made some breakthrough to increase the data caps we are stuck with.
And why do they use TCP if they are trying to avoid retransmissions due to lost/corrupt packets?
This seems to say that it's most trying to avoid link-layer retransmission, not transport-layer. So somehow I need to figure out all the links my transmission is traversing and disable link-layer retransmission on all of them?
I believe the issue is that you can't sell it to the cable companies and the DSL providers that implement PPPOE in order to track your surfing, to make sure you are buying your television programming from them, rather than file sharing, and they can intentionally make things like Tor not work. Not that PMTUD works on those things unless the modem proxies the ICMP messages, which are usually blocked by the cable companies, unless you explicitly ifconfig down to 1492 yourself, or enable active probing for black hole (rfc4821).
The random element seems to be there to avoid having to come up with an optimal distribution of information. Otherwise, it seems like a frame-level (or even finer) RAID.
Any guest worker system is indistinguishable from indentured servitude.
TFA doesn't seem to state what their assumptions were on how packets get lost and how many packet losses the algorithm can deal with, and what their distribution is. There are a lot of ways you can drop k packets out of n packets sent.
If you assume that every packet has a k/n chance of being lost, then being able to reconstruct a single missing packet could be incredibly useful. However cell phone packet losses tend to be incredibly bursty, i.e. they will have a very throughput for a while, but then all of a sudden(maybe you changed towers or went under a bridge etc) lose a whole ton of packets. Can this algorithm deal with bursty losses? I wish TFA was a bit more clear on that
Monstar L
Isn't this just raptor encoding? This idea has been around for a long time, I'd like to hear how this specific instance differs from what came before.
http://en.wikipedia.org/wiki/Raptor_code
The story linked to seems to have an awful explanation of what's going on. This makes a lot more sense:
http://www.codeontechnologies....
Reminds me a little of a random project I started back in college where I'd transmit a file in a bunch of packets where each contained the original file modulo a specified prime number. That way, if the file was split into 10,000 packets, then the transmitter could send out a constant stream of packets module different primes and as soon as the receiver got any 10,000 of them they could use the extended euclidean algorithm to reconstruct the original file.
I was hoping we'd someday be able to multicast udp over the net to multiple random locations and this would be a fast way to send files.
More importantly, RLNC encoding can ride on top of the TCP-IP protocol, so implementation does not require the replacement of communications equipment.
What? Why would you do that? The whole point of RLNC from the article is that it's to avoid retransmissions due to packet loss. Why would you put that on top of a streaming protocol like TCP/IP that's got all the flow control and retry logic happening under the covers? Surely you'd run RLNC over UDP!
The RLNC-encoded video was downloaded five times faster than the native video stream time, and the RLNC-encoded video streamed fast enough to be rendered without interruption.
That's probably because you ran that test with RLNC over UDP where there was no flow control and retransmissions. UDP streaming without RLNC is probably just as fast.
does this effectively negate the need for every other packet in a loss-less environment?
I think they are lying.
Many of the details fail under closer examination. It doesn't "use" TCP-IP. It could use a propritary IP stack that is TCP/IP compatible. So it'll use IP addresses and port numbers like a TCP packet would so that switches and routers in the middle wouldn't know or care what it's doing. If they put it on an IPX/SPX core it'd fail to route across the Internet. But it isn't TCP. It doesn't use a TCP compliant stack. It just looks like one to the outside world. It will not re-transmit a lost packet via TCP mechanisms. But it'll work on the same hardware on both ends and software in the middle. You just have to replace the network stack on both ends, which isn't hard. Though they indicate that the only thing it needs is "software" on both ends. Maybe they'll be doing it over actual TCP/IP. That, and the way they keep saying TCP-IP, that includes UDP. They don't say TCP, or UDP. And I don't trust them when they keep saying TCP-IP, it should be a slash, not a dash. So is it running over TCP/IP (which could mean UDP)? Or does it run over TCP (which excludes UDP)?
Learn to love Alaska
This is yet another form of forward error correction. The claim is that it doesn't take any extra data to add forward error correction. That seems doubful, since it would violate Shannon's coding theorem.
This was tested against 3% random packet loss. If you have statistically well behaved packet loss due to noise, FEC works great. If you have bursty packet loss due to congestion, not so great.
Seems plausible. I hope the patent reviewers are knowledgable on prior art on this one.
This means my mobile internet speed might soon be up to 10 bps instead of the 2 bps I seem to get at the moment!
Except it's called MPEG video. And it's used for TV.
MPEG also has a mode to recover the errors, but it's expensive, and when you're streaming, who cares? If your link sucks, you don't blame the stream.
And I barely understand those and they go back to 1960...
"Code On" has done well at generating some buzz.
Unfortunately, the only details on their website are of the type "this is awesome", with no description of how the breakthrough works.
http://www.codeontechnologies.com/technology/white-papers/
I just wish they would post actual details on the encoding method. How does it compare to Fountain Codes such as RFC 5053?
so... if all the packets include the last packet and the current one... then all you need to send is the last packet and the rest can be inferred? i.e.
packet 256 contains packet 255 which contains 254 which contains 253?
It's called U.D.P. (The periods help you read it slowly).
Geez! Really, this is an improvement?!
"That way, if the file was split into 10,000 packets, then the transmitter could send out a constant stream of packets module different primes and as soon as the receiver got any 10,000 of them they could use the extended euclidean algorithm to reconstruct the original file."
So if the receiver got 10K copies of the 1st packet and nothing else it could still reconstruct the file? Thats impressive. Which college was this, Hogworts?
The greatness of human accomplishment has always been measured by size. The bigger, the better. Until now. Nanotech. Smart cars. Small is the new big. In the coming months, Hooli will deliver Nucleus, the most sophisticated compression software platform the world has ever seen. Because if we can make your audio and video files smaller, we can make cancer smaller. And hunger. And AIDS.
In over-simplified terms, each RLNC encoded packet sent is encoded using the immediately earlier sequenced packet and randomly generated coefficients, using a linear algebra function. The combined packet length is no longer than either of the two packets from which it is composed. When a packet is lost, the missing packet can be mathematically derived from a later-sequenced packet that includes earlier-sequenced packets and the coefficients used to encode the packet.
Uh... could you simplify it just a little more?
How does a "later-sequenced packet [...] include earlier-sequenced packets"?
systemd is Roko's Basilisk.
so this really doesn't seem like a 'breakthrough'. It's just a new application of existing technologies. http://www.fileformat.info/mir...
Now I can free up 4 of the 5 minutes it used to take burning through my monthly bandwidth to do something constructive.
What if you could actually understand the first sentence of the summary?
Or even the last sentence?
I've been parsing this kind of press release for a long, long time now. I can pretty much tell what we're dealing with by how hard it is to state the advantage of a new approach in narrow and precise language.
That this blurb doesn't even disclose the error model class (error correction is undefined without doing so) suggests that the main advantage of this codec lies more in the targeting of a particular loss model than a general advance in mathematical power.
Any error correction method looks good when fed data that exactly corresponds to the loss model over which it directly optimises.
The innovators of this might have something valuable, but they are clearly trying to construe it as more than it is. This suggests that there are other, equally viable ways to skin this particular cat.
My thoughts exactly. To test this with 3% loss, and no retransmits on existing cell phones, the test must have been over UDP.
The issue I'm having is they're comparing this to http streaming of a movie; implying TCP. Perhaps if they wrote their own TCP layer in the stack to still send retransmits if there is too much packet loss, such that the application can still open a TCP socket (expecting in-order lossless transmission) then it would work; so long as no network gear in between inspects layer 4.
This sounds exactly like a Fountain Code to me, which isn't exactly news.
Like Anonymous Coward, yours were my thoughts exactly. Why would one use TCP to stream video? It's one of the tenants of networking that losing packets is preferable to increasing jitter in the video or audio feed. And off the top of my head, I'd say that there hasn't been a widely used connection-based layer 2 protocol since X.25. Hell, that's why Frame Relay and later ATM were invented - to let the transport layer handle error detection (and retransmission if required). Even Ethernet uses just a CRC for forward error correction - if the receiver can't fix errors, the frame is dropped. It's up to the upper layers do actually do anything about it. And let's not get started about a 3% random error distribution in a wireless link - everyone knows that fading causes a whole stream of consecutive packets to be lost, not just an even statistical distribution of them. Stephen Max Patterson at Network World just proved he isn't qualified to write for Network World... And just a nit for you, AK Marc - if someone says UDP is "running over TCP/IP", tell them to put down the router and step away from the rack. They just aren't qualified.
"A little misunderstanding? Galileo and the Pope had a little misunderstanding."
I think the writer is confused. This sounds like a non-routed layer 2 error-correction protocol for error prone networks, like cell phone data and Wi-Fi. The only relation this has to the Internet is that it can carry TCP/IP traffic, just like Ethernet, Frame Relay, ATM, and any number of other layer 2 protocols can carry TCP/IP.
I think they are using UDP, but didn't want to get into specifics, so the writer screwed it up. UDP is a member of the TCP/IP suite of protocols.
Learn to love Alaska
And just a nit for you, AK Marc - if someone says UDP is "running over TCP/IP", tell them to put down the router and step away from the rack. They just aren't qualified.
How about "UDP is a member of the TCP/IP suite of protocols"? Though most leave off the "suite of protocols" at the end, it's implied. I know lots of people smarter than you that would say "UDP is a subset of TCP/IP" or some other wording to that effect. Even Wikipedia agrees with me. TCP/IP is shorthand for The Internet Protocol Suite, which includes UDP. So UDP "runs over" TCP/IP
Learn to love Alaska
Yeah, they probably are using UDP in some video tests, but I think that is irrelevant. If this is a competing technology to Reed-Solomon encoding, then it is almost certainly a data-link layer protocol and is agnostic to network or session protocols.
From Wikipedia:
Reed–Solomon codes have since found important applications from deep-space communication to consumer electronics. They are prominently used in consumer electronics such as CDs, DVDs, Blu-ray Discs, in data transmission technologies such as DSL and WiMAX, in broadcast systems such as DVB and ATSC, and in computer applications such as RAID 6 systems.
I think the writer's mistake was in seeing everything through Internet-colored glasses. The article specifically says "link layer", not "session layer". TCP is a session layer technology. My best guess from the article is that this is not an end-to-end error correction protocol to reduce IP packet retransmission. It is an error correction protocol to reduce OSI layer 2 packet (or more properly, "frame") retransmission.
If any particular packet can be "recreated" from information in a different packet, I can't figure out how that doesn't halve the amount of data going through the pipe. If it doesn't, can someone tell me how significantly differs from just some great compression applied to the packet to just compress two packets into the size of one?
Or, was that pretty much the point?
It is an error correction protocol to reduce OSI layer 2 packet (or more properly, "frame") retransmission.
But the "frame" doesn't exist end-to-end, but is re-created for each network segment. So their statements that it runs on the endpoints and doesn't require any changes in the middle indicates it is a higher layer protocol. Some of the layer 2 already include FEC. So why have double FEC? (it's bad). It's not double FEC at the same layer, but an application-layer FEC (based on their description). You can have them on different layers because they are correcting different things. L-2 FEC is correcting bit errors from noise or other physical issues. L-7 FEC is correcting lost packets.
But the one thing we do know for sure is that the article is crap. It's detailed when it shouldn't be, but leaves out all useful details. That takes some skill. But skill in what, we aren't sure.
Learn to love Alaska