Terowongan yang Meningkatkan Kualitas Jaringan Anda pada Lossy Link Latensi Tinggi dengan menggunakan Koreksi Kesalahan Teruskan.
Ketika digunakan sendiri, UDPspeeder hanya meningkatkan koneksi UDP. Namun demikian, jika Anda menggunakan UDPspeeder + VPN berbasis UDP apa pun secara bersamaan, Anda dapat meningkatkan lalu lintas apa pun (termasuk TCP/UDP/ICMP), saat ini OpenVPN/L2TP/ShadowVPN dipastikan didukung。
atau
Asumsikan jaringan lokal Anda ke server Anda lossy. Cukup buat koneksi VPN ke server Anda dengan UDPspeeder + VPN berbasis UDP apa pun, akses server Anda melalui koneksi VPN ini, maka kualitas koneksi Anda akan meningkat secara signifikan. Dengan parameter yang disetel dengan baik, Anda dapat dengan mudah mengurangi tingkat kehilangan paket IP atau UDP/ICMP menjadi kurang dari 0,01%. Selain mengurangi tingkat kehilangan paket, UDPspeeder juga dapat meningkatkan latensi TCP dan kecepatan pengunduhan thread tunggal TCP secara signifikan.
Wiki UDPspeeder
简体中文
diuji pada tautan dengan latensi 100 ms dan kehilangan paket 10% di kedua arah
Host Linux (termasuk Linux desktop, ponsel/tablet Android, router OpenWRT, atau Raspberry PI).
Untuk Windows dan MacOS Anda dapat menjalankan UDPspeeder di dalam image mesin virtual 7,5 MB ini.
UDPspeeder menggunakan FEC (Forward Error Correction) untuk mengurangi tingkat kehilangan paket, dengan mengorbankan bandwidth tambahan. Algoritma FEC disebut Reed-Solomon.
In coding theory, the Reed–Solomon code belongs to the class of non-binary cyclic error-correcting codes. The Reed–Solomon code is based on univariate polynomials over finite fields.
It is able to detect and correct multiple symbol errors. By adding t check symbols to the data, a Reed–Solomon code can detect any combination of up to t erroneous symbols, or correct up to ⌊t/2⌋ symbols. As an erasure code, it can correct up to t known erasures, or it can detect and correct combinations of errors and erasures. Reed–Solomon codes are also suitable as multiple-burst bit-error correcting codes, since a sequence of b + 1 consecutive bit errors can affect at most two symbols of size b. The choice of t is up to the designer of the code, and may be selected within wide limits.
Periksa wikipedia untuk info lebih lanjut, https://en.wikipedia.org/wiki/Reed–Solomon_error_corection
Unduh rilis biner dari https://github.com/wangyu-/UDPspeeder/releases
Asumsikan ip server Anda adalah 44.55.66.77, Anda memiliki layanan yang mendengarkan pada port udp 7777.
# Run at server side:
./speederv2 -s -l0.0.0.0:4096 -r 127.0.0.1:7777 -f20:10 -k " passwd "
# Run at client side
./speederv2 -c -l0.0.0.0:3333 -r44.55.66.77:4096 -f20:10 -k " passwd "
Sekarang menghubungkan ke port UDP 3333 di sisi klien setara dengan menghubungkan ke port 7777 di sisi server, dan koneksi telah ditingkatkan oleh UDPspeeder.
-f20:10
berarti mengirimkan 10 paket redundan untuk setiap 20 paket asli.
-k
mengaktifkan enkripsi XOR sederhana
Lihat panduan konfigurasi UDPspeeder + openvpn.
UDPspeeder V2
git version: 3e248b414c build date: Aug 5 2018 21:59:52
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 <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, default: 8ms
--report <number> turn on send/recv report, and set a period for reporting, unit: s
advanced options:
--mode <number> 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 <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. you typically shouldnt change this value.
-q,--queue-len <number> fec queue len, only for mode 0, fec will be performed immediately after queue is full.
default value: 200.
-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.
-f,--fec x1:y1,x2:y2,.. similiar to -f/--fec above,fine-grained fec parameters,may help save bandwidth.
example: "-f 1:3,2:4,10:6,20:10". check repo for details
--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:
--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
-i,--interval imin:imax similiar to -i above, but scatter randomly between imin and imax
--decode-buf <number> size of buffer of fec decoder,u nit: packet, default: 2000
--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
--fifo
pilihan Gunakan fifo (pipa bernama) untuk mengirimkan perintah ke program yang sedang berjalan. Misalnya --fifo fifo.file
, Anda dapat menggunakan perintah berikut untuk mengubah parameter secara dinamis:
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
Periksa wiki untuk info lebih lanjut:
https://github.com/wangyu-/UDPspeeder/wiki
Anda juga dapat mencoba tinyfecVPN, VPN ringan berperforma tinggi dengan fungsi UDPspeeder bawaan, repo:
https://github.com/wangyu-/tinyfecVPN
Anda dapat menggunakan udp2raw dengan UDPspeeder bersama-sama untuk mendapatkan kecepatan yang lebih baik pada beberapa ISP dengan UDP QoS (UDP throttling), repo:
https://github.com/wangyu-/udp2raw-tunnel