diff --git a/README.md b/README.md index 0bf4072..e25267b 100644 --- a/README.md +++ b/README.md @@ -75,10 +75,73 @@ Now connecting to UDP port 3333 at the client side is equivalent to connecting t `-k` enables simple XOR encryption + # Improves all traffic with OpenVPN + UDPspeeder See [UDPspeeder + openvpn config guide](https://github.com/wangyu-/UDPspeeder/wiki/UDPspeeder-openvpn-config-guide). +# Advanced Topic + +### Full Options +``` +UDPspeeder V2 +git version: 6f55b8a2fc build date: Nov 19 2017 06:11:23 +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 options, 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, default: 8ms + --report turn on send/recv report, and set a period for reporting, unit: s +advanced options: + --mode fec-mode,available values: 0,1; mode 0(default) costs less bandwidth,no mtu problem. + mode 1 usually introduces less latency, but you have to care about mtu. + --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. you typically shouldnt change this value. + -q,--queue-len fec queue len, only for mode 0, fec will be performed immediately after queue is full. + default value: 200. + -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. + default value: 0. do not use if you dont know what it means. + --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 + --decode-buf size of buffer of fec decoder,u nit: packet, default: 2000 + --fix-latency try to stabilize latency, only for mode 0 + --delay-capacity max number of delayed packets + --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 + 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 +``` + + # wiki Check wiki for more info: @@ -86,14 +149,10 @@ https://github.com/wangyu-/UDPspeeder/wiki # Related repo -You can also try tinyfecVPN, a lightweight high-performance VPN with UDPspeeder's function built-in. - -tinyfecVPN's repo: +You can also try tinyfecVPN, a lightweight high-performance VPN with UDPspeeder's function built-in, repo: https://github.com/wangyu-/tinyfecVPN -You can use udp2raw with UDPspeeder together to get better speed on some ISP with UDP QoS(UDP throttling). - -udp2raw's repoļ¼š +You can use udp2raw with UDPspeeder together to get better speed on some ISP with UDP QoS(UDP throttling), repo: https://github.com/wangyu-/udp2raw-tunnel