有没有将同个连接使用多 IP 冗余传输的方案

2023-05-08 16:03:30 +08:00
 iqoo

众所周知,和海外服务器通信经常出现丢包的情况。

现有多个空闲机器,如果将这些机器利用起来当做网关,最后在服务端的内网转发到原始服务器上;通信时每个数据包所有网关都发送一遍,本地哪个数据先到就用哪个,通过消耗多倍流量降低丢包概率,是否可行?

丢包大多发生在回程,因此去程通常无需多倍发包,可节省本地的上行带宽。

本地的下行带宽非常充足(千兆网络),即使多个服务器出口带宽都跑满,本地也绰绰有余。例如轻量应用服务器,出口带宽 30Mbps ,即使 3 台跑满也才 90Mbps ,占用不到本地下行的 1/10 。

目前是否有比较成熟的应用方案,可将已有连接自动透明的通过多个 IP 传输。

1508 次点击
所在节点    程序员
5 条回复
tavimori
2023-05-08 18:31:07 +08:00
1. 其实就 TCP 而言,核心不是丢包的问题,而是因为丢包导致速率控制算法只能让 TCP 流维持在很低的速率。这个问题可以通过使用丢包不敏感的速率控制算法来解决,例如在服务端上使用 BBR 作为 TCP 速率控制算法。
2. 相对成熟的方案是 MPTCP ,但是需要在服务端正确的配置 multihome 的网络,并在双端启用 MPTCP 。(看你这个网络结构,可能还涉及到配置多个 TCP 隧道之类的)。
3. 其实从技术上看消耗多倍流量是不经济的,并且丢包其实并不应该影响传输吞吐率。最佳的解决方案是用前向纠错编码 /擦除码技术,但的确没有很成熟的方案。
cheng6563
2023-05-08 19:03:21 +08:00
我记得以前我一开始自己搭机场时有双倍发包的“流量拥堵算法”,确实能解决一些丢包问题。
aliipay
2023-05-08 20:06:10 +08:00
重复发的感觉还不如喷泉码,至少能控制重复的百分比。编解码复杂度是个问题。
humbass
2023-05-08 20:40:43 +08:00
以下方案可以试试:

海外机器上配置多虚拟网卡,分别对应国内的若干个机器,回程的时候同时往若干机器发送信息,哪个先到用那个。
ju0594
2023-05-09 02:47:19 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/938309

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX