01. MQTT 프로토콜 : Message Queue Telemetry Transport
- ISO 표준 경량 메시지 프로토콜
- Broker 중심의 통신 구조
- Broker와 Client는 Socket으로 연결
- 계속 연결 상태 유지
- Publisher라고 하는 메시지 전달 클라이언트와 Subscriber라고 하는 메시지 수신 클라이언트
- 클라이언트들은 Topic을 타겟으로 삼아 메시지를 보내고 읽음
- 서버 역할을 하는 Broker에 접속만 한다면 Topic만으로 메시지 송수신이 가능
02. 용어
Broker
- 클라이언트 간 연결해주는 클라우드 서버와 같은 역할.
- 발행 클라이언트로부터 모든 메세지를 수신하고 구독한 클라이언트로 전송하는 소프트웨어이다.
- 단일 실패지점이 되거나 병목현상을 발생시킬 수 있기 떄문에 클러스터로 확장 및 신뢰성을 높힘.
- 브로커 계층 구조를 구현할 수 있다.
Topic
- publisher와 subscriber의 메세지의 중앙 유통 허브 역할
- 예를 들어 채팅 프로그램이 Broker라고 하면 채팅방이 Topic이 되고, publicsher와 subscriber는 사용자가 된다.
- MQTT는 Topic으로 하여 세부 그룹화를 나눌 수 있다.
- 'room'이라는 topic이 있을 시, '/' 하여 하위 토픽으로 'room/temperature/yesterday'나 'room/humidity/yesterday'를 둘 수 있다.
- 여기서 만약 yesterday 대신 #을 적는다면(room/temperature/#), temperature 밑에 있는 모든 방에서 메시지를 받을 수 있게 된다. 이러한 것을 Multi Level이라고 한다.
- room/+/yesterday 이렇게 작성한다면 room 밑에 모든 객체에서 yesterday 방 있는 곳에서 모두 메시지를 받을 수 있다. 이러한 것을 Single Level 이라고 한다.
Publisher
- 발행자(메시지를 보내는 쪽)
Subscriber
- 구독자(메시지를 받는 쪽)
작동순서
1. Subscriber는 특정 Topic을 구독해둔다.
2. Publisher들이 특정 Topic에 메시지를 보낸다.
3. Broker에 Publisher가 보낸 메시지를 저장한다.
4. Subscriber는 Polling으로 Topic에 메시지가 있는지 확인한다.
Connection : MQTT는 TCP / IP에 기초해 클라이언트에 의해 이용될 수 있다. 브로커에 의해 보안을 지원하지 않는 포트는 1883이다. TLS / SSL을 지원하는 브로커는 일반적으로 보안 통신을 위해 포트 8883을 사용한다.
https://www.robotstory.co.kr/raspberry/?vid=37
MQTT에 대하여
1. MQTT란?MQTT는 Message Queuing Telemetry Transport의 약자로 임베디드 장치들 간의 통신을 위한 가벼운 메시징 프로토콜입니다. 이름대로 초기에는 원격측정을 목적으로 만들어졌으며, 저전력 배터리나
www.robotstory.co.kr
[네트워크/HTTP] 페이로드(Payload)란? - 하나몬
페이로드(Payload)란 무엇일까? 페이로드(payload)는 전송되는 데이터를 의미한다. 데이터를 전송할 때, 헤더와 메타 데이터, 에러 체크 비트 등과 같은 다양한 요소들을 함께 보내어, 데이터 전송의
hanamon.kr