giao-thuc-mqtt-la-gi

Giao thức MQTT là gì? Các khái niệm liên quan đến giao thức MQTT trong IoT

Sở hữu những tính năng mạnh mẽ, MQTT đã trở thành giao thức được người dùng sử dụng phổ biến hiện nay. Vậy giao thức MQTT là gì? Tính năng giao thức MQTT như thế nào? Hãy cùng Tino Group tìm hiểu qua bài viết dưới đây nhé!

Giao thức MQTT là gì?

Định nghĩa

MQTT là từ viết tắt của cụm Message Queuing Telemetry Transport (tạm dịch: giao thức truyền thông điệp. Đây là một trong những giải pháp tiêu chuẩn của IoT (Internet of Things) vì quá trình truyền tải của MQTT rất nhẹ, độ chính xác cao và khả năng kết nối băng thông hiệu quả. MQTT còn được hiểu là một giao thức nhắn tin thông minh và đơn giản, được tạo ra nhằm phục vụ cho các thiết bị hạn chế về băng thông.

giao-thuc-mqtt-la-gi

Nhiệm vụ của giao thức MQTT là hỗ trợ người dùng đọc, xuất bản dữ liệu. Bên cạnh đó, giao thức này còn giúp bạn gửi lệnh để điều khiển từ xa. Những hoạt động này đều thông qua nút cảm biến và một số tính năng khác. Nhiều người cho rằng MQTT là phương tiện để các thiết bị giao tiếp với nhau dễ dàng hơn.

Lịch sử hình thành

MQTT chính thức ra đời vào cuối những năm 1990. Giao thức này được phát minh bởi hai kỹ sư tài năng – Andy Stanford-Clark và Arlen Nipper. Nhiệm vụ của MQTT là “phương tiện” giao tiếp giữa hai thiết bị. Điển hình là đường ống dầu khí và SCADA (hệ thống giám sát và thu thập dữ liệu).

Trước khi MQTT xuất hiện, các thiết bị này không thể giao tiếp với nhau. Bởi vì chúng chỉ sử dụng các giao thức độc quyền, riêng biệt. Nhờ MQTT, vấn đề này đã được khắc phục nhanh chóng. Ngoài ra, điểm mạnh của giao thức này là: nhẹ, băng thông tối thiểu, dễ triển khai, cung cấp dữ liệu chất lượng,… Do đó, MQTT đã được ứng dụng mạnh mẽ hơn.

giao-thuc-mqtt-la-gi

Thành phần và cách thức hoạt động của MQTT

Thành phần

  • MQTT broker: Là thành phần được tạo ra dưới dạng mã nguồn mở. Một số MQTT broker có hỗ trợ dịch vụ điện toán đám mây. Chức năng của thành phần này là sàng lọc tin nhắn theo kênh. Kế đó, chúng đưa các tin nhắn này đến thiết bị hoặc ứng dụng đã đăng ký kênh ấy.
  • MQTT client: Thành phần này được nối kết với broker để truyền và nhận dữ liệu. Trong đó, client gửi dữ liệu được gọi là publisher, client đăng ký nhận dữ liệu là subscriber
  • Topic: Là chủ đề hay kênh được quản lý bởi broker và được trao đổi bởi các client với nhau

Cách thức hoạt động

  • Broker: Được xem là tâm điểm giữa của mọi kết nối đến tất cả client. Broker đảm nhiệm vai trò nhận tin nhắn, thông điệp được truyền tải từ publisher. Sau đó, thành phần này sẽ sắp xếp lại chúng và chuyển đến các subscriber nhất định.
  • Client: Công việc của client là xuất bản hoặc đăng ký nhiều kênh khác nhau
  • Publisher: Có chức năng truyền tải thông điệp, tin nhắn đến bất kỳ kênh nào
  • Subscriber: Có chức năng nhận thông điệp, tin nhắn từ những kênh đã đăng ký. Tuy nhiên, thành phần này chỉ có thể nhận dữ liệu từ publisher khi đã đăng ký chính xác kênh tương ứng.
giao-thuc-mqtt-la-gi

Một số khái niệm liên quan đến MQTT

MQTT – Publish/Subscribe (Xuất bản/Đăng ký)

Khi giao thức MQTT hoạt động, những MQTT client (hay còn được gọi là node trạm) sẽ kết nối với một broker (MQTT server). Các node trạm sẽ đăng ký với một vài kênh (Topic). Chẳng hạn như: “/client1/channel1”, “/client2/channel2”. Hoạt động này được gọi là Subscribe (Đăng ký). Bạn có thể hình dung quá trình này tương tự như việc bạn đăng ký một kênh trên Youtube.

Khi ấy, những dữ liệu và kênh đã Subscribe sẽ được gửi đến mỗi client thông qua các note trạm. Quá trình client gửi dữ liệu đến một kênh gọi là Publish (Xuất bản).

MQTT – Message (Tin nhắn)

Tin nhắn trong giao thức MQTT được định dạng theo kiểu plain-text. Tuy nhiên, người dùng có thể tùy chỉnh tin nhắn thành các định dạng khác. Message là những thông tin trao đổi giữa các thiết bị của bạn. Chúng có thể là lệnh hoặc dữ liệu.

MQTT – Topic (Kênh)

Chủ đề là một trong những khái niệm quan trọng trong giao thức MQTT. Cúng được xem là “sợi dây nối kết” giữa Publish (xuất bản) và Subscribe (đăng ký). Nếu một tin nhắn được xuất bản trong một kênh, những người đăng ký kênh ấy sẽ nhận được tin nhắn này.

Những kênh này trình bày theo dạng chuỗi và phân tách với nhau bởi dấu gạch chéo (/). Trong đó, mỗi dấu gạch chéo biểu thị một cấp độ của kênh. Điển hình như việc bạn tạo kênh cho tivi trong văn phòng tại nhà của mình: home/office/tivi.

giao-thuc-mqtt-la-gi

Bạn cần lưu ý, những kênh này có sự phân biệt giữa chữ hoa và chữ thường. Chẳng hạn như: home/office/tivi sẽ khác với home/office/Tivi. Bên cạnh đó, thông qua giao thức MQTT, bạn có thể khai báo các kênh cấp bách.

Ví dụ bạn sử dụng hệ thống cảm biến đo thông tin môi trường trong nhà. Tùy theo số lượng căn phòng trong ngôi nhà của bạn sẽ có bộ cảm biến môi trường riêng. Vậy, kênh truyền tải thông tin môi trường trong nhà bạn sẽ được khai báo như sau:

home/bedroom/temperature: kênh thông tin về độ ẩm trong phòng ngủ

home/living-room/humidity: kênh thông tin về độ ẩm trong phòng khách

MQTT – QoS

QoS là từ viết của cụm Qualities of Service (tạm dịch: chất lượng dịch vụ). Người dùng có 3 lựa chọn khi Publish và Subscribe:

  • QoS0: Broker và client sẽ gửi dữ liệu duy nhất 1 lần dựa trên giao thức TCP/IP.
  • QoS1: Broker và client được phép gửi dữ liệu tối thiểu 1 lần và nhận xác nhận từ đầu kia
  • QoS2: Broker và client gửi dữ liệu và đầu bên kia chỉ nhận đúng 1 lần. Hoạt động này thông qua 4 bước bắt tay.

MQTT – Retain

Trong giao thức MQTT, retain đóng vai trò là flag (lá cờ) gắn cho một tin nhắn. Bên cạnh đó, retain chỉ nhận những giá trị là 0 hoặc 1 (tương tự như giá trị false hoặc true). Trong đó, nếu retain là 1, broker sẽ giữ lại tin nhắn cuối cùng của 1 kênh kèm theo QoS tương ứng. Client sẽ nhận được tin nhắn ấy khi đăng ký vào kênh chứa tin nhắn được lưu lại.

giao-thuc-mqtt-la-gi

MQTT – Bridge

Đây là một tính năng quan trọng của MQTT broker. Chúng có vai trò giúp MQTT broker kết nối và trao đổi dữ liệu với nhau. Tính năng này chỉ được thực hiện khi có ít nhất 2 broker. Trong đó, có một broker sẽ biến đổi thành bridge với những thông số sau:

  • Address: Tên địa chỉ broker cần kết nối
  • Bridge_protocol_version: Phiên bản mới của MQTT được sử dụng cho 2 broker
  • Topic: Bao gồm: tên topic được trao đổi giữa 2 broker, chiều trao đổi và topic mapping giữa 2 broker
giao-thuc-mqtt-la-gi

Với những thông tin được cung cấp phía trên, chúng tôi hy vọng bạn đã giải đáp được các thắc mắc liên quan đến MQTT. Nếu đang theo đuổi các dự án IoT, kiến thức cơ bản về giao thức MQTT sẽ là “hành trang” thiết yếu dành cho bạn. Chúc bạn có thể chinh phục được giao thức MQTT nhé!

Những câu hỏi thường gặp về giao thức MQTT

Giao thức MQTT phù hợp với môi trường nào?

MQTT là giao thức thông minh, sở hữu nhiều tính năng thiết thực. Do đó đây chính là sự lựa chọn hoàn hảo cho:
– Quá trình giao tiếp giữa máy và máy (M2M)
– Những thiết bị nhúng bị giới hạn về bộ nhớ và tốc độ
– Nơi có nhà mạng viễn thông đắt, thiếu uy tín và băng thông thấp

Tính bảo mật của MQTT có tốt hơn HTTP không?

Câu trả lời là “Có”. So với HTTP, giao thức MQTT có lợi thế hơn về tính bảo mật dữ liệu truyền. Ở quá trình mã hóa trọng tải (payload), MQTT đã truyền tin nhắn thông qua SSL/TLS.
Trong khi đó, HTTP không hỗ trợ mã hóa và dữ liệu sẵn có ở dạng plain text. Vậy nên, giao thức có khả năng bị xâm nhập bất cứ lúc nào. Tuy nhiên, người dùng có thể sử dụng HTTPS để đảm bảo tính bảo mật tốt hơn.

Ưu điểm của giao thức MQTT là gì?

– Có tính bảo mật, an toàn thông tin cao
– Nhẹ và tối ưu
– Tin nhắn được gửi đi đáng tin cậy
– Có khả năng truyền thông theo hai hướng
– Hỗ trợ đa dạng các thiết bị kết nối
– Khắc phục hạn chế về mạng viễn thông kém chất lượng

Hạn chế của MQTT là gì?

– Giao thức MQTT chỉ sử dụng TLS/SSL để bảo mật, chúng không được mã hóa
– Không khả thi cho việc mở rộng mạng MQTT trên toàn cầu

Mọi thắc mắc và góp ý liên quan, xin vui lòng liên hệ ngay Tino Group để được tư vấn chi tiết hoặc Fanpage để cập nhật những thông tin mới nhất nhé!

Tinh gọn quy trình – chạm đỉnh doanh thu – Tino Group tự tin đồng hành cùng doanh nghiệp Việt trên hành trình chuyển đổi số!

CÔNG TY CỔ PHẦN TẬP ĐOÀN TINO

  • Trụ sở chính: L17-11, Tầng 17, Tòa nhà Vincom Center, Số 72 Lê Thánh Tôn, Phường Bến Nghé, Quận 1, Thành phố Hồ Chí Minh
  • Tổng đài miễn phí: 1800 6734
  • Email: info@tino.org
  • Website: www.tino.org
Tags:

Leave a Reply

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