Cloudflare 的人们发布了另一篇很棒的工程博客文章,这次介绍了多路径 TCP (MPTCP),作为 TCP 规范的一个非常有趣的补充。但是他们承认 Linux 支持并不理想,尤其是在客户端。
多路径 TCP 是一种允许 TCP 连接使用多个路径(例如多个有线/无线网络适配器)以实现更高吞吐量和更高冗余的方法。这在理论上非常适合允许更大的吞吐量和冗余,特别是对于同时具有蜂窝数据连接和 WiFi 的移动电话或具有多个有线网络接口的服务器,但在实践中,它仍然不是一个完全成熟的解决方案。
正如 2020 年 Phoenix 上所写的那样,多路径 TCP 在 Linux 5.6 中被合并,从那时起,MPTCP 在内核以及相关的 Linux 网络用户空间组件中看到了更多的改进。
在 Cloudflare 博客文章中,他们承认 macOS 10.10 及更高版本或 iOS 7 及更高版本对 Linux 和 Apple 的支持。Linux 上的 MPTCP 支持对于服务器更可行,但对于当前的客户端支持来说不太理想。
Cloudflare 博客的主要内容包括:
“我发现 MPTCP 非常令人兴奋,它是为数不多的可部署的严肃 TCP 扩展之一。但是,当前的实现是有限的。我的实验表明,当前 MPTCP 可能有用的唯一实际场景是:
– Linux 作为服务器
– macOS/iOS 作为客户端
– “交互式”用例
通过一些努力,Linux 可以用作客户端。
不要误会我的意思,Linux 开发人员为取得今天的成就付出了巨大的努力,但是,在我看来,对于任何严肃的开箱即用的用例,我们还没有达到那个水平。我很乐观地认为 Linux 可以相对较快地开发出一个好的 MPTCP 客户端故事,而且在 BPF 中实现 Path manager 和 Scheduler 的可能性真的很诱人。
时间会证明 MPTCP 是否成功 — 它已经酝酿了 15 年。与此同时,Multi-Path QUIC 正在积极开发中,但现阶段距离可用还很远。
有兴趣的人可以阅读 Cloudflare 工程师 Marek Majkowski 的博客文章全文。
转自 Cloudflare Talks Up Multi-Path TCP But Dings Linux’s Less Than Ideal Support – Phoronix