Skip to main content
QUICK REVIEW

[论文解读] FlexTOE: Flexible TCP Offload with Fine-Grained Parallelism

Rajath Shashidhara, Timothy Stamler|arXiv (Cornell University)|Oct 21, 2021
Software-Defined Networks and 5G被引用 7
一句话总结

FlexTOE 是一种高性能、灵活的 SmartNIC TCP 卸载引擎,通过细粒度并行处理和段重排序技术,实现 TCP 数据路径的卸载,同时保持与 POSIX 套接字和现有 TCP 栈的兼容性。与 TAS 相比,其 Memcached 吞吐量最高提升 38%,与 Chelsio 相比,主机 CPU 使用率最高降低 81%,即使在资源受限的 SmartNIC 上,其 RPC 性能也具有竞争力。

ABSTRACT

FlexTOE is a flexible, yet high-performance TCP offload engine (TOE) to SmartNICs. FlexTOE eliminates almost all host data-path TCP processing and is fully customizable. FlexTOE interoperates well with other TCP stacks, is robust under adverse network conditions, and supports POSIX sockets. FlexTOE focuses on data-path offload of established connections, avoiding complex control logic and packet buffering in the NIC. FlexTOE leverages fine-grained parallelization of the TCP data-path and segment reordering for high performance on wimpy SmartNIC architectures, while remaining flexible via a modular design. We compare FlexTOE on an Agilio-CX40 to host TCP stacks Linux and TAS, and to the Chelsio Terminator TOE. We find that Memcached scales up to 38% better on FlexTOE versus TAS, while saving up to 81% host CPU cycles versus Chelsio. FlexTOE provides competitive performance for RPCs, even with wimpy SmartNICs. FlexTOE cuts 99.99th-percentile RPC RTT by 3.2$ imes$ and 50% versus Chelsio and TAS, respectively. FlexTOE's data-path parallelism generalizes across hardware architectures, improving single connection RPC throughput up to 2.4$ imes$ on x86 and 4$ imes$ on BlueField. FlexTOE supports C and XDP programs written in eBPF. It allows us to implement popular data center transport features, such as TCP tracing, packet filtering and capture, VLAN stripping, flow classification, firewalling, and connection splicing.

研究动机与目标

  • 为减少数据中心应用中因 TCP 栈处理导致的 CPU 开销,该开销可占每 CPU 核心周期的高达 48%。
  • 在不牺牲灵活性或在恶劣网络条件下鲁棒性的情况下,实现在 SmartNIC 上的完整 TCP 数据路径卸载。
  • 设计一种模块化、数据并行的架构,高效利用性能较弱的 SmartNIC 核心,并支持传输功能的动态自定义。
  • 证明基于 NPU 的 SmartNIC 可实现可扩展的高性能 TCP 卸载,同时保持可扩展性以满足不断演进的数据中心网络需求。

提出的方法

  • 将 TCP 数据路径分解为细粒度、有状态的模块,通过显式通信在数据并行流水线中执行。
  • 实时重排序 TCP 段,实现在流水线各阶段的乱序处理,同时确保向应用程序交付有序段。
  • 将所有数据路径处理(如校验和、分段、重传)卸载到 SmartNIC,仅在主机内存中保留连接状态和控制逻辑。
  • 使用独立的控制平面处理拥塞控制、重传和连接管理,运行在主机或专用 SmartNIC 核心上。
  • 支持 eBPF XDP 程序以实现可扩展性,支持包过滤、VLAN 剥离、流量分类和连接拼接等功能。
  • 采用一次性处理模型,段在 NIC 中不被缓冲,从而最小化延迟和状态开销。

实验结果

研究问题

  • RQ1在不依赖复杂缓冲或控制逻辑的前提下,灵活的 TCP 卸载引擎是否能在性能较弱的 SmartNIC 架构上实现高性能?
  • RQ2细粒度并行处理和段重排序在资源受限的 SmartNIC 上如何提升 TCP 卸载的吞吐量并降低延迟?
  • RQ3与软件 TCP 栈及现有 TOE 解决方案相比,FlexTOE 能在多大程度上降低主机 CPU 使用率?
  • RQ4在如丢包和拥塞爆发等网络压力下,FlexTOE 如何保持鲁棒性?
  • RQ5FlexTOE 的模块化、可扩展设计能否支持数据中心常见传输功能,如数据包捕获、防火墙和连接拼接?

主要发现

  • 与 TAS 软件 TCP 栈相比,Memcached 在 FlexTOE 上的吞吐量最高提升 38%。
  • 与 Chelsio Terminator TOE 相比,FlexTOE 将主机 CPU 使用率最高降低 81%,显著降低了应用程序的资源消耗。
  • 与 Chelsio 相比,FlexTOE 将 99.99 百分位 RPC RTT 降低 3.2 倍;与 TAS 相比,降低 50%,表现出更优的延迟特性。
  • 在 BlueField SmartNIC 上,FlexTOE 的单连接 RPC 吞吐量最高达到 x86 的 4 倍,凸显其在性能较弱架构上的有效性。
  • 在拥塞条件下,FlexTOE 保持了高公平性,在 2,048 个连接下,Jain 公平性指数达到 0.98,而 Linux 仅为 0.36。
  • 在 FlexTOE 中禁用控制平面拥塞控制会使尾部延迟增加 18.8 倍,公平性降低 2 倍,证明其在性能和稳定性中的关键作用。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。