백구의 코딩찌개
  • [IoT] MQTT 무엇일까?
    2024년 01월 01일 16시 33분 37초에 업로드 된 글입니다.
    작성자: 코딩백구
    반응형

    MQTT 란?

    • MQTT란 Machine 대 Machine 통신에 사용되는 표준 기반 메시징 프로토콜이다.
    • 스마트 센서, 웨어러블 및 기타 사물 인터넷(IoT) 디바이스는 일반적으로 리소스 제약이 있는 네트워크를 통해 제한된 대역폭으로 데이터를 전송하고 수신해야 한다.
    • 이러한 IoT 디바이스는 MQTT를 데이터 전송에 사용하는데, 구현이 쉽고 데이터를 효율적으로 전달할 수있다.

    MQTT 장점

    • 가볍고 효율적임
      • 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 프로토콜은 Pub / Sub 모델의 원칙을 기반으로 작동한다.
    • 기존의 네트워크 통신에서는 클라이언트와 서버가 서로 직접 통신하는데, 클라이언트가 서버의 리소스 또는 데이터를 요청하면 서버가 이를 처리한 후, 응답을 다시 보낸다.
    • 그러나 MQTT는 Pub / Sub 패턴을 사용하여 메시지 발신자(게시자)와 메시지 수신자(구독자)를 분리한다.
    • 대신에 메시지 브로커라고 하는 제 3의 구성 요소가 게시자와 구독자간의 통신을 처리한다. 이 브로커가 하는일은 게시자로부터 수신되는 모든 메시지를 필터링하고 구독자에게 전송하는것이다.
    • 브로커는 게시자와 구독자를 아래와 같이 분리한다.
      1. 공간분리
        • 게시자와 구독자는 서로의 네트워크 위치를 모르며 IP주소 또는 포트 번호와 같은 정보를 교환하지 않는다.
      2. 시간 분리
        • 게시자와 구독자는 동시에 실행되거나 네트워크를 통해 연결되지 않는다.
      3. 동기화 분리
        • 게시자와 구독자는 서로를 중단시키지 않고 메시지를 전송하거나 수신할 수 있다.
    반응형

    'IoT' 카테고리의 다른 글

    [IoT] MQTT 구성 요소  (0) 2024.01.01
    댓글