From f6c97af8545edacdfbe292b963ef82b9e1d2fb8f Mon Sep 17 00:00:00 2001 From: wangyu- Date: Wed, 8 Nov 2017 15:49:59 -0800 Subject: [PATCH 01/30] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 1864078..e1c5aa0 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ tested on a link with 100ms latency and 10% packet loss at both direction # Supported Platforms Linux host (including desktop Linux,Android phone/tablet, OpenWRT router, or Raspberry PI). -For Windows and MacOS You can run UDPspeeder inside [this](https://github.com/wangyu-/udp2raw-tunnel/releases/download/20170918.0/lede-17.01.2-x86_virtual_machine_image_with_udp2raw_pre_installed.zip) 7.5mb virtual machine image. +For Windows and MacOS You can run UDPspeeder inside [this](https://github.com/wangyu-/udp2raw-tunnel/releases/download/20171108.0/lede-17.01.2-x86_virtual_machine_image.zip) 7.5mb virtual machine image. # How does it work From e91dcf6647448bfc5caf97fdd6204e361bb66523 Mon Sep 17 00:00:00 2001 From: wangyu- Date: Wed, 8 Nov 2017 15:50:31 -0800 Subject: [PATCH 02/30] Update README.zh-cn.md --- doc/README.zh-cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index b5af18c..d1ccb3c 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -51,7 +51,7 @@ client支持多个udp连接,server也支持多个client # 简明操作说明 ### 环境要求 -Linux主机,可以是桌面版,可以是android手机/平板,可以是openwrt路由器,也可以是树莓派。在windows和mac上配合虚拟机可以稳定使用(speeder跑在Linux里,其他应用照常跑在window里,桥接模式测试可用),可以使用[这个](https://github.com/wangyu-/udp2raw-tunnel/releases/download/20170918.0/lede-17.01.2-x86_virtual_machine_image_with_udp2raw_pre_installed.zip)虚拟机镜像,大小只有7.5mb,免去在虚拟机里装系统的麻烦;虚拟机自带ssh server,可以scp拷贝文件,可以ssh进去,可以复制粘贴,root密码123456。 +Linux主机,可以是桌面版,可以是android手机/平板,可以是openwrt路由器,也可以是树莓派。在windows和mac上配合虚拟机可以稳定使用(speeder跑在Linux里,其他应用照常跑在window里,桥接模式测试可用),可以使用[这个](https://github.com/wangyu-/udp2raw-tunnel/releases/download/20171108.0/lede-17.01.2-x86_virtual_machine_image.zip)虚拟机镜像,大小只有7.5mb,免去在虚拟机里装系统的麻烦;虚拟机自带ssh server,可以scp拷贝文件,可以ssh进去,可以复制粘贴,root密码123456。 android版需要通过terminal运行。 From 5774b478fc4b7ac25db6615194f83fd119051ee5 Mon Sep 17 00:00:00 2001 From: wangyu- Date: Wed, 8 Nov 2017 15:54:12 -0800 Subject: [PATCH 03/30] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index e1c5aa0..be4a05d 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ tested on a link with 100ms latency and 10% packet loss at both direction # Supported Platforms Linux host (including desktop Linux,Android phone/tablet, OpenWRT router, or Raspberry PI). -For Windows and MacOS You can run UDPspeeder inside [this](https://github.com/wangyu-/udp2raw-tunnel/releases/download/20171108.0/lede-17.01.2-x86_virtual_machine_image.zip) 7.5mb virtual machine image. +For Windows and MacOS You can run UDPspeeder inside [this](https://github.com/wangyu-/udp2raw-tunnel/releases/download/20171108.0/lede-17.01.2-x86_virtual_machine_image.zip) 7.5mb virtual machine image(make sure network adapter runs at bridged mode). # How does it work From 63a2f923ab461677ca632b2e3a3c7497eb26feaf Mon Sep 17 00:00:00 2001 From: wangyu- Date: Wed, 8 Nov 2017 15:54:54 -0800 Subject: [PATCH 04/30] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index be4a05d..e1c5aa0 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,7 @@ tested on a link with 100ms latency and 10% packet loss at both direction # Supported Platforms Linux host (including desktop Linux,Android phone/tablet, OpenWRT router, or Raspberry PI). -For Windows and MacOS You can run UDPspeeder inside [this](https://github.com/wangyu-/udp2raw-tunnel/releases/download/20171108.0/lede-17.01.2-x86_virtual_machine_image.zip) 7.5mb virtual machine image(make sure network adapter runs at bridged mode). +For Windows and MacOS You can run UDPspeeder inside [this](https://github.com/wangyu-/udp2raw-tunnel/releases/download/20171108.0/lede-17.01.2-x86_virtual_machine_image.zip) 7.5mb virtual machine image. # How does it work From 86b68697e1ab5e327d7c59c7e33b52bf2e34a8a4 Mon Sep 17 00:00:00 2001 From: wangyu- Date: Wed, 8 Nov 2017 15:57:23 -0800 Subject: [PATCH 05/30] Update README.zh-cn.md --- doc/README.zh-cn.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index d1ccb3c..5f02add 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -51,7 +51,9 @@ client支持多个udp连接,server也支持多个client # 简明操作说明 ### 环境要求 -Linux主机,可以是桌面版,可以是android手机/平板,可以是openwrt路由器,也可以是树莓派。在windows和mac上配合虚拟机可以稳定使用(speeder跑在Linux里,其他应用照常跑在window里,桥接模式测试可用),可以使用[这个](https://github.com/wangyu-/udp2raw-tunnel/releases/download/20171108.0/lede-17.01.2-x86_virtual_machine_image.zip)虚拟机镜像,大小只有7.5mb,免去在虚拟机里装系统的麻烦;虚拟机自带ssh server,可以scp拷贝文件,可以ssh进去,可以复制粘贴,root密码123456。 +Linux主机,可以是桌面版,可以是android手机/平板,可以是openwrt路由器,也可以是树莓派。 + +对于windows和mac用户,用虚拟机可以稳定使用(speeder跑在Linux里,其他应用照常跑在window里,桥接模式测试可用)。可以使用[这个](https://github.com/wangyu-/udp2raw-tunnel/releases/download/20171108.0/lede-17.01.2-x86_virtual_machine_image.zip)虚拟机镜像,大小只有7.5mb,免去在虚拟机里装系统的麻烦;虚拟机自带ssh server,可以scp拷贝文件,可以ssh进去,可以复制粘贴,root密码123456。 android版需要通过terminal运行。 From 1a744d69ea1855154541a372b663dc1436eba682 Mon Sep 17 00:00:00 2001 From: wangyu- Date: Wed, 8 Nov 2017 15:59:24 -0800 Subject: [PATCH 06/30] Update README.zh-cn.md --- doc/README.zh-cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index 5f02add..19b3ce8 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -53,7 +53,7 @@ client支持多个udp连接,server也支持多个client ### 环境要求 Linux主机,可以是桌面版,可以是android手机/平板,可以是openwrt路由器,也可以是树莓派。 -对于windows和mac用户,用虚拟机可以稳定使用(speeder跑在Linux里,其他应用照常跑在window里,桥接模式测试可用)。可以使用[这个](https://github.com/wangyu-/udp2raw-tunnel/releases/download/20171108.0/lede-17.01.2-x86_virtual_machine_image.zip)虚拟机镜像,大小只有7.5mb,免去在虚拟机里装系统的麻烦;虚拟机自带ssh server,可以scp拷贝文件,可以ssh进去,可以复制粘贴,root密码123456。 +对于windows和mac用户,在虚拟机中可以稳定使用(speeder跑在Linux里,其他应用照常跑在window里,桥接模式测试可用)。可以使用[这个](https://github.com/wangyu-/udp2raw-tunnel/releases/download/20171108.0/lede-17.01.2-x86_virtual_machine_image.zip)虚拟机镜像,大小只有7.5mb,免去在虚拟机里装系统的麻烦;虚拟机自带ssh server,可以scp拷贝文件,可以ssh进去,可以复制粘贴,root密码123456。 android版需要通过terminal运行。 From 4ca57cf6568fbf255e9c422f98acd1f3346cfb7b Mon Sep 17 00:00:00 2001 From: wangyu- Date: Thu, 9 Nov 2017 01:11:19 -0800 Subject: [PATCH 07/30] Update README.zh-cn.md --- doc/README.zh-cn.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index 19b3ce8..563b415 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -214,6 +214,8 @@ echo mode 0 > fifo.file 如果你只需要多倍发包,可以直接用回V1版,V1版配置更简单,占用内存更小,而且经过了几个月的考验,很稳定。 +提醒:多倍发包只对游戏有意义,因为不会引入额外延迟。 FEC参数`-f20:10`用1.5倍的流量就可以达到好几倍发包的效果。 所以不要用多倍发包来看视频和下载,害人又害己。 + ### 根据网络丢包合理设置FEC参数 默认的FEC参数为-f20:10,对每20个包,额外发送10个冗余包,也就是1.5倍发包。已经可以适应绝大多数的网络情况了,对于10%的网络丢包,可以降低到0.01%以下;对于20%的网络丢包,可以降低到2.5%。 From 37b7eb7282b92bc8bbc6aeee0387b8fa00fef5ff Mon Sep 17 00:00:00 2001 From: wangyu- Date: Thu, 9 Nov 2017 01:47:08 -0800 Subject: [PATCH 08/30] Update README.zh-cn.md --- doc/README.zh-cn.md | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index 563b415..276e460 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -214,7 +214,14 @@ echo mode 0 > fifo.file 如果你只需要多倍发包,可以直接用回V1版,V1版配置更简单,占用内存更小,而且经过了几个月的考验,很稳定。 -提醒:多倍发包只对游戏有意义,因为不会引入额外延迟。 FEC参数`-f20:10`用1.5倍的流量就可以达到好几倍发包的效果。 所以不要用多倍发包来看视频和下载,害人又害己。 +提醒:多倍发包只对游戏有意义,因为不会引入额外延迟。 FEC参数`-f20:10`用1.5倍的流量就可以达到好几倍发包的效果。 所以不要用多倍发包来看视频和下载,害人又害己。 + +### `-f`参数和丢包的关系;是否发包倍数越多效果就越好? +比如`-f20:10`,表示对每20个原始包发送10个冗余包,流量消耗1.5倍。这样,只要30个包中有20个到达,数据就可以被完全恢复。 + +比如`-f1:2`,表示对每1个原始包发送2个冗余包,也就是3倍发包,流量消耗3倍。这样,只要3个包中有1个包到达,数据就可以被完全恢复。 + +1.5倍流量的效果是否差于3倍流量呢? 要做简单的概率计算就可以知道,一般情况下`30个包中有20个到达`的概率远高于`3个包中有1个包到达`的概率。比如在丢包率10%的情况下,`30个包中有20个到达`的概率是 99.99% ,而3个包中有1到达的概率只有99.9%, 所以在这个例子中1.5倍流量的效果远好于3倍流量(丢包率低10倍)。所以不要迷信于多倍发包,并不是消耗的流量倍数更多效果就一定更好。多倍发包的意义基本只在于可以省几毫秒的延迟,只对游戏有用。 对于下载和看视频,FEC不但更省流量,效果也更好。 ### 根据网络丢包合理设置FEC参数 From 69558ab16c6bde0784beca9965db26428641065b Mon Sep 17 00:00:00 2001 From: wangyu- Date: Sat, 11 Nov 2017 00:58:25 -0800 Subject: [PATCH 09/30] Update README.zh-cn.md --- doc/README.zh-cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index 276e460..e651116 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -83,7 +83,7 @@ https://github.com/wangyu-/UDPspeeder/releases `-k` 指定一个字符串,开启简单的异或加密 -如果需要更省流量,请加上`--mode 0`,`--mode 0`模式会牺牲一点点的延迟(默认最多8ms,可调)换取更低的流量消耗。 +如果需要更省流量或更高的下载速度,请加上`--mode 0`,`--mode 0`模式会牺牲一点点的延迟(默认最多8ms,可调)换取更低的流量消耗和更高的吞吐率。 ###### 注意 From 296a84be3c677846bd8cfe8fe8e5b9fe21a9f20a Mon Sep 17 00:00:00 2001 From: wangyu- Date: Sat, 11 Nov 2017 14:12:58 -0800 Subject: [PATCH 10/30] Update README.zh-cn.md --- doc/README.zh-cn.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index e651116..298e6c7 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -233,6 +233,16 @@ echo mode 0 > fifo.file 如果你实在不会配,那么也可以用回V1版。 +### 怎么测网络本身的丢包 + +比如你配置好了OpenVPN+UDPspeeder,但是不知道网络本身的丢包情况。你可以在两边为UDPspeeder加上`--disable-fec`选项,这样FEC就被关闭了。透过这条VPN连接来ping,就可以测出网络本身的丢包。 + +###### NOTE1 +直接ping的结果不准,因为直接ping走的是icmp流量。通过VPN连接来ping才能真实反映出UDP的丢包情况。 + +###### NOTE2 +不要用iperf3来测UDP, 有BUG,结果很离谱。 + ### 根据CPU处理能力来调整FEC参数 FEC算法很吃CPU,初次使用建议关注UDPspeeder的CPU占用。如果CPU被打满,可以在冗余度不变的情况下把FEC分组大小调小,否则的话效果可能很差。 From eb7406e6f3136f69fc7e0a28e328eea69bcabd6d Mon Sep 17 00:00:00 2001 From: wangyu- Date: Sat, 11 Nov 2017 14:18:42 -0800 Subject: [PATCH 11/30] Update README.zh-cn.md --- doc/README.zh-cn.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index 298e6c7..47f335c 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -233,9 +233,9 @@ echo mode 0 > fifo.file 如果你实在不会配,那么也可以用回V1版。 -### 怎么测网络本身的丢包 +### 如何测试网络本身的丢包率 -比如你配置好了OpenVPN+UDPspeeder,但是不知道网络本身的丢包情况。你可以在两边为UDPspeeder加上`--disable-fec`选项,这样FEC就被关闭了。透过这条VPN连接来ping,就可以测出网络本身的丢包。 +比如你配置好了OpenVPN+UDPspeeder,但是不知道网络本身的丢包情况。你可以在两边为UDPspeeder加上`--disable-fec`选项,这样FEC就被关闭了。透过这条VPN连接来ping,就可以测出网络本身的丢包率。 ###### NOTE1 直接ping的结果不准,因为直接ping走的是icmp流量。通过VPN连接来ping才能真实反映出UDP的丢包情况。 From 9152fef47454b641adadaba4a87c2cd0ff495d86 Mon Sep 17 00:00:00 2001 From: wangyu- Date: Sat, 11 Nov 2017 14:29:46 -0800 Subject: [PATCH 12/30] Update README.zh-cn.md --- doc/README.zh-cn.md | 91 +-------------------------------------------- 1 file changed, 2 insertions(+), 89 deletions(-) diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index 47f335c..e34c131 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -188,97 +188,10 @@ echo queue-len 100 > fifo.file echo mode 0 > fifo.file ``` 可以动态改变fec编码器参数。可以从程序的log里看到command是否发送成功。 - # 使用经验 +见: -### 在FEC和多倍发包之间如何选择 - -对于游戏,游戏的流量本身不大,延迟很重要,多倍发包是最佳解决方案,多倍发包不会引入额外的延迟。FEC编码器需要先积攒一些数据,才可以做FEC,延迟无法避免;对于多倍发包,没有这个问题,所以没有延迟。 - -对于其他日常应用(延迟要求一般),在合理配置的情况下,FEC的效果肯定好过多倍发包。不过需要根据网络的最大丢包来配置FEC参数,才能有稳定的效果。如果配置不当,对于--mode 1可能会完全没有效果;对于--mode 0,可能效果会比不用UDPspeeder还差。 - -对于游戏以外的应用,推荐使用FEC。但是,如果FEC版的默认参数在你那边效果很差,而你又不会调,可以先用多倍发包。 - -### V2版如何多倍发包 - -只要在设置-f参数时把x设置为1,fec算法就退化为多倍发包了。例如-f1:1,表示2倍发包,-f1:2表示3倍发包,以此类推。另外建议加上"--mode 1"参数,防止fec编码器试图积攒和合并数据,获得最低的延迟。 - -2倍发包的完整参数: - -``` -./speederv2 -s -l0.0.0.0:4096 -r127.0.0.1:7777 -f1:1 -k "passwd" --mode 1 -./speederv2 -c -l0.0.0.0:3333 -r44.55.66.77:4096 -f1:1 -k "passwd" --mode 1 -``` - -使用了`--mode 1`以后,`--timeout`选项不起作用,所以不用调。 - -如果你只需要多倍发包,可以直接用回V1版,V1版配置更简单,占用内存更小,而且经过了几个月的考验,很稳定。 - -提醒:多倍发包只对游戏有意义,因为不会引入额外延迟。 FEC参数`-f20:10`用1.5倍的流量就可以达到好几倍发包的效果。 所以不要用多倍发包来看视频和下载,害人又害己。 - -### `-f`参数和丢包的关系;是否发包倍数越多效果就越好? -比如`-f20:10`,表示对每20个原始包发送10个冗余包,流量消耗1.5倍。这样,只要30个包中有20个到达,数据就可以被完全恢复。 - -比如`-f1:2`,表示对每1个原始包发送2个冗余包,也就是3倍发包,流量消耗3倍。这样,只要3个包中有1个包到达,数据就可以被完全恢复。 - -1.5倍流量的效果是否差于3倍流量呢? 要做简单的概率计算就可以知道,一般情况下`30个包中有20个到达`的概率远高于`3个包中有1个包到达`的概率。比如在丢包率10%的情况下,`30个包中有20个到达`的概率是 99.99% ,而3个包中有1到达的概率只有99.9%, 所以在这个例子中1.5倍流量的效果远好于3倍流量(丢包率低10倍)。所以不要迷信于多倍发包,并不是消耗的流量倍数更多效果就一定更好。多倍发包的意义基本只在于可以省几毫秒的延迟,只对游戏有用。 对于下载和看视频,FEC不但更省流量,效果也更好。 - -### 根据网络丢包合理设置FEC参数 - -默认的FEC参数为-f20:10,对每20个包,额外发送10个冗余包,也就是1.5倍发包。已经可以适应绝大多数的网络情况了,对于10%的网络丢包,可以降低到0.01%以下;对于20%的网络丢包,可以降低到2.5%。 - -如果你的网络丢包很低,比如在3%以下,可以尝试调低参数。比如-f20:5,也就是1.2倍发包,这个参数已经足够把3%的丢包降低到0.01%以下了。 - -如果网络丢包超过20%,需要把-f20:10调大。 - -如果你实在不会配,那么也可以用回V1版。 - -### 如何测试网络本身的丢包率 - -比如你配置好了OpenVPN+UDPspeeder,但是不知道网络本身的丢包情况。你可以在两边为UDPspeeder加上`--disable-fec`选项,这样FEC就被关闭了。透过这条VPN连接来ping,就可以测出网络本身的丢包率。 - -###### NOTE1 -直接ping的结果不准,因为直接ping走的是icmp流量。通过VPN连接来ping才能真实反映出UDP的丢包情况。 - -###### NOTE2 -不要用iperf3来测UDP, 有BUG,结果很离谱。 - -### 根据CPU处理能力来调整FEC参数 - -FEC算法很吃CPU,初次使用建议关注UDPspeeder的CPU占用。如果CPU被打满,可以在冗余度不变的情况下把FEC分组大小调小,否则的话效果可能很差。 - -比如-f20:10和-f10:5,都是1.5倍的冗余度,而-f20:10的FEC分组大小是30个包,-f10:5的FEC分组大小是15个包。-f20:10更费CPU,但是在一般情况下效果更稳定。把分组调小可以节省CPU。 - -另外,fec分组大小不宜过大,否则不但很耗CPU,还有其他副作用,建议x+y<50。 - -### 改变FEC参数而不断线 - -`--fifo`选项可以在运行时改变FEC参数,无需重启程序,也不会断线。如果你在使用过程中发现网络丢包突然变高,可以动态地把冗余度调大;反之也一样,如果网络变好了,把冗余度调小节省流量。一切都是无缝进行,不会断线,也不会因为改FEC参数导致额外的丢包。 - -### 为什么使用之后效果反而变差了? - -有可能是你用了`--mode 0`参数,而又没调好参数。 - -如果你没有使用`--mode 0`,而确实效果变差了,那很可能是因为你的运营商对UDP有限制。一般看视频和下载都是TCP流量,而用UDPspeeder中转后流量变成了UDP流量,如果运营商对UDP做了限制,就可能导致效果比不用还差。用udp2raw可以解决,udp2raw: https://github.com/wangyu-/udp2raw-tunnel - - -### UDPspeeder和BBR/锐速配合 - -UDPspeeder和BBR/锐速可以配合使用,UDPspeeder工作在IP层负责降低丢包率,BBR/锐速工作在TCP层负责优化拥塞和重传。这种情况下,可以调低UDPspeeder的冗余度,能把丢包率降低到5%以内就可以了,剩下的交给BBR/锐速解决,这样预计可以节省一些流量。如果是UDPspeeder跟Linux默认的Cubic一起用,最少也要把丢包率降低到1%以下才能流畅使用TCP。 - -对下文的`UDPspeeder + openvpn`和`UDPspeeder + openvpn + $***`方法有效。不过有一点区别,具体见下文。 - -### UDPspeeder和Kcptun配合 - -UDPspeeder和Kcptun配合,UDPspeeder和Kcptun可以并联也可以串联。 - -并联的情况下,让kcptun负责加速TCP,UDPspeeder负责加速UDP。见下文的`UDPspeeder + kcptun + $*** 同时加速tcp和udp流量`。 - -串联的情况。UDPspeeder的FEC跟Kcptun自带的相比:可以对两个方向设置不同的FEC参数、有一个更省流量的mode 0模式、可以动态改变FEC参数;但是UDPspeeder本身不优化拥塞和重传算法。所以UDPspeeder和Kcptun也可以配合使用,结合两者的优点。 - -串联时可以关掉Kcptun的FEC,让UDPspeeder接管FEC功能。这样UDPspeeder工作在UDP层负责降低丢包率,Kcptun工作在应用层用kcp算法负责优化拥塞和重传,能起到和`UDPspeeder+BBR/锐速`类似的效果。 - -如果发Issue问Kcptun+UDPspeeder相关的问题,一定要说明是并联还是串联。 +https://github.com/wangyu-/UDPspeeder/wiki/使用经验 # 应用 From 17a42a12180696fe97041a7c748ffe9e353ce000 Mon Sep 17 00:00:00 2001 From: wangyu- Date: Sat, 11 Nov 2017 14:33:20 -0800 Subject: [PATCH 13/30] Update README.zh-cn.md --- doc/README.zh-cn.md | 1 - 1 file changed, 1 deletion(-) diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index e34c131..682a10b 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -189,7 +189,6 @@ echo mode 0 > fifo.file ``` 可以动态改变fec编码器参数。可以从程序的log里看到command是否发送成功。 # 使用经验 -见: https://github.com/wangyu-/UDPspeeder/wiki/使用经验 From 4364a7b789d63da4909ee85bd2439501b218cc3a Mon Sep 17 00:00:00 2001 From: wangyu- Date: Sun, 12 Nov 2017 20:38:37 -0800 Subject: [PATCH 14/30] Update README.zh-cn.md --- doc/README.zh-cn.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index 682a10b..c9f78f2 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -172,12 +172,6 @@ mode 0模式允许你发送的数据包大小超过物理接口的MTU而几乎 ##### `--random-drop` 选项 随机丢包。模拟高丢包的网络环境时使用。 `--random-drop`和`-j`选项一起用,可以模拟高延迟(或者高延迟抖动)高丢包的网络,可用于测试FEC参数在各种网络环境下的表现。 -##### `-k`选项 -指定一个字符串,server/client间所有收发的包都会被异或,改变协议特征,防止UDPspeeder的协议被运营商针对。 - -##### `--disable-obscure` -UDPspeeder默认情况下会对每个发出的数据包随机填充和异或一些字节(4~32字节),这样通过抓包难以发现你发了冗余数据,防止VPS被封。这个功能只是为了小心谨慎,即使你关掉这个功能,基本上也没问题,关掉可以省一些带宽和CPU。 - #### `--fifo` option 用fifo(命名管道)向运行中的程序发送command。例如`--fifo fifo.file`,可用的command有: ``` @@ -188,6 +182,14 @@ echo queue-len 100 > fifo.file echo mode 0 > fifo.file ``` 可以动态改变fec编码器参数。可以从程序的log里看到command是否发送成功。 + +### 以下设置两端设置必须相同。 + +##### `-k`选项 +指定一个字符串,server/client间所有收发的包都会被异或,改变协议特征,防止UDPspeeder的协议被运营商针对。 + +##### `--disable-obscure` +UDPspeeder默认情况下会对每个发出的数据包随机填充和异或一些字节(4~32字节),这样通过抓包难以发现你发了冗余数据,防止VPS被封。这个功能只是为了小心谨慎,即使你关掉这个功能,基本上也没问题,关掉可以省一些带宽和CPU。`--disable-obscure`可以关掉这个功能。 # 使用经验 https://github.com/wangyu-/UDPspeeder/wiki/使用经验 From 363aec12d4b34a3183ca2a602fae54a1ab3d9753 Mon Sep 17 00:00:00 2001 From: wangyu- Date: Sun, 12 Nov 2017 20:40:01 -0800 Subject: [PATCH 15/30] Update README.zh-cn.md --- doc/README.zh-cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index c9f78f2..505a8af 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -149,7 +149,7 @@ fec编码器的工作模式。对于mode 0,编码器会积攒一定数量的pa mode 0更省流量,在丢包率正常的情况下效果和mode 1是一样的;mode 1延迟更低,在极高丢包的情况下表现更好。 -mode 0使用起来可以不用关注mtu,因为fec编码器会帮你把包切分到合理的大小;用mode 1时必须合理设置上层应用的mtu。mode 0模式中--mtu选项决定切分的片段的长度,mode 1模式中--mtu选项只起检查作用,如果超过了--mtu指定的值,数据包会被丢弃。 +mode 0使用起来可以不用关注mtu,因为fec编码器会帮你把包切分到合理的大小;用mode 1时必须合理设置上层应用的mtu。mode 0模式中--mtu选项决定切分的片段的长度,mode 1模式中--mtu选项只起检查作用,如果超过了--mtu指定的值,数据包会仍然会被尝试发送,但是log里会报warning。 mode 0模式的流量消耗基本完全透明。mode 1因为涉及到数据按最大长度对齐,所以流量消耗不是完全可预期。不过就实际使用来看,mode 1消耗的额外流量不多。 mode 1一般会比mode 0多消耗零点几倍的流量,对于在意流量的人,推荐用mode 0。 From e50292bd4a8fbf98978e0b4b0e5715692ebc71c1 Mon Sep 17 00:00:00 2001 From: wangyu- Date: Wed, 15 Nov 2017 20:26:42 -0800 Subject: [PATCH 16/30] Update README.zh-cn.md --- doc/README.zh-cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index 505a8af..5036e0e 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -145,7 +145,7 @@ log and help options: 指定fec编码器在编码时候最多可以引入多大的延迟。越高fec越有效率,加速游戏时调低可以降低延迟。 ##### `--mode` 选项 和 `--mtu`选项 -fec编码器的工作模式。对于mode 0,编码器会积攒一定数量的packet,然后把他们合并再切成等长的片段(切分长度由--mtu指定)。对于mode 1,编码器不会做任何切分,而是会把packet按最大长度对齐,fec冗余包的长度为对齐后的长度(最大长度)。 +`--mode` 选项决定fec编码器的工作模式。对于mode 0,编码器会积攒一定数量的packet,然后把他们合并再切成等长的片段(切分长度由--mtu指定)。对于mode 1,编码器不会做任何切分,而是会把packet按最大长度对齐,fec冗余包的长度为对齐后的长度(最大长度)。 mode 0更省流量,在丢包率正常的情况下效果和mode 1是一样的;mode 1延迟更低,在极高丢包的情况下表现更好。 From d05bcfc2f83a3a7f1b5da0c3de44559bc904d369 Mon Sep 17 00:00:00 2001 From: wangyu- Date: Wed, 15 Nov 2017 20:28:48 -0800 Subject: [PATCH 17/30] Update README.zh-cn.md --- doc/README.zh-cn.md | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index 5036e0e..75bf41b 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -145,17 +145,17 @@ log and help options: 指定fec编码器在编码时候最多可以引入多大的延迟。越高fec越有效率,加速游戏时调低可以降低延迟。 ##### `--mode` 选项 和 `--mtu`选项 -`--mode` 选项决定fec编码器的工作模式。对于mode 0,编码器会积攒一定数量的packet,然后把他们合并再切成等长的片段(切分长度由--mtu指定)。对于mode 1,编码器不会做任何切分,而是会把packet按最大长度对齐,fec冗余包的长度为对齐后的长度(最大长度)。 +`--mode` 选项决定fec编码器的工作模式。对于`mode 0`,编码器会积攒一定数量的packet,然后把他们合并再切成等长的片段(切分长度由--mtu指定)。对于`mode 1`,编码器不会做任何切分,而是会把packet按最大长度对齐,fec冗余包的长度为对齐后的长度(最大长度)。 -mode 0更省流量,在丢包率正常的情况下效果和mode 1是一样的;mode 1延迟更低,在极高丢包的情况下表现更好。 +`mode 0`更省流量,在丢包率正常的情况下效果和mode 1是一样的;`mode 1`延迟更低,在极高丢包的情况下表现更好。 -mode 0使用起来可以不用关注mtu,因为fec编码器会帮你把包切分到合理的大小;用mode 1时必须合理设置上层应用的mtu。mode 0模式中--mtu选项决定切分的片段的长度,mode 1模式中--mtu选项只起检查作用,如果超过了--mtu指定的值,数据包会仍然会被尝试发送,但是log里会报warning。 +`mode 0`使用起来可以不用关注mtu,因为fec编码器会帮你把包切分到合理的大小;用`mode 1`时必须合理设置上层应用的mtu。`mode 0`模式中`--mtu`选项决定切分的片段的长度,`mode 1`模式中`--mtu`选项只起检查作用,如果超过了`--mtu`指定的值,数据包会仍然会被尝试发送,但是log里会报warning。 -mode 0模式的流量消耗基本完全透明。mode 1因为涉及到数据按最大长度对齐,所以流量消耗不是完全可预期。不过就实际使用来看,mode 1消耗的额外流量不多。 mode 1一般会比mode 0多消耗零点几倍的流量,对于在意流量的人,推荐用mode 0。 +`mode 0`模式的流量消耗基本完全透明。`mode 1`因为涉及到数据按最大长度对齐,所以流量消耗不是完全可预期。不过就实际使用来看,`mode 1`消耗的额外流量不多。 `mode 1`一般会比`mode 0`多消耗零点几倍的流量,对于在意流量的人,推荐用`mode 0`。 -mode 0模式数据包一般不会乱序,除非网络本身有严重乱序;mode 1模式被恢复的数据包可能会乱序,不过UDP本来就允许乱序,对绝大多数应用没有影响。mode 0模式反而可以纠正一些乱序情况。 +`mode 0`模式数据包一般不会乱序,除非网络本身有严重乱序;`mode 1`模式被恢复的数据包可能会乱序,不过UDP本来就允许乱序,对绝大多数应用没有影响。`mode 0`模式反而可以纠正一些乱序情况。 -mode 0模式允许你发送的数据包大小超过物理接口的MTU而几乎不引起性能损失(而普通的ip分片做不到这点),目前最高支持到2000字节,2000字节已经可以应对任何应用了,因为一般网络的MTU只有1400多。之所以支持到2000字节是为了省程序内部开的静态buff(静态buff避免malloc提高性能),如果你是开发者,通过重新编译,支持到UDP协议的极限( +`mode 0`模式允许你发送的数据包大小超过物理接口的MTU而几乎不引起性能损失(而普通的ip分片做不到这点),目前最高支持到2000字节,2000字节已经可以应对任何应用了,因为一般网络的MTU只有1400多。之所以支持到2000字节是为了省程序内部开的静态buff(静态buff避免malloc提高性能),如果你是开发者,通过重新编译,支持到UDP协议的极限( 65507字节)也没问题。 ##### `--report`  选项 From 3be2642397b5f5af64ef2d70cb3a1dd7370e3876 Mon Sep 17 00:00:00 2001 From: wangyu- Date: Wed, 15 Nov 2017 20:31:47 -0800 Subject: [PATCH 18/30] Update README.zh-cn.md --- doc/README.zh-cn.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index 75bf41b..91edf46 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -158,6 +158,8 @@ log and help options: `mode 0`模式允许你发送的数据包大小超过物理接口的MTU而几乎不引起性能损失(而普通的ip分片做不到这点),目前最高支持到2000字节,2000字节已经可以应对任何应用了,因为一般网络的MTU只有1400多。之所以支持到2000字节是为了省程序内部开的静态buff(静态buff避免malloc提高性能),如果你是开发者,通过重新编译,支持到UDP协议的极限( 65507字节)也没问题。 +对于`mode 0`模式,为了达到不用关注mtu的效果,`-f x:y`里的x必须>=2。 `mode 0`模式中,x=1是不推荐的用法。 + ##### `--report`  选项 数据发送和接受报告。开启后可以根据此数据推测出包速和丢包率等特征。 From ea03e5f8ec8e832a48c1133468a5ae0c4487543c Mon Sep 17 00:00:00 2001 From: wangyu- Date: Wed, 15 Nov 2017 20:33:21 -0800 Subject: [PATCH 19/30] Update README.zh-cn.md --- doc/README.zh-cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index 91edf46..88f4f8e 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -158,7 +158,7 @@ log and help options: `mode 0`模式允许你发送的数据包大小超过物理接口的MTU而几乎不引起性能损失(而普通的ip分片做不到这点),目前最高支持到2000字节,2000字节已经可以应对任何应用了,因为一般网络的MTU只有1400多。之所以支持到2000字节是为了省程序内部开的静态buff(静态buff避免malloc提高性能),如果你是开发者,通过重新编译,支持到UDP协议的极限( 65507字节)也没问题。 -对于`mode 0`模式,为了达到不用关注mtu的效果,`-f x:y`里的x必须>=2。 `mode 0`模式中,x=1是不推荐的用法。 +对于`mode 0`模式,为了达到不用关注mtu的效果,`-f x:y`里的x必须>=2。 `mode 0`模式中,x=1的情况下编码器会丧失调整mtu的能力,x=1和`mode 0`一起使用是不推荐的用法。 ##### `--report`  选项 数据发送和接受报告。开启后可以根据此数据推测出包速和丢包率等特征。 From 6e6fc62fb8d0c5ee32c80f171163eafee41f81ba Mon Sep 17 00:00:00 2001 From: wangyu- Date: Wed, 15 Nov 2017 20:34:32 -0800 Subject: [PATCH 20/30] Update README.zh-cn.md --- doc/README.zh-cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index 88f4f8e..a0fbe78 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -158,7 +158,7 @@ log and help options: `mode 0`模式允许你发送的数据包大小超过物理接口的MTU而几乎不引起性能损失(而普通的ip分片做不到这点),目前最高支持到2000字节,2000字节已经可以应对任何应用了,因为一般网络的MTU只有1400多。之所以支持到2000字节是为了省程序内部开的静态buff(静态buff避免malloc提高性能),如果你是开发者,通过重新编译,支持到UDP协议的极限( 65507字节)也没问题。 -对于`mode 0`模式,为了达到不用关注mtu的效果,`-f x:y`里的x必须>=2。 `mode 0`模式中,x=1的情况下编码器会丧失调整mtu的能力,x=1和`mode 0`一起使用是不推荐的用法。 +对于`mode 0`模式,为了达到不用关注mtu的效果,`-f x:y`里的x必须>=2。 `mode 0`模式中,x=1的情况下编码器会丧失切分数据包的能力,是不推荐的用法。 ##### `--report`  选项 数据发送和接受报告。开启后可以根据此数据推测出包速和丢包率等特征。 From 8ecc696da5cc574d8d8bc0e875d13f27b8a6d116 Mon Sep 17 00:00:00 2001 From: wangyu- Date: Thu, 16 Nov 2017 03:04:21 -0800 Subject: [PATCH 21/30] Update README.zh-cn.md --- doc/README.zh-cn.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index a0fbe78..4f664a2 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -174,6 +174,9 @@ log and help options: ##### `--random-drop` 选项 随机丢包。模拟高丢包的网络环境时使用。 `--random-drop`和`-j`选项一起用,可以模拟高延迟(或者高延迟抖动)高丢包的网络,可用于测试FEC参数在各种网络环境下的表现。 +##### `-q` 选项 +仅对mode 0模式有用。设置fec编码器的最大队列长度。 比如`-q5`的意思是,在编码器积攒了5个数据包后,就立即发送。合理使用可以改善延迟。在下文的`使用经验`里有提到用`--mode 0 -q1` 来多倍发包。 + #### `--fifo` option 用fifo(命名管道)向运行中的程序发送command。例如`--fifo fifo.file`,可用的command有: ``` From 82a2b3cb9a18d5ef254b6a4506c99f50096c8e9c Mon Sep 17 00:00:00 2001 From: wangyu- Date: Thu, 16 Nov 2017 03:10:37 -0800 Subject: [PATCH 22/30] Update README.zh-cn.md --- doc/README.zh-cn.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index 4f664a2..e07a230 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -175,7 +175,13 @@ log and help options: 随机丢包。模拟高丢包的网络环境时使用。 `--random-drop`和`-j`选项一起用,可以模拟高延迟(或者高延迟抖动)高丢包的网络,可用于测试FEC参数在各种网络环境下的表现。 ##### `-q` 选项 -仅对mode 0模式有用。设置fec编码器的最大队列长度。 比如`-q5`的意思是,在编码器积攒了5个数据包后,就立即发送。合理使用可以改善延迟。在下文的`使用经验`里有提到用`--mode 0 -q1` 来多倍发包。 +仅对mode 0模式有用。设置fec编码器的最大队列长度。 比如`-q5`的意思是,在编码器积攒了5个数据包后,就立即发送。合理使用可以改善延迟。在下文的`使用经验`里有提到用`--mode 0 -q1` 来多倍发包。 + +`-q`和 `--timeout`的作用类似。`-q`决定fec编码器积攒了多少个数据包之后,立即发送。`--timeout`决定编码器收到第一个数据包以后,最多延迟多少毫秒后发送。 + +默认值是200,也就是尽可能多得积攒数据。 + +如果看不懂的话也没关系,不要纠结,建议就用我在`使用经验`里推荐的参数。 #### `--fifo` option 用fifo(命名管道)向运行中的程序发送command。例如`--fifo fifo.file`,可用的command有: From c95e2db1af466740da53ea0c8b4f66186dbb6d36 Mon Sep 17 00:00:00 2001 From: wangyu- Date: Thu, 16 Nov 2017 06:41:26 -0800 Subject: [PATCH 23/30] Update README.zh-cn.md --- doc/README.zh-cn.md | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index e07a230..fd74fd7 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -145,20 +145,12 @@ log and help options: 指定fec编码器在编码时候最多可以引入多大的延迟。越高fec越有效率,加速游戏时调低可以降低延迟。 ##### `--mode` 选项 和 `--mtu`选项 -`--mode` 选项决定fec编码器的工作模式。对于`mode 0`,编码器会积攒一定数量的packet,然后把他们合并再切成等长的片段(切分长度由--mtu指定)。对于`mode 1`,编码器不会做任何切分,而是会把packet按最大长度对齐,fec冗余包的长度为对齐后的长度(最大长度)。 -`mode 0`更省流量,在丢包率正常的情况下效果和mode 1是一样的;`mode 1`延迟更低,在极高丢包的情况下表现更好。 +简单来说`--mode 0`更省流量,没有mtu问题;`--mode 1`可以稍微降低一点延迟,需要考虑mtu;另外还有个`--mode 0 -q1`模式,多倍发包专用,没有延迟,也没有mtu问题,适合游戏。 -`mode 0`使用起来可以不用关注mtu,因为fec编码器会帮你把包切分到合理的大小;用`mode 1`时必须合理设置上层应用的mtu。`mode 0`模式中`--mtu`选项决定切分的片段的长度,`mode 1`模式中`--mtu`选项只起检查作用,如果超过了`--mtu`指定的值,数据包会仍然会被尝试发送,但是log里会报warning。 +见:https://github.com/wangyu-/UDPspeeder/wiki/mode和mtu选项 -`mode 0`模式的流量消耗基本完全透明。`mode 1`因为涉及到数据按最大长度对齐,所以流量消耗不是完全可预期。不过就实际使用来看,`mode 1`消耗的额外流量不多。 `mode 1`一般会比`mode 0`多消耗零点几倍的流量,对于在意流量的人,推荐用`mode 0`。 - -`mode 0`模式数据包一般不会乱序,除非网络本身有严重乱序;`mode 1`模式被恢复的数据包可能会乱序,不过UDP本来就允许乱序,对绝大多数应用没有影响。`mode 0`模式反而可以纠正一些乱序情况。 - -`mode 0`模式允许你发送的数据包大小超过物理接口的MTU而几乎不引起性能损失(而普通的ip分片做不到这点),目前最高支持到2000字节,2000字节已经可以应对任何应用了,因为一般网络的MTU只有1400多。之所以支持到2000字节是为了省程序内部开的静态buff(静态buff避免malloc提高性能),如果你是开发者,通过重新编译,支持到UDP协议的极限( -65507字节)也没问题。 - -对于`mode 0`模式,为了达到不用关注mtu的效果,`-f x:y`里的x必须>=2。 `mode 0`模式中,x=1的情况下编码器会丧失切分数据包的能力,是不推荐的用法。 +对于新手,建议不要纠结这些参数的具体含义,就用我在`使用经验`里推荐的设置,不要乱改参数,尤其是不要改`--mtu`。 ##### `--report`  选项 数据发送和接受报告。开启后可以根据此数据推测出包速和丢包率等特征。 From c5c440245c0e6a448ff3e1c3ea1e59dd9aebf6e4 Mon Sep 17 00:00:00 2001 From: wangyu- Date: Thu, 16 Nov 2017 06:42:20 -0800 Subject: [PATCH 24/30] Update README.zh-cn.md --- doc/README.zh-cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index fd74fd7..f99a02e 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -148,7 +148,7 @@ log and help options: 简单来说`--mode 0`更省流量,没有mtu问题;`--mode 1`可以稍微降低一点延迟,需要考虑mtu;另外还有个`--mode 0 -q1`模式,多倍发包专用,没有延迟,也没有mtu问题,适合游戏。 -见:https://github.com/wangyu-/UDPspeeder/wiki/mode和mtu选项 +具体见,https://github.com/wangyu-/UDPspeeder/wiki/mode和mtu选项 对于新手,建议不要纠结这些参数的具体含义,就用我在`使用经验`里推荐的设置,不要乱改参数,尤其是不要改`--mtu`。 From f2d9deb2a357045b5942245cc9a9c72ecf514116 Mon Sep 17 00:00:00 2001 From: wangyu- Date: Thu, 16 Nov 2017 10:09:47 -0800 Subject: [PATCH 25/30] Update README.zh-cn.md --- doc/README.zh-cn.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index f99a02e..d76d720 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -79,7 +79,7 @@ https://github.com/wangyu-/UDPspeeder/releases ###### 备注: -`-f20:10` 表示对每20个原始数据发送10个冗余包。`-f20:10` 和`-f 20:10`都是可以的,空格可以省略,对于所有的单字节option都是如此。对于双字节option,例如后面的`--mode 0`和`--mtu 1200`,空格不可以省略。 +`-f20:10` 表示对每20个原始数据发送10个冗余包。`-f20:10` 和`-f 20:10`都是可以的,空格可以省略,对于所有的单字节option都是如此。对于双字节option,例如`--mode 0`,空格不可以省略。 `-k` 指定一个字符串,开启简单的异或加密 @@ -87,7 +87,7 @@ https://github.com/wangyu-/UDPspeeder/releases ###### 注意 -要为UDPspeeder加速的应用设置好MTU(不是在UDPspeeder中,是在被加速的应用中),建议设置为1200。 另外,如果被加速的应用不能调整MTU,也可以在UDPspeeder中通过`--mode 0 --mtu 1200`设置MTU。关于`--mode 0`和`--mtu`的具体解释请看下文。 +要为UDPspeeder加速的应用设置好MTU(不是在UDPspeeder中,是在被加速的应用中),建议设置为1200。 另外,如果被加速的应用不能调整MTU,你可以给UDPspeeder 加上`--mode 0` 参数,这样基本可以解决任何MTU问题。`--mode 0`参数的含义,请看后文。 # 进阶操作说明 From 5024a02d206ba2e1419b820758b397f766b844f9 Mon Sep 17 00:00:00 2001 From: wangyu- Date: Thu, 16 Nov 2017 10:12:32 -0800 Subject: [PATCH 26/30] Update README.zh-cn.md --- doc/README.zh-cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index d76d720..eddfe53 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -87,7 +87,7 @@ https://github.com/wangyu-/UDPspeeder/releases ###### 注意 -要为UDPspeeder加速的应用设置好MTU(不是在UDPspeeder中,是在被加速的应用中),建议设置为1200。 另外,如果被加速的应用不能调整MTU,你可以给UDPspeeder 加上`--mode 0` 参数,这样基本可以解决任何MTU问题。`--mode 0`参数的含义,请看后文。 +要为UDPspeeder加速的应用设置好MTU(不是在UDPspeeder中,是在被加速的应用中),建议设置为1200。 另外,如果被加速的应用不能调整MTU,你可以给UDPspeeder 加上`--mode 0` 参数,这样基本可以解决任何MTU问题。`--mode 0`参数的含义,请看后文。 # 进阶操作说明 From 7713cf0c15103b9805c4c7cfd7f39aa54496bd11 Mon Sep 17 00:00:00 2001 From: wangyu- Date: Thu, 16 Nov 2017 10:18:16 -0800 Subject: [PATCH 27/30] Update README.zh-cn.md --- doc/README.zh-cn.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index eddfe53..763c2d9 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -83,11 +83,12 @@ https://github.com/wangyu-/UDPspeeder/releases `-k` 指定一个字符串,开启简单的异或加密 -如果需要更省流量或更高的下载速度,请加上`--mode 0`,`--mode 0`模式会牺牲一点点的延迟(默认最多8ms,可调)换取更低的流量消耗和更高的吞吐率。 +如果需要更省流量或更高的下载速度,请加上`--mode 0`,`--mode 0`模式会牺牲一点点的延迟(默认最多8ms,可调)换取更低的流量消耗和更高的吞吐率。另外`--mode 0`模式可以解决MTU问题。 ###### 注意 +如果你没有使用`--mode 0`模式,那么你需要为UDPspeeder加速的应用设置好MTU(不是在UDPspeeder中,是在被加速的应用中),建议设置为1200。 -要为UDPspeeder加速的应用设置好MTU(不是在UDPspeeder中,是在被加速的应用中),建议设置为1200。 另外,如果被加速的应用不能调整MTU,你可以给UDPspeeder 加上`--mode 0` 参数,这样基本可以解决任何MTU问题。`--mode 0`参数的含义,请看后文。 +如果被加速的应用不能调整MTU,而你又确实遇到了MTU问题,那就只能使用`--mode 0`模式了。 # 进阶操作说明 From 680f1273508990a733ce37c1ba5276d0e10342a9 Mon Sep 17 00:00:00 2001 From: wangyu- Date: Thu, 16 Nov 2017 10:28:57 -0800 Subject: [PATCH 28/30] Update README.zh-cn.md --- doc/README.zh-cn.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index 763c2d9..eb06ac6 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -79,7 +79,7 @@ https://github.com/wangyu-/UDPspeeder/releases ###### 备注: -`-f20:10` 表示对每20个原始数据发送10个冗余包。`-f20:10` 和`-f 20:10`都是可以的,空格可以省略,对于所有的单字节option都是如此。对于双字节option,例如`--mode 0`,空格不可以省略。 +`-f20:10`表示对每20个原始数据发送10个冗余包。`-f20:10` 和`-f 20:10`都是可以的,空格可以省略,对于所有的单字节option都是如此。对于双字节option,例如后面会提到的`--mode 10`,空格不可以省略。 `-k` 指定一个字符串,开启简单的异或加密 @@ -143,21 +143,20 @@ log and help options: ##### `-f` 选项 设置fec参数,影响数据的冗余度。 ##### `--timeout` 选项 -指定fec编码器在编码时候最多可以引入多大的延迟。越高fec越有效率,加速游戏时调低可以降低延迟。 - +指定fec编码器在编码时候最多可以引入多大的延迟。越高fec越有效率,调低可以降低延迟,但是会牺牲效率。 ##### `--mode` 选项 和 `--mtu`选项 -简单来说`--mode 0`更省流量,没有mtu问题;`--mode 1`可以稍微降低一点延迟,需要考虑mtu;另外还有个`--mode 0 -q1`模式,多倍发包专用,没有延迟,也没有mtu问题,适合游戏。 +简单来说`--mode 0`更省流量,没有mtu问题;`--mode 1`可以稍微降低一点延迟,需要考虑mtu;另外还有个`--mode 0 -q1`模式,多倍发包专用,没有延迟,也没有mtu问题,适合游戏,但是最耗流量。 具体见,https://github.com/wangyu-/UDPspeeder/wiki/mode和mtu选项 对于新手,建议不要纠结这些参数的具体含义,就用我在`使用经验`里推荐的设置,不要乱改参数,尤其是不要改`--mtu`。 ##### `--report`  选项 -数据发送和接受报告。开启后可以根据此数据推测出包速和丢包率等特征。 +数据发送和接受报告。开启后可以根据此数据推测出包速和丢包率等特征。`--report 10`表示每10秒生成一次报告。 ##### `-i` 选项 -指定一个时间窗口,长度为n毫秒。同一个fec分组的数据在发送时候会被均匀分散到这n毫秒中。可以对抗突发性的丢包。默认值是0,因为这个功能需要用到时钟,在某些虚拟机里时钟不稳定,可能会导致个别包出现非常大的延迟,所以默认关掉了。这个功能很有用,默认参数效果不理想时可以尝试打开。这个选项的跟通信原理上常说的`交错fec` `交织fec`的原理是差不多的。 +指定一个时间窗口,长度为n毫秒。同一个fec分组的数据在发送时候会被均匀分散到这n毫秒中。可以对抗突发性的丢包。默认值是0,因为这个功能需要用到时钟,在某些虚拟机里时钟不稳定,可能会导致个别包出现非常大的延迟,所以默认关掉了。这个功能很有用,默认参数效果不理想时可以尝试打开,比如用`-i 10`。这个选项的跟通信原理上常说的`交错fec` `交织fec`的原理是差不多的。 ##### `-j` 选项 为原始数据的发送,增加一个延迟抖动值。这样上层应用计算出来的RTT方差会更大,以等待后续冗余包的到达,不至于发生在冗余包到达之前就触发重传的尴尬。配合-t选项使用。正常情况下跨国网络本身的延迟抖动就很大,可以不用设-j。这个功能也需要时钟,默认关掉了,不过一般情况应该不需要这个功能。 @@ -174,7 +173,7 @@ log and help options: 默认值是200,也就是尽可能多得积攒数据。 -如果看不懂的话也没关系,不要纠结,建议就用我在`使用经验`里推荐的参数。 +建议不要自己调整这个参数,除非是用我在`使用经验`里推荐给你的形式。 #### `--fifo` option 用fifo(命名管道)向运行中的程序发送command。例如`--fifo fifo.file`,可用的command有: @@ -194,6 +193,7 @@ echo mode 0 > fifo.file ##### `--disable-obscure` UDPspeeder默认情况下会对每个发出的数据包随机填充和异或一些字节(4~32字节),这样通过抓包难以发现你发了冗余数据,防止VPS被封。这个功能只是为了小心谨慎,即使你关掉这个功能,基本上也没问题,关掉可以省一些带宽和CPU。`--disable-obscure`可以关掉这个功能。 + # 使用经验 https://github.com/wangyu-/UDPspeeder/wiki/使用经验 @@ -203,7 +203,7 @@ https://github.com/wangyu-/UDPspeeder/wiki/使用经验 #### UDPspeeder + OpenVPN加速任何流量,也适用于其他VPN ![image0](/images/Capture2.PNG) -可以和BBR/锐速叠加,不过BBR/锐速部署在VPS上只对从本地到VPS的流量有效,对从本地到第三方服务器的流量无效。 +可以和BBR/锐速叠加,不过BBR/锐速部署在VPS上只对本地和VPS间的流量有效,对从本地和第三方服务器间的流量无效。 需要在服务端开启ipforward和NAT。在客户端改路由表(可以手动修改,也可以由OpenVPN的redirect-gateway选项自动加好)。 From c3786a91d89c8b93896e1cb19deefd547f417983 Mon Sep 17 00:00:00 2001 From: wangyu- Date: Thu, 16 Nov 2017 10:31:11 -0800 Subject: [PATCH 29/30] Update README.zh-cn.md --- doc/README.zh-cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index eb06ac6..3577280 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -79,7 +79,7 @@ https://github.com/wangyu-/UDPspeeder/releases ###### 备注: -`-f20:10`表示对每20个原始数据发送10个冗余包。`-f20:10` 和`-f 20:10`都是可以的,空格可以省略,对于所有的单字节option都是如此。对于双字节option,例如后面会提到的`--mode 10`,空格不可以省略。 +`-f20:10`表示对每20个原始数据发送10个冗余包。`-f20:10` 和`-f 20:10`都是可以的,空格可以省略,对于所有的单字节option都是如此。对于双字节option,例如后面会提到的`--mode 0`,空格不可以省略。 `-k` 指定一个字符串,开启简单的异或加密 From 4706e51fadbfa3972434768054971e33b7f0de44 Mon Sep 17 00:00:00 2001 From: wangyu- Date: Thu, 16 Nov 2017 10:52:01 -0800 Subject: [PATCH 30/30] Update README.zh-cn.md --- doc/README.zh-cn.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index 3577280..0cc869a 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -186,7 +186,7 @@ echo mode 0 > fifo.file ``` 可以动态改变fec编码器参数。可以从程序的log里看到command是否发送成功。 -### 以下设置两端设置必须相同。 +### 以下设置两端必须相同。 ##### `-k`选项 指定一个字符串,server/client间所有收发的包都会被异或,改变协议特征,防止UDPspeeder的协议被运营商针对。