最佳地使用多个接口下载大文件(负载平衡的即兴发挥)

最佳地使用多个接口下载大文件(负载平衡的即兴发挥)

让我们假设一个简单的设置:

  1. 一个具有 2 个接口的 Linux 机箱,每个接口的下载上限为 5 mbps,因此理论上总下载带宽为 10 mbps。

  2. 一个带宽无限的远程服务器可保存 1TB 的文件。

如果我错了,请纠正我,但我的印象是,rsync在这种情况下,通过 ssh 进行的典型作业将绑定到一个接口,因此您会看到高达 5 mbps 的下载速度。

可以探索哪些解决方案来实现 10 mbps?网络配置和软件(可能与 BitTorrent 类似)解决方案都受到欢迎,因为最终目标是实现最佳下载。

答案1

通过研究评论,我找到了两个多路径网络配置选项:

  1. MPTCP(多路径 TCP)——即将被广泛采用的“最先进”解决方案,包含在当前内核中。更多详细信息:https://multipath-tcp.org,感谢 Anx 向我指出这一点。如上所述这里

可以通过与 mptcpd 守护进程捆绑在一起的 mptcpize 命令强制旧版应用程序创建和使用 MPTCP 套接字,而不是 TCP 套接字

  1. 绑定 OpenVPN TAP 设备,如本页所示Youtube 视频

答案2

从逻辑上讲,你不能通过两个 5mbps 接口获得 10 mbps。

这与网络端口通道非常相似。我配置了 4 个端口,每个端口的速率为 100mbps,以为我会获得 400mbps 的速度,但事实并非如此。速度仍然是 100mbps。显然,类似端口通道或您正在做的事情是为了“链路冗余”。链路冗余是指,如果一个接口被数据包堵塞或突然出现故障,它可以切换到第二个接口来传输数据包,然后您可以修复第一个接口。

这也类似于负载平衡,当一个接口变得堵塞时,它可以通过第二个接口发送数据包,以避免加载更多的数据包堵塞第一个接口。

因此您只能看到 5mbps 的下载速度。

相关内容