RDMA(Remote Direct Memory Access)는 네트워크를 통해 원격 시스템의 메모리에 직접 접근할 수 있도록 해주는 기술입니다. 일반적인 네트워크 통신과 달리, CPU 개입을 최소화하여 초저지연(Low Latency)과 고대역폭(High Throughput)을 제공합니다.
RDMA는 주로 고성능 컴퓨팅(HPC), 대규모 데이터센터, AI/머신러닝 학습 환경, 분산 스토리지 시스템 등에서 사용됩니다.
1. 기존 네트워크 통신의 한계
일반적인 TCP/IP 기반 통신은 다음과 같은 구조를 가집니다.
- 애플리케이션 → 커널 공간 복사
- 커널 네트워크 스택 처리
- NIC(Network Interface Card) 전송
- 수신 측에서 다시 커널 → 사용자 공간 복사
이 과정에서 다음과 같은 문제가 발생합니다.
- CPU 사용량 증가
- 다중 메모리 복사로 인한 오버헤드
- 지연 시간 증가
- 대량 데이터 전송 시 성능 저하
2. RDMA의 핵심 개념
RDMA는 이러한 문제를 해결하기 위해 다음과 같은 특징을 가집니다.
Zero-Copy
데이터를 중간 버퍼 없이 원격 메모리로 직접 전송합니다.
메모리 복사가 발생하지 않아 CPU 부하가 크게 줄어듭니다.
Kernel Bypass
운영체제 커널을 우회하여 NIC가 직접 메모리에 접근합니다.
이를 통해 네트워크 스택 처리 지연을 제거합니다.
Low Latency & High Throughput
수 마이크로초(µs) 단위의 지연 시간과 매우 높은 처리량을 제공합니다.
3. RDMA 동작 방식 개요
RDMA 통신은 다음과 같은 절차로 이루어집니다.
- 통신할 노드 간 메모리 등록(Memory Registration) 수행
- 접근 권한과 주소 정보를 교환
- RDMA NIC가 원격 메모리에 직접 Read/Write 수행
- CPU 개입 없이 데이터 전송 완료
즉, 송신 측 CPU → 수신 측 메모리로 바로 접근하는 구조입니다.
4. RDMA의 주요 연산 방식
RDMA는 크게 세 가지 연산을 제공합니다.
RDMA Read
로컬 노드가 원격 노드의 메모리를 직접 읽어오는 방식입니다.
RDMA Write
로컬 노드가 원격 노드의 메모리에 직접 데이터를 쓰는 방식입니다.
Send/Receive
전통적인 메시지 전달 방식이지만, RDMA 기반으로 동작하여 성능이 향상됩니다.
5. RDMA를 지원하는 기술들
RDMA는 여러 네트워크 기술 위에서 구현됩니다.
InfiniBand
- RDMA를 위해 설계된 고성능 네트워크
- HPC 환경에서 가장 널리 사용됨
⭐️ RoCE (RDMA over Converged Ethernet)
- 이더넷 환경에서 RDMA 사용 가능
- 데이터센터에서 활용도가 높음
iWARP
- TCP/IP 위에서 RDMA 구현
- 기존 네트워크 인프라와 호환성 우수
6. RDMA의 장점과 단점
장점
- 매우 낮은 지연 시간
- CPU 사용률 감소
- 대규모 데이터 전송에 최적
- 분산 시스템 성능 향상
단점
- 설정 및 운영 복잡
- 전용 NIC 필요
- 네트워크 구성(특히 RoCE)의 난이도 높음
- 디버깅이 어려움
7. RDMA 활용 사례
- 분산 스토리지 시스템 (Ceph, NVMe-oF)
- AI/딥러닝 분산 학습 (GPU 간 통신)
- 고빈도 금융 거래 시스템
- 대규모 데이터베이스 클러스터
- HPC 시뮬레이션 환경
마무리
RDMA는 네트워크 성능의 병목을 근본적으로 해결하기 위한 기술입니다. CPU 중심의 기존 네트워크 구조에서 벗어나, 메모리 중심의 고속 통신을 가능하게 합니다. 초기 진입 장벽은 높지만, 성능이 중요한 환경에서는 RDMA가 사실상 필수적인 기술이 되고 있습니다.
'Computer Science > 컴퓨터 네트워크' 카테고리의 다른 글
| Wi-Fi와 Ethernet, 뭐가 다른 걸까? (0) | 2026.01.25 |
|---|---|
| TCP/UDP 통신이란? (0) | 2026.01.14 |
| MIB란 무엇일까? – 네트워크 장비의 숨은 데이터창고 (0) | 2026.01.03 |
| ICMP (Internet Control Message Protocol) (1) | 2025.12.29 |
| SDN (Software Defined Networking)과 NFV (Network Functions Virtualization) (0) | 2025.12.28 |