MQTT là gì? Vai trò của MQTT trong IoT

0
49
Rate this post

Internet of Things (viết tắt là IoT) là một kịch bản thú vị trong thế giới công nghệ, khi mà các thiết bị và con người có thể kết nối với nhau thông qua một mạng duy nhất, mà không cần tương tác trực tiếp. IoT đã phát triển từ sự hội tụ của công nghệ không dây, công nghệ vi cơ điện tử và Internet. Đơn giản, IoT là việc kết nối các thiết bị với nhau, với Internet và với thế giới bên ngoài để thực hiện các nhiệm vụ.

Trong thời đại IoT, cần có một giao thức kết nối mới để đảm bảo sự hỗ trợ đầy đủ cho các thiết bị thực tế. Đó là lý do tại sao giao thức Message Queuing Telemetry Transport (MQTT) ngày càng phổ biến.

MQTT là gì?

MQTT (Message Queuing Telemetry Transport) là giao thức truyền thông điệp theo mô hình publish/subscribe, được sử dụng cho các thiết bị IoT với băng thông thấp, độ tin cậy cao và khả năng được sử dụng trong mạng lưới không ổn định. Nó được xây dựng trên một Broker “nhẹ” và được thiết kế đơn giản và dễ dàng cài đặt.

MQTT là lựa chọn lý tưởng trong các môi trường như:

  • Nơi mà giá mạng viễn thông đắt đỏ hoặc băng thông thấp hay không đáng tin cậy.
  • Khi chạy trên các thiết bị nhúng có tài nguyên hạn chế về tốc độ và bộ nhớ.
  • Vì giao thức này sử dụng băng thông thấp trong môi trường có độ trễ cao, nên nó là một giao thức lý tưởng cho các ứng dụng Machine to Machine (M2M).
  • MQTT cũng là giao thức được sử dụng trong Facebook Messenger.

Lịch sử hình thành

MQTT được phát minh bởi Andy Stanford-Clark (IBM) và Arlen Nipper (EUROTECH) vào cuối năm 1999, khi nhiệm vụ của họ là tạo ra một giao thức tiết kiệm năng lượng và băng thông nhất để kết nối đến đường ống dẫn dầu thông qua vệ tinh.

Năm 2011, IBM và Eurotech đã trao lại MQTT cho dự án Paho của Eclipse.

Năm 2013, MQTT đã được chuẩn hóa bởi OASIS (Organization for the Advancement of Structured Information Standards).

Vị trí của MQTT trong mô hình IoT

MQTT có nhiều ưu điểm nổi bật như: băng thông thấp, độ tin cậy cao và có thể sử dụng ngay cả khi hệ thống mạng không ổn định, tiết kiệm băng thông cho việc kết nối với server và có thể kết nối nhiều thiết bị thông qua một MQTT server (broker). Vì sử dụng băng thông thấp trong môi trường có độ trễ cao, MQTT là giao thức lý tưởng cho các ứng dụng IoT.

Tính năng và đặc điểm nổi bật

MQTT cung cấp việc truyền tin phân tán theo mô hình Pub/Sub, trong đó việc truyền thông điệp là ngay lập tức và không quan tâm đến nội dung được truyền. Nó sử dụng giao thức TCP/IP, có ba mức độ QoS (Quality of Service) cho việc truyền dữ liệu. Phần bao bọc dữ liệu truyền nhỏ và được giảm đến mức tối thiểu để giảm tải cho đường truyền.

Ưu điểm của MQTT

MQTT mang lại nhiều lợi ích, đặc biệt là trong hệ thống SCADA (Supervisory Control And Data Acquisition) khi truy cập dữ liệu IoT. MQTT giúp truyền thông tin hiệu quả hơn, tăng khả năng mở rộng, giảm tiêu thụ băng thông mạng, phù hợp cho điều khiển và do thám, tối đa hóa băng thông có sẵn, chi phí thấp, an toàn và bảo mật. MQTT cũng được sử dụng trong các ngành công nghiệp dầu khí và các công ty lớn như Amazon, Facebook, …

