diff --git a/doc/README.zh-cn.md b/doc/README.zh-cn.md index 6400d8c..9cceec1 100644 --- a/doc/README.zh-cn.md +++ b/doc/README.zh-cn.md @@ -122,12 +122,12 @@ log and help options: ``` ### 包发送选项,两端设置可以不同。 只影响本地包发送。 -##### -f 选项 +##### `-f` 选项 设置fec参数,影响数据的冗余度。 -##### --timeout 选项 +##### `--timeout` 选项 指定fec编码器在编码时候最多可以引入多大的延迟。越高fec越有效率,加速游戏时调低可以降低延迟。 -##### --mode 选项 和 --mtu选项 +##### `--mode` 选项 和 `--mtu`选项 fec编码器的工作模式。对于mode 0,编码器会积攒一定数量的packet,然后把他们合并再切成等长的片段(切分长度由--mtu指定)。对于mode 1,编码器不会做任何切分,而是会把packet按最大长度对齐,fec冗余包的长度为对齐后的长度(最大长度)。 mode 0更省流量,在丢包率正常的情况下效果和mode 1是一样的;mode 1延迟更低,在极高丢包的情况下表现更好。 @@ -136,25 +136,25 @@ mode 0使用起来可以不用关注mtu,因为fec编码器会帮你把包切 mode 0模式的流量消耗基本完全透明。mode 1因为涉及到数据按最大长度对齐,所以流量消耗不是完全可预期。不过就实际使用来看,mode 1消耗的额外流量不多。 -##### --report  选项 +##### `--report`  选项 数据发送和接受报告。开启后可以根据此数据推测出包速和丢包率等特征。 -##### -i 选项 +##### `-i` 选项 指定一个时间窗口,长度为n毫秒。同一个fec分组的数据在发送时候会被均匀分散到这n毫秒中。可以对抗突发性的丢包。默认值是0,因为这个功能需要用到时钟,在某些虚拟机里时钟不稳定,可能会导致个别包出现非常大的延迟,所以默认关掉了。这个功能很有用,默认参数效果不理想时可以尝试打开。 -##### -j 选项 +##### `-j` 选项 为原始数据的发送,增加一个延迟抖动值。这样上层应用计算出来的RTT方差会更大,以等待后续冗余包的到达,不至于发生在冗余包到达之前就触发重传的尴尬。配合-t选项使用。正常情况下跨国网络本身的延迟抖动就很大,可以不用设-j。这个功能也需要时钟,默认关掉了,不过一般情况应该不需要这个功能。 -##### --random-drop 选项 +##### `--random-drop` 选项 随机丢包。模拟恶劣的网络环境时使用。如果你的网络现在没有多大丢包,但是你想测试一下高丢包环境下各种FEC参数的表现,可以开这个选项。 -##### -k选项 +##### `-k`选项 指定一个字符串,server/client间所有收发的包都会被异或,改变协议特征,防止UDPspeeder的协议被运营商针对。 -##### --disable-obscure +##### `--disable-obscure` UDPspeeder默认情况下会对每个发出的数据包随机填充和异或一些字节(4~32字节),这样通过抓包难以发现你发了冗余数据,防止VPS被封。这个功能只是为了小心谨慎,即使你关掉这个功能,基本上也没问题,关掉可以省一些带宽和CPU。 -##### -q,--queue-len +##### `-q,--queue-len` 编码器在做FEC前最多积攒多少个数据包,只对mode 0有效。除非是使用下文`V2版如何多倍发包`里面提到的用法,不建议改动。 # 使用经验