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 18.104.22.168:10010 -f4:1 --timeout 8 -i 10
22.214.171.124:10010is 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 126.96.36.199:4096 -f4:1 --timeout 8 -i 10
188.8.131.52:4096needs 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.