· Akritai Engineering · Technology · 8 min read
Kernel Bypass 네트워킹의 이해
OS 커널을 우회하여 네트워크 패킷을 직접 처리하는 Kernel Bypass 기술의 원리와 Akritai 엔진에서의 활용을 설명합니다.
Kernel Bypass란?
일반적으로 네트워크 패킷은 NIC → 커널 드라이버 → 커널 네트워크 스택 → 소켓 버퍼 → 사용자 애플리케이션의 경로를 거칩니다. 이 과정에서 인터럽트 처리, 프로토콜 파싱, 메모리 복사가 반복되며 수~수십 마이크로초의 지연이 발생합니다.
Kernel Bypass는 이 중간 단계를 건너뛰어 NIC에서 사용자 공간으로 직접 데이터를 전달합니다. 커널이 네트워크 패킷을 전혀 처리하지 않으므로, 커널 관련 오버헤드가 원천적으로 제거됩니다.
기존 커널 경로의 병목
리눅스 커널 네트워크 스택은 범용성을 위해 설계되었습니다. TCP/IP, UDP, ICMP 등 다양한 프로토콜을 지원하고, 방화벽(iptables/nftables), QoS, 네트워크 네임스페이스 등 부가 기능을 제공합니다. 이러한 범용성은 일반 애플리케이션에는 충분하지만, 마이크로초 단위 성능이 필요한 시스템에서는 불필요한 오버헤드입니다.
구체적으로:
- 인터럽트 코얼레싱: NIC는 패킷을 즉시 전달하지 않고, 일정 시간 또는 일정 개수만큼 모아서 인터럽트를 발생시킵니다. 이는 CPU 효율을 높이지만 지연을 증가시킵니다.
- sk_buff 할당: 커널은 각 패킷마다
sk_buff구조체를 동적 할당합니다. 메모리 할당자 호출은 비결정적 지연의 주요 원인입니다. - 프로토콜 스택 순회: IP → TCP/UDP → 소켓 레이어를 순차적으로 거치며, 각 단계에서 헤더 파싱과 체크섬 검증이 수행됩니다.
- copy_to_user: 커널 공간에서 사용자 공간으로 데이터를 복사하는 최종 단계로, 대역폭 집약적 워크로드에서 심각한 병목이 됩니다.
왜 중요한가
마이크로초 단위의 지연이 성능을 결정하는 영역에서 커널 오버헤드는 허용할 수 없는 병목입니다:
- 금융 HFT: 시장 데이터 수신부터 주문 전송까지 수 마이크로초 이내에 완료해야 합니다. 커널 경로의 10~50μs 지연은 알고리즘이 최적 타이밍을 놓치게 만듭니다.
- 전자전 DFRM: 위협 신호 탐지부터 대응 신호 생성까지 나노초~마이크로초 단위의 반응이 필요합니다.
- 광고 RTB: 100ms 입찰 윈도우에서 전처리가 차지하는 비중을 최소화해야 QPS를 극대화할 수 있습니다.
- 스마트팩토리 PID: 제어 루프의 주기가 일정해야 공정 안정성이 보장됩니다. 커널 지터는 제어 불안정의 직접적 원인입니다.
주요 기술 스택
DPDK (Data Plane Development Kit)
Intel이 주도한 오픈소스 프레임워크로, NIC를 커널에서 분리(unbind)하고 사용자 공간 드라이버(PMD, Poll Mode Driver)로 제어합니다. 인터럽트 대신 폴링(polling) 방식으로 패킷을 수신하여 인터럽트 오버헤드를 제거합니다.
DPDK의 핵심 설계 원칙:
- Huge Page 메모리: 2MB/1GB 거대 페이지로 TLB 미스를 최소화
- CPU 코어 고정(pinning): 전용 코어에서 패킷 처리 루프를 실행하여 컨텍스트 스위칭 제거
- Lockless 큐:
rte_ring기반 SPSC/MPMC 링 버퍼로 코어 간 통신
AF_XDP (eXpress Data Path)
리눅스 커널 4.18부터 도입된 XDP(eXpress Data Path)의 사용자 공간 인터페이스입니다. DPDK처럼 NIC를 완전히 빼앗지 않으면서도 커널 바이패스에 가까운 성능을 제공합니다.
AF_XDP는 UMEM(User Memory)이라는 공유 메모리 영역을 통해 NIC와 사용자 공간이 제로 카피로 통신합니다. DPDK보다 시스템 통합이 용이하여, 기존 커널 기능(모니터링, 방화벽 등)과 공존할 수 있습니다.
Custom NIC Drivers
특수 목적 NIC(Solarflare, Mellanox 등)의 하드웨어 기능을 직접 활용하는 맞춤형 드라이버입니다. 하드웨어 타임스탬핑, NIC 내장 필터링, RSS(Receive Side Scaling) 등을 최적으로 제어하여 소프트웨어 수준 이상의 성능을 달성합니다.
Akritai 엔진에서의 활용
Akritai의 O(1) 전처리 엔진은 이 기술들을 산업별 요구사항에 맞게 조합합니다:
- HFT/AdTech (소프트웨어 솔루션): DPDK 기반 패킷 처리 + Zero-Copy 파이프라인으로 commodity x86 서버에서 극한 성능을 달성합니다.
- 드론/DFRM (FPGA 솔루션): FPGA의 하드웨어 MAC/PHY와 직접 연결하여 소프트웨어 경로 자체를 제거합니다.
- 스마트팩토리 (하드웨어 솔루션): 전용 하드웨어 타이머와 결합하여 결정론적 제어 주기를 보장합니다.
핵심은 커널이 관여하지 않는 경로를 만드는 것입니다. 커널이 개입하지 않으면, 지연의 예측 불가능한 변동(지터)이 사라지고, 전처리 시간이 결정론적 상수로 수렴합니다.
이전 글 O(1) 결정론적 전처리란 무엇인가에서 왜 결정론적 처리가 중요한지를 다루었습니다. 다음 글에서는 FPGA와 GPU의 실시간 처리 비교를 분석합니다.