Performance TCP带宽限制慢VPN速度

Performance TCP带宽限制慢VPN速度,performance,tcp,vpn,throttling,Performance,Tcp,Vpn,Throttling,我的本地ISP为前500 MB数据提供2 MBPS的速度。 之后,速度限制为64 KBPS 我为Android(服务器Linux Centos)定制了一个Android TCP VPN(基于TUN) 达到速度限制后,我的VPN变得非常慢,没有缓冲就看不到youtube。但我已经为Android尝试了一些TCP VPN 在这两个VPN中,即使在达到速度限制后,速度也相当快。我能正确地看到youtube 我已经调查过了。在两个VPN中,一个VPN使用到服务器的双TCP连接,并分割流量,并通过两个不同

我的本地ISP为前500 MB数据提供2 MBPS的速度。 之后,速度限制为64 KBPS

我为Android(服务器Linux Centos)定制了一个Android TCP VPN(基于TUN)

达到速度限制后,我的VPN变得非常慢,没有缓冲就看不到youtube。但我已经为Android尝试了一些TCP VPN 在这两个VPN中,即使在达到速度限制后,速度也相当快。我能正确地看到youtube

我已经调查过了。在两个VPN中,一个VPN使用到服务器的双TCP连接,并分割流量,并通过两个不同的TCP连接发送,如果ISP限制每个TCP连接的速度,这可能会加快速度

但是另一个VPN仍然使用像我的VPN一样的单一TCP连接。但是它仍然很快

1.请告诉我一些想法。在这种情况下,ISP如何限制速度,以及如何像其他两个VPN一样获得最大可能的速度。在我的虚拟专用网中,实现了加密,所以ISP不能像其他两个虚拟专用网那样查看数据

我的ISP限制每个IP的速度?或者它限制每个TCP连接的速度。 我是否需要在Linux服务器内核和Android客户端的TCP设置中修改MTU大小、TCP窗口缩放、发送接收缓冲区大小或任何内容。 因为使用单一TCP连接的VPN也能以良好的速度正常工作

我的意思是,当速度限制在64 KBPS时,这两个VPN可以实现 40-50kbps,这对于Youtube非高清电影来说是可以的

其中,我的VPN只提供5-10 KBPS。但在全速下,我的VPN和其他VPN一样好。VPN或服务器TCP设置中缺少的内容

2.另外,请告诉我何时在服务器和客户端设置TUN MTU值1450或1500…我的TCP VPN工作正常。 但如果我将MTU降低到1350或1370…即使在全网速下,它也会变得非常慢。浏览,youtube都很慢。 正如我所认为的,减少MTU并没有害处。原因可能是什么?令人惊讶的是,在少数手机中,MTU 1450、1500工作正常,但MTU 1350、1300等的速度非常慢。对于其他一些完全不同的手机来说,MTU1350工作得非常好,但MTU1500速度非常慢。所有测试均在同一移动网络中完成。如何解决这个问题

你能把光线聚焦一下吗

多谢各位 pap

关于第二个问题, 当您降低MTU值时,会创建更多的ip数据包。更多的IP数据包意味着更多的报头,这将降低服务器性能。
您应该始终使用最大MTU值,Ethernet的MTU值为1500字节。

这与编程无关,因此与本主题无关。试试superuser.com。除此之外,由于不转发任何可能超过带宽的数据包,因此总带宽受到限制。因此,它独立于TCP连接,不需要查看VPN,也不需要绕过多个TCP连接的限制。感谢您的解释。我注意到了您对第一个问题的建议,从下一次开始,我将在superuser.com上发布它。我使用了android示例TOYVPN,并将其修改为与TCP协议一起使用。保持通MTU 1500;我试图设置TCP套接字属性setsockopt(sock,IPPROTO_TCP,TCP_MAXSEG=1350,但运气不好。它的行为是不可预测的。我见过一些开源VPN的代码,我在读取TUN数据后看到,它正在解析IP数据包并做许多工作……但对我来说,只是从客户端TUN获取数据并写入服务器TUN,反之亦然。我认为我没有做错。(如simpletun.c)任何建议都会非常有用。谢谢教授,我了解你的问题。你是对的,你应该始终将VPN接口的MTU降低1400字节,以防止加密数据包的碎片。我检查了你的c文件,它看起来很好。我想问题的原因是其他的。谢谢你的解释。