Mô hình Pub/Sub

1. Thành phần

  • Publisher: Nơi gửi thông điệp.
  • Subscriber: Nơi nhận thông điệp.
  • Broker: Máy chủ môi giới.

Trong đó, Broker được coi như trung tâm, nó là điểm giao của tất cả các kết nối đến từ Client (Publisher/Subscriber). Nhiệm vụ chính của Broker là nhận thông điệp từ Publisher, xếp vào hàng đợi rồi chuyển đến địa điểm cụ thể. Broker cũng có thể đảm nhận một số tính năng liên quan đến quá trình truyền thông như bảo mật, lưu trữ và logs.

2. Ưu điểm

  • Kết nối riêng biệt, độc lập.
  • Khả năng mở rộng.
  • Thời gian tách biệt.
  • Đồng bộ riêng biệt.

3. Nhược điểm

  • Broker không thông báo về trạng thái gửi thông điệp, không có cách để phát hiện xem thông điệp đã được gửi đúng hay chưa.
  • Publisher không biết về trạng thái của subscribe và ngược lại. Điều này có thể tạo ra sự bất ổn.

Cơ chế hoạt động của MQTT theo mô hình Pub/Sub

1. Tính chất và đặc điểm riêng

  • Tính chất: không gian tách biệt, thời gian tách biệt, đồng bộ riêng biệt.
  • Đặc điểm riêng: MQTT sử dụng cơ chế lọc thông điệp dựa vào tiêu đề và có một tầng gọi là chất lượng dịch vụ (QoS) để nhận biết trạng thái truyền thông điệp.

2. Cơ chế tổng quan

MQTT hoạt động theo cơ chế client/server, trong đó mỗi cảm biến là một khách hàng (client), kết nối đến một máy chủ môi giới (broker) thông qua giao thức TCP. Broker chịu trách nhiệm điều phối thông điệp giữa phía gửi và phía nhận.

MQTT là giao thức định hướng bản tin, mỗi bản tin được gửi đến một địa chỉ, có thể hiểu như một kênh (topic). Client có thể đăng ký vào một hoặc nhiều kênh để nhận/gửi dữ liệu. Khi một client gửi bản tin đến một kênh, gọi là publish.

3. Kiến trúc thành phần

Thành phần chính của MQTT bao gồm: Client (Publisher/Subscriber), Server (Broker), Sessions, Subscriptions và Topics. MQTT Clients tương thích với hầu hết các nền tảng hệ điều hành hiện có, bao gồm MAC OS, Windows, Linux, Android, iOS, …

  • MQTT Client (Publisher/Subscriber): Đăng ký vào các topic để gửi và nhận thông điệp.
  • MQTT Server (Broker): Nhận thông tin đăng ký từ client, nhận và chuyển thông điệp đến các Subscriber dựa trên đăng ký từ client.
  • Topic: Có thể coi topic như một hàng đợi thông điệp, là nơi trao đổi thông tin giữa client và server.
  • Session: Là kết nối từ client đến server, tất cả các giao tiếp giữa client và server đều thuộc về session.
  • Subscription: Là kết nối từ client đến topic. Client có thể nhận/gửi thông điệp với các topic đã đăng ký.

MQTT là giao thức gọn nhẹ, được thiết kế để kết nối các thiết bị hạn chế nguồn trên mạng băng thông thấp. Mặc dù đã tồn tại trong hơn một thập kỷ, nhưng chỉ khi có sự ra đời của M2M và IoT, MQTT mới trở thành một giao thức phổ biến.

Cảm ơn bạn đã theo dõi bài viết của tôi. Trong bài viết tiếp theo, tôi sẽ hướng dẫn bạn tìm hiểu và cài đặt MQTT broker Mosquitto – một MQTT broker nhỏ, nhẹ thường được sử dụng. Đọc thêm tại dnulib.edu.vn.