본문 바로가기
기타

MQTT

by KBS 2022. 5. 19.
728x90

MQTT(Message Queueing Telemetry transport)의 약자로 국제 표준화된 발행 - 구독 기반의 메시지 송수진 프로토콜 입니다.

MQTT는 M2M, IoT를 위한 프로토콜로써 최소한의 전력과 패킷량으로 통신하는 프로토콜 입니다. 다라서 IoT와 모바일 어플리케이션 등의 통신에 매우 적합한 프로토콜 입니다.

MQTT는 HTTP, TCP등의 통신과 같이 클라이언트-서버 구조로 이루어지는 것이 아닌, Broker, Publisher, Subscriber 구조로 이루어집니다.

Publisher는 Topic을 발행하고, Subscribers는 Topic에 구독합니다. Broker는 읻르을 중계하는 역할을 하며, 단일 Topic에 여러 Subscriber가 구독할 수 있기 때문에 1 : N 통신 구축에도 용이합니다.

MQTT는 QoS(Quality of Service)를 제공하는데, 총 3단계로 나뉘어져 있습니다.

  • 0 : 메세지는 한번만 전달되며, 전달이후의 수신과정을 체크하지 않는다.
  • 1 : 메세지는 한번 이상 전달되고, 핸드셰이킹 과정을 추적하나, 엄격하게 추적하지 않기 때문에 중복수신의 가능성이 있다.
  • 2 : 메세지는 한번만 전달되고, 핸드셰이킹의 모든 과정을 체크한다.

QoS의 단계가 높아질 수록 통신의 품질은 향상되지만, 그에 따라 성능 저하의 가능성이 있으므로. MQTT의 QoS는 프로젝트의 특성에 따라 결정되어야 합니다

사용하는 이유

1. 가볍고 효율적

MQTT 클라이언트는 매우 작고 최소한의 리소스가 필요하므로 소형 마이크로컨트롤러에서 사용할 수 있습니다. MQTT 메시지 헤더는 네트워크 대역폭을 최적화하기 위해 작습니다.

2. 양방향 통신

MQTT는 장치에서 클라우드로, 클라우드에서 장치로의 메시징을 허용합니다. 이를 통해 사물 그룹에 메시지를 쉽게 브로드캐스트할 수 있습니다.

3. 안정적인 메시지 전달

메시지 전달의 안정성은 많은 IoT 사용 사례에서 중요합니다. 이것이 MQTT에 3가지 정의된 서비스 품질 수준이 있는 이유입니다. 0 - 최대 한 번, 1 - 최소 한 번, 2 - 정확히 한 번

728x90

댓글