let us not love with words or tongue but actions and truth.

IT/사물인터넷

3가지 프로토콜: HTTP/CoAP/MQTT 2

sarah0518 2023. 4. 4. 19:32
728x90

[MQTT: MQ Telemetry Transport]

- Publish / Subscribe messaging (One to many)

* CoAP는 Client - server 방식임

 

 

MQTT의  3가지 구성요소

1. publisher

2. MQTT Broker

3. Subscriber

 

 

Packet(message) flow diagram - (그림그리는거 시험!!)

어느 한명이 publishing을 하게 되면 many subscriber에게 정보가 전달 됨

* CoAP와의 차이점은 broker가 없다는 점이다.

* Broker는 AWS와 같은 플랫폼 회사가 될 수 있다.

 

 

MQTT message format

(외울필요는 없지만 용량을 점점 작게 사용한다는 것만 알면 됨)

 

 

옵션 Retain=1: publisher가 발행할 때 subscribe한 A한테는 정보가 전달되고, 

가장 last message를 keep하고 있다가 B가 subscribe할 때 또 전달해주는 것임

(Keep last message)

 

 

옵션 Remaining length (RL)

다음행에 연결된다는 것을 표현하기위해 header에 CB0, CB1 처럼 indexing을 해주는 것임

 

 

MQTT QoS (시험 100%) - diagram차이도

→ At-most-once delivery (QoS level 0)

위의 Packet(message) flow diagram 에서 publisher는 subscriber가 msg를 받았는지 못받았는지 알 수 없음

 

→ 해결책: At-least-once delivery (QoS level 1)

     (적어도 한번은 보냈다는 것을 알려주는 것, 정확히 몇번했는지는 알 수 없음)

     

위와 같이 receive정보를 받았다는 정보를 server에 전달하여 서버는 그 정보를 삭제함

(level1과의 차이는 server가 그냥 메시지를 subscriber에게 전달하고 삭제해버림)

→ 해결책: Exactly-once delivery (QoS level 2)

 

 

QoS level1과 level2의 차이

level1은 msg를 여러번 전달 할 수 있음 level2는 한번만 보냄

 

 

 

Topic wildcards

  • / : 각 hierarchical한 directory를 구분하기위해 " / " 를 사용함
  • + : building / + /sensors 는 building안에 있는 floor-1 와 floor-2 에 있는 모든 sensor들을 의미함
  • # : building / floor-1 / #는 floor1 아래에 있는 모든 것들을 의미함

시험문제 예시) 거실에 있는 모든 불을 끄시오: 집/#

시험문제 예시)집에 있는 냉장고를 모두 끄시오 : 집/+/냉장고

 

728x90

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

wireless evolution  (0) 2023.05.02
Matter - Ambient Intelligence  (0) 2023.04.04
3가지 프로토콜: HTTP/CoAP/MQTT 1  (0) 2023.03.28
TCP/IP Network Model  (0) 2023.03.21
사물인터넷 및 Network model  (0) 2023.03.14