Live data from Hacker News

Increasing wireless network speed by 1000%, by replacing packets with algebra

extremetech.com

31–40 of 45 posts

Re: Increasing wireless network speed by 1000%, by replacing packets with algebra

#31
post #29

I see lots of comments talking about FEC. That's not how the article reads to me. Granted the author (or I?) may be completely out in left field, but here's my take on what it says: Let's suppose you have a mathematical process that outputs a stream of [useful] data. The description of the process is much, much smaller than the output. You can "compress" the data by sending the process (or equation) instead. Think π.…

[deleted]

Re: Increasing wireless network speed by 1000%, by replacing packets with algebra

#32
post #14

Isn't the downside of FEC encoded packets increased latency? Instead of sending each packet immediately, don't you need to accumulate n packets to encode as a group? Or does the math allow incremental encoding? Simple parity is incremental, but the FEC on DSL lines always added 40ms of latency.

Yes, I distinctly recall enabling FEC on poorly performing ADSL links when packet loss was an issue for some ISP customers. It would almost always bump the end point rtt from 8ms to about 30-40ms.

Re: Increasing wireless network speed by 1000%, by replacing packets with algebra

#33
post #14

Isn't the downside of FEC encoded packets increased latency? Instead of sending each packet immediately, don't you need to accumulate n packets to encode as a group? Or does the math allow incremental encoding? Simple parity is incremental, but the FEC on DSL lines always added 40ms of latency.

[deleted]

Re: Increasing wireless network speed by 1000%, by replacing packets with algebra

#34
post #14

Isn't the downside of FEC encoded packets increased latency? Instead of sending each packet immediately, don't you need to accumulate n packets to encode as a group? Or does the math allow incremental encoding? Simple parity is incremental, but the FEC on DSL lines always added 40ms of latency.

>Instead of sending each packet immediately, don't you need to accumulate n packets to encode as a group?

The way coding works is that you divide data in to n data packets and then calculate c coding packets, and then you can lose any c out of (n+c) packets and still reconstruct the data. You need to see all the data packets in a group before you can finish calculating any of the coding packets, but nothing stops you from sending the data packets immediately.

On the other hand, non-hardware-based error correction that allows for recovery from a large amount of data loss is relatively processor intensive, and the processors in a lot of network equipment are very slow. So you can easily see an increase in latency, not because the packets take longer to send, but because the processor in the network equipment is too busy calculating error correction to timely forward your packets.

Re: Increasing wireless network speed by 1000%, by replacing packets with algebra

#37
This looks like Fountain codes: http://en.wikipedia.org/wiki/Fountain_code

Basically, you split your data into blocks, XOR random blocks together and the client can recreate the data by solving the equation of which blocks where XORed with which.

A good tutorial is here: http://blog.notdot.net/2012/01/Damn-Cool-Algorithms-Fountain...

And a fast implementation: http://en.wikipedia.org/wiki/Raptor_code

Re: Increasing wireless network speed by 1000%, by replacing packets with algebra

#38
Has anyone done an experiment to see what simply duplicating every TCP packet sent over wireless does? If you're in a situation where you're limited by random packet loss and not by raw bandwidth, I imagine it could help...

Obviously this is a much weaker and less efficient solution that what is proposed in the paper, but this would be trivial to implement. I believe netem allows you to simulate this.

Re: Increasing wireless network speed by 1000%, by replacing packets with algebra

#39
post #26

Is this likely to be any different from introducing a little error-correction? Also, how were we not doing this already? Also, I need a writer. Whoever wrote this up made it sound WAY cooler than when I explain error correcting codes.

As it says, in wired networks packet loss is almost entirely due to congestion, so adding error-correction is unnecessary - better to just throttle down when you see it.

TCP is old and reliable and there are massive costs associated with switching to anything else. I think that's why we weren't doing this yet, and I think that's why this initiative will fail too.

Re: Increasing wireless network speed by 1000%, by replacing packets with algebra

#40
It's the job of the 802.11 L2 to hide correctable packet loss L3 so most radio link loss isn't passed on to TCP. This could just as well read "the wifi L2 error correction doesn't try hard enough".

This problem is very common but it wants fixing on the L2 and not TCP. Turning up the FEC on the L2 would reduce its capacity even further though since more of the bandwidth is taken up by the FEC (and so does this TCP level FEC).

3G gets it wrong on the other extreme, it pretends to always have 0% packet loss, your packets just sometimes show up 30-100 seconds late and in order.

Post reply on HN