MQTT

WangyuKim·2021년 8월 31일
0

Network

목록 보기
6/7

MQTT: Message Queueing Telemetry Transport

  • ISO(ISO표준 발행-구독(Publish-Subscribe)기반의 메시지 송수신 프로토콜
  • IoT와 같이, 코드 공간 또는 네트워크 대역폭이 제한된 원격통신을 할때, 대규모 트래픽 전송을 위해 만들어진 프로토콜이다.
  • TCP/IP 위에서 동작하고, 굉장히 가벼우며, 많은 통신 제약들을 해결해준다.
  • WIFI통신시 주로 사용한다.

IoT / M2M 차이

  • IoT: 사물 인터넷
    • 인터넷에 연결되는 장치의 네트워크
    • 환자의 심박수 센서를 환자의 옆에 있는 대화식 장치에 통합하여, 스마트폰으로 환자의 의사 또는 가족 구성원에게 알림을 전송하는 경우
  • M2M(라우터): 사물 지능 통신
    • 두 개 이상의 전자 장치 지원시스템(센서, 액추에이터, 내장형시스템, 연결소자 등)간에 자동화된 방법으로 통신하는 공정
    • 의사에게 환자의 건강 관련 정보를 지속적으로 제공하기 위해 환자의 심박수를 모니터링하는 센서를 외부 장치 또는 의료기기 등급 서버에 연결
    • 무선 연결 분야에서는 급속도로 발전하는 IoT의 고급 연결기술 및 솔루션을 동일하게 사용할 수 있다.

MQTT란?

  • M2M, IoT를 위한 프로토콜
  • 최소한의 전력과 패킷량으로 통신함
  • IoT와 모바일 어플리케이션 등의 통신에 매우 적합함
  • HTTP, TCP 등의 통신(클라이언트-서버 구조)과 다르게 Broker-Publisher-Subscriber 구조로 이루어짐
    • Publisher: Topic을 발행(publish)
    • Subscriber: Topic에 구독(subscribe)
      -> 단일 Topic에 여러 Subscriber가 구독하면 1:N 통신 구축 가능
    • Broker: 이들을 중계
  • MQTT는 프로젝트 특성에 따라 QoS(Quality of Service) 단계를 정할 수 있음
    • 0: 메시지 한번만 전달, 전달후 수신과정을 체크하지 않음
    • 1: 메시지 한번이상 전달, 핸드셰이킹 과정을 느슨하게 추적하여 중복수신의 가능성이 있음
    • 2: 메시지 한번만 전달, 핸드셰이킹의 모든 과정을 체크함
    • 0~1 젇도의 QoS를 사용하며 메시지 손실의 위험은 상위 어플리케이션 차원에서 관리하는 방법이 널리 쓰이고 있다.
  • 토픽 (Topic)

메시지를 발행-구독하는 행위는 채널 단위로 일어난다. 이를 MQTT에서는 토픽이라고 부르고, 토픽은 슬래시(/)로 구분되는 계층 구조를 갖는다.

company / firstFloor / SWoffice / temp

위 예시에서 슬래시 전후에 있는 office, firstFloor, SWoffice, temp는 모두 각각의 토픽 레벨(Topic Level)이며, 해당 토픽은 Topic Level Separator라고 불리는 슬래시로 구분된다.
즉, 위의 토픽은 회사 1층의 SW부서의 온도를 체크할 수 있는 토픽이다.

company / firstFloor / + / temp

위는 메시지를 구독-발행할 때 여러 개의 토픽을 한 번에 지정할 수 있도록 지원하는 와일드 카드의 예시이다.
[+] 문자는 One-Level Wild Card로, 단 한 개의 토픽을 임의의 토픽으로 대체할 수 있다.
즉, 위의 토픽은 회사 1층에 있는 모든 부서의 온도를 체크할 수 있는 토픽이다.

  • MQTT 브로커
    Mosquitto, HiveMQ, mosca, ActiveMQ, RabbitMQ(Plug-in 형태)
    • Mosquitto(eclipse-mosquitto): doker 컨테이너에서 실행

0개의 댓글