国际下载速度问题

网络工程 速度 拓扑
2022-02-14 20:11:07

我在新加坡和加拿大有 2 台服务器。

两者都通过了 ~100mbit/sec 的本地速度测试,但在它们之间传输文件时,速度可能低至 20 kb /sec。

新加坡服务器仍然可以以合理的速度(~50mbit/sec)传输到例如日本,而日本又具有与加拿大相似的速度。因此,在构建“中继服务器”的“链”时,我可以获得相当不错的速度(即使我必须多次复制文件)。为什么会这样?为什么新加坡和加拿大之间的直接连接速度较慢?

那么在构建“链式解决方案”时,有没有办法专业地计算速度而不是猜测地理点呢?

对于我忽略的此类问题,是否有任何常见的解决方案?

1个回答

延迟计算的实际规则是每 100 公里约 0.3 毫秒。换句话说,对于新加坡和加拿大之间的距离(13 000 公里直线),延迟应该在 390 毫秒左右。我认为它有点低。您可以使用 ping 来测量它。输出将为您提供 RTT。获得该值后,您可以使用以下计算器:

TCP计算器

因此,如果我们认为您确实有 100Mbit/s 的可用国际流量和 64kbyte 的默认 TCP 窗口大小,您将获得以下速度:

  • BDP (100 Mbit/sec, 390.0 ms) = 4.88 MByte

  • 需要 tcp 缓冲区以达到 100 Mbps,RTT 为 390.0 ms >= 4760.7 KByte

  • TCP 窗口为 64 KB 和 RTT 为 390.0 ms <= 1.34 Mbit/sec 的最大吞吐量。

为了提高传输速度,您必须:

  • 增加 TCP 窗口大小(确保启用窗口缩放)
  • 优化缓冲区
  • 尽可能减少数据包丢失和延迟(通过向您的 ISP 提出案例)

如果您真的想探索测量优化 TCP 性能的主题,我建议您阅读RFC-6349