Giao thức MQTT là gì? Vai trò MQTT trong IoT

Giao thức MQTT là gì? Vai trò MQTT trong IoT ra sao? Để nói về giao thức MQTT thì Facebook Messenger là một ví dụ điển hình cho ứng dụng này, nhưng để đi chi tiết về chúng thì chắc hẳn ít người biết. Vậy nên qua bài này chúng ta sẽ đi tìm hiểu những thông tin về giao thức MQTT nhé. 

1. Giao thức MQTT là gì?

Giao thức MQTT là gì?

  • Khái niệm

Giao thức MQTT (Message Queueing Telemetry Transport) là một giao thức mạng kích thước nhỏ, hoạt động theo cơ chế publish – subscribe (tạm dịch là xuất bản – đăng ký) theo tiêu chuẩn ISO và OASIS mở để truyền tin nhắn giữa các thiết bị.

Giao thức MQTT hoạt động trên nền tảng TCP/IP, được thiết kế cho các kết nối cho việc truyền tải dữ liệu cho các thiết bị từ xa, các thiể bị hay vi điều khiển nhỏ có tài nguyên hạn chế hoặc trong các ứng dụng có băng thông mạng bị hạn chế.

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

  • Những nơi mà giá mạng viễn thông đắt đỏ hoặc băng thông thấp hay thiếu tin cậy.
  • Khi chạy trên thiết bị nhúng bị giới hạn về tài nguyên tốc độ và bộ nhớ.
  • Bởi 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 M2M (Machine to Machine).
  • MQTT cũng là giao thức sử dụng trong Facebook Messager và Amazon IoT.
  • Lịch sử hình thành

Giao thức MQTT được phát minh bởi Andy Stanford – Clark (IBM) và Arlen Nipper vào cuối năm 1999. Lúc này đây, nhiệm vụ của họ là tạo ra một giao thức sao cho sự hao phí năng lượng và băng thông là thấp nhất để kết nối đến đường ống dẫn dầu thông qua sự kết nối của vệ tinh.

Năm 2011, IBM và Arlen Nipper đã trao lại MQTT cho một dự án của Eclipse có tên là Paho.

Vào năm 2013, MQTT được đệ trình lên OASIS để chuẩn hóa và trở thành 1 giao thức trong tầng ứng dụng của bộ giao thức TCP/IP.

2. Ưu điểm của giao thức MQTT

Ưu điểm của giao thức MQTT

Giao thức MQTT cho phép hệ thống SCADA của bạn truy cập dữ liệu IIoT. MQTT mang lại nhiều lợi ích mạnh mẽ cho quy trình của bạn:

  • Chuyển thông tin hiệu quả hơn
  • Tăng khả năng mở rộng
  • Giảm đáng kể tiêu thụ băng thông mạng
  • Giảm tốc độ cập nhật xuống giây
  • Rất 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í cực nhẹ
  • Rất an toàn với bảo mật dựa trên sự cho phép
  • Được sử dụng bởi ngành công nghiệp dầu khí, Amazon, Facebook và các doanh nghiệp lớn khác
  • Tiết kiệm thời gian phát triển
  • Giao thức publish/subscribe thu thập nhiều dữ liệu hơn với ít băng thông hơn so với giao thức cũ.

3. Mô hình publish – subscribe trong giao thức MQTT

3.1 Thành phần

Thành phần

Giao thức MQTT truyền thông điệp dựa trên mô hình publish/subscribe giữa các thiết bị, ứng dụng với nhau. Các thành phần trong MQTT bao gồm:

a. Broker

MQTT Broker hay máy chủ mô giới được coi như trung tâm, là giao điểm của tất cả các kết nối đến từ Client.

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 một địa chỉ cụ thể. Bên cạnh đó, Broker còn đảm nhận thêm một vài tính năng liên quan đến quá trình truyền thông như: message, lưu trữ message, logs,…

MQTT Broker được cung cấp dưới dạng mã nguồn mở hoặc các phiên bản phương mại giúp người dùng có thể tự cài đặt và tạo broker riêng. Ngoài ra, các bạn cũng có thể sử dụng Broker trên điện toán đám mây với các nền tảng IoT như hive broker, amazone,…

b. Client

Là các thiết bị/ứng dụng Client kết nối đến Broker để thực hiện truyền nhận dữ liệu. Client thì được chia thành hai nhóm là Publisher và Subscriber. Một Client có thể có 1 trong 2 nhiệm vụ hoặc cả 2.

  • Publisher là thiết bị gửi bản tin lên broker
  • Subscriber là người nhận bản tin mỗi khi có bản tin mới gửi lên Broker.

3.2 Cơ chế hoạt động của giao thức MQTT theo mô hình Pub/sub

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

a. Tính chất của mô hình pub/sub

Tính chất:

  • Space decoupling (Không gian tách biệt)
  • Time decoupling (Thời gian tách biệt)
  • Synchronization decoupling (Sự đồng bộ riêng rẽ)

Đặc điểm riêng:

  • MQTT sử dụng cơ chế lọc thông điệp dựa vào tiêu đề (subject-based)
  • MQTT có một tầng gọi là chất lượng dịch vụ (Quality of Services – QoS). Nó giúp cho dễ dàng nhận biết được là message có được truyền thành công hay không.

b. Cơ chế tổng quan

MQTT hoạt động theo cơ chế client/server, nơi mà mỗi cảm biến là một khách hàng (client) và kết nối đến một máy chủ. Có thể hiểu như 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 tất cả các thông điệp giữa phía gửi đến đúng phía nhận.

