【问题标题】:TCP Bandwidth throttling Slow VPN SpeedTCP 带宽限制 VPN 速度慢
【发布时间】:2017-05-16 20:28:36
【问题描述】:

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

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

达到速度限制后,我的 VPN 变得非常慢,如果没有缓冲,我就看不到 youtube。但我已经尝试了一些适用于 Android 的 TCP VPN 在这两个 VPN 中,速度相当快,即使在达到速度限制之后也是如此。我可以正常观看 youtube。

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

但是另一个 VPN 仍然使用单 TCP 连接,例如 My VPN..但它仍然很快。

1. 请给我一些关于 ISP 如何限制速度的想法,在这种情况下,以及如何像其他两个 VPN 一样获得最大可能的速度。在 MY VPN 中实施了加密,因此 ISP 无法像其他两个 VPN 一样看到数据。

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

我的意思是当速度限制为 64 KBPS...这 2 个 VPN 可以实现 40-50 KBPS 对于 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 等......速度非常慢。对于少数其他手机而言,情况完全不同,MTU 1350 工作得非常好,但 MTU 1500 速度非常慢。所有睾丸都在同一个移动网络中完成。如何解决问题

你能不能集中一些光。

谢谢 呸

【问题讨论】:

  • 这与编程无关,因此在这里偏离主题。请改用 superuser.com。除此之外,通过简单地不转发任何会超过带宽的数据包来限制带宽。因此它独立于 TCP 连接,无需查看 VPN,也无需绕过多个 TCP 连接的限制。
  • 感谢您的解释。我注意到您对第一个问题的建议,从下次开始将在 superuser.com 上发布

标签: performance tcp vpn throttling


【解决方案1】:

第二个问题, 当您降低 MTU 值时,会创建更多的 ip 数据包。更多的 IP 数据包意味着更多的标头,它会降低服务器性能。 您应该始终使用最大 MTU 值,对于以太网,它是 1500 字节。

【讨论】:

  • 我使用了安卓示例 TOYVPN 并对其进行了修改以与 TCP 协议一起使用。保持 TUN MTU 1500 ;我尝试设置 TCP 套接字属性 setsockopt(sock, IPPROTO_TCP, TCP_MAXSEG =1350 但没有运气。它的行为是不可预测的。我看过一些开源 VPN 的代码,我在阅读 TUN 数据后看到,它正在解析 IP 数据包并做了很多工作......但对我来说,只是从客户端 TUN 获取数据并写入服务器 TUN,反之亦然。我认为我没有做错。(如在 simpletun.c 中)任何建议都会非常有帮助。谢谢
  • 对不起,我理解你的问题。你是对的,你应该总是 VPN 接口的 MTU 低于 1400 字节,以防止加密数据包的碎片。我检查了你的 c 文件,它看起来不错。我认为问题的原因是别的。
  • 感谢您的解释。
猜你喜欢
  • 1970-01-01
  • 2017-11-20
  • 2022-06-13
  • 1970-01-01
  • 2018-04-25
  • 2016-05-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多