2017-10-19 00:55:25 -07:00
# UDPspeeder
2017-10-19 05:53:38 -07:00
Network Speed-Up Tool. Boost your Connection on a High Lantency High Packet-Loss Link by using Forward Error Correction
2017-10-19 10:22:17 -07:00
When used alone,UDPspeeder speeds-up only udp connection.Nevertheless,if you used UDPspeeder + any UDP based VPN together,you can speed-up any traffic(include tcp/udp/icmp)。
![](/images/en/udpspeeder.PNG)
2017-10-19 00:55:25 -07:00
[简体中文 ](/doc/README.md )
2017-10-19 05:53:38 -07:00
2017-10-19 10:27:00 -07:00
# Efficacy
2017-10-19 10:22:17 -07:00
tested on a link with 100ms latency and 10% packet loss at both direction
### Ping Packet Loss
![](/images/en/ping_compare3.PNG)
2017-10-19 10:27:00 -07:00
### SCP Copy Speed
2017-10-19 10:22:17 -07:00
![](/images/en/scp_compare.PNG)
2017-10-19 10:27:00 -07:00
# Supported Platforms
2017-10-19 05:53:38 -07:00
Linux host (including desktop Linux,Android phone/tablet,OpenWRT router,or Raspberry PI).
Windows and Mac support will be added in furture,before its done,you can run UDPspeeder inside [this ](https://github.com/wangyu-/udp2raw-tunnel/releases/download/20170918.0/lede-17.01.2-x86_virtual_machine_image_with_udp2raw_pre_installed.zip ) 7.5mb virtual machine image.
# How does it work
UDPspeeder use (FEC)Forward Error Correction to defend again packet loss.It improves your connection at the cost of addtional bandwidth.The algorithm for FEC is Reed-Solomon.
2017-10-19 10:22:17 -07:00
# Getting Started
### Installing
Download binary release from https://github.com/wangyu-/UDPspeeder/releases
### Running
Assume your server ip is 44.55.66.77, you have a service listening on udp port 7777.
```bash
# Run at server side:
./speederv2 -s -l0.0.0.0:4096 -r 127.0.0.1:7777
# Run at client side
./speederv2 -c -l0.0.0.0:3333 -r44.55.66.77:4096 -
```
2017-10-19 10:27:00 -07:00
Now connecting to UDP port 3333 at the client side is equivalent to connecting to port 7777 at the server side,and the connection is boosted.
2017-10-19 10:22:17 -07:00
# Advanced Topic
### Usage
```
UDPspeeder V2
git version:f479ca2779 build date:Oct 19 2017 01:37:08
repository: https://github.com/wangyu-/UDPspeeder
usage:
run as client : ./this_program -c -l local_listen_ip:local_port -r server_ip:server_port [options]
run as server : ./this_program -s -l server_listen_ip:server_port -r remote_ip:remote_port [options]
common option,must be same on both sides:
-k,--key < string > key for simple xor encryption. if not set,xor is disabled
main options:
-f,--fec x:y forward error correction,send y redundant packets for every x packets
--timeout < number > how long could a packet be held in queue before doing fec,unit: ms
--mode < number > fec-mode,available values: 0,1 ; 0 cost less bandwidth,1 cost less latency
--report < number > turn on send/recv report,and set a period for reporting,unit:s
advanced options:
--mtu < number > mtu. for mode 0,the program will split packet to segment smaller than mtu_value.
for mode 1,no packet will be split,the program just check if the mtu is exceed.
default value:1250
-j,--jitter < number > simulated jitter.randomly delay first packet for 0~< number > ms,default value:0.
do not use if you dont know what it means.
-i,--interval < number > scatter each fec group to a interval of < number > ms,to protect burst packet loss.
default value:0.do not use if you dont know what it means.
--random-drop < number > simulate packet loss ,unit:0.01%. default value: 0
--disable-obscure < number > disable obscure,to save a bit bandwidth and cpu
developer options:
-j ,--jitter jmin:jmax similiar to -j above,but create jitter randomly between jmin and jmax
-i,--interval imin:imax similiar to -i above,but scatter randomly between imin and imax
-q,--queue-len < number > max fec queue len,only for mode 0
2017-10-19 10:27:00 -07:00
--decode-buf < number > size of buffer of fec decoder,unit:packet,default:2000
2017-10-19 10:22:17 -07:00
--fix-latency < number > try to stabilize latency,only for mode 0
--delay-capacity < number > max number of delayed packets
--disable-fec < number > completely disable fec,turn the program into a normal udp tunnel
--sock-buf < number > buf size for socket,>=10 and < =10240,unit:kbyte,default:1024
log and help options:
--log-level < number > 0:never 1:fatal 2:error 3:warn
4:info (default) 5:debug 6:trace
--log-position enable file name,function name,line number in log
--disable-color disable log color
-h,--help print this help message
```
# Application
2017-10-19 10:27:00 -07:00
## Boost any traffic with UDPspeeder +openvpn
2017-10-19 05:53:38 -07:00
2017-10-19 10:22:17 -07:00
![image_vpn ](/images/en/udpspeeder+openvpn.PNG )