MQTT : Message Queuing Telemetry Transport
메세지 라는 단어에서 볼 수 있듯이 발행-구독 기반의 메시징 프로토콜을 말합니다.
아주 작은 코드 공간, 즉 사물인터넷에서 초경량 통신을 위한 프로토콜입니다.
즉 모바일 기기나 낮은 대역폭의 소형 디바이스들에게 최적화된 메시징 프로토콜이라고 볼 수 있습니다.
IBM의 주도로 개발 되었으며 민간 기구인 OASIS를 통해 표준화되었습니다.
느리고 품질이 낮은 네트워크에서도 메시지를 안정적으로 전송할 수 있도록 설계되었기 때문에
저전력에 방점을 두고 리소스를 최소화해 사용하고 있습니다.
대표적인 활용은 Face Book 메신저, PUSH 메시징 서비스 등에 적용하고 있습니다.
MQTT 프로토콜은 클라이언트와 클라이언트 사이를 중개하는 브로커 역할을 한다고 볼 수 있는데요
게시 - 가입 메시징 패턴
브로커는 항상 온라인 상태 여야합니다.
클라이언트는 연결이 가능할 때 또는 데이터를 보내거나받을 필요가있을 때만 온라인에 연결하면됩니다.
이벤트 중심
MQTT 클라이언트는 특정 조건이 충족 될 때 (예 : 경고 신호가 트리거되는 경우)에만 브로커에 데이터를 공개합니다.
즉, 클라이언트는 수동으로 다른 장치가 데이터를 요청하기를 기다리는 대신 데이터를 적극적으로 업데이트합니다.
다 대다 통신
공장 M2M (Machine-to-Machine) 응용 프로그램에서 각 스테이션의 시스템은
다른 스테이션의 시스템과 자신의 프로세스 상태를 공유합니다.
MQTT를 사용하여 M2M 통신을 구현하면 효율성과 신뢰성이 향상됩니다.
QoS 설계
MQTT 프로토콜은 QoS 0 (최대 한 번), QoS 1 (최소 한 번) 또는 QoS 2 (정확히 한 번)의
세 가지 QoS 레벨을 사용하여 데이터의 우선 순위를 지정합니다.
보안
MQTT 브로커는 권한이없는 클라이언트가 브로커에 연결하여 항목을 구독하지 못하도록
계정 이름과 암호를 지원하며 데이터 전송을위한 TLS 암호화는 전송 중에 데이터가 해킹 될 가능성을 크게 최소화합니다.
출처: MOXA 네이버블로그