MQTT là giao thức định hướng bản tin, mỗi bản tin là một đoạn rời rạc của tín hiệu và broker không thể nhìn thấy. Mỗi bản tin được publish một địa chỉ, có thể hiểu như một kênh (Topic).

Client khi đăng ký một vài kênh để nhận/gửi dữ liệu, gọi là subscribe và có thể subscribe vào nhiều kênh. Mỗi client sẽ nhận được dữ liệu khi bất kỳ trạm nào khác gửi dữ liệu vào kênh đã đăng ký. Khi một client gửi một bản tin đến một kênh nào đó gọi là publish.

c. Cơ chế hoạt động

Một phiên MQTT được chia thành 4 giai đoạn: kết nối, xác thực, giao tiếp, kết thúc.

  • Client bắt đầu bằng cách tạo kết nối Transmission Control Protocol/ Internet Protocol tới broker bằng cách sử dụng cổng tiêu chuẩn hoặc cổng tùy chỉnh được xác định bởi các nhà phát triển broker.
  • Các cổng tiêu chuẩn là 1883 giao tiếp không mã hóa và 8883 cho lớp giao tiếp được mã hóa – sử dụng lớp cổng bảo mật (SSL)/bảo mật lớp truyền tải (TLS). Trong quá trình giao tiếp SSL/TLS, máy khách cần kiểm chứng và xác thực máy chủ.
  • Sau đó, client sẽ gửi bản tin broker nếu là Publisher hoặc nhận bản tin từ broker nếu là subscriber. Qúa trình kết nối này sẽ được giữ đến khi kết thúc kết nối.
  • Sau khi kết thúc để có thể truyền nhận MQTT, chúng ta lại tiếp tục quay lại các bước trên.

4. Các khái niệm trong MQTT

Các khái niệm trong MQTT

  • Message

Trong giao thức MQTT, Message được gọi với cái tên khác nữa là message payload. Chúng có định dạng mặc định là plain – text, tuy nhiên người sử dụng có thể cầu hình thành các định dạng khác.

  • Topic

Topic được xem như một đường truyền giữa hai điểm publisher và subscriber. Về cơ bản khi message được publish vào một topic thì tất cả những subscriber của topic đó sẽ nhận được message này.

Giao thức MQTT cho phép khai báo các topic kiểu phân cấp.

  • QoS

Có 3 tùy chọn:

  • QoS 0: Broker/client sẽ gửi dữ liệu đúng một lần, quá trình gửi được xác nhận bởi chỉ giao thức TCP/IP.
  • QoS 1: Broker/client sẽ gửi dữ liệu với ít nhất một lần xác nhận từ đầu kia, nghĩa là có thể có nhiều hơn 1 lần xác nhận đã nhận được dữ liệu.
  • QoS 2: Broker/client đảm bảo khi gửi dữ liệu thì phía nhận chỉ nhận được đúng một lần, quá trình này phải trải qua 4 bước bắt tay.
  • Retain

Retain là một cờ được gắn cho một message của giao thức MQTT, chúng chỉ nhận 2 giá trị là 0 hoặc 1.

Nếu retain = 1 thì broker sẽ lưu lại message cuối cùng của 1 topic kèm theo mức QoS tương ứng.

Khi client bắt đầu subscribe tipic có message được lưu lại đó, client ngay lập tức nhận được message.

  • MQTT Bridge

MQTT Bridge là một tính năng của MQTT Broker cho phép các MQTT Broker có thể kết nối và trao đổi dữ liệu.

Để sử dụng tính năng này, cần tối thiểu 2 Broker, trong đó một Broker bất kỳ sẽ được cấu hình thành Bridge. Khi cấu hình MQTT bride, cần chú ý các thông số:

  • address: địa chỉ của broker cần kết nối
  • bridge_protocol_version: phiên bản của giao thức MQTT đang sử dụng chung cho 2 broker
  • topic: phần này định nghĩa 3 thong số: tên topic được trao đổi giữa 2 broker, chiều trao đổi (1 chiều hay 2 chiều) và topic mapping giữa 2 broker.

5. Ứng dụng của giao thức MQTT

Ứng dụng của giao thức MQTT

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

Một số các dự án được thực hiện MQTT được ví dụ dưới đây:

  • Facebook Messenger: áp dụng để trò chuyện trực tuyến.
  • IECC Scalable: sử dụng MQTT cho thông tin liên lạc trong các phần khác nhau của hệ thống và các thành phần khác của hệ thống báo hiệu.
  • Amazon web Services
  • Các tổ chức không gian địa lý SensorThings IoT.
  • Các dịch vụ của cơ sở hạ tầng thượng nguồn OpenStack đuọce kết nối bằng một bus tin nhắn hợp nhất MQTT với Mosquitto là broker MQTT.
  • Microsoft Azure IoT Hub sử dụng MQTT làm giao thức cho các tin nhắn từ xa.
  • Node-RED hỗ trợ các nút MQTT kể từ phiên bản 0.14, để định cấu hình đúng các kết nối TLS.
  • Nền tảng tự động hóa phần mềm nguồn mở Home Assistant được bật MQTT và cung cấp bốn tùy chọn cho các broker MQTT.

>>> Xem thêm: Gateway là gì? Tổng quan bộ chuyển đổi giao thức Gateway

Trả lời

Email của bạn sẽ không được hiển thị công khai.

plc schneider sử dụng cookie để cung cấp cho bạn trải nghiệm duyệt web tốt hơn. Bằng cách duyệt trang web này, bạn đồng ý với việc sử dụng cookie của chúng tôi.