MQTT[4](메시지 큐잉 텔레메트리 트랜스포트, Message Queuing Telemetry Transport)는 ISO 표준(ISO/IEC PRF 20922)[5] 발행-구독 기반의 메시징 프로토콜이다. TCP/IP 프로토콜 위에서 동작한다. "작은 코드 공간"(small code footprint)이 필요하거나 네트워크 대역폭이 제한되는 원격 위치와의 연결을 위해 설계되어 있다. 발행-구독 메시징 패턴메시지 브로커가 필요하다.

MQTT
MQTT 로고
상태출판됨
시작 연도1999
마지막 버전5.0[1]
2019년 3월 7일
조직OASIS
위원회OASIS Message Queuing Telemetry Transport Technical Committee[2]
편집장Andrew Banks (IBM), Ed Briggs (Microsoft), Ken Borgendale (IBM), Rahul Gupta (IBM)[1]
관련 표준MQTT-SN[3]
웹사이트mqtt.org

IBM앤디 스탠퍼드 클락과 시러스 링크의 알렌 니퍼(Arlen Nipper)가 1999년 이 프로토콜의 최초 버전을 만들었다.[6]

2013년, IBM은 MQTT v3.1을 OASIS 표준화 단체에 제출하였다.[7] MQTT-SN[8]직비와 같은 비 TCP/IP 네트워크의 임베디드 장치에 초점을 둔 메인 프로토콜의 일종이다.

역사적으로, MQTT의 MQ는 IBM 웹스피어 MQ(당시 'MQSeries') 메시지 큐 제품 계열에서 비롯된 것이다.[9] 그러나 모든 상황에서 표준 기능으로서 큐잉 그 자체를 지원하는 것은 필수가 아니다.[10]

메시지 유형 편집

연결하기 편집

 
MQTT 연결의 예 (QoS 0). retain 플래그로 인해 클라이언트 B로부터의 최초 메시지가 저장된다.

서버와의 연결 수립을 기다린 다음 노드 간 링크를 만든다.

연결 끊기 편집

MQTT[11] 클라이언트가 해야 할 일을 기다리고 인터넷 프로토콜 스위트 세션의 연결이 끊어지기를 기다린다.

발행하기 편집

MQTT 클라이언트에 요청이 전달된 직후 애플리케이션 스레드에 즉시 반환한다.

서비스 품질 (QoS) 편집

브로커에 대한 각 연결은 QoS 기준을 지정할 수 있다. 부하가 늘어나는 순서에 따라 다음과 같이 분류된다:

  • 최대 한 차례 - 메시지는 한 번만 보내면 클라이언트와 브로커는 전달 확인 응답을 위한 추가 단계를 밟지 않는다. (보낸 다음 잊어버림)
  • 최소 한 차례 - 메시지는 확인 응답을 수신할 때까지 여러 번 송신자로부터 재시도된다. (확인 응답을 거치는 전달)
  • 정확히 한 번 - 송신자와 수신자는 2단계 핸드셰이크에 참여함으로써 오직 하나의 메시지 사본만을 수신하는 것을 보장한다. (보장된 전달)[12]

이 필드는 기반이 되는 TCP 데이터 전송의 처리에 영향을 주지 않으며, MQTT 송신자와 수신자 간에만 사용된다.

같이 보기 편집

각주 편집

  1. “MQTT Version 5.0”. OASIS. 2019년 3월 7일. 2020년 12월 15일에 확인함. 
  2. “OASIS Message Queuing Telemetry Transport (MQTT) Technical Committee Charter”. OASIS. 2020년 12월 15일에 확인함. 
  3. “MQTT SN Subcommittee”. OASIS. 2020년 12월 15일에 확인함. 
  4. “MQTT 3.1.1 specification”. OASIS. 2015년 12월 10일. 2017년 4월 25일에 확인함. 
  5. “ISO/IEC 20922:2016 Information technology -- Message Queuing Telemetry Transport (MQTT) v3.1.1”. 《iso.org》. 국제 표준화 기구. 2016년 6월 15일. 
  6. “10th birthday party”. 《MQTT.org》. July 2009. 2018년 12월 14일에 원본 문서에서 보존된 문서. 2015년 4월 25일에 확인함. 
  7. “OASIS Message Queuing Telemetry Transport (MQTT) Technical Committee”. OASIS. 2014년 5월 9일에 확인함. 
  8. Stanford-Clark, Andy; Hong Linh Truong (2013년 11월 14일). “MQTT For Sensor Networks (MQTT-SN) Protocol Specification Version 1.2” (PDF). 《mqtt.org》. MQTT. 27쪽. 2013년 8월 12일에 원본 문서 (PDF)에서 보존된 문서. 2014년 5월 9일에 확인함. 
  9. “IBM MQ”. IBM. 2013년 11월 18일에 확인함. 
  10. Piper, Andy (2013년 2월 19일). “Choosing Your Messaging Protocol: AMQP, MQTT, or STOMP”. 《blogs.vmware.com》. VM웨어 Blogs. 1쪽. 2013년 10월 17일에 원본 문서에서 보존된 문서. 2013년 10월 23일에 확인함. 
  11. “Cross-Platform MQTT Client”. 《ioctrl.com》. 2021년 9월 4일에 원본 문서에서 보존된 문서. 2021년 9월 4일에 확인함. 
  12. “IBM Knowledge Center”. 《www.ibm.com》 (미국 영어). 2018년 1월 30일에 확인함. 

외부 링크 편집