본문 바로가기
Programming/Communication

MQTT (Message Queue Telemetry Transport): mosquitto

by 드로니뚜벅이 2022. 12. 5.

MQTT 는 IBM 에 의해서 개발되었고 2014년 국제 민간 표준기구인 오아시스에 의해서 표준으로 제정되었습니다. 이 프로토콜이 사물인터넷의 통신규약으로 각광 받고 있는 이유는 경량화가 가능해서 통신 대역폭이 제한적인 사물인터넷에 적합하기 때문 입니다. 현재 페이스북도 회원들간의 메시지 전송에 MQTT 프로토콜을 이용하고 있다고 합니다.

 

사물 통신(M2M: Machine to Machine), 사물 인터넷(IoT: Internet of Things)과 같이 대역폭이 제한된 통신 환경에 최적화하여 개발된 푸시 기술(push technology) 기반의 경량 메시지 전송 프로토콜입니다.
MQTT 프로토콜은 푸시 기술(push technology)에서 일반적으로 사용되는 클라이언트/서버 방식 대신, 메시지 매개자(broker)를 통해 송신자가 특정 메시지를 발행(publish)하고 수신자가 메시지를 구독(subscribe)하는 방식을 사용합니한다. 즉, 매개자(broker)를 통해 메시지가 송수신됩니다.

 

Broker란 Publishr와 Subscriber 사이에 메시지를 관리하여 전송해주는 중앙 관리자입니다.
Publishr(발행자)는 특정 Topic(화제)을 통해 Broker(중개인)에 메시지를 전송합니다. Broker는 Publishr가 발행한 Topic을 가지고 있고 Subscriber(구독자)는 Topic 기준으로 Broker에 구독을 요청합니다. Subscriber의 polling(주기적인 체크) 방식을 이용하여 Broker에 있는 Topic을 조회해 갑니다.

 

Topic?

Topic은 Publish와 Subscriber가 발행하고 구독할 수 있는 채널로 이해할 수 있습니다. Publisher와 Subscriber는 Topic을 기준으로 메시지를 발행하거나 구독합니다. Topic은 문자열로 구성되어 있기 때문에 / 를 이용하여 계층적으로 구성할 수 있어서 대량의 센서 기기들을 효율적으로 관리 할 수 있습니다

가운데 MQTT Broker 라는 것이 있고 Publish 와 Subscribe 가 있습니다. Publisher 가 Hi 라는 메시지를 보면 Subscribe 가 Broker 를 통해서 메시지를 받는 것 입니다. 구독하지 않은 토픽과 Subscriber 는 메시지를 받을 수 없습니다.

 

 

참고사이트

 

 

 

'Programming > Communication' 카테고리의 다른 글

ttySx, ttyUSBx, ttyACMx  (0) 2023.08.15
gRPC-web 사용하기  (0) 2022.12.08
Apache Thrift  (0) 2022.12.05
D-Bus IPC System  (0) 2022.12.05