Programming

; develop a program

DevStudy

[Network] MQTT & MBTT

Clloud_ 2023. 6. 20. 08:14
반응형

이번 포스팅에서는 IoT(Internet of Things) 기기와 애플리케이션 사이의 메시지 전달을 위해 사용되는 MQTT(MQ Telemetry Transport)와 MBTT(Message Broker Telemetry Transport)에 대하여 공부를 해보고자 한다.

 


MQTT란

MQTT(MQ Telemetry Transport)는 경량의 메시징 프로토콜로, 네트워크 환경에서 소규모 장치들 간에 데이터를 교환하기 위해 사용된다.
또한, IoT(Internet of Things)와 M2M(Machine-to-Machine) 통신에 매우 적합한 프로토콜로 널리 사용되고 있다.

 

MQTT는 IBM에서 개발된 프로토콜로, 경량의 발행-구독(Publish-Subscribe) 메시징 패턴을 따른다.
이는 발행자(Publisher)구독자(Subscriber) 사이의 메시지 전달을 중개하는 브로커(Broker)를 사용하여 이루어진다.
MQTT는 TCP/IP를 기반으로 동작하며, 높은 수준의 이동성과 대역폭 효율성을 제공한다.

 

MQTT는 간단하고 효율적인 메시징 시스템을 위해 설계되었다.
발행자는 특정 토픽(Topic)으로 메시지를 발행하고, 해당 토픽에 관심 있는 구독자는 해당 메시지를 수신하게 된다.
MQTT는 메시지 크기가 작고, 네트워크 대역폭이 제한된 환경에서도 효율적으로 동작할 수 있도록 최적화되어 있다.

 


MQTT 구조

 

MQTT 구조

 

  • Broker에게 Subscriber는 정해진 topic을 설정하여 구독을 한다.
  • publisher가 subscriber가 사용한 같은 topic과 data를 Broker에게 송신한다.
  • Broker는 해당 topic을 구독하고 있는 구독자들에게 Publisher가 송신한 데이터를 n개의 구독자에게 전달한다.

 


MQTT 송/수신 방식

발행(Publish)

MQTT 클라이언트는 브로커에게 메시지를 발행하여 해당 토픽(Topic)에 연결된 구독자들이 메시지를 수신할 수 있도록 한다.

  • 발행 단계에서는 다음과 같은 절차를 따른다.
    1. 클라이언트는 MQTT 프로토콜을 사용하여 브로커에 연결한다.
    2. 클라이언트는 발행할 메시지를 생성하고, 발행할 토픽을 지정한다.
    3. 클라이언트는 발행 메시지와 토픽을 브로커에게 전송한다.
    4. 브로커는 발행된 메시지를 해당 토픽을 구독하는 모든 클라이언트에게 전달한다.

 

구독(Subscribe)

MQTT 클라이언트는 원하는 토픽을 구독하여 해당 토픽으로 발행되는 메시지를 수신할 수 있다.

  • 구독 단계에서는 다음과 같은 절차를 따른다.
    1. 클라이언트는 MQTT 프로토콜을 사용하여 브로커에 연결한다.
    2. 클라이언트는 토픽을 지정하여 해당 토픽을 구독 요청한다.
    3. 브로커는 구독 요청을 받으면 해당 클라이언트를 구독자로 등록한다.
    4. 브로커는 해당 토픽으로 발행된 메시지를 구독자에게 전송한다. 

 

메시지 전달

MQTT에서 메시지는 브로커를 통해 발행자와 구독자 간에 전달된다.

  • 메시지의 전달은 다음과 같은 순서로 이루어진다.
    1. 발행자는 브로커에게 메시지와 토픽 정보를 전송한다.
    2. 브로커는 해당 토픽을 구독하는 모든 구독자에게 메시지를 전송한다.
    3. 구독자는 브로커로부터 메시지를 수신한다.
    4. 메시지는 수신된 순서대로 구독자에게 전달된다.

 


서비스 품질(QoS)

MQTT는 서비스 품질(Quality of Service, QoS) 수준을 설정하여 메시지 전달의 신뢰성과 성능을 조정할 수 있다.

QoS(Quality of Service)란 서비스의 질을 보장해 주는 레벨을 말한다.

서비스의 종류에 따라서 적당한 QoS 레벨을 선택해야 한다.

 

  • MQTT는 다음과 같은 세 가지 QoS 수준을 제공한다.
    • QoS 0: 최대한 빠른 전달을 위해 최대 한 번의 전달만 보장한다. 메시지 손실이 발생할 수 있다.
    • QoS 1: 적어도 한 번의 전달을 보장한다. 중복 전달이 발생할 수 있지만, 메시지 손실은 방지된다.
    • QoS 2: 정확히 한 번의 전달을 보장한다. 메시지 손실 및 중복 전달이 방지된다.

 


MBTT란

MBTT(Message Broker Telemetry)는 메시지 브로커 시스템의 텔레메트리 데이터 수집과 모니터링을 위한 프로토콜을 말한다.
이 프로토콜은 메시지 브로커 시스템의 성능, 안정성, 확장성과 관련된 데이터를 수집하고 이를 분석하여 시스템의 상태를 파악할 수 있도록 해준다.

MQTT 프로토콜을 사용하여 IoT 기기에서 발생하는 데이터를 수집하고 처리할 수 있다. 

 

특징

  • 실시간 모니터링
    MBTT를 사용하면 메시지 브로커 시스템의 성능 및 상태를 실시간으로 모니터링할 수 있다.
    실시간 데이터 처리 및 분석이 가능하다.
  • 핵심 메트릭스 수집
    MBTT는 주요 메트릭스(예: 메시지 처리 시간, 처리량, 에러 발생 등)를 수집하여 시스템의 동작 상태를 측정한다.

  • 클라이언트-서버 아키텍처
    MBTT는 클라이언트가 메시지 브로커 시스템에 연결하여 텔레메트리 데이터를 보고하고, 서버는 이러한 데이터를 수집하여 분석하고 저장한다.

  • 성능 문제 해결
    MBTT를 통해 메시지 브로커 시스템의 성능 문제를 식별하고 병목 현상을 해결할 수 있다.

 

또한 데이터 처리를 위한 다양한 기능을 제공하고, 대용량 데이터를 처리하고 저장할 수 있다.

 


반응형

'DevStudy' 카테고리의 다른 글

[Network] FTP(File Transfer Protocol) 프로그램  (0) 2023.07.02
[Network] 모뎀(Modem)  (0) 2023.06.21
[Network] CDN(Content Delivery Network)  (0) 2023.06.10
[WEB] 크로미움(Chromium)  (0) 2023.06.08
[WEB] CLI와 WEB의 작동방식 차이  (0) 2023.06.05