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,8 +91,8 @@ 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.
@ -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
@ -119,6 +122,16 @@ log and help options:
--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/锐速`类似的效果。