Project

General

Profile

Actions

FEC tunneling for very lossy links

The open-source https://github.com/wangyu-/UDPspeeder project aims to be a UDP proxy which adds FEC (forward error correction) and interleaving to arbitrary UDP protocols.
This can be used for OCTOI as well, but more testing has to be done with real-life internet connections.

Usage for OCTOI

As UDPspeeder is a proxy service, you'll need to run a server instance on a machine with very stable and loss-free internet connection (like a server in a datacenter).
Ideally, you'll get close to the nearest OCTOI TDM hub (currently Berlin, Germany).

Install UDPspeeder on both machines:

git clone "https://github.com/wangyu-/UDPspeeder" 
cd UDPspeeder
make -j 16

On the server run:

./speederv2 -s -l0.0.0.0:4096 -r 90.187.20.185:10010 -f4:1 --timeout 8 -i 10

90.187.20.185:10010 is the OCTOI TDM hub in this example. You will need to change this to the parameters provided to you.
This will listen on the UDP port 4096 on your server.

On the client run:

./speederv2 -c -l0.0.0.0:4096 -r 138.201.47.85:4096 -f4:1 --timeout 8 -i 10

138.201.47.85:4096 needs to be replaced with your server running UDPspeeder.

Then configure your osmo-e1d instance to connect to localhost:

octoi-client 127.0.0.1 4096

The parameters can then be tweaked to better accommodate your internet connection:

-f4:1 - send 4 redundant packets for every packet
--timeout 8 - wait up to 8ms for the packets
-i 10 - interleave 10ms of packets (order randomly on the wire), this is to help with bursty losses.

If you play around with the parameters, ensure to change both sides at the same time, otherwise very strange things will happen.

Updated by manawyrm 2 months ago · 1 revisions

Add picture from clipboard (Maximum size: 48.8 MB)