FlexTOE:具有细粒度并行性的灵活 TCP 卸载
摘要
FlexTOE 是一种灵活且高性能的面向 SmartNIC 的 TCP 卸载引擎(TOE)。FlexTOE 消除了几乎所有主机数据路径的 TCP 处理,并且完全可定制。FlexTOE 与其他 TCP 协议栈互操作良好,在恶劣网络条件下稳健,并支持 POSIX 套接字。FlexTOE 专注于已建立连接的数据路径卸载,避免了 NIC 中复杂的控制逻辑与包缓冲。FlexTOE 利用 TCP 数据路径的细粒度并行化与段重排序,在弱性能 SmartNIC 架构上实现高性能,同时通过模块化设计保持灵活性。我们在 Agilio-CX40 上将 FlexTOE 与主机 TCP 协议栈 Linux 和 TAS,以及 Chelsio Terminator TOE 进行比较。我们发现,相较于 TAS,Memcached 在 FlexTOE 上扩展性提升高达 38%,而相较 Chelsio 最多节省 81% 的主机 CPU 周期。FlexTOE 为 RPC 提供有竞争力的性能,即便使用弱性能 SmartNIC。FlexTOE 将 99.99 分位 RPC RTT 相较 Chelsio 和 TAS 分别降低 3.2 和 50%。FlexTOE 的数据路径并行性可跨硬件架构推广,在 x86 上单连接 RPC 吞吐提升达 2.4,在 BlueField 上达 4。FlexTOE 支持用 eBPF 编写的 C 与 XDP 程序。它使我们能够实现流行的数据中心传输特性,如 TCP 追踪、包过滤与捕获、VLAN 剥离、流分类、防火墙及连接拼接。
引用
@article{arxiv.2110.10919,
title = {FlexTOE: Flexible TCP Offload with Fine-Grained Parallelism},
author = {Rajath Shashidhara and Timothy Stamler and Antoine Kaufmann and Simon Peter},
journal= {arXiv preprint arXiv:2110.10919},
year = {2022}
}
备注
Published in 19th USENIX Symposium on Networked Systems Design and Implementation (NSDI 22). See https://www.usenix.org/conference/nsdi22/presentation/shashidhara