2015년 Eclipse IOT survey 결과를 보면 가장 많이 사용하는 메시징 프로토콜은 HTTP, MQTT, CoAP 이다.
HTTP가 주요 프로토콜인 것은 두말할 필요도 없고, MQTT도 IBM에서 1999년에 개발하여 2010년에 무료로 오픈하여 나이로는 15년 이상된 것으로 Facebook Messenger 에서도 사용하는 등 다양한 곳에서 사용 중 이다. CoAP의 경우 2010년에 첫 draft가 나온 것으로 다른 프로토콜에 비하면 신생 프로토콜이라고 볼 수 있으나 점차로 사용하는 곳이 많아지는 것으로 보인다. 일 예로 작은 메모리를 가진 IOT open OS platform 인 mbed, zephyr 에서도 CoAP을 주 통신 프로토콜로 지원하고 있고, WICED 에서도 CoAP 제공하고 있다.
MQTT(Message Queue Telemetry Transport)는 IOT 기기간의 통신을 위한 프로토콜이다. MQTT 이외에도 IOT용으로 CoAP(Constrained Application Protocol), AMQP(Advanced Message Queuing Protocol), XMPP(eXtensible Messaging and Presence Protocol), DDS(Data Distribution Service), Stomp(Simple Text Orientated Messaging Protocol) 등의 다양한 프로토콜이 있고, 각각의 프로토콜은 활용 용도에 따라서 장단점을 가지고 있다.
여기에서는 MQTT의 특징에 대해서 정리하기로 한다.
MQTT의 특징 TCP 기반 프로토콜UDP가 아닌 TCP 기반이라 작은 IOT 기기에서는 사용이 어려울 수 있다. MQTT 프로토콜에서 사용자 인증을 제공한다. 하지만 이를 위한 username, password 필드는 cleartext로 전달되므로 이들 정보와 송수신 데이타를 보호하기 위하여는 별도로 암호화를 하거나 SSL/TLS를 이용하여 암호화 채널을 이용하여야 한다.