multi path 一般怎么做,测试 TCP 基本惨不忍睹

2023-08-12 19:44:59 +08:00
 nuk

想做一个基于 multi path tcp 的东西,现在是基于 TAP 接口的。 因为想着二层可以偷懒不用重排。

在内网测试 TCP 和 UDP 基本都能有 300Mbps 左右。 接着在公网测试,延迟 150ms ,UDP4 条流有 160Mbps 左右,TCP 大概只有几 Mbps

不知道现在有没有现成的好用的 multi path tcp 的用户态实现,不是基于 UDP 的。

目前只看到有个蓝灯的实现,里面多了重传和基于 RTT 的发送 https://github.com/getlantern/multipath

1459 次点击
所在节点    程序员
6 条回复
pagxir
2023-08-12 20:19:31 +08:00
用一下 bbr 吧。mptcp 不是这么用的
deorth
2023-08-12 20:34:20 +08:00
有个 multipath quic 的 draft ,你可以找找有没有现成的实现
nuk
2023-08-12 21:09:51 +08:00
@deorth 阿里有个 xquic 实现了,但是这个不是基于 TCP 连接的
nuk
2023-08-12 21:28:32 +08:00
@pagxir 这个和 bbr 没关系吧,tcp 单条流最多 70M ,但是只要多条流就可以好几个 70M ,这种场景 bbr 也能加速?
sofukwird
2023-08-13 09:43:24 +08:00
tinc 是只用单核的,所以瓶颈是在 tinc 这里
你可以跑下 tinc 的 iperf 测试看看
但话又说回来,就算 tinc 只能用单核在我电脑上也能和 wireguard-go 用多核的性能差不多
nuk
2023-08-13 15:05:02 +08:00
@sofukwird tinc 跑了 iperf ,大概 500M 左右,wireguard-go 肯定比 tinc 高,因为我用的就是 wireguard-go ,从 windows 连接电信测速线速 1000M 能跑满。但是两个 wireguard-go 之间跑,大概也只能 500M 。
tinc 我试过把加密直接用 memcpy 替换,还是只能 500M 左右,我估摸着是 tap 接口的限制。

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

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

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

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

© 2021 V2EX