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
'Study > ETC & TIP' 카테고리의 다른 글
포트 포워딩 가능 포트 확인하기 (0) | 2016.07.21 |
---|---|
FFT(고속 푸리에 변환) (0) | 2016.07.07 |
심박(심장박동) 측정원리 (0) | 2016.03.03 |
Harald Haas: Forget Wi-Fi. Meet the new Li-Fi Internet (0) | 2016.02.05 |
인터네트워킹 장비 (13) | 2015.12.09 |