본문 바로가기
IT공부

NIC 완전 정리-단순한 랜카드가 아닌 네트워크 보조 프로세서

by 왕진 2026. 5. 11.
반응형

 

 

Hardware · Network 심화

NIC 완전 정리
단순한 랜카드가 아닌 네트워크 보조 프로세서

DMA · Offloading · NAPI · Zero Copy · DPDK · RDMA · eBPF — 서버 요청은 NIC에서 시작된다
개요 NIC란?

NIC(Network Interface Card)은 단순히 랜선 꽂는 곳이 아니다. 호스트 CPU를 돕는 네트워크 보조 프로세서다. 서버의 요청 처리 흐름은 Nginx가 아니라 실제로는 NIC에서 시작된다.

사용자 요청
NIC 수신
DMA → RAM
CPU 처리

1 NIC 물리적 구성
PHY아날로그 신호를 디지털 비트로 변환 (최전선)
MACMAC 주소 필터링 담당
Controller전체 로직 담당 (두뇌)
Ring BufferDMA로 패킷이 쌓이는 RAM의 특정 영역

2 NIC의 핵심 기능 4가지
① DMA (Direct Memory Access)

패킷이 들어오면 CPU에게 묻지 않고 RAM의 Ring Buffer에 직접 데이터를 쓴다. CPU는 데이터가 배달될 때까지 자기 할 일을 할 수 있다.

② Offloading

체크섬 계산, 큰 패킷 자르기(TSO), 작은 패킷 합치기(LRO) 등 단순 반복 연산을 NIC 칩셋이 직접 수행해 CPU 점유율을 낮춘다.

③ Multi-Queue / RSS

패킷 수신 통로(Queue)를 여러 개 두어 여러 CPU 코어가 동시에 패킷을 처리할 수 있게 하는 병렬 처리 기술이다.

④ NAPI — 인터럽트 폭풍 방지

패킷 하나마다 CPU를 깨우면(Interrupt) Context Switch 비용으로 CPU가 뻗어버린다. NAPI는 이를 해결한다.

방식 동작 문제점
순수 인터럽트 패킷 1개마다 CPU 깨움 Interrupt Storm → CPU 마비
NAPI (하이브리드) 첫 패킷은 인터럽트 → 이후 Polling 전환 → 처리 완료 후 인터럽트 복귀 없음 (최적)

3 Zero Copy — 메모리 복사 비용 제거

CPU가 가장 싫어하는 일 중 하나는 메모리 데이터를 이쪽에서 저쪽으로 옮기는 단순 복사다.

방식 복사 경로 복사 횟수
일반 복사 Disk → Kernel → User → Kernel → NIC 4회 (병목)
Zero Copy 커널 내부에서 소켓 버퍼로 직접 최소화 (CPU는 주소만 관리)

4 DPDK & RDMA — 극한의 성능

"리눅스 커널조차 너무 느리다"고 판단될 때 사용하는 고성능 기술들이다.

기술 핵심 철학 특징
DPDK 커널 우회 (Kernel Bypass) 유저 앱이 NIC에 직접 접근. CPU 코어 1개를 100% 점유해 Polling → 지연시간 ≈ 0
RDMA CPU 우회 (CPU Bypass) 상대 서버의 RAM에 직접 데이터 쓰기. 양쪽 CPU 모두 관여하지 않음. AI 학습(RoCE v2) 표준
RDMA 경로: Server A RAM → NIC A → Network → NIC B → Server B RAM (CPU 개입 없음)

반응형
5 eBPF & XDP — 커널 우회 없이 고속 처리

커널을 버리지 않으면서도 DPDK만큼의 속도를 내는 최신 기술이다.

기술 동작 장점
eBPF 커널 수정 없이 커널 안에서 안전한 프로그램 실행 커널 안정성 유지하며 고속 처리
XDP 패킷이 커널 상단으로 올라가기 전 NIC 드라이버 단계에서 즉시 처리 불필요 패킷 초입 차단 → 보안·로드밸런싱 극대화

6 NUMA — 물리적 배치의 중요성

멀티 CPU 서버에서 NIC가 어느 CPU 소켓에 가까운지가 성능에 영향을 준다. NIC와 처리 CPU 코어를 같은 NUMA 노드에 배치해야 메모리 접근 속도가 최적화된다.


핵심 한 줄 요약

NIC서버 요청의 실제 시작점 — 능동적 네트워크 보조 프로세서
DMACPU 개입 없이 RAM에 직접 패킷 전달
Offloading반복 연산을 NIC가 대신 처리 → CPU 점유율 절감
NAPI인터럽트+폴링 하이브리드 → Interrupt Storm 방지
Zero Copy메모리 복사 최소화 → CPU 노가다 제거
DPDK / RDMA커널 우회 / CPU 우회 → 지연시간 극한 단축
eBPF / XDP커널 유지하면서 패킷 초입 고속 처리

Tags

#NIC #네트워크카드 #DMA #NAPI #ZeroCopy #DPDK #RDMA #eBPF #XDP #RSS #서버네트워크 #NUMA #하드웨어기초
▼ 티스토리 태그 입력란 복사용
NIC, 네트워크카드, DMA, NAPI, ZeroCopy, DPDK, RDMA, eBPF, XDP, RSS, 서버네트워크, NUMA, 하드웨어기초
반응형

댓글