페이지 선택

 

MQTT 메시지 프로토콜

MQTT는 TCP를 기반으로 하고 있으며, IOT 장치간에 메시지를 주고 받는데에 필요한 메시지 프로토콜(Message Protocol) 중에 하나이다

MQTT 프로토콜은 Topic(주제)라는 논리적인 채널을 통해서 다대다로 메시지를 주고 받을 수 있으며, 보안은 TCP에 대해 SSL/TLS를 적용할 수 있다.

⊕ 메시지 프로토콜중에 CoAP은 UDP 기반으로 하고 있으며, 보안을 적용할 경우에는 DTLS를 사용한다.

 

 

1. MQTT 동작구조

MQTT에서는 Broker, Publisher, Subscriber라는 역할이 있으며, 각각의 역할 별로 어떤 Topic(주제)에 대해 메시지를 중계, 발행, 구독하는 동작을 한다.

MQTT Broker(브로커)는 IoT Core로써 IOT 서버 내부에서 메시지를 중계하는 핵심역할을 하며, IOT 디바이스들은 주로 메시지를 발행과 구독하는 주체가 되겠다.

 

Broker 메시지를  중계하는 장치, 브로커의 대표적인 구현, Ex) Mosquitto, HiveMQ, RabbitMQ, 등
Publisher 어떤 Topic으로 메시지를 Publish(발행)하는 장치
Subscriber 어떤 Topic에 대한 메시지를 subscribe(구독)하는 장치

 

 

 

 

2. MQTT 주제의 표현

주제(Topic)는 메시지를 발행하고 구독하는 대상이며, 계층적인 구조로 표현된다. 표현의 방식은 아래와 같다.

아래 테이블을 참조하여 예시를 들자면, 우리집 거실의 창문을 열고 싶으면 smart-home/livingrootm/window라는 주제(topic)로 open이라는 메시지를 발행하면 되겠다.

보세요,,,,, 창문이 열렸쬬?

 

주제의 계층적 구조 주제(Topic)의 표현
smart-home livingroom window smart-home/livingrootm/window
light smart-home/livingrootm/light
room1 humidity smart-home/room1/humidity
temperature smart-home/room1/Temperature

 

 

 

 

3. MQTT 메시지/패킷 구조

MQTT 메시지/Packet 포맷은 아래와 같이 2Byte의 Fixed Header와 옵션적으로 필요한 Variable Header, Payload 부분으로 나뉘어 져 있다.

 

 

 

 

4. MQTT 메시지의 유형

 

Message Type Direction of flow Description
CONNECT Client to Server Client request to connect to Server
CONNACK Server to Client Connect acknowledgment
PUBLISH Client to Server or Server to Client Publish message
PUBACK Client to Server or Server to Client Publish acknowledgment
PUBREC Client to Server or Server to Client Publish received (assured delivery part 1)
PUBREL Client to Server or Server to Client Publish release (assured delivery part 2)
PUBCOMP Client to Server or Server to Client Publish complete (assured delivery part 3)
SUBSCRIBE Client to Server Client subscribe request
SUBACK Server to Client Subscribe acknowledgment
UNSUBSCRIBE Client to Server Unsubscribe request
UNSUBACK Server to Client Unsubscribe acknowledgment
PINGREQ Client to Server PING request
PINGRESP Server to Client PING response
DISCONNECT Client to Server Client is disconnecting

 

 

 

 

Viewed Page List