Giao thức MQTT là gì? Ưu nhược điểm và cơ chế hoạt động

MQTT đang là một giao thức được ứng dụng phổ biến trong thời đại IoT giúp kết nối cho việc truyền tải dữ liệu. Vậy bạn đã biết MQTT là gì chưa? Ưu – nhược điểm và cơ chế hoạt động của giao thức này như thế nào? Nếu chưa, AI.Tech sẽ giúp bạn giải đáp chi tiết tất tần tật từ A – Z về giao thức này qua bài viết dưới đây. Cùng theo dõi nhé!

MQTT là gì? Ưu - nhược điểm và ứng dụng thực tiễn
MQTT là gì? Ưu – nhược điểm và ứng dụng thực tiễn

Tìm hiểu tổng quan về MQTT

MQTT đang ngày càng khẳng định vị thế là giao thức được ưa chuộng hàng đầu trong cộng đồng người dùng, đặc biệt trong lĩnh vực IoT. Vậy giao thức MQTT là gì? Câu trả lời sẽ có ngay sau đây.

Khái niệm MQTT là gì?

MQTT là gì? MQTT (hay Message Queueing Telemetry Transport) là một giao thức nhắn tin tiêu chuẩn (truyền thông điệp) OASIS cho Internet of Things (IoT), sử dụng băng thông thấp, độ tin cậy cao và có thể hoạt động được trong điều kiện kết nối đường truyền không ổn định.

MQTT là gì? Đây là một giao thức nhắn tin nhẹ, được thiết kế đặc biệt cho các hệ thống IoT
MQTT là gì? Đây là một giao thức nhắn tin nhẹ, được thiết kế đặc biệt cho các hệ thống IoT

Lịch sử hình thành

Giao thức MQTT được phát minh bởi hai kỹ sư tài năng – Andy Stanford-Clark và Arlen Nipper và chính thức công bố ra đời vào cuối những năm 1990 với mục tiêu là kết nối các thiết bị giám sát trong ngành dầu khí với hệ thống máy chủ giám sát từ xa.

Ban đầu, giao thức này có tên là Giao thức truyền thông điệp từ xa xếp hàng đợi, được hỗ trợ bởi Dòng sản phẩm MQ của IBM trong giai đoạn đầu. Đến năm 2010, IBM công bố MQTT 3.1 như một giao thức mở và miễn phí cho phép mọi người có thể triển khai. 

Năm 2013, giao thức được chuyển giao cho Tổ chức vì sự tiến bộ của các tiêu chuẩn thông tin có cấu trúc (OASIS) để duy trì. Chính thức đến ngày 28 tháng 10 năm 2015 MQTT mới được công nhận thuộc tiêu chuẩn OASIS. 

Vào cuối tháng 1 năm 2016, giao thức này đạt được sự chấp thuận từ Tổ chức Tiêu chuẩn hóa Quốc tế (ISO), khẳng định vị thế của nó như một tiêu chuẩn quốc tế.

Hiện nay, MQTT không còn được coi là từ viết tắt mà đã trở thành tên chính thức của giao thức này.

Tính năng nổi bật

Dưới đây là các tính năng nổi bật của giao thức MQTT:

  • MQTT sử dụng mô hình Pub/Sub để truyền tin một chiều và phân tán, tách biệt khỏi ứng dụng chính.
  • Truyền thông điệp diễn ra tức thì, không phụ thuộc vào nội dung.
  • Giao thức nền tảng trên TCP/IP.
  • Ba cấp độ Chất lượng Dịch vụ (QoS) được áp dụng bao gồm:

  + QoS 0: Gửi một lần, xác nhận qua TCP/IP.

  + QoS 1: Gửi ít nhất một lần, có thể nhận nhiều xác nhận.

  + QoS 2: Đảm bảo nhận chính xác một lần thông qua quy trình 4 bước.

  •  Dữ liệu được đóng gói tối giản để tối ưu hóa băng thông.
MQTT được biết đến và ứng dụng rộng rãi nhờ nhiều tính năng nổi bật
MQTT được biết đến và ứng dụng rộng rãi nhờ nhiều tính năng nổi bật

