Chapter 33. 런타임 노드 발견(Node Discovery) 기본 원리와 DDS 메타 데이터 통신

Chapter 33. 런타임 노드 발견(Node Discovery) 기본 원리와 DDS 메타 데이터 통신

ROS2(Robot Operating System 2)의 가장 진보된 아키텍처적 특성 중 하나는 중앙 집중형 마스터(Master) 노드 없이 분산 환경에서 각 노드들이 런타임(Runtime) 시점에 서로의 존재를 동적으로 인식하고 통신 채널을 확립하는 ‘동적 노드 발견(Dynamic Node Discovery)’ 메커니즘이다. 이러한 피어 투 피어(Peer-to-Peer) 기반의 자가 조직(Self-Organizing) 네트워크 구조는 단일 장애점(Single Point of Failure, SPOF)을 원천적으로 제거하여, 자율 에이전트 드론과 같이 고도의 시스템 생존성이 요구되는 플랫폼에 필수적인 강건성을 제공한다. 본 장에서는 ROS2의 근간을 이루는 데이터 분배 서비스(Data Distribution Service, DDS) 스펙이 명시하는 노드 발견의 기본 원리를 분석하고, 이를 매개하는 메타 데이터(Meta-Data) 통신 프로토콜의 설계 구조를 논리적으로 규명한다.

1. 단순 참여자 발견 프로토콜 (Simple Participant Discovery Protocol, SPDP)

ROS2 노드가 구동되어 운영체제 상에 인스턴스화되면, 해당 노드는 DDS 네트워크 공간 내에서 고유한 ‘도메인 참여자(Domain Participant)’ 자격을 획득한다. SPDP는 이러한 도메인 참여자들이 물리적 혹은 논리적 네트워크 상에서 서로의 존재를 가장 먼저 파악하기 위해 구동되는 1단계 탐색 메커니즘을 지칭한다.

1.1 멀티캐스트 기반 브로드캐스팅 아키텍처

SPDP 단계에서 새롭게 진입한 도메인 참여자는 표준화된 특정 멀티캐스트(Multicast) 주소 및 포트 번호(일반적으로 UDP 프로토콜 사용)를 향해 자신의 메타 데이터 비콘(Beacon)인 PARTICIPANT_DATA 메시지를 주기적으로 전송한다. 이 메시지는 다음과 같은 핵심 식별 정보를 포함한다.

  • 고유 식별자(GUID): 전역적으로 유일한 참여자 단위의 16바이트 식별 번호
  • 유니캐스트 지향 주소(Unicast Locator): 이후의 개별 통신을 수신할 자신의 실제 IP 주소 및 포트 튜플
  • 도메인 ID(Domain ID): 논리적으로 분리된 통신 평면을 구별하는 정수 인덱스

기존 네트워크에 존재하던 다른 참여자 시스템들은 SPDP 멀티캐스트 패킷 데몬을 지속적으로 리스닝(Listening)하고 있으며, 신규 참여자의 비콘을 수신하는 즉시 내부의 ‘알려진 참여자(Known Participants)’ 데이터베이스 캐시를 갱신한다. 이와 동시에 기존 참여자 역시 자신의 PARTICIPANT_DATA 메시지를 신규 참여자의 유니캐스트 로케이터로 회신하여 상호 간의 핸드셰이크(Handshake)를 완료한다.

2. 단순 엔드포인트 발견 프로토콜 (Simple Endpoint Discovery Protocol, SEDP)

SPDP를 통해 상위 레벨의 참여자 간 상호 인식이 완료되면, 내부적으로 퍼블리셔(Publisher)와 서브스크라이버(Subscriber)라는 구체적인 통신 주체들을 매칭하기 위한 2단계 탐색 메커니즘인 SEDP 프로세스가 트리거된다. 여기서 엔드포인트(Endpoint)란 데이터를 실제로 쓰거나(DataWriter) 읽는(DataReader) 구조적 종단점을 의미한다.

2.1 내장 토픽(Built-in Topic)을 활용한 메타 데이터 교환

엔드포인트 발견 정보는 물리적인 멀티캐스트가 아닌, SPDP 과정에서 확립된 참여자 간의 유니캐스트 연결망 위에서 DDS 미들웨어가 자체적으로 유지보수하는 ’내장 토픽(Built-in Topics)’을 통해 송수신된다. 런타임에 노드 내에서 새로운 퍼블리셔나 서브스크라이버가 인스턴스화될 때마다, 도메인 참여자는 세 가지 내장 토픽에 메타 데이터를 발행한다.

  1. DCPSPublications: 시스템 내 생성된 모든 퍼블리셔(DataWriter)의 특성(토픽 이름, 데이터 타입 식별자, 송신 QoS 프로파일 등)을 기술하는 토픽
  2. DCPSSubscriptions: 시스템 내 생성된 모든 서브스크라이버(DataReader)의 구체적인 수신 요구 조건(토픽 이름, 필터링 표현식, 수신 요구 QoS 프로파일 등)을 기술하는 토픽
  3. DCPSTopic: 데이터 모델 구조(IDL 스키마 정보) 등 토픽 자체에 대한 메타 레벨 정의를 통지하는 토픽

2.2 노드 매칭 및 통신 경로(Data Path) 개통 조건 타당성 검사

각 도메인 참여자는 원격 노드로부터 수신한 DCPSPublicationsDCPSSubscriptions 상태 변이 이벤트를 내부 디스커버리 큐브에 누적한다. 미들웨어 계층의 코어 매칭 엔진(Core Matching Engine)은 특정 퍼블리셔와 서브스크라이버 쌍에 대하여 다음의 세 가지 필요충분조건이 성립되는지를 런타임 교차 검증한다.

  • 위상 부합성(Topology Concordance): 양 노드에서 선언한 토픽명(Topic String)이 문자열 단위로 정확히 일치하는가.
  • 타입 동형성(Type Isomorphism): 송신 측과 수신 측의 메시지 구조체 고유 해시(Type Hash)가 동일한가.
  • QoS 요청-제공 호환성(RxO Compatibility): 서브스크라이버의 서비스 요구 수준을 퍼블리셔가 동등하거나 그 이상으로 충족하는가.

세 조건이 모두 참(True)으로 평가될 때 비로소 미들웨어는 사용자 데이터(User Data)가 전송될 유니캐스트 혹은 브로드캐스트 소켓 계층의 실질적 데이터 패스(Data Path)를 개통하게 된다. 이러한 SPDP와 SEDP의 2단계 계층적 분리 설계는, 대규모 스웜(Swarm) 네트워크 상에서 필수 불가결한 메타 데이터 제어 트래픽 볼륨을 최적화하고 Discovery 단계의 컴퓨팅 오버헤드를 제어 가능한 영역으로 흡수하는 동적 통신 역학의 토대가 된다.