diff --git a/README.md b/README.md index 05ae570..f185051 100644 --- a/README.md +++ b/README.md @@ -80,7 +80,7 @@ To run stably,pay attention to MTU. ### Full Options ``` 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 usage: @@ -91,13 +91,13 @@ common option,must be same on both sides: -k,--key 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 how long could a packet be held in queue before doing fec,unit: ms - --mode fec-mode,available values: 0,1 ; 0 cost less bandwidth,1 cost less latency + --timeout how long could a packet be held in queue before doing fec,unit: ms,default :8ms + --mode fec-mode,available values: 0,1 ; 0 cost less bandwidth,1 cost less latency(default) --report turn on send/recv report,and set a period for reporting,unit:s advanced options: --mtu 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 + default value:1250 -j,--jitter simulated jitter.randomly delay first packet for 0~ ms,default value:0. do not use if you dont know what it means. -i,--interval scatter each fec group to a interval of ms,to protect burst packet loss. @@ -105,6 +105,9 @@ advanced options: --random-drop simulate packet loss ,unit:0.01%. default value: 0 --disable-obscure disable obscure,to save a bit bandwidth and cpu developer options: + --fifo 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 -i,--interval imin:imax similiar to -i above,but scatter randomly between imin and imax -q,--queue-len max fec queue len,only for mode 0 @@ -114,11 +117,21 @@ developer options: --disable-fec completely disable fec,turn the program into a normal udp tunnel --sock-buf buf size for socket,>=10 and <=10240,unit:kbyte,default:1024 log and help options: - --log-level 0:never 1:fatal 2:error 3:warn + --log-level 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 + +``` +#### `--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 diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index 69ab593..93f7a9a 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -80,7 +80,7 @@ https://github.com/wangyu-/UDPspeeder/releases ### 命令选项 ``` 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 usage: @@ -105,6 +105,9 @@ advanced options: --random-drop simulate packet loss ,unit:0.01%. default value: 0 --disable-obscure disable obscure,to save a bit bandwidth and cpu developer options: + --fifo 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 -i,--interval imin:imax similiar to -i above,but scatter randomly between imin and imax -q,--queue-len max fec queue len,only for mode 0 @@ -158,6 +161,16 @@ UDPspeeder默认情况下会对每个发出的数据包随机填充和异或一 ##### `-q,--queue-len` 编码器在做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参数而不断线 + +`--fifo`选项可以在运行时无缝改变FEC参数,无需重启程序,也不会断线。 + ### 为什么使用之后效果反而变差了? 有可能是你用了mode 0参数,而又没调好参数。 @@ -221,7 +238,7 @@ UDPspeeder和Kcptun配合,UDPspeeder和Kcptun可以并联也可以串联。 并联的情况下,让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/锐速`类似的效果。