This commit is contained in:
wangyu- 2017-10-25 02:29:43 -05:00
commit 0e1b86b237
2 changed files with 37 additions and 7 deletions

View File

@ -80,7 +80,7 @@ To run stably,pay attention to MTU.
### Full Options ### Full Options
``` ```
UDPspeeder V2 UDPspeeder V2
git version:f479ca2779 build date:Oct 19 2017 01:37:08 git version:8e7a8aed92 build date:Oct 25 2017 02:00:54
repository: https://github.com/wangyu-/UDPspeeder repository: https://github.com/wangyu-/UDPspeeder
usage: usage:
@ -91,13 +91,13 @@ common option,must be same on both sides:
-k,--key <string> key for simple xor encryption. if not set,xor is disabled -k,--key <string> key for simple xor encryption. if not set,xor is disabled
main options: main options:
-f,--fec x:y forward error correction,send y redundant packets for every x packets -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 --timeout <number> how long could a packet be held in queue before doing fec,unit: ms,default :8ms
--mode <number> fec-mode,available values: 0,1 ; 0 cost less bandwidth,1 cost less latency --mode <number> fec-mode,available values: 0,1 ; 0 cost less bandwidth,1 cost less latency(default)
--report <number> turn on send/recv report,and set a period for reporting,unit:s --report <number> turn on send/recv report,and set a period for reporting,unit:s
advanced options: advanced options:
--mtu <number> mtu. for mode 0,the program will split packet to segment smaller than mtu_value. --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. for mode 1,no packet will be split,the program just check if the mtu is exceed.
default value:1250 default value:1250
-j,--jitter <number> simulated jitter.randomly delay first packet for 0~<number> ms,default value:0. -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. 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. -i,--interval <number> scatter each fec group to a interval of <number> ms,to protect burst packet loss.
@ -105,6 +105,9 @@ advanced options:
--random-drop <number> simulate packet loss ,unit:0.01%. default value: 0 --random-drop <number> simulate packet loss ,unit:0.01%. default value: 0
--disable-obscure <number> disable obscure,to save a bit bandwidth and cpu --disable-obscure <number> disable obscure,to save a bit bandwidth and cpu
developer options: developer options:
--fifo <string> use a fifo(named pipe) for sending commands to the running program,so that you
can change fec encode parameters dynamically,check readme.md in repository for
supported commands.
-j ,--jitter jmin:jmax similiar to -j above,but create jitter randomly between jmin and jmax -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 -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 -q,--queue-len <number> max fec queue len,only for mode 0
@ -114,11 +117,21 @@ developer options:
--disable-fec <number> completely disable fec,turn the program into a normal udp tunnel --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 --sock-buf <number> buf size for socket,>=10 and <=10240,unit:kbyte,default:1024
log and help options: log and help options:
--log-level <number> 0:never 1:fatal 2:error 3:warn --log-level <number> 0:never 1:fatal 2:error 3:warn
4:info (default) 5:debug 6:trace 4:info (default) 5:debug 6:trace
--log-position enable file name,function name,line number in log --log-position enable file name,function name,line number in log
--disable-color disable log color --disable-color disable log color
-h,--help print this help message -h,--help print this help message
```
#### `--fifo` option
Use a fifo(named pipe) for sending commands to the running program. For example `--fifo fifo.file`,you can use following commands to change parameters dynamically:
```
echo fec 19:9 >fifo.file
echo mtu 1100 >fifo.file
echo timeout 5 >fifo.file
echo queue-len 100 >fifo.file
echo mode 0 >fifo.file
``` ```
### Speed-Up any traffic with OpenVPN+UDPspeeder ### Speed-Up any traffic with OpenVPN+UDPspeeder

View File

