wangyu- / tinyfecVPN

A VPN Designed for Lossy Links, with Build-in Forward Error Correction(FEC) Support. Improves your Network Quality on a High-latency Lossy Link.
MIT License
2.33k stars 459 forks source link

关于--disable-mssfix的作用 #61

Open rockmanx1122 opened 6 years ago

rockmanx1122 commented 6 years ago

大大想问问--disable-mssfix的命令关掉MSS 对TCP 连接的FIX 是什么意思呢?对游戏有什么影响吗?

wangyu- commented 6 years ago

了解下openvpn的mssfix或者iptables的-j TCPMSS --set-mss。再回来看就明白了,跟tinyfecVPN的mssfix原理是一样的。

rockmanx1122 commented 6 years ago

大大你好,我看了看OpenVPN的mssfix,但是我还是有些不太懂,我现在的vps是阿里云香港的丢包率本来就少,所以我主要的发包都是集中在客户端这边(Lede)

我先在的设置是这样子的

客户端: tinyvpn -c -r xx.xx.xx.xx:xxx -f2:4 --timeout 1 --disable-mssfix --sock-buf10240 -disable-obscure

服务端: tinyvpn -s -l xx.xx.xx.xx:xxx -f2:0 --timeout 1 --disable-mssfix --sock-buf10240 -disable-obscure

请问我现在追求的是在mtu两端都是最佳或正确的情况下,延迟最低以及丢包率最小,请问我这样设置有什么问题吗?

@wangyu-

rockmanx1122 commented 6 years ago

大大,看到最近更新了--mssfix,那其实他和我们--mtu有什么区别吗?

wangyu- commented 6 years ago

--mssfix等于openvpn的mssfix,修改tcp连接的mss值,只对tcp有效。 --mtu(mode 0模式下)约等于openvpn的fragment,决定户态数据分片的大小,对任何数据都有效。 --tun-mtu等于openvpn的tun-mtu,决定tun设备的mtu大小(ifconfig看到的),对任何数据都有效。

如果还是不懂的话,去看openvpn的文档吧,还有翻openvpn的mail list;文档和mail list里都能找到很多对这几个选项的解释。

这几个概念不太容易弄清楚,建议用默认参数不要改。

rockmanx1122 commented 6 years ago

谢谢大大,但我还是想请教一下,1250这个值是大大怎么得出来的?而且为什么一般如果实际测试的mtu会是1240呢?

wangyu- commented 6 years ago

1250不是得出来的,也不一定是最好的,只是个能用的值而已。

而且为什么一般如果实际测试的mtu会是1240呢?

为了在mssfix和mtu设置成一样的值的情况下,让mssfix比mtu小一点点,我给mssfix的值额外减了10。你可以认为这不是必须的,正常情况下不减这10也没问题。如果想要准确的1250可以把mssfix设成1260。

sdysj commented 6 years ago

fec-mtu 默认 1250 太低了,我用 tinyfecVPN QUIC 会卡住。改为 --mtu 1400 才正常。

wangyu- commented 6 years ago

fec-mtu 默认 1250 太低了,我用 tinyfecVPN QUIC 会卡住。改为 --mtu 1400 才正常。

这个说法有误导性,--mtu 1250 quic没问题,1250恰恰是为了防止大数据包不通过。

不懂的话就用默认值,想学习的话就去看openvpn mtu相关文档。