MQTT Protocol
MQTT Protocol 이란?
2020. 4. 19. 14:46반응형
- 정의
- Message Queuing Telemetry Transport
- 메시지 대기 원격 분석 전송
- 특징
- 응용 계층 프로토콜임 (HTTP, FTP, DNS와 같은 계층에서 동작함)
- TCP/IP 프로토콜 위에서 동작.
- ISO 표준 발행-구독 (Publish-Subscribe) 기반의 메시징 프로토콜.
- 메시지를 효율적으로 압축하여 오버헤드를 최소화화하였음.
- 자체적적으로 보안을 제공하지 않음.
- 쓰임새
- 작은 데이터 값(온도 값, On, OFf 값)을 송수신하는데 적합.(영상 데이터는 부적합
- 작은 코드 공간이 필요한 M2M, IOT와 같은 제한된 환경에 적합.
- 대역폭이 제한되는 원격 위치와의 연결을 위해.
- 개념
- Publisher
메시지를 보내는 클라이언트.
메시지가 어떤 유형인지(topic)를 설정해서 보내야함.
* Publisher이면서 Subscriber가 될 수 있음. - Subscriber
메시지를 받는 알림을 설정한 클라이언트.
어떤 유형의(topic) 메시지를 구독할 것인지 설정(subscribe)해야함.
* Subscriber이면서 Publisher가 될 수있음. - Broker
클라이언트들이 보낸 메시지를 수집하고
해당 메시지를 구독한(subscribe) 클라이언트에게 전송해주는 중계 역할
* Subscriber이면서 Publisher이면서 Broker가 될 수 있음
* 이것은 단지 기능에 대한 구분일 뿐 하나의 클라이언트가 하나의 기능을 가지는 건 아님!
* 하지만 broker는 독립적인 서버로 놔두고 하나의 클라이언트가 sub/pub 기능을 가지는 것이 대부분!
- Publisher
- 서비스 품질(Qos)
3가지 서비스 품질을 설정하여 publish 할 수 있음
- 메시지 한번만 보냄. 확인 응답 X
- 확인 응답 수신할 때 까지 재시도. (중복 전송될 수 있음)
- 메시지 한번만 전달. 송신자와 수신자는 핸드셰이크함 (보장된 전달, 성능에 희생)
- 참고
https://www.wolfssl.com/products/wolfmqtt/
https://ko.wikipedia.org/wiki/MQTT
반응형
'MQTT Protocol' 카테고리의 다른 글
[MQTT 환경 구축] Python으로 MQTT통신하기 (MQTT Cloud 사용) (0) | 2020.04.19 |
---|---|
[MQTT 환경 구축] MQTT Cloud Client 설정하기 (0) | 2020.04.19 |
[MQTT 환경 구축] Cloud MQTT 활용하여 MQTT 브로커 만들기 (0) | 2020.04.19 |