Learning
토픽 109 / 147·네트워크 응용 및 고급 프로토콜

DPDK (Data Plane Development Kit)

DPDK (Data Plane Development Kit)

고속 패킷 처리를 위한 사용자 공간 라이브러리와 드라이버 모음으로, 커널 네트워크 스택을 우회하여 NIC에서 직접 패킷을 처리함으로써 수백만 pps 처리량과 마이크로초 지연을 달성

목적: 고속 패킷 처리, 커널 우회, 저지연, 네트워크 기능 가속

특징: 커널 우회, 폴링 모드, Zero-Copy, Huge Pages, CPU 코어 전용 할당, PMD(Poll Mode Driver)

핵심 기술

  • UIO/VFIO: NIC를 사용자 공간에서 직접 제어
  • PMD(Poll Mode Driver): 인터럽트 대신 폴링으로 패킷 수신, CPU 전용 사용
  • Huge Pages: 2MB/1GB 페이지로 TLB 미스 감소
  • NUMA 인식: 로컬 메모리 접근 최적화
  • Zero-Copy: 패킷 복사 없이 포인터 전달

동작: ① NIC에서 패킷 수신 → ② DMA로 메모리 직접 전송 → ③ DPDK 애플리케이션이 폴링으로 패킷 획득 → ④ 사용자 공간에서 처리 → ⑤ NIC로 직접 전송

성능: 수천만~수억 pps, 10/40/100 Gbps 라인레이트, 마이크로초 지연

장점: 초고속 처리, 저지연, 커널 오버헤드 제거, 유연한 패킷 처리

단점: CPU 전용 사용(폴링), 복잡한 개발, 일반 소켓 API 불가, 하드웨어 종속성

적용사례: NFV(가상 라우터, 방화벽), 5G UPF, 로드밸런서, 패킷 캡처, DPI, vSwitch(OVS-DPDK)

비교: DPDK(사용자공간/폴링/초고속) vs 커널스택(인터럽트/느림) vs XDP(커널 경량/eBPF)

연관: NFV, XDP, 고속 패킷 처리, 커널 우회, PMD