diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index 5407a9a..099d8eb 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -19,6 +19,8 @@ ![image0](/images/en/fec.PNG) #### 其他功能 +对包的内容和长度做随机化(可以理解为混淆),从抓包看不出你发送了冗余数据,不用担心vps被封。 + 在多个冗余包之间引入延迟(时间可配)来对抗突发性的丢包,避开中间路由器因为瞬时buffer长度过长而连续丢掉所有副本。 模拟一定的延迟抖动(时间可配),这样上层应用计算出来的RTT方差会更大,以等待后续冗余包的到达,不至于发生在冗余包到达之前就触发重传的尴尬。 @@ -111,19 +113,32 @@ log and help options: ``` ### 包发送选项,两端设置可以不同。 只影响本地包发送。 ##### -f 选项 -设置fec参数,影响数据的冗余度 -##### -j 选项 -为原始数据的发送,增加一个延迟抖动值。这样上层应用计算出来的RTT方差会更大,以等待后续冗余包的到达,不至于发生在冗余包到达之前就触发重传的尴尬。配合-t选项使用。正常情况下跨国网络本身的延迟抖动就很大。可以不用设-j +设置fec参数,影响数据的冗余度。 +##### --timeout 选项 +指定fec编码器在编码时候最多可以引入多大的延迟。越高fec越有效率,加速游戏时调低可以降低延迟。 + +##### --mode 选项 +fec编码器的工作模式。对于mode 0,编码器会积攒一定数量的packet,然后把他们合并再切成等长的片段(切分长度由--mtu指定)。对于mode 1,编码器不会做任何切分,而是会把packet按最大长度对齐,fec冗余包的长度为对齐后的长度(最大长度)。 + +mode 0更省流量,在丢包率正常的情况下效果和mode 1是一样的;mode 1延迟更低,在极高丢包的情况下表现更好。 + +mode 0使用起来可以不用关注mtu,因为fec编码器会帮你把包切分到合理的大小。用mode 1时必须合理设置上层应用的mtu。 ##### --report  选项 数据发送和接受报告。开启后可以根据此数据推测出包速和丢包率等特征。 -##### 加强版 -j 选项 -允许给jitter选项设置最大值最小值。在这个区间随机化jitter。如果最大值最小值一样就是模拟延迟。可以模拟高延迟、高jitter的网络环境。 +##### -j 选项 +为原始数据的发送,增加一个延迟抖动值。这样上层应用计算出来的RTT方差会更大,以等待后续冗余包的到达,不至于发生在冗余包到达之前就触发重传的尴尬。配合-t选项使用。正常情况下跨国网络本身的延迟抖动就很大。可以不用设-j + +##### -i 选项 +指定一个时间窗口,长度为n毫秒。同一个fec分组的数据在发送时候会被均匀分散到这n毫秒中。可以对抗突发性的丢包。 + ##### --random-drop 选项 随机丢包。模拟恶劣的网络环境时使用。 +# 使用经验 + # 应用 #### UDPspeeder + openvpn加速任何流量 @@ -139,6 +154,7 @@ log and help options: 实际部署起来比图中看起来的还要简单。不需要改路由表,需要做的只是用openvpn的ip访问$*** server。 ![image0](/images/cn/speeder_vpn_s.PNG) + (也可以把图中的$*** server换成其他的socks5 server,这样连$*** client也不需要了) # 编译教程 暂时先参考udp2raw的这篇教程,几乎一样的过程。