1.MQTT란 ? MQTT 개념 및 작동 방식

박남호·2023년 3월 6일
0

MQTT란 무엇인가요?

MQTT는 머신 대 머신 통신에 사용되는 표준 기반 메시징 프로토콜 또는 규칙 세트입니다. 스마트 센서, 웨어러블 및 기타 사물 인터넷(IoT) 디바이스는 일반적으로 리소스 제약이 있는 네트워크를 통해 제한된 대역폭으로 데이터를 전송하고 수신해야 합니다. 이러한 IoT 디바이스는 MQTT를 데이터 전송에 사용하는데, 구현이 쉽고 IoT 데이터를 효율적으로 전달할 수 있기 때문입니다. MQTT는 디바이스에서 클라우드로, 클라우드에서 디바이스로의 메시징을 지원합니다.

MQTT 프로토콜이 중요한 이유는 무엇인가요?

MQTT 프로토콜은 다음과 같은 이점을 제공하기 때문에 IoT 데이터 전송 표준이 되었습니다.

가볍고 효율적임

MQTT를 IoT 디바이스에 구현할 때는 최소한의 리소스가 필요합니다. 따라서 작은 마이크로컨트롤러에도 사용될 수 있습니다. 예를 들어 가장 작은 MQTT 제어 메시지는 데이터 2바이트만큼 작습니다. MQTT 메시지 헤더도 작기 때문에 네트워크 대역폭을 최적화할 수 있습니다.

확장성

MQTT 구현에는 최소량의 코드가 필요하며 작업 시 아주 작은 전력만 소비됩니다. 이 프로토콜은 또한 많은 수의 IoT 디바이스와의 통신을 지원하기 위한 기본적인 기능을 갖추고 있습니다. 따라서 MQTT 프로토콜을 구현하여 수백만 개의 디바이스에 연결할 수 있습니다.

신뢰성

많은 IoT 디바이스는 대역폭은 낮고 지연 시간은 긴 신뢰할 수 없는 셀룰러 네트워크를 통해 연결합니다. MQTT에는 IoT 디바이스에서 클라우드에 다시 연결하는 데 소요되는 시간을 줄여주는 기능이 기본적으로 탑재되어 있습니다. 또한 최대 1회(0), 최소 1회(1) 및 정확히 1회(2)라는 3가지 서비스 품질 수준을 정의하여 IoT 사용 사례에 필요한 신뢰성을 보장합니다.

보안

개발자는 MQTT를 사용하면 메시지를 손쉽게 암호화하고 OAuth, TLS1.3, 고객 관리형 인증서 및 기타 최신 인증 프로토콜을 사용하여 디바이스와 사용자를 인증할 수 있습니다.

우수한 지원

Python과 같은 다수의 언어가 MQTT 프로토콜 구현을 광범위하게 지원합니다. 따라서 개발자는 모든 유형의 애플리케이션에서 최소한의 코드 작업으로 빠르게 이 프로토콜을 구현할 수 있습니다.

MQTT의 원리는 무엇인가요?

MQTT 프로토콜은 게시/구독 모델의 원칙을 기반으로 작동합니다. 전통적인 네트워크 통신에서는 클라이언트와 서버가 서로 직접 통신합니다. 클라이언트가 서버의 리소스 또는 데이터를 요청하면 서버가 이를 처리한 후 응답을 다시 보냅니다. 그러나 MQTT는 게시/구독 패턴을 사용하여 메시지 발신자(게시자)와 메시지 수신자(구독자)를 분리합니다. 대신에 메시지 브로커라고 하는 제3의 구성 요소가 게시자와 구독자 간의 통신을 처리합니다. 이 브로커가 하는 일은 게시자로부터 수신되는 모든 메시지를 필터링하고 구독자에게 직접 배포하는 것입니다. 브로커는 게시자와 구독자를 아래와 같이 분리합니다.

공간 분리

게시자와 구독자는 서로의 네트워크 위치를 모르며 IP 주소 또는 포트 번호와 같은 정보를 교환하지 않습니다.

시간 분리

게시자와 구독자는 동시에 실행되거나 네트워크를 통해 연결되지 않습니다.

동기화 분리

게시자와 구독자는 서로를 중단시키지 않고 메시지를 전송하거나 수신할 수 있습니다. 예를 들어 구독자는 게시자가 메시지를 전송할 때까지 기다리지 않아도 됩니다.

MQTT는 어떤 방식으로 작동하나요?

아래에 MQTT의 작동 방식에 대한 개요가 나와 있습니다.

  1. MQTT 클라이언트가 MQTT 브로커와의 연결을 설정합니다.
  2. 연결되면 클라이언트에서 메시지를 게시하거나 특정 메시지를 구독하거나 둘 다 수행할 수 있습니다.
  3. MQTT 브로커는 메시지를 수신한 후 메시지에 관심이 있는 구독자에게 메시지를 전달합니다.
    이해를 높이기 위해 세부 정보를 항목별로 나누어 살펴보도록 하겠습니다.

MQTT 주제

‘주제’라는 용어는 MQTT 브로커가 MQTT 클라이언트를 위한 메시지를 필터링할 때 사용하는 키워드입니다. 주제는 파일 또는 폴더 디렉터리와 유사한 계층 구조로 정렬됩니다. 예를 들어 여러 층으로 된 주택에서 작동하는 스마트 홈 시스템을 생각해 보세요. 각 층에는 서로 다른 스마트 디바이스가 있습니다. 이 경우 MQTT 브로커는 주제를 다음과 같이 정렬할 수 있습니다.

ourhome/groundfloor/livingroom/light

ourhome/firstfloor/kitchen/temperature

MQTT 게시

MQTT 클라이언트는 주제 및 데이터가 바이트 형식으로 포함된 메시지를 게시합니다. 클라이언트는 텍스트 데이터, 바이너리 데이터, XML 또는 JSON 파일과 같은 데이터 형식을 결정합니다. 예를 들어 스마트 홈 시스템의 조명은 livingroom/light 주제에 on이라는 메시지를 게시할 수 있습니다.

MQTT 구독

MQTT 클라이언트는 MQTT 브로커에 SUBSCRIBE 메시지를 보내 관심 주제에 대한 메시지를 수신합니다. 이 메시지에는 구독의 고유 식별자와 목록이 포함됩니다. 예를 들어 휴대폰의 스마트 홈 앱을 사용하여 집안에 켜져 있는 조명의 수를 표시하려면 light 주제를 구독하고 모든 on 메시지의 카운터를 늘립니다.

위사이트를 참조 하였음 : https://aws.amazon.com/ko/what-is/mqtt/

profile
NamoPark

0개의 댓글