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 |
인터넷 프로토콜 스위트 |
---|
응용 계층 |
전송 계층 |
인터넷 계층 |
링크 계층 |
MQTT[4](메시지 큐잉 텔레메트리 트랜스포트, Message Queuing Telemetry Transport)는 ISO 표준(ISO/IEC PRF 20922)[5] 발행-구독 기반의 메시징 프로토콜이다. TCP/IP 프로토콜 위에서 동작한다. "작은 코드 공간"(small code footprint)이 필요하거나 네트워크 대역폭이 제한되는 원격 위치와의 연결을 위해 설계되어 있다. 발행-구독 메시징 패턴은 메시지 브로커가 필요하다.
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[11] 클라이언트가 해야 할 일을 기다리고 인터넷 프로토콜 스위트 세션의 연결이 끊어지기를 기다린다.
발행하기
[편집]MQTT 클라이언트에 요청이 전달된 직후 애플리케이션 스레드에 즉시 반환한다.
서비스 품질 (QoS)
[편집]브로커에 대한 각 연결은 QoS 기준을 지정할 수 있다. 부하가 늘어나는 순서에 따라 다음과 같이 분류된다:
- 최대 한 차례 - 메시지는 한 번만 보내면 클라이언트와 브로커는 전달 확인 응답을 위한 추가 단계를 밟지 않는다. (보낸 다음 잊어버림)
- 최소 한 차례 - 메시지는 확인 응답을 수신할 때까지 여러 번 송신자로부터 재시도된다. (확인 응답을 거치는 전달)
- 정확히 한 번 - 송신자와 수신자는 2단계 핸드셰이크에 참여함으로써 오직 하나의 메시지 사본만을 수신하는 것을 보장한다. (보장된 전달)[12]
이 필드는 기반이 되는 TCP 데이터 전송의 처리에 영향을 주지 않으며, MQTT 송신자와 수신자 간에만 사용된다.
같이 보기
[편집]각주
[편집]- ↑ 가 나 “MQTT Version 5.0”. OASIS. 2019년 3월 7일. 2020년 12월 15일에 확인함.
- ↑ “OASIS Message Queuing Telemetry Transport (MQTT) Technical Committee Charter”. OASIS. 2020년 12월 15일에 확인함.
- ↑ “MQTT SN Subcommittee”. OASIS. 2020년 12월 15일에 확인함.
- ↑ “MQTT 3.1.1 specification”. OASIS. 2015년 12월 10일. 2017년 4월 25일에 확인함.
- ↑ “ISO/IEC 20922:2016 Information technology -- Message Queuing Telemetry Transport (MQTT) v3.1.1”. 《iso.org》. 국제 표준화 기구. 2016년 6월 15일.
- ↑ “10th birthday party”. 《MQTT.org》. July 2009. 2018년 12월 14일에 원본 문서에서 보존된 문서. 2015년 4월 25일에 확인함.
- ↑ “OASIS Message Queuing Telemetry Transport (MQTT) Technical Committee”. OASIS. 2014년 5월 9일에 확인함.
- ↑ 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일에 확인함.
- ↑ “IBM MQ”. IBM. 2013년 11월 18일에 확인함.
- ↑ 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일에 확인함.
- ↑ “Cross-Platform MQTT Client”. 《ioctrl.com》. 2021년 9월 4일에 원본 문서에서 보존된 문서. 2021년 9월 4일에 확인함.
- ↑ “IBM Knowledge Center”. 《www.ibm.com》 (미국 영어). 2018년 1월 30일에 확인함.
외부 링크
[편집]- MQTT
- 공식 웹사이트