Skip to main content
QUICK REVIEW

[논문 리뷰] FlexTOE: Flexible TCP Offload with Fine-Grained Parallelism

Rajath Shashidhara, Timothy Stamler|arXiv (Cornell University)|2021. 10. 21.
Software-Defined Networks and 5G인용 수 7
한 줄 요약

FlexTOE는 스마트NIC에서 세분화된 병렬 처리와 세그먼트 재정렬을 사용하여 TCP 데이터 경로를 오프로드하면서도 POSIX 소켓과 기존 TCP 스택과의 호환성을 유지하는 고성능, 유연한 TCP 오프로드 엔진이다. 이는 TAS보다 최대 38% 높은 Memcached 스루풋을 달성하고, Chelsio와 비교해 호스트 CPU 사용률을 최대 81% 감소시켜 자원이 제한된 스마트NIC에서도 경쟁력 있는 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 오버head를 줄이기 위해, 이는 최대 48%의 CPU 사이클을 소비할 수 있다.
  • 유연성과 네트워크 환경 악화 상황에서도 견고성을 유지하면서 스마트NIC로 전체 TCP 데이터 경로 오프로드를 가능하게 하기 위해.
  • 약한 스마트NIC 코어를 효율적으로 활용하고, 전송 기능의 동적 커스터마이제이션을 지원하는 모듈식, 데이터 병렬 아키텍처를 설계하기 위해.
  • NPU 기반 스마트NIC가 확장 가능하고 고성능의 TCP 오프로드를 달성하면서도 변화하는 데이터센터 네트워킹 요구사항에 대응할 수 있음을 입증하기 위해.

제안 방법

  • TCP 데이터 경로를 상태 기반의 세분화된 모듈로 분해하여 명시적 통신을 하고 데이터 병렬 파이프라인에서 실행한다.
  • 실시간으로 TCP 세그먼트를 재정렬하여 파이프라인 단계 간의 순서상관없이 처리할 수 있도록 하되, 응용 프로그램에 순서대로 세그먼트를 제공한다.
  • 모든 데이터 경로 처리(예: 체크섬, 세그먼팅, 재전송)를 스마트NIC로 오프로드하고, 연결 상태와 제어 로직은 호스트 메모리에 유지한다.
  • 혼잡도 제어, 재전송, 연결 관리 기능을 별도의 제어 평면으로 분리하여, 호스트 또는 전용 스마트NIC 코어에서 실행한다.
  • 확장성을 위해 eBPF XDP 프로그램을 지원하여 패킷 필터링, VLAN 제거, 흐름 분류, 연결 스플리팅 등의 기능을 가능하게 한다.
  • 세그먼트를 NIC에 버퍼링하지 않는 일회성 처리 모델을 사용하여 지연과 상태 오버헤드를 최소화한다.

실험 결과

연구 질문

  • RQ1약한 스마트NIC 아키텍처에서 복잡한 버퍼링이나 제어 로직에 의존하지 않고도, 민감한 TCP 오프로드 엔진이 고성능을 달성할 수 있는가?
  • RQ2세분화된 병렬 처리와 세그먼트 재정렬이 자원이 제한된 스마트NIC에서 TCP 오프로드의 스루풋 향상과 지연 감소에 어떻게 기여하는가?
  • RQ3FlexTOE는 소프트웨어 TCP 스택과 기존 TOE 솔루션에 비해 호스트 CPU 사용률을 얼마나 줄일 수 있는가?
  • RQ4패킷 손실 및 인카스트 혼잡도와 같은 네트워크 스트레스 상황에서도 FlexTOE는 얼마나 견고한가?
  • RQ5FlexTOE의 모듈식이고 확장 가능한 설계는 패킷 캡처, 방화벽, 연결 스플리팅과 같은 일반적인 데이터센터 전송 기능을 지원할 수 있는가?

주요 결과

  • Memcached는 FlexTOE에서 TAS 소프트웨어 TCP 스택보다 최대 38% 높은 스루풋을 달성한다.
  • FlexTOE는 Chelsio Terminator TOE와 비교해 호스트 CPU 사용률을 최대 81% 감소시켜 응용 프로그램의 자원 소비를 크게 낮춘다.
  • FlexTOE는 Chelsio 대비 99.99번째 백분율 RPC RTT를 3.2배 향상시키고, TAS 대비 50% 향상시켜 뛰어난 지연 특성을 입증한다.
  • BlueField 스마트NIC에서 FlexTOE는 x86 대비 단일 연결에서 최대 4배 높은 RPC 스루풋을 달성하여, 약한 아키텍처에서도 효과적임을 입증한다.
  • 혼잡 상황에서도 높은 공정성을 유지하여, 2,048개의 연결에서 제인의 공정성 지수 0.98를 달성했고, Linux는 0.36에 그친다.
  • FlexTOE의 제어 평면 혼잡도 제어를 비활성화하면 꼬리 지연이 18.8배 증가하고 공정성이 2배 감소하여, 성능과 안정성 확보에 핵심적인 역할을 함을 입증한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.