diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index 099d8eb..4598562 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -139,14 +139,53 @@ mode 0使用起来可以不用关注mtu,因为fec编码器会帮你把包切 # 使用经验 +### FEC还是多倍发包,如何选择 + +对于游戏,游戏的流量本身不大,延迟很重要,多倍发包是最有效的解决方案,多倍发包不会引入额外的延迟。 + +对于其他日常应用(延迟要求一般),在合理配置的情况下,FEC的效果肯定好过多倍发包。不过需要根据网络的最大丢包来配置FEC参数,才能有稳定的效果。如果配置不当,对于--mode 1可能会完全没有效果;对于--mode 0,可能效果会比不用UDPspeeder还差。 + +### V2版如何多倍发包 + +只要在设置-f参数时把x设置为1,fec算法就退化为多倍发包了。例如-f1:1,表示2倍发包,-f1:2表示3倍发包,以此类推。另外可以加上`--mode 0 -q1`参数,防止fec编码器试图积攒和合并数据,获得最低的延迟。 + +2倍发包的完整参数: + +``` +./speederv2 -s -l0.0.0.0:4096 -r127.0.0.1:7777 -f20:10 -k "passwd" +./speederv2 -c -l0.0.0.0:3333 -r44.55.66.77:4096 -f20:10 -k "passwd" +``` + +如果你只需要多倍发包,可以直接用回V1版,V1版配置更简单,占用内存更小,而且经过了几个月的考验,很稳定。 + +### 根据网络丢包合理设置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版。 + +### 根据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,但是在一般情况下效果更稳定。fec分组大小建议设置在50以下,否则不但很耗CPU,还有其他副作用。 + # 应用 #### UDPspeeder + openvpn加速任何流量 如果你只是需要玩游戏,效果预期会kcp/finalspeed方案更好。可以优化tcp游戏的延迟(通过冗余发包,避免了上层的重传)。比如魔兽世界用的是tcp连接。 ![image0](/images/Capture2.PNG) +具体配置见,[UDPspeeder + openvpn config guide](/doc/udpspeeder_openvpn.md). + +另外,这种方案加速TCP时效果可以和BBR叠加,UDPspeeder用来改善丢包率,BBR负责重传,是不错的组合。 + #### UDPspeeder + kcptun/finalspeed + $*** 同时加速tcp和udp流量 -如果你需要用加速的tcp看视频和下载文件,这样效果比vpn方案更好。不论是速度,还是流量的耗费上。 +如果你需要用加速的tcp看视频和下载文件,这样效果比UDPspeeder+vpn方案更好(在没有BBR的情况下)。 ![image0](/images/cn/speeder_kcptun.PNG) #### UDPspeeder + openvpn + $*** 混合方案 @@ -156,6 +195,7 @@ mode 0使用起来可以不用关注mtu,因为fec编码器会帮你把包切 ![image0](/images/cn/speeder_vpn_s.PNG) (也可以把图中的$*** server换成其他的socks5 server,这样连$*** client也不需要了) + # 编译教程 暂时先参考udp2raw的这篇教程,几乎一样的过程。