MQTT를 알아보자..

준영·2022년 11월 14일
0

이것저것..

목록 보기
1/17
post-thumbnail

MQTT란?

최소한의 전력과 패킷량으로 통신하는 프로토콜로, 제한된 통신 환경을 고려하여 만들어졌다.

우리가 알고있는 socket.io는 MQTT보다 더 low 레벨이다.


구조

구조는

[ Publisher ----------> Broker ----------> Subscriber ] 의 형태이다.

Publisher

  • Topic을 발행한다.

Broker

  • 중계역할이다. Topic과 구독/발행을 총괄한다.

Subscriber

  • Topic을 구독한 구독자이다.

Topic: Publisher에서 발행하는 데이터 Subscriber가 받고자 하는 데이터

토픽은 또한, 계층적으로 구성 할 수 있다. 따라서 대량의 센서 기기들을 효율적으로 관리 할 수있다.

  • 예를 들어 중앙제어 장치에서, 해당 아파트를 구독한 에어컨들을 켜고 끌 수 있고, 그 아파트 들이 각각 구독한 동, 호수라는 하위 토픽으로 인하여 세세하게 끄고 켤 수도 있다.
  • MQTT 통신을 잘 활용한 예의 어플리케이션은 slack이 있다.

QOS (Quality Of Service)

level 0

  • 메시지 전달 한 번, 전달 이 후 수신과정 체크를 하지 않는다. -- 원격네트워크 상황에서 주로 사용

level 1

  • 메시지 전달 한 번 이상, 핸드셰이킹 과정을 추적하나, 엄격하지는 않다. -- 중복 수신의 위험있음

level 2

  • 메시지 전달 한 번, 핸드셰이킹의 모든 과정을 체크한다.
    * 핸드셰이킹 : 통신의 양측 간에 조건에 합의해가는 정보 교환 과정에 붙이는 용어

Qos 단계가 높을수록 성능저하가 일어나지만, 안정성을 올라가니까 상황에 맞게 선택해서 사용하자


그 외 특징

  • 명시적으로 종료하거나 네트웨크 상태에 의해 연결이 끊어질 때까지 연결 상태 유지

  • 연결 끊어진 후 재접속 지원을 위한 자체 기능 보유

  • 개방적은 표준 메시지 프로토콜 지향

profile
개인 이력, 포폴 관리 및 기술 블로그 사이트 👉 https://aimzero-web.vercel.app/

0개의 댓글