[MQTT] MQTT 알아보기

bi_sz·2024년 1월 11일
0

MQTT

목록 보기
1/2
post-thumbnail

⭐ MQTT ( Message Queue for Telemetry Transport )

MQTTM2M 또는 IoT 를 위한 경량 Protocol 로서 저전력 장비에서도 운용이 가능하며, Network bandwidth 가 작은 곳에서도 충분히 운용 가능하도록 설계된 Protocol 입니다.

💫 MQTT 특징

🔹 Connection Oriented

MQTT Broker 와 연결을 요청하는 클라이언트TCP/IP 소켓 연결을 한 후 명시적으로 연결을 끊거나 네트워크 사정에 의해 연결이 끊어질 때까지 상태를 유지합니다.

하트비트인 LiveTopic 에 발행되는 메시지를 통해 연결을 유지하고 메시지 송수신을 하게됩니다.

🔹 Broker

MQTT Protocol 을 사용하여 PublisherSubscriber 사이에서 메시지를 관리하며 전송해주는 역할을 합니다.

등의 MQTT Broker 가 있습니다.

https://github.com/mqtt/mqtt.org/wiki/server-support
해당 깃 페이지에서 다양한 브로커에 대한 지원 기능 목록을 확인해볼 수 있습니다.

🔹 Pub/Sub Model

Broker 를 통한 발행/구독 메세징 패턴입니다.

  • 발행 : Broker 에 메시지를 전송
  • 구독 : Broker 가 구독하고있는 클라이언트에게 메세지를 전송

일대일 혹은 일대다 통신 가능

🔹 Qos ( Quality of Service )

3가지의 _QoS Level 이 있습니다.

  • 0 : 최대 한 번 전송하며 메시지를 전달합니다. 구독하는 클라이언트가 받는 것을 보장하지 않습니다.
  • 1 : 최소 한 번 전송합니다. 구독하는 클라이언트가 메시지를 받았는지 불확실하면 정해진 횟수만큼 재전송합니다.
  • 2 : 구독하는 클라이언트가 요구된 메시지를 정확히 한 번 수신할 수 있도록 보장합니다.

🔹 Topic

메시지를 발행/구동하는 행위는 채널단위로 일어나며 이 단위를 Topic 이라고 합니다.

Topic 은 슬래시(/) 로 구분되는 계층 구조를 가집니다.

최상위 토픽은 슬래시(/) 로 시작하지 않아야하며 와일드 카드 문자를 사용할 수 있습니다.

  • + : One-Level Wild Card
  • # : Multi-Level Wild Card

🔹 LWT ( Last will and testment )

MQTT 는 신뢰할 수 없는 네트워크를 포함하는 경우에 자주 사용되기 때문에 비정상적으로 연결이 끊어질 수 있다고 가정하는 것이 합리적입니다.

LWT 는 유언, 유언장 이라는 의미로서 BrokerClient가 연결이 끊어지면 자동으로 다른 구독자들에게 메시지가 전송되는 기능입니다.

일반적으로 Broker에 연결을 시도하는 시점에 will topic, will message, will qos 등을 지정합니다.

0개의 댓글