MQTT
정의
MQTT란?
Message Queueing Telemetry Transport의 약어로, 머신 간 통신에 사용되는 국제 표준의 경량 Messaging Protocol을 의미한다.
네트워크 대역폭이 제한된 환경에서 대규모 트래픽 전송할 때, 프로토콜의 크기가 미치는 영향은 매우 크다. MQTT는 TCP/IP 프로토콜 위에서 동작하지만 굉장히 가벼워 많은 통신 제약들을 해결해줄 수 있다.
MQTT Push Technology란
송신자는 Broker를 통해 특정 메시지를 발행하고 수신자는 Broker를 통해 메시지를 구독하는 방식의 통신구조. 당연하게도 MQTT 프로토콜을 사용한다.
이제부터는 MQTT의 장점에 대해서 좀 더 자세히 알아보자.
첫째, MQTT 는 경량 프로토콜이다. 가장 작은 제어메시지는 2Byte로 네트워크 대역폭을 최적화 할 수 있다. 둘째, MQTT 구현에 필요한 코딩량이 적으며, 다수의 IoT 디바이스와 통신을 지원하기 때문에 확장이 쉽다. 셋째, IoT 디바이스에서 클라우드에 연결하는데, 소요되는 시간을 줄이는 기능이 탑재되어있어, 신뢰성이 높다. 넷째, 메시지를 손쉽게 암호화 할 수 있으며, 인증서 및 인증 프로토콜을 사용한 사용자 인증 프로세스로 보안적 장점이 있다. 다섯째, 다수의 프로그래밍 언어가 MQTT 프로토콜 구현을 광범위하게 지원하기한다.
QOS란?
Quality of Service 메시지 품질을 보장하는 Level을 의미한다.
아래는 Level 별 메시지 품질을 보여준다.
Level | 보장 수준 |
---|---|
1 | 메시지는 한번만 전달, 성공여부는 확인하지 않음 |
2 | 메시지는 최소 한번이상 전달, Publisher에게 PushBack을 전달하여 성공여부를 확인 |
3 | 메시지는 한번만 전달, HandShake 방식으로 메시지 보장 |
댓글남기기