티스토리 뷰

MQTT

[MQTT] MQTT 설명

IT공부블로그 2019. 7. 25. 13:47
728x90
반응형

MQTT


MQTT(Message Queuing Telemetry Transport) 란 텔레메트리 장치, 모바일 기기에 최적화된 라이트 메시징 프로토콜 입니다.

더 다양한 앱과 서비스의 등장으로 HTTP등의 기존 프로토콜만으로는 커뮤니케이션의 다양한 요구사항을 수용 할 수 없게 되었고, 제한된 통신 환경을 고려하여 디자인된 MQTT 프로토콜은 모바일 영역의 진화에 따라 최적의 프로토콜로 주목 받고 있습니다.



특징


실시간 푸시 전송

전력사용 최소화

비동기 메시징

경량메시지 포맷 (80~100kb 정도 크기)

이벤트 방식을 이용하여 다수의 사용자와 디바이스를 지원

별도의 응용 로직이 필요가 없다.

단순하고 미니멀한 Pub/Sub 메시징 체제

기업 경계 박의 Edge 네트워크 장치와 기업 내의 백엔드 애플리케이션 간 메시지 교환에 접합

간편한 메시징을 위한 직관적 verb set(connect/disconnect publish/subscribe) 제공

오버헤드를 최소화

가장 작은 메시지 사이즈는 2byte: 가변길이 MQTT헤더 + 애플리케이션 Payload

Payload 데이터에 중립적: 별도의 다른 애플리케이션 헤더 불필요

클라이언트 라이브러리: C버전은 30KB, Java 버전은 100KB 내외

Pub/Sub에 있어서 메시징 신뢰성을 위한 세가지 QoS(Quality of Service) 레벨 제공

반드시 전달되어야하는 중요 메시지에 대한 전달 보장

QoS 0 : 한 번만 전달하고 전달 여부는 확인하지 않음.

QoS 1 : 적어도 한 번 이상 전달하고 전달 여부 확인.

QoS 2 : 4단계의 핸드셰이킹(handshaking)을 통해 정확히 한 번만 전달.

클라이언트와 서버간의 연결을 잃었을때 이를 보정하기 위한 자체 기능

Last will and testament: 클라이언트가 예고 없이 연결을 잃을 경우 이벤트가 서버에서 발생,

서버 측에서 연결의 유실 여부 인지

Durable subscription: 서버에 클라이언트의 구독(subscription)정보 저장됨,

세션 종료 후 재접속 시에도 재작업 없이 Pub/Sub유지

Clean session 기능: 연결 해제 후 다시 연결되었을 때의 이전 세션 유지/삭제 선택


구조   



Publish / Subscribe

MQTT 프로토콜은 메시를 발행하고 , 관심 있는 주제를 구독하는 것을 기본 원칙으로 한다

발행자와 구독자 모두 Broker에 대한 클라이언트로 작동한다. 발행자는 토픽을 발행하기 위한 목적으로 구독자는 토픽을 구독하기 위한 목적으로 broker서버에 연결을 한다. 하나이상의 pub와 sub가 브로커에 연결해서 토픽을 발행하거나 구독할 수 있으며, 다수의 클라이언트가 하나의 토픽을 구독 할 수도 있다



    TOPIC


    Pub와 Sub는 토픽을 기준으로 작동을 한다. 토픽은 “/“를 기준으로 계층적으로 구성할 수 있어서 대량의 센서 기기들을 효율적으로 관리 할 수 있다.


728x90
반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함