핵심 인사이트 (3줄 요약)
- 앞서 배운 RoCE(RDMA over Converged Ethernet)는 이더넷 위에서 RDMA를 돌리지만, 패킷 유실을 극도로 혐오하여 스위치(하드웨어)에 무손실(Lossless) 세팅을 해야 하는 까다로움이 있었다.
- **iWARP (Internet Wide Area RDMA Protocol)**는 RoCE와 달리 아예 우리가 매일 쓰는 표준 TCP/IP 프로토콜 스택 위에서 RDMA를 구동하는 방식이다.
- TCP가 알아서 패킷 순서를 맞추고 재전송을 해주기 때문에(무손실 보장), 스위치나 라우터에 아무런 특수 세팅을 할 필요 없이 일반 인터넷망을 가로질러서도 즉시 구축할 수 있다는 엄청난 범용성을 자랑한다.
Ⅰ. RoCE의 한계와 iWARP의 등장
RDMA는 내 메모리에 있는 데이터를 상대방 서버 메모리로 CPU 개입 없이(Zero-Copy) 직행시키는 마법입니다. 하지만 RDMA를 이더넷에 올린 RoCE는 "네트워크에서 패킷이 1개라도 버려지면 시스템이 터진다"는 치명적 약점이 있었습니다. 그래서 비싼 무손실(Lossless) 전용 스위치(PFC 세팅)를 사야만 했습니다.
"그냥 우리가 흔히 쓰는, 패킷이 좀 끊겨도 알아서 고쳐주는 TCP/IP 위에 올리면 안 되나?" 이 발상에서 나온 것이 iWARP입니다. (주로 인텔(Intel)과 Chelsio가 밀고 있는 기술)
📢 섹션 요약 비유: RoCE가 먼지 한 톨 없는 '반도체 공장 클린룸(Lossless)' 안에서만 탈 수 있는 초정밀 킥보드라면, iWARP는 울퉁불퉁한 일반 아스팔트 도로(TCP/IP) 위에서도 쇼바(완충기)를 달고 쌩쌩 달릴 수 있는 오프로드형 킥보드입니다.
Ⅱ. iWARP의 동작 구조
iWARP의 핵심은 무겁고 느린 TCP/IP 처리를 운영체제(OS 커널)에게 맡기지 않고, **랜카드(RNIC) 하드웨어 내부에 TCP 오프로드 엔진(TOE)**을 박아서 해결한다는 것입니다.
- 소프트웨어 우회: 사용자 앱이 데이터를 보낼 때, 리눅스 커널을 부르지 않고 랜카드(RNIC)로 바로 꽂아 넣습니다.
- 랜카드 내부 TCP 처리: 랜카드 칩셋이 하드웨어적으로 TCP 헤더를 붙이고, 혼잡을 제어하며, 패킷을 인터넷으로 쏩니다.
- 일반 스위치 통과: 인터넷의 일반 싸구려 스위치들은 이 패킷을 보고 "어? 그냥 평범한 TCP 패킷이네?" 하고 마음 편하게 라우팅합니다. 가다가 패킷을 잃어버리면 랜카드가 하드웨어적으로 알아서 재전송(TCP Retransmission)을 해줍니다.
- 수신부 직행: 상대방 랜카드가 TCP 포장지를 뜯어내고 상대방 서버의 메모리에 즉시 DMA로 꽂아 넣습니다.
스택 비교 (ASCII)
[ RoCE v2 (무손실망 강제) ] [ iWARP (일반망 사용 가능) ]
Application (RDMA) Application (RDMA)
│ │
UDP / IP (흐름 제어 없음) TCP / IP (알아서 흐름 제어/재전송)
│ │ ◀ (이 TCP를 랜카드 하드웨어가 100% 처리)
Ethernet (Lossless 필수) Ethernet (일반 싸구려 스위치도 OK)
📢 섹션 요약 비유: iWARP는 택배(데이터)를 보낼 때, 랜카드라는 비서가 알아서 송장(TCP)을 붙이고, 중간에 택배차가 사고 나면 알아서 다시 보내주는(재전송) 든든한 보험이 들어있는 시스템입니다. 길바닥(스위치)이 좀 험해도 목적지에 100% 무사히 도착합니다.
Ⅲ. 트레이드오프: RoCE vs iWARP
현대 데이터센터의 RDMA 기술은 결국 이 두 녀석의 싸움입니다.
- RoCE: 무손실 스위치 셋팅이 빡세고 관리하기 더럽지만, TCP라는 무거운 족쇄가 없어서 지연 시간(Latency)이 1마이크로초 수준으로 가장 빠릅니다. (엔비디아/멜라녹스가 주도 $\rightarrow$ AI 슈퍼컴퓨터, 고성능 DB에서 싹쓸이 중)
- iWARP: 랜카드 칩이 TCP를 하드웨어로 처리하느라 살짝(수 마이크로초) 더 느리지만, 기존 깡통 스위치를 그대로 쓸 수 있어 인프라 교체 비용이 0원에 수렴합니다. (인텔이 주도 $\rightarrow$ 원거리 데이터센터 연결이나 일반 클라우드 스토리지 망에서 선호됨)