#16. MQTT

2022. 12. 3. 23:20
Update Log
| 22. 12. 03
MQTT
  • Minimal Battery loss 와 Minimal Bandwidth 를 위해서 만들어진 Protocol이다.
  • 구현하기가 단순하다.
  • 데이터의 전송에서 서비스의 질을 보장한다.
  • 경량적이고 (헤더가 작고  = 코드 전체량이 가볍고), 통신이 가볍다
  • 대역폭이 효과적이다.
  • OS 를 가리지 않는다.
    • 어떠한 OS 가 되더라도 잘 작동한다.
    • 언어를 가리지 않고 다 쓸 수 있다.
  • 연속적인 세션 (서로간에 연결되어있다.) 를 인지하고 있다.
    • 즉 상대방의 상태를 서로 알 수 있다.
  • 구동된 사건이다.
    • 즉 사건이 일어나야 구동이 된다.

 

MQTT 의 구조

MQTT의 구조

  • MQTT 는 M2M 연결 프로토콜로써, TCP/IP 로 구동된다.
  • MQTT의 구조의 특징
    • Publish - Subscribe 구조로 되어있다.
    • Publisher
      • Broker 로부터 특정된 Topic 에 관련한 메세지를 보낸다.
    • Broker
      •  Publisher가 보낸 메세지를 받고, 이 Topic 에 관련해서 구독하는 사람들에게 메세지를 보낸다.
    • Subscriber 
      • Broker와 특정한 Topic을 구독하고 있는 본인이 메세지를 받는다.
  • 보통 Device Side에서는 센서가 많이 있다.
  • Applciation side 는 휴대폰이라고 생각하면 된다.
  • Client는 출판과 구독 둘다 가능하다.

 

MQTT 동작방식
  • 클라이언트가 브로커에게 연결합니다.
  • 클라이언트가 Topic을 구독합니다.
  • 클라이언트가 Topic에 관련한 메세지를 출판할 수 있습니다.
  • 클라이언트는 구독한 Topic을 전부다 받습니다.
    • 브로커도 구독자에게 Published 된 것을 모아서 다 줍니다.
  • 메세지는 텍스트, 이미지 여러가지가 될 수 있습니다.

 

  • 페이스북 예시
    • 브로커가 방번호에 관련된 Topic을 받으면, 미리 등록된 방번호를 가지고 있는 사람들에게 대해 다 뿌려버린다.

 

Countinuous Session Awareness
  • MQTT 브로커와 연결을 요청하는 클라이언트는 TCP/IP socket 연결을 한 후 명시적으로 종료하거나
  • Network 사정에 의해서 연결이 끊어질때까지 연결 상태를 유지

 

  • Topic 에 발행된 Message 와 연결상태를 확인을 위한 Live(Heart Beat)를 항상 유지된 연결을 통해서 전달
    • 연결이 되어있는지에 대해서 체크를 하기 위해서 Live 를 보내는 것이다.
    • 연결이 안될 수도 있는데, 전송하면 오류가 생길수도 있기 때문에 한번씩 중간에 체크하는 것이다.

 

  • 연결 상태를 유지하는 것은 물론이고, 연결이 끊어진경우 재접속 등의 지원을 위한 기능을 보유하는 것이다.

 

 

MQTT Topic 관련 실제 메시지

'STUDY > 사물인터넷' 카테고리의 다른 글

#17. ZigBee  (0) 2022.12.03
#15. CoAP  (0) 2022.12.03
#14. REST API  (0) 2022.12.03
#13. IEEE 802.16  (1) 2022.11.30
#12. NB -IoT  (1) 2022.11.30

BELATED ARTICLES

more