SunBK201's recent timeline updates
SunBK201

SunBK201

V2EX member #544456, joined on 2021-05-04 22:30:44 +08:00
Today's activity rank 13783
3 G 29 S 6 B
SunBK201's recent replies
@SunBK201 或者 go run . -m TPROXY --rewrite-mode GLOBAL --include-lan-routes --bpf-offload
@macscsbf 更正下命令,应该使用命令 go run . -m TPROXY --rewrite-mode DIRECT --include-lan-routes --bpf-offload
@macscsbf 虚拟机没问题,我就是用的 UTM 复现的
@macscsbf 需求是用 eBPF 加速 socket 铰接转发,主要是用在 TCP socket 代理上,从一个 socket 上读到数据并写到另一个 socket 上,现在主流做法是用 splice 来做,我想试试 eBPF redirect 能够加速,理论上除了能够零拷贝还能节省系统调用带来的用户态与内核态之间的上下文切换开销。

如果要测试可以参考下我的代码:
1. eBPF 程序 https://github.com/SunBK201/UA3F/blob/v3.3.0/src/internal/bpf/sockmap/sockmap.c
2. 核心就是保存 2 个 socket 的 cookie 到 SOCKHASH ,然后用 `bpf_sk_redirect_hash` 转发
3. 可以在本机使用 iperf3 或者 netperf 做吞吐测试
4. 如果要完整复现可能比较麻烦,因为我还用到了 TPORXY ,可以直接用我的项目试试 https://github.com/SunBK201/UA3F ,`go run . -m TPROXY --include-lan-routes`。这个命令会接管本机的所有 TCP 连接并进行代理,然后在本机使用 iperf3 请求到另一台机器即可。
@swananan 感谢回复。其实我之前就是用 splice 做的,用 eBPF 就是想看看能不能再把转发性能提升一些,目前测试看来对于发送时延和 CPU 负载都能有 20% 到 30% 的优化提升,不过目前看来可能只适用于网络接口带宽收发对等的场景。
Feb 20
Replied to a topic by sxmad macOS Mac 上好用的 markdown 预览插件
c3VuYmsyMDFnbUBnbWFpbC5jb20= 感谢
@unused 这个方法刚刚我也发现了,但是 ih 似乎需要比较新的 nftables 版本,旧版本不支持🥲
@birdvdsk 我也有想到,但是只用 flag 可能有漏报吧
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   740 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 20ms · UTC 21:35 · PVG 05:35 · LAX 14:35 · JFK 17:35
♥ Do have faith in what you're doing.