동작과정 - dlstkdals123/MDC-Multi-hop-Distributed-Computing GitHub Wiki
마지막 수정일: 2025-05-27
Home: :link: 매뉴얼
동작 과정
전체적인 아키텍처는 다음과 같습니다.
- Router는 생략될 수 있습니다.
- mosquitto는 생략하였으며, 각 기기는 모두 1개의 mosquitto를 가지고 있습니다.
- 설명에 필요할 때 mosquitto는 표시됩니다.
이웃간의 통신
무선 또는 유선으로 직접적으로 연결되어 있는 기기들간의 단방향 통신을 설명합니다.
Nano :arrow_right: Cloud로 전송하는 과정을 예시로 설명합니다.
사전 설정
Cloud
- Cloud_MQTT에 subscriber로 등록합니다.
Nano
- Cloud_MQTT에 publisher로 등록합니다.
전송 방식
Nano
Cloud_MQTT
Cloud
- Cloud_MQTT로부터 데이터를 전송받습니다.
이웃이 아닌 기기들 간의 통신
직접적으로 연결되어 있지 않으므로 이웃들을 통해 통신합니다.
Jetracer :arrow_right: Cloud의 전송은 두 가지 방식으로 가능합니다.
전송 방식은 Controller의 스케쥴링 알고리즘에 의해 결정됩니다.
각 단계는 이웃간의 통신을 이용하여 통신합니다.
- Jetracer :arrow_right: Nano
- Nano :arrow_right: Cloud
또는
- Jetracer :arrow_right: Orin
- Orin :arrow_right: Cloud
Controller - MDC 통신
Controller는 MDC와 양방향으로 통신합니다.
사전 설정 Controller
동작 방식
-
외부 기기에서 MDC을 실행합니다.
-
MDC가 Controller_MQTT에 publisher로 등록합니다.
또한 MDC_MQTT에 subscriber로 등록합니다.
-
MDC가 Controller_MQTT에 자신의 IP을 포함한
네트워크 정보 요청 객체
를 publish합니다.
-
네트워크 정보 요청 객체
를 보낸 MDC의 IP을 얻고, 이를 통해네트워크 정보 객체
를 만듭니다.
네트워크 정보 객체
는 MDC의 IP와 이웃하고 있는 기기들의 IP을 포함합니다.
이를 이용해 MDC는 자신의 이웃과 통신할 수 있습니다. -
이웃간의 통신을 하기 위해 MDC는 자신의 이웃을 저장하고 이웃들의 MQTT에 publisher로 등록합니다.