Skip to content

Reliably forwards TCP connections using UDP over two network interfaces in parallel.

License

Notifications You must be signed in to change notification settings

levitation-opensource/tcpoverudp2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tcpoverudp2 - TCP over dual UDP: Forward TCP connections using UDP over two network interfaces in parallel

The use case for this software is when you can use two network connections (for example, mobile or wifi), but both of them are unstable and have packet loss issues, and you still want to have a stable and fast internet.

Do both of your available network links suffer from a high packet loss? Do you have a server account in public internet with perl scripting support? Then this tool can provide you a reliable fast TCP (for example, for web proxy + SSH) connectivity - by constantly duplicating all the packets over two interfaces and retrying slow transmissions on links of any quality.

The algorithm sends clones of all packets over two network interfaces concurrently in order to ensure that the forwarded connection works as reliably as possible regardless of intermittent packet loss in either of the interfaces - assuming that the packet loss on either of the interfaces usually happens at unrelated moments.

State

Ready to use. Maintained and in active use.

Usage

Client script for Linux (Windows client example can be found in client.bat):

./tcpoverudp2 --timeout=0.05 \
                 --tcp-listen-port=8128 8122 \
                 --udp-server-addr=your.public.server.com --udp-server-port=8120 \
                 --udp-send-local-addr1=192.168.1.20 --udp-send-local-addr2=192.168.2.15

Server script (Windows client example can be found in server.bat):

./tcpoverudp2 --udp-listen-port=8120 \
                --tcp-forward-addr=public.web.proxy --tcp-forward-port=3128 \
                --tcp-forward-addr=127.0.0.1 --tcp-forward-port=22

Firewall configuration at server side (tcpoverudp2 needs to use two consecutive UDP port numbers):

Open / forward the following __two__ UDP ports:
1. udp-listen-port
2. udp-listen-port + 1

Additional info:

Developed by extending the tcpoverudp.pl "Forward TCP connections over UDP without root" by Jan Kratochvil by adding packet duplication over two network interfaces.

Summary: Forward TCP connections using UDP over two network interfaces in parallel (without root).
License: GNU General Public License ver 2
State: Ready to use. Maintained and in active use.
Source: https://github.com/levitation/tcpoverudp2
See also: Tcpoverudp https://www.jankratochvil.net/project/tcpoverudp/
See also: Duat http://code.google.com/p/duat/
Language: Perl

Analytics