1.25 라우팅 계층과 세션 계층의 혁신적 분리

1.25 라우팅 계층과 세션 계층의 혁신적 분리

1. 기존 프로토콜의 강한 결합이 낳은 경직성

기존의 분산 미들웨어 아키텍처는 대부분 데이터의 논리적인 의미를 다루는 계층(API 형태)과 물리적인 네트워크로 패킷을 전달하는 라우팅 메커니즘이 강하게 결합(Tightly Coupled)되어 있었다. 예를 들어 MQTT 환경에서는 개발자가 작성한 애플리케이션 코드가 브로커와의 TCP 세션 유지 및 재연결 로직에 직접적으로 의존하게 되며, 데이터 분배 서비스(DDS) 환경에서는 수많은 통신 품질(QoS) 파라미터가 네트워킹 스택 깊숙이 엮여 있어 네트워크 토폴로지가 변할 때마다 애플리케이션 측의 대대적인 수정이 불가피했다.

이러한 모놀리식(Monolithic) 프로토콜 구조는 정적인 클라우드 환경에서는 유효할 수 있으나, 노드의 연결 상태가 수시로 변하는 엣지 컴퓨팅(Edge Computing)이나 차량 간 통신(V2X) 환경에서는 시스템의 유지 보수와 분산 확장을 심각하게 저해하는 치명적인 경직성을 초래했다.

2. 세션 계층: 애플리케이션을 위한 완벽한 추상화

Zenoh는 이 문제를 해결하기 위해 코어 프로토콜 스택을 명확히 두 개의 계층, 즉 세션 계층(Session Layer)과 라우팅 계층(Routing Layer)으로 완전히 분리하는 혁신적인 아키텍처를 도입했다.

세션 계층은 오직 애플리케이션 개발자를 위한 논리적 엑세스 추상화(Data Access Abstraction) 제공에만 집중한다. 이 계층은 하단 네트워크의 홉(Hop) 수, 토폴로지 구성, 혹은 전송 프로토콜(TCP/UDP) 타입 등 물리적인 특성에 대한 어떠한 정보도 가지지 않으며, 개발자에게는 오직 키 표현식(Key Expression) 기반의 발행(Publish), 구독(Subscribe), 질의/응답(Query/Reply) 등 직관적이고 고수준의 단일화된 API 모델만을 노출한다. 애플리케이션 로직은 세션 계층 위에서 위치 투명성(Location Transparency)을 완벽하게 보장받으며 네트워크 인프라의 잦은 변동성으로부터 철저하게 격리된다.

3. 라우팅 계층: 극대화된 효율성과 토폴로지 독립성

반면, 세션 계층 아래에 위치한 라우팅 계층(Routing Layer)은 데이터의 실제 물리적 전달 경로 결정과 네트워크 효율성 극대화라는 막중한 임무를 전담한다. 라우팅 계층은 네트워크 망 내에서 다른 이웃 Zenoh 노드들을 동적으로 찾아내는 스카우팅(Scouting) 알고리즘부터 시작하여, 혼잡 제어(Congestion Control), 효율적인 단편화(Fragmentation), 그리고 유선 수준의 패킷 일괄 처리(Wire-level Batching)에 이르는 복잡한 최적화 메커니즘들을 백그라운드에서 묵묵히 수행한다.

무엇보다 가장 중요한 성과는, 라우팅 계층이 허브 앤 스포크 수준의 중앙 브로커 모델(Brokered), 군집 로봇 분야의 피어 투 피어 모델(Clique), 복잡한 광역 망 모델(Routed) 등 동적으로 토폴로지를 완전히 뒤바꾸어 구성하더라도 그 구조적 변화의 충격이 상단의 세션 계층으로 전혀 전파되지 않는다는 점이다. 이러한 강력한 계층 간의 구조적 결합도 분리 설계는 제로 오버헤드(Zero Overhead) 원칙의 확고한 실현을 가능하게 했고, Zenoh가 초소형 마이크로컨트롤러(MCU)부터 프론트엔드 라우터, 클라우드 서버에 이르기까지 연속적으로 기능하는 궁극의 시스템 아키텍처 표준으로 자리매김하는 핵심 기반이 되었다.