Notice
Recent Posts
Recent Comments
Link
투케이2K
150. [IT 기술] MQTT (Message Queueing Telemetry Transport) 통신 설명 본문
[제 목]
[IT 기술] MQTT (Message Queueing Telemetry Transport) 통신 설명
[설 명]
- MQTT 설명 :
- MQTT 는 머신 대 머신 통신에 사용되는 표준 기반 메시징 프로토콜 또는 규칙 세트입니다 (TCP/IP 프로토콜 위에서 동작)
- MQTT 는 발행(Publish)-구독(Subscribe) 기반의 메시지 송수신 프로토콜로 최소한의 전력과 패킷으로 통신합니다
- MQTT 는 스마트 센서, 웨어러블 및 기타 사물 인터넷(IoT) 디바이스는 일반적으로 리소스 제약이 있는 네트워크를 통해 제한된 대역폭으로 데이터를 전송하고 수신 합니다
- MQTT는 디바이스에서 클라우드로, 클라우드에서 디바이스로의 메시징을 지원합니다
- IoT 에서 구현이 쉽고 데이터를 효율적으로 전달할 수 있는 장점으로 디바이스는 MQTT 사용해 데이터를 전송합니다
- MQTT 이점 :
- 가볍고 효율적임 : MQTT 를 IoT 디바이스에 구현할 때는 최소한의 리소스를 사용하며, MQTT 메시지 헤더도 작기 때문에 네트워크 대역폭을 최적화할 수 있습니다
- 확장성 : MQTT 는 많은 수의 IoT 디바이스와의 통신을 지원하기 위한 기본적인 기능을 갖추고 있습니다
- 신뢰성 : MQTT에는 IoT 디바이스에서 클라우드에 다시 연결하는 데 소요되는 시간을 줄여주는 기능이 기본적으로 탑재되어 있습니다. 또한 최대 1회(0), 최소 1회(1) 및 정확히 1회(2)라는 3가지 서비스 품질 수준을 정의하여 IoT 사용 사례에 필요한 신뢰성을 보장합니다
- 보안 : 개발자는 MQTT를 사용하면 메시지를 손쉽게 암호화하고 OAuth, TLS1.3, 고객 관리형 인증서 및 기타 최신 인증 프로토콜을 사용하여 디바이스와 사용자를 인증할 수 있습니다
- 우수한 지원 : Python과 같은 다수의 언어가 MQTT 프로토콜 구현을 광범위하게 지원합니다. 따라서 개발자는 모든 유형의 애플리케이션에서 최소한의 코드 작업으로 빠르게 이 프로토콜을 구현할 수 있습니다
- MQTT 구성 요소 :
- 클라이언트 :
- MQTT 클라이언트는 서버부터 MQTT 라이브러리를 실행하는 마이크로컨트롤러에 이르는 모든 디바이스가 될 수 있습니다
- 클라이언트는 메시지를 보내는 경우 게시자 역할을, 메시지를 수신하는 경우 수신자 역할을 합니다
- 브로커 :
- 여러 클라이언트 간의 메시지를 조정하는 백엔드 시스템입니다
- 브로커는 메시지 수신 및 필터링, 각 메시지를 구독하는 클라이언트 식별, 메시지 전송 등과 같은 작업을 담당합니다
- 브로커 추가 작업 영역 >> MQTT 클라이언트 권한 부여 및 인증, 추가 분석을 위해 다른 시스템으로 메시지 전달, 누락된 메시지 및 클라이언트 세션 처리
- 연결 :
- 클라이언트와 브로커는 MQTT 연결을 사용하여 통신을 시작합니다
- 클라이언트는 CONNECT 메시지를 MQTT 브로커로 보내 연결을 시작합니다
- 브로커는 CONNACK 메시지로 응답하여 연결이 설정되었음을 확인합니다
- MQTT 클라이언트와 브로커는 모두 TCP/IP 스택이 있어야 통신할 수 있습니다
- 클라이언트는 서로 연결되지 않으며 브로커에만 연결합니다
- 클라이언트 :
- MQTT 작동 방식 :
- MQTT 클라이언트가 MQTT 브로커와의 연결을 설정합니다 (CONNECT)
- 연결되면 클라이언트에서 메시지를 게시하거나 특정 메시지를 구독하거나 둘 다 수행할 수 있습니다
- MQTT 브로커는 메시지를 수신한 후 메시지에 관심이 있는 구독자에게 메시지를 전달합니다
- mosquitto 설치 참고 :
- PC 환경 >> 윈도우
- https://mosquitto.org/download/ 사이트 접속
- OpenSSL 설치 필요 없음 (libssl 포함되어 있음) >> Window64 환경에 맞는 exe 파일 설치
- 관리자 권한으로 실행 cmd (새창) >> 설치 버전 확인 >> C:\Program Files\mosquitto>mosquitto -v
- 관리자 권한으로 실행 cmd (새창) >> 포트 1883 포트 열린지 확인 (Listening) >> C:\Program Files\mosquitto>netstat -an
- 관리자 권한으로 실행 cmd (새창) >> 브로커 서비스 시작 >> C:\Program Files\mosquitto>net start mosquitto
- 관리자 권한으로 실행 cmd (새창) >> 클라이언트 구독 실행 >> C:\Program Files\mosquitto>mosquitto_sub -h localhost -t /testTopic
- 관리자 권한으로 실행 cmd (새창) >> publisher 사용해 구독자에게 알림 전달 >> C:\Program Files\mosquitto>mosquitto_pub -h localhost -t /testTopic -m "hello"
- 관리자 권한으로 실행 cmd (새창) >> 사용 종료 수행 >> C:\Program Files\mosquitto>net stop mosquitto
- 참고 : https://blog.naver.com/PostView.nhn?blogId=jocooldog&logNo=222302941668&categoryNo=14&parentCategoryNo=0&viewDate=¤tPage=1&postListTopCurrentPage=1&from=search
반응형
'IT기술 & IT용어' 카테고리의 다른 글
152. [IT 용어] 레거시 코드 (Legacy code) 개념 (0) | 2023.01.06 |
---|---|
151. [IT 용어] thing (띵) 설명 (0) | 2023.01.06 |
149. [IT 용어] X.509 인증서 (공개키 인증서 형식) 설명 (0) | 2022.12.31 |
148. [IT 용어] pseudo code (의사 코드 / 슈도 코드) 설명 (0) | 2022.12.31 |
147. [IT 용어] 로드 밸런싱 (Load Balancing) 용어 설명 (0) | 2022.12.27 |
Comments