@ -80,7 +80,7 @@ https://github.com/wangyu-/UDPspeeder/releases
### 命令选项 ### 命令选项
``` ```
UDPspeeder V2 UDPspeeder V2
git version:99f6099e86 build date:Oct 19 2017 13:35:38 git version:8e7a8aed92 build date:Oct 25 2017 02:00:54
repository: https://github.com/wangyu-/UDPspeeder repository: https://github.com/wangyu-/UDPspeeder
usage: usage:
@ -105,6 +105,9 @@ advanced options:
--random-drop <number> simulate packet loss ,unit:0.01%. default value: 0 --random-drop <number> simulate packet loss ,unit:0.01%. default value: 0
--disable-obscure <number> disable obscure,to save a bit bandwidth and cpu --disable-obscure <number> disable obscure,to save a bit bandwidth and cpu
developer options: developer options:
--fifo <string> use a fifo(named pipe) for sending commands to the running program,so that you
can change fec encode parameters dynamically,check readme.md in repository for
supported commands.
-j ,--jitter jmin:jmax similiar to -j above,but create jitter randomly between jmin and jmax -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 -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 -q,--queue-len <number> max fec queue len,only for mode 0
@ -158,6 +161,16 @@ UDPspeeder默认情况下会对每个发出的数据包随机填充和异或一
##### `-q,--queue-len` ##### `-q,--queue-len`
编码器在做FEC前最多积攒多少个数据包只对mode 0有效。除非是使用下文`V2版如何多倍发包`里面提到的用法,不建议改动。 编码器在做FEC前最多积攒多少个数据包只对mode 0有效。除非是使用下文`V2版如何多倍发包`里面提到的用法,不建议改动。
#### `--fifo` option
用fifo(命名管道)向运行中的程序发送command. 例如`--fifo fifo.file`,可用的command有
```
echo fec 19:9 >fifo.file
echo mtu 1100 >fifo.file
echo timeout 5 >fifo.file
echo queue-len 100 >fifo.file
echo mode 0 >fifo.file
```
可以动态改变fec编码器参数。
# 使用经验 # 使用经验
@ -202,6 +215,10 @@ FEC算法很吃CPU,初次使用建议关注UDPspeeder的CPU占用。如果CPU被
另外fec分组大小不宜过大否则不但很耗CPU,还有其他副作用建议x+y<50 另外fec分组大小不宜过大否则不但很耗CPU,还有其他副作用建议x+y<50
### 改变FEC参数而不断线
`--fifo`选项可以在运行时无缝改变FEC参数无需重启程序也不会断线。
### 为什么使用之后效果反而变差了? ### 为什么使用之后效果反而变差了?
有可能是你用了mode 0参数而又没调好参数。 有可能是你用了mode 0参数而又没调好参数。
@ -221,7 +238,7 @@ UDPspeeder和Kcptun配合,UDPspeeder和Kcptun可以并联也可以串联。
并联的情况下让kcptun负责加速TCP,UDPspeeder负责加速UDP。见下文的`UDPspeeder + kcptun + $*** 同时加速tcp和udp流量` 并联的情况下让kcptun负责加速TCP,UDPspeeder负责加速UDP。见下文的`UDPspeeder + kcptun + $*** 同时加速tcp和udp流量`
串联的情况。UDPspeeder的FEC跟Kcptun自带的相比可以对两个方向设置不通的FEC参数、有一个更省流量的mode 0模式、可以调整的FEC参数多一些但是UDPspeeder本身不优化拥塞和重传算法。所以UDPspeeder和Kcptun也可以配合使用结合两者的优点。 串联的情况。UDPspeeder的FEC跟Kcptun自带的相比可以对两个方向设置不同的FEC参数、有一个更省流量的mode 0模式、可以动态改变FEC参数但是UDPspeeder本身不优化拥塞和重传算法。所以UDPspeeder和Kcptun也可以配合使用结合两者的优点。
串联时可以关掉Kcptun的FEC,让UDPspeeder接管FEC功能。这样UDPspeeder工作在UDP层负责降低丢包率Kcptun工作在应用层用kcp算法负责优化拥塞和重传能起到和`UDPspeeder+BBR/锐速`类似的效果。 串联时可以关掉Kcptun的FEC,让UDPspeeder接管FEC功能。这样UDPspeeder工作在UDP层负责降低丢包率Kcptun工作在应用层用kcp算法负责优化拥塞和重传能起到和`UDPspeeder+BBR/锐速`类似的效果。