본문 바로가기
Study/ETC & TIP

MQTT

by Answer Choi 2016. 6. 30.
반응형

MQTT는 M2M(Machine to Machine) 또는 Internet of Things 를 위한 프로토콜입니다.


MQTT는 크게 Publish - Broker - Subscribe 로 나뉩니다.



위 그림처럼 Broker에 Topic을 Publish하고, 원하는 Topic만 Broker에서 Subscribe를 하는 구조입니다.




예를 들면 위와 같은 토픽이 있습니다.


BLOG라는 커다란 Topic 아래에는 NAVER, DAUM, TISTORY라는 토픽이 있고, 그 아래에는 각각 CAR, IT라는 TOPIC이 있습니다.


발행자가 Publish할 때에는 BLOG/NAVER/CAR 라는 식으로 Broker에게 보내게 됩니다.


그 후 BLOG-NAVER-CAR라는 Topic을 원하는 구독자가 있으면, Broker에 업데이트가 되면 바로 


받아오는 형식입니다.


더 자세히 들어가보면 구독자가 Topic을 가져오는 방법에는 여러가지가 있습니다.


위와 같이 한가지 Topic만 가져오는 방법도 있지만, Wildcard를 사용하여 여러개의 토픽을 가져올 수도 있습니다.


예를 들면 BLOG/NAVER/+ 로 가져오게 되면 NAVER밑의 모든 Topic(CAR, IT)을 가져오게 됩니다.


그리고 BLOG/# 으로 가져오게 되면 BLOG 밑의 모든 Topic을 가져오게 됩니다.


QoS(Quality of Service)


QoS는 MQTT에서 메세지 전송에 대한 품질을 어느정도의 신뢰성을 가질 것인지를 결정하는 것입니다.


QoS는 3단계가 있습니다.


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


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


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


QoS의 수준은 발행자와 구독자 모두 설정가능합니다.


하지만 발행자의 설정이 우선시 됩니다.


예를들어 발행자가 QoS 2로 설정하면 구독자는 QoS 0~ QoS 2 어느것이든 설정가능 하지만


발행자가 QoS 0으로 설정하면 구독자는 QoS 0 의 품질만 보상받게 됩니다.



참고 자료


http://www.slideshare.net/gemboy1/mqtt-54945610


http://d2.naver.com/helloworld/1846



반응형

인기글