porech / engarde

A go network utility to create a reliable IP tunnel over multiple connections
GNU General Public License v2.0
276 stars 41 forks source link

Optional Feature suggestion: Implement some form of FEC (reed-solomon) #21

Closed Marctraider closed 4 years ago

Marctraider commented 4 years ago

(Optional, user configurable) Feature suggestion:

Implement some form of FEC (reed-solomon), like TinyFECvpn/udpspeeder with some configurable options (Keep latency low, least intrusive but still some benefit).

Possibly only applied to specific interface, depending on which one might benefit from it. (I know one of my connections have upstream signal issues and this might be of some relief while my other fixed line never has any loss.)

And lets say my 4G connection has a monthly cap, so it would only be a problem for that one, as it would be more bandwidth consumption.

Marctraider commented 4 years ago

Experimented with Udpspeeder a bit, I think it might be a bit excessive to use if already using 3+ wan interfaces.

Also lots of extra overhead and increased latency/lower bandwidth. Probably not a great idea.

Maybe something more simplistic like this would be better: Send each packet twice per connection, that would in theory only halve the bandwidth per WAN.

ghost commented 4 years ago

There is a fork of udpspeeder to apply per interface instead of engarde, if it helps. https://github.com/Llorx/UDPspeeder