티스토리 뷰

study/Web

Mqtt protocol

xoxowo 2022. 8. 29. 17:47

3차 프로젝트를 하면서 새롭게 접하게 된 mqtt.. 사물인터넷 (Internet of Things)와 연관되어있다는...? 이게 무엇일까..🙄

정리해보았지만 역시 어려운 것 같다. 가볍게 읽고 나중에 깊게 공부하도록하자

 

Mqtt(Message Queue Telemetry Transport)

TCP/IP 프로토콜 베이스로 설계된 가벼운 pub/sub 모델의 메시징 프로토콜로 사물인터넷 (loT)과 M2M(machine-to-machine)에서 사용하려고 만들어졌기 때문에 loT를 위해 낮은 전력과 낮은 대역폭 환경에서도 사용할 수 있도록 설계되었다.

저전력, 신뢰할 수 없는 네트워크, No TCP/IP 기반에서도 운용할 수 있다는 장점이 있어, 소형기기의 제어와 센서 정보수집에 유리하다고 한다.

 

 

Mqtt 구조

그림과 같이 크게 Mqtt는 메시지(데이터)를 topic에 발행하는 Publisher, topic을 구독하는 Subscriber 그리고 발행과 구독을 중개해주는 Broker로 이루어져 있다. ( 1:N 관계가 가능하다. )

 

 

Publisher 메시지(데이터)를 topic과 함께 포장하여 메시지를 Broker한테 보낸다. 

 

 

Subscriber pub이 발생한 topic을 통해 메시지(데이터)를 가져온다. (구독자)

 

Broker 이미지 중간에 있는 mqtt broker는 정확하게 서버는 아니며, 메시지가 오가는 통로 또는 발행(pub)과 구독(sub) 사이에 메시지를 전달해주는 중개인 역할을 해준다.

 

topic은 publisher가 발행하는 데이터인데 이 topic을 기준으로 메시지를 발행하거나 구독한다.

슬래시 (/)로 구분되는 계층 구조를 가지고 있다.

 

 

 

 

Qos (Quality of service)

서비스의 질을 보장해주는 레벨을 의미한다.

loT(사물 인터넷)와 같이 디바이스가 무선의 네트워크 망에서 통신할 경우가 많기 때문에 프로토콜상에서 안정적으로 보내주기 위해 Qos가 있다고한다.  0부터 2까지 있으며, 이 Qos 단계가 높을 수록 성능이 저하된다고 한다.

 

0: 메세지 전달 한 번 (보통 원격 네트워크 상황에서 주로 사용)

메시지를 처음 보내고 저장하지 않으며 전송이 성공하지 않으면 전송이 실패한 상태로 끝이다. (Qos를 보장하지 않는다)

 

1: 메세지 전달 한 번 이상 (중복 수신 위험 가능성 있음)

메세지를 처음 보내고 정상적으로 통신할 경우 1번을 보낸다. 다만 클라이언트가 메세지를 받았다고 PUBACK 메세지를 전달하지 않았다면 다시 메세지를 보내는 과정을 거치기 때문에 메세지 전달이 한 번 이상이 될 수 있다.

 

2: 메세지 전달 한 번, *핸드셰이킹의 모든 과정 체크 

 

 


이미지 자료 및 전문 출처 - https://www.catchpoint.com/network-admin-guide/mqtt-broker

'study > Web' 카테고리의 다른 글

디자인 패턴 - 팩토리 패턴 (factory pattern)  (0) 2022.10.06
디자인 패턴 - 싱글톤 패턴 (singleton pattern)  (0) 2022.10.06
HTTP 통신 구조  (0) 2022.07.19
CSS- display, position  (0) 2022.06.22
Semantic Web과 Semantic Tag  (0) 2022.06.21
댓글