반응형
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, 하드웨어기초
반응형
'IT공부' 카테고리의 다른 글
| 서버 완전 정리-계층별로 이해 (0) | 2026.05.11 |
|---|---|
| 냉각 시스템 완전 정리 (0) | 2026.05.08 |
| HW 호환성 완전 정리 (0) | 2026.05.08 |
| GPU 핵심 구조 완전 정리 (0) | 2026.05.07 |
| Storage 완전 정리 - HDD부터 3D NAND, 서버 스토리지 아키텍처까지 (0) | 2026.05.07 |
댓글