콘텐츠로 이동
무료 평가 시작

MQTT 배경 지식

MQTT(Message Queuing Telemetry Transport)는 브로커(broker)를 거쳐 메시지를 주고받는 발행/구독(publish/subscribe) 프로토콜입니다. TCP 위에서 동작하고 고정 헤더가 2바이트부터 시작할 만큼 작습니다. 그래서 설비와 센서 데이터를 모으는 데 널리 씁니다.

이 섹션은 표준 문구를 옮기지 않고 개념만 설명합니다. 절 번호는 MQTT 5.0 기준이며, 3.1.1과 다르면 따로 적습니다.

표준 문서
MQTT 3.1.1 OASIS Standard, 2014년 10월 29일 (ISO/IEC 20922:2016과 같은 내용)
MQTT 5.0 OASIS Standard, 2019년 3월 7일
OPC UA PubSub의 MQTT 매핑 OPC 10000-14 (OPC UA Part 14) §7.3.4
Mosquitto 설정 Eclipse Mosquitto mosquitto.conf(5) 매뉴얼
순서 문서 다루는 내용
1 발행/구독과 토픽 브로커, 클라이언트, 토픽 이름과 필터, 와일드카드, 토픽 설계
2 QoS와 보존 메시지 QoS 0, 1, 2의 패킷 흐름, 메시지 순서, 보존 메시지
3 세션, Keep Alive, Will Clean Session과 Session Expiry, 연결 유지, 비정상 종료 알림
4 MQTT 5.0 기능 속성, 이유 코드, 토픽 별칭, 사용자 속성, 흐름 제어
5 TLS와 인증 서버 인증, 클라이언트 인증서, 사용자 이름과 비밀번호, 권한
6 PDComm의 MQTT 시뮬레이터의 MQTT 사용 경로와 연결 방식

이 문서의 실습은 Eclipse Mosquitto 2.1을 참조 브로커로 사용합니다. Mosquitto는 MQTT 3.1, 3.1.1, 5.0을 모두 지원하는 오픈 소스 브로커입니다. mosquitto_pub와 mosquitto_sub 클라이언트 도구도 함께 제공하므로 트래픽을 직접 보내고 관찰할 수 있습니다. 다른 브로커도 MQTT 5.0을 지원하면 같은 방식으로 사용할 수 있습니다. 브로커가 갖춰야 할 조건은 브로커 구성에 정리했습니다.