4.1 Zenoh 네트워크 모델의 기초
본격적인 스케일업(Scale-up)과 스케일아웃(Scale-out)을 논하기 전에, Zenoh가 데이터를 어떤 형상으로 실어 나르는지 그 뼈대를 이해하는 것은 건축물의 도면을 잃는 것과 같다. Zenoh는 기존의 경직된 클라이언트-서버(Client-Server) 아키텍처나 단일 브로커(Broker) 병목 모델을 탈피하여, 각 기기의 물리적 제약과 네트워크 환경(LAN, WAN, 5G 등)에 맞게 스스로 진화하는 유기적인 분산 해시 테이블(DHT) 기반의 데이터 공간을 지향한다.
이 절에서는 노드들이 물리적으로 어떻게 묶이고(세션), 각자 어떤 계급장을 달고(Peer, Client, Router) 통신망에서 활약하는지, 그리고 길을 잃지 않기 위해 라우터들이 어떻게 서로의 지도를 공유(분산 해시 테이블)하는지에 대한 근본적인 네트워크 모델의 기초를 확립한다.
1. 기존 브로커(Broker) 방식과 Zenoh 라우터(Router) 방식의 차이점
수십 년간 IoT 생태계를 지배해 온 통신 미들웨어의 형태는 중앙에 거대한 우체국(Broker)을 하나 짓고, 모든 편지(Data)가 이 우체국을 거쳐서만 배달되도록 강제하는 허브 앤 스포크(Hub-and-Spoke) 방식이었다. MQTT 가 대표적인 예이다. 그러나 데이터 폭증 시대에 이 방식은 치명적인 한계를 노출했다. 우체국이 정전(단일 장애점, SPOF)되거나, 우체국으로 향하는 도로가 막히면(병목 현상), 바로 옆집에 사는 장비들끼리도 통신할 수 없는 구조적 모순이 발생한 것이다.
Zenoh는 이 낡은 패러다임을 혁명적으로 뒤집는다. 중앙 브로커 대신 라우터(Router) 메쉬망과 피어(Peer) 간 직결 통신을 채택한 것이다.
1.1 기존 브로커(Broker) 모델의 한계
- 단일 장애점 (Single Point of Failure): 브로커 서버가 다운되면 해당 네트워크에 연결된 모든 디바이스의 통신이 즉시 마비된다.
- 불필요한 네트워크 홉 (Hop): 로봇 팔(Arm)의 센서 데이터를 1미터 옆에 있는 제어기가 읽으려 해도, 데이터는 굳이 클라우드에 있는 구글/아마존 브로커까지 날아갔다가 되돌아와야 한다. 이 과정에서 엄청난 지연(Latency)과 데이터 요금이 발생한다.
- 확장성의 한계 (Scalability Limit): 브로커 한 대가 처리할 수 있는 커넥션과 메시지 수에는 물리적인 임계치가 존재한다.
1.2 Zenoh 라우터(Router) 모델의 패러다임 전환
Zenoh 네트워크에서 라우터는 브로커처럼 동작할 수도 있지만, 본질적으로는 스마트한 우체부 네트워크에 가깝다.
- 지능형 다중 경로 (Intelligent Multi-path): 라우터 A가 죽더라도 데이터는 알아서 라우터 B를 우회하여 목적지를 찾아간다 (Mesh 기반 인프라).
- 단축된 홉 (Shortest Path): 1미터 옆에 있는 장비라면 굳이 클라우드의 라우터로 데이터를 보내지 않고, 물리적인 인접 망(LAN, 멀티캐스트) 내에서 둘이 직접 P2P(Peer-to-Peer)로 데이터를 주고받아 지연 시간을 마이크로초(µs) 단위로 줄여버린다.
- 상태(State)를 가지지 않는 유연성: 브로커에 모든 큐(Queue)와 세션을 몰아넣는 대신, Zenoh 라우터들은 네트워크 상태와 라우팅 테이블(DHT) 정보만 가볍게 동기화하며 물리적인 대역폭 전송에만 집중한다.
결론적으로 MQTT 브로커가 “모든 길은 로마로 통한다“는 중앙집권적 제국이라면, Zenoh의 라우터는 필요할 때만 이어지고 확장되는 “신경망(Neural Network)“과 같은 역동적인 탈중앙화 생태계를 구축한다.
2. 시스템 노드 유형 심층 분석 (Peer, Client, Router)
Zenoh는 모든 디바이스를 획일적인 계급으로 취급하지 않는다. 1GB/s 광랜이 꽂힌 클라우드 서버와, 코인 배터리로 동작하는 초소형 마이크로컨트롤러가 동일한 네트워크 부하를 감당할 수는 없기 때문이다. 따라서 Zenoh는 장비의 연산 능력과 네트워크 위상에 따라 크게 **세 가지의 노드 유형(Node Types)**을 부여하여 책임을 분산한다.
2.1 피어 (Peer): 완전한 자주국방의 핵심 노드
**피어(Peer)**는 시스템 내에서 자신과 연결된 다른 노드들과 데이터를 어떻게 주고받을지 능동적으로 결정하는 자치 노드이다.
- 역할: 주변의 다른 피어나 라우터를 스카우트(Scout)하여 찾아내고, 상대방이 어떤 데이터를 원하는지 서로 관심사(Interest)를 교환하여 직접 P2P 통신 채널을 뚫어버린다.
- 적용 대상: 성능이 충분한 워크스테이션, 엣지 게이트웨이(Edge Gateway), 모바일 로봇 메인 컴퓨터 등.
- 장점: 중앙의 지시 없이도 독립적인 통신망 구성이 가능(Ad-hoc 네트워크)하여 지연과 병목이 적다.
2.2 클라이언트 (Client): 자원 제약 환경을 위한 소형 경량 노드
**클라이언트(Client)**는 복잡한 라우팅 계산이나 주변 노드 탐색 로직을 모조리 버리고, 오직 상위 노드(주로 라우터나 피어) 하나만 바라보고 데이터를 쏘거나 받는 일에만 집중하는 경량 노드이다.
- 역할: 자신 주변에 누가 있는지 찾지 않으며, 네트워크 구성원들에게 자신의 존재를 멀티캐스트로 알리지도 않는다. 단지 미리 설정된 라우터에 살짝 연결(Connect)하여 “이 데이터 좀 대신 전달해 줘“라고 위임할 뿐이다.
- 적용 대상: 배터리로 구동되는 저전력 IoT 센서, Wi-Fi 대역폭이 불안정한 자율주행 드론, 리소스 제약이 극심한 아두이노(Arduino) 급의 마이크로컨트롤러 환경.
- 장점: 네트워크 프로토콜 통신 오버헤드(Overhead)를 극한으로 끌어내려, 장비의 CPU와 배터리 소모를 극적으로 절약한다.
2.3 라우터 (Router): 제국의 뼈대이자 백본 인프라스트럭처
**라우터(Router)**는 수많은 클라이언트들을 거느리면서 동시에 다른 라우터/피어들과 묵직하게 통신망을 지탱하는 글로벌 통신 중계기이다.
- 역할: 네트워크상의 모든 데이터 흐름의 교차로 역할을 한다. 클라이언트나 피어들로부터 쏟아지는 출판(Publish) 트래픽과 구독(Subscribe) 요청을 종합적으로 취합하여 최단 경로(Shortest Path)로 목적지까지 전달한다. 피어와 달리 엄청난 대역폭의 패킷 라우팅과 혼잡 제어(Congestion Control) 처리에 특화되어 있다.
- 적용 대상: 클라우드 데이터센터 인스턴스, 5G 기지국 엣지(Edge) 서버, 자율주행 차량 내의 중앙 백본 컴퓨터.
- 장점: 라우터들을 연쇄적으로 이으면(Topology), 여러 나라에 걸친 거대한 분산 통신 제국을 하나의 단일 가상 네트워크처럼 묶어 낼 수 있다 (Global Data Space).
요약하자면, 클라이언트는 경보병, 피어는 독립투사, 라우터는 이들을 모두 싣고 나르는 장갑차라 할 수 있다. 애플리케이션의 하드웨어 스펙에 맞춰 정교하게 이 세 가지 타입을 혼합하여 배치하는 것이 훌륭한 Zenoh 아키텍트의 첫걸음이다.
3. 세션(Session) 설정 및 데이터 평면(Data Plane)의 분리
디바이스에서 Zenoh 코드의 전원 스위치를 켜면(예: zenoh::open().await), 네트워크 상의 다른 노드들과 무작정 허그(Hug)부터 하는 것이 아니다. 통신의 무질서를 방지하기 위해 매우 정교하고 우아한 세션 수립(Session Establishment) 절차를 거치며, 이후 데이터를 실어 나르는 파이프(Data Plane)를 분리하는 고급 아키텍처를 가동한다.
이 절에서는 Zenoh 연결의 내부에서 어떤 악수(Handshake)가 교환되는지 해부해 본다.
3.1 세션의 의미와 성립 절차
Zenoh에서 **세션(Session)**이란, 단순히 TCP 소켓 하나 열렸다는 의미가 아니다. 노드가 네트워크 세계에 정식 멤버로 진입하여 “나는 누구며, 어떤 암호화 수준을 지원하고, 어떤 데이터에 관심이 있는지“를 인증하고 협상하는 광범위한 논리적 결합 상태를 의미한다.
세션 수립은 다음과 같은 정교한 코레오그래피(Choreography)를 따른다.
- 디스커버리 (Discovery): 노드가 눈을 뜨면, 멀티캐스트 비콘(Beacon)을 주변에 뿌리거나 미리 지정된 클라우드 라우터 IP에 노크(Knock)하여 대상을 찾는다.
- 이니셜라이제이션 (Init): 대상을 찾으면, 자신의 프로토콜 버전, 식별자(UUID)를 담은 첫 인사를 건넨다.
- 네고시에이션 (Negotiation): 양측이 서로 압축(Compression)은 지원하는지, TLS 암호화 모듈은 어떤 걸 쓸 것인지, 라우터인지 피어인지 등의 메타데이터를 교환하며 최적의 통신 규격을 협의한다. TCP, UDP 심지어 블루투스(BLE)가 될 수도 있다.
- 오픈 (Open): 모든 조건이 일치하면 비로소 세션이 완전히 수립되며, 이때부터 실제 애플리케이션 데이터가 파이프를 타고 흐르기 시작한다.
이러한 세션은 네트워크 단절 시 스스로 백오프(Back-off) 알고리즘을 타며 끈질기게 재접속을 시도하는 복원력(Resilience)을 내장하고 있다.
3.2 컨트롤 플레인(Control Plane)과 데이터 플레인(Data Plane)의 분리
초당 수만 개의 드론 센서 데이터가 폭우처럼 쏟아지는 와중에, 새로운 노드가 슬며시 네트워크에 합류했다고 가정해 보자. 이 새로운 노드의 가입 인사(통신 설정 로직)가 센서 데이터 처리의 발목을 잡아 초저지연 성능에 렉(Lag)을 유발해서는 안 된다.
이를 막기 위해 Zenoh는 SDN(Software Defined Network) 아키텍처의 철학을 차용하여, 데이터를 처리하는 두뇌와 팔다리의 역할을 완벽하게 이원화한다.
- 컨트롤 플레인 (Control Plane - 관제탑): 노드 간에 디스커버리를 수행하고, 토폴로지를 계산하며, “누가 어떤 주제(Key)를 구독하고 있는지“에 대한 메타데이터 라우팅 테이블을 주고받는 관리망이다. 이 평면의 트래픽은 데이터 전송 성능에 지장을 주지 않도록 정교하게 격리되어 백그라운드에서 조용히 작동한다.
- 데이터 플레인 (Data Plane - 실크로드): 오직 순수한 애플리케이션의 페이로드(Payload) 비트 배열만이 초고속으로 발사되고 수신되는 고속도로다. 이 평면은 컨트롤 플레인이 그려준 지도를 바탕으로, 복잡한 판단 없이 데이터를 맹렬한 속도로(마이크로초 단위) 넘겨버리는(Forwarding) 데에만 극단적으로 최적화되어 있다.
이러한 이중 분리 구조 덕분에, Zenoh 라우터는 초당 기가바이트(GB) 단위의 트래픽을 처리하는 와중에도, 수만 개의 노드가 붙었다 떨어지는 극심한 토폴로지 요동을 끄떡없이 견뎌내는 마법 같은 성능을 발휘하는 것이다.
4. 분산 해시 테이블(DHT) 기반의 데이터 라우팅 개념
수천 개의 피어(Peer)와 수십 개의 글로벌 라우터(Router)들이 거미줄(Mesh)처럼 복잡하게 얽혀 있는 Zenoh 제국에서, 퍼블리셔가 던진 데이터가 대체 어떻게 길을 찾아 서브스크라이버에게 정확히 도달하는 것일까? 중앙에서 교통 정리를 해주는 브로커(Broker) 서버조차 없는데 말이다.
이 마법 같은 길 찾기의 비결은 바로 P2P(Peer-to-Peer) 네트워크의 핵심 기술인 분산 해시 테이블(Distributed Hash Table, DHT) 기반의 라우팅 알고리즘에 숨어 있다. 이 절에서는 Zenoh의 지능형 데이터 네비게이션 원리를 파헤친다.
4.1 기존 브로드캐스트의 몰락과 DHT의 등장
오래전 통신 방식은 무조건 주변으로 소리를 지르는 브로드캐스트(Broadcast)에 의존했다. “누구 robot/sensor 데이터 받을 분?” 하고 전파를 쏘면, 모든 노드가 패킷을 받은 뒤 자신이 필요한 데이터가 아니면 폐기하는 비효율적인 방식이었다. 노드 수가 늘어날수록 네트워크 대역폭은 쓰레기 패킷으로 폭발했다.
이를 극복하기 위해 Zenoh는 노드들이 어떤 데이터를 원하는지(Interest)를 해시(Hash)화하여 거대한 가상의 분산 테이블 상에 지도로 그려버리는 방식을 채택했다.
4.2 Zenoh 라우터의 정보 배포 매커니즘
- 관심사 선언 (Declare Interest): 프랑크푸르트에 있는 클라이언트가
vehicle/drone-1/video토픽을 구독(Sub)하면, 그 위에 물려있는 소속 라우터는 이 키 경로(Key Path)를 분산 해시 테이블에 등록한다. - 토폴로지 전파 (Topology Propagation): 이 라우터는 자신이
vehicle/drone-1/video데이터를 원한다는 사실(메타데이터)을 전 세계에 연결된 다른 라우터들에게 속삭인다. (이때 데이터 플레인이 아닌 컨트롤 플레인이 개입한다.) - 지식의 병합: 전 세계의 모든 라우터들은 서로의 관심사를 취합하여, 누가 어떤 데이터를 원하는지 완벽한 가상의 트리(Tree)형 지도를 머릿속에 완성하게 된다.
4.3 스마트 포워딩 (Smart Forwarding): 최단 경로의 완성
이제 도쿄의 퍼블리셔가 vehicle/drone-1/video라는 타이틀을 달고 고화질 비디오 프레임을 쏘아 올렸다고 상상해 보자.
- 도쿄 라우터는 데이터 패킷을 받는 즉시 자신의 머릿속에 있는 DHT 라우팅 테이블을 뒤진다.
- 테이블을 확인해 보니, 오직 ‘프랑크푸르트 라우터’ 방향으로 뻗은 네트워크 포트에서만 이 데이터에 관심을 표명했다는 사실을 1마이크로초 만에 알아낸다.
- 도쿄 라우터는 뉴욕이나 시드니 방향으로는 패킷을 단 1바이트도 흘려보내지 않고, 오퍼레이터가 있는 **프랑크푸르트 방향으로만 데이터를 정밀 타격(Forwarding)**하여 전송한다.
이러한 DHT 기반의 데이터 중심(Data-centric) 라우팅 혁명 덕분에, Zenoh는 거대한 네트워크망 속에서도 불필요한 트래픽 낭비를 0에 가깝게 억제하며, 우주에서 날아오는 위성 데이터조차 지구 반대편의 초소형 IoT 센서로 핀포인트 배달하는 가공할 성능을 뽐내는 것이다.