Ưu và nhược điểm của giao thức MQTT

MQTT với những tính vượt trội, đã nhanh chóng trở thành một trong những giao thức truyền thông được ưa chuộng nhất hiện nay. Tuy nhiên, cũng giống như mọi công nghệ khác, MQTT cũng có những ưu điểm và mặt hạn chế riêng.

Ưu điểm của MQTT

  • Giúp truyền đạt thông tin nhanh chóng hiệu quả hơn.
  • Giảm thiểu đáng kể tiêu thụ băng thông mạng.
  • Rất thích 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í vận hành tương đối thấp.
  • Độ bảo mật và an toàn cao.
  • Tiết kiệm thời gian phát triển.
  • Giúp thu thập nhiều dữ liệu hơn và tốn ít băng thông hơn so với những giao thức cũ trước đó.

Nhược điểm của MQTT

Bên cạnh những ưu điểm nổi bật, song MQTT vẫn còn tồn tại một số nhược điểm sau:

  • So với CoAP, MQTT có tốc độ truyền dữ liệu chậm hơn.
  • Trong khi CoAP sử dụng hệ thống tài nguyên ổn định – tĩnh, MQTT lại hoạt động dựa trên cơ chế đăng ký động (subscribe).
  • MQTT không có cơ chế mã hóa tích hợp để bảo mật, thay vào đó, nó sử dụng các giao thức như TLS/SSL để đảm bảo an toàn cho dữ liệu.
  • Khả năng mở rộng của MQTT trên quy mô lớn còn hạn chế.

Các thành phần của giao thức MQTT là gì?

Giao thức MQTT hoạt động trên nền tảng TCP/IP dựa theo mô hình publish/subscribe (tạm hiểu: xuất bản/đăng ký) với các thành phần sau đây:

MQTT Broker (Máy chủ môi giới)

MQTT Broker hay máy chủ môi giới đóng vai trò trung tâm điều phối trong một hệ thống MQTT. Đây là điểm giao tiếp chính giữa các thiết bị (client) Publisher/Subscriber.

Chức năng cốt lõi của Broker là nhận message (thông điệp) từ nơi gửi thông điệp (Publisher), sau đó xếp vào danh sách đợi và chuyển đến một địa điểm cụ thể nào đó (Subscriber).

Ngoài ra, Broker còn có thể đảm nhận thêm một số tính năng khác liên quan đến quá trình truyền thông như: logs, lưu trữ thông điệp, bảo mật thông điệp,…

MQTT Client

Đây là thành phần được nối kết với MQTT Broker để truyền và nhận dữ liệu (message). 

Client chỉ thực hiện ít nhất một trong hai công việc đó chính là đăng tải (publish) thông điệp lên một hoặc nhiều chủ đề (topic) cụ thể, hoặc là đăng ký (subscribe) một hoặc nhiều chủ đề để tiếp nhận thông điệp từ các chủ đề đó.

Hiện tại, có hai loại client chính chính  đó là publisher – gửi dữ liệu và client subscriber – đăng ký nhận dữ liệu.

MQTT Client bao gồm publisher và subscriber với chức năng nhận - gửi dữ liệu
MQTT Client bao gồm publisher và subscriber với chức năng nhận – gửi dữ liệu

Topic

Topic có thể được xem như một kênh truyền thông ảo kết nối giữa publisher và subscriber. Khi một thông điệp được đăng tải (publish) vào một topic, tất cả các subscriber đã đăng ký topic đó sẽ đồng thời nhận được thông điệp này.

Session

Hiểu đơn giản, Session trong MQTT là một phiên làm việc giữa một client (thiết bị hoặc ứng dụng) và MQTT Broker. Nó đại diện cho một kết nối duy trì giữa hai bên trong một khoảng thời gian nhất định.

Subscription

Khác với session, subscription là một kết nối logic giữa client và topic. Sau khi đăng ký (subscribe) một topic, client có khả năng trao đổi thông điệp với topic đó, bao gồm cả việc nhận và gửi dữ liệu.

Nguyên tắc – cơ chế hoạt động của MQTT

Cơ chế hoạt động của MQTT là gì? MQTT hoạt động theo nguyên tắc publish/subscribe, mỗi phiên sẽ trải qua 4 giai đoạn chính bao gồm: kết nối, xác thực, giao tiếp và cuối cùng là kết thúc.

  • Bước đầu tiên, Client (máy khách) thiết lập kết nối TCP/IP với broker thông qua cổng tiêu chuẩn hoặc cổng tùy chỉnh do nhà phát triển broker quy định.
  • Tiếp theo, cổng tiêu chuẩn 1883 được sử dụng cho giao tiếp không mã hóa, trong khi cổng 8883 dành cho giao tiếp mã hóa sử dụng SSL/TLS. Trong trường hợp sử dụng SSL/TLS, client cần xác thực và kiểm chứng máy chủ.
  • Sau khi kết nối được thiết lập, client sẽ thực hiện vai trò của mình: Nếu là Publisher thì gửi thông điệp đến broker, còn nếu là Subscriber thì nhận thông điệp từ broker. Kết nối này duy trì cho đến khi kết thúc kết nối.
  • Khi kết nối hiện tại kết thúc, quá trình truyền nhận MQTT có thể được khởi động lại bằng cách lặp lại các bước trên.
MQTT hoạt động dựa trên mô hình xuất bản - đăng ký (publish-subscribe)
MQTT hoạt động dựa trên mô hình xuất bản – đăng ký (publish-subscribe)

Ứng dụng của MQTT trong đời sống

Đến nay đã có rất nhiều dự án triển khai thành công hệ thống MQTT, điển hình có thể kể đến như:

  • Mạng xã hội Facebook ứng dụng MQTT để tạo cuộc trò chuyện trực tuyến trên Messenger.
  • Amazon Web Services chính thức ra mắt dịch vụ Amazon IoT, một nền tảng dựa trên giao thức MQTT vào năm 2015. Cùng lúc đó, Adafruit cũng đưa ra một MQTT miễn phí Cloud Service trong thí nghiệm IOT và người học được gọi Adafruit IO.
  • Phiên bản mới Delta Rail của hệ thống kiểm soát hiệu IECC Scalable đã ứng dụng MQTT thành công làm nền tảng giao tiếp chính để trao đổi thông tin giữa các thành phần khác nhau trong hệ thống, bao gồm cả hệ thống báo hiệu.
  • Các dịch vụ nằm trong Cơ sở hạ tầng thượng nguồn OpenStack đều được kết nối bằng một bus tin nhắn hợp nhất MQTT với Mosquitto là broker MQTT.
  • Năm 2017, XIM, Inc. đã giới thiệu MQTT Buddy, một ứng dụng di động mạnh mẽ cho phép người dùng tương tác với các hệ thống MQTT trên cả nền tảng Android và iOS. Ứng dụng hỗ trợ nhiều ngôn ngữ, bao gồm tiếng Anh, Nga và Trung Quốc.
  • Kể từ phiên bản 0.14, Node-RED đã tích hợp sẵn các nút MQTT, cho phép người dùng dễ dàng thiết lập kết nối an toàn với các broker MQTT bằng giao thức TLS.
  • Tính năng hỗ trợ MQTT của Home Assistant góp phần làm tăng tính mở và khả năng tương thích của nền tảng này với các hệ thống IoT khác.
Đến nay MQTT đã được ứng dụng nhiều trong thực tiễn
Đến nay MQTT đã được ứng dụng nhiều trong thực tiễn

KẾT

Hy vọng với những thông tin mà AI.Tech chia sẻ ở bài viết trên sẽ giúp bạn có một cái nhìn tổng quan về MQTT là gì, hiểu rõ hơn về ưu điểm – hạn chế cũng như là những ứng dụng thực tiễn của giao thức này trong đời sống khoa học kỹ thuật.

Leave a Reply

Your email address will not be published. Required fields are marked *

zalo-icon
facebook-icon
phone-icon