MQTT là gì? Tìm hiểu khái niệm và tầm quan trọng của MQTT đối với IoT (Internet of Things – một hệ thống kết nối thông tin chặt chẽ giữa các thiết bị trong nhà máy sản xuất).
MQTT là gì?
Đầu tiên, MQTT là nó là viết tắt của Message Queuing Telemetry Transport – là một giao thức truyền dữ liệu được thiết kế để sử dụng trong các ứng dụng IoT.
MQTT được phát triển bởi Andy Stanford-Clark và Arlen Nipper, làm việc tại phòng thí nghiệm phần mềm Cambridge của IBM. Ban đầu được sử dụng chủ yếu trong hệ thống SCADA. Giao thức này đã trở nên rất phổ biến với Internet of Things vì nó cung cấp mô hình publisher / subcriber (nhà xuất bản / người đăng ký), giúp dễ dàng tạo kết nối giữa các thiết bị máy tính hoặc cảm biến khác nhau.
Giao thức MQTT dựa trên TCP / IP theo tiêu chuẩn OASIS.
MQTT là gì? Mô hình minh họa giao thức MQTT
MQTT hoạt động như thế nào?
Giao thức MQTT tuân theo mô hình publisher / subcriber (xuất bản / đăng ký). Mô hình publisher / subcriber được thiết kế để cho phép các tin nhắn được gửi theo một trong hai hướng giữa máy khách và máy chủ. Điều này cung cấp một phương thức để các thiết bị IoT tạo kết nối với nhau, bất kể vị trí địa lý của chúng. Giao thức MQTT đảm bảo rằng các tin nhắn được gửi ngay cả khi đường truyền mạng không ở trong trạng thái tốt. Nó sử dụng một hệ thống xác nhận cho phép cả hai bên biết liệu dữ liệu đã được nhận đúng hay chưa.
Mô hình punlisher / subcriber (xuất bản / đăng ký)
Trong mô hình này, một thiết bị, được gọi là publisher, sẽ gửi tin nhắn đến bất kỳ thiết bị nào khác muốn nhận chúng – đây có thể là một cảm biến riêng lẻ hoặc một loại máy kết nối internet khác như máy chủ.
Những thiết bị muốn nhận dữ liệu từ publisher được gọi là subcriber, sẽ gửi lại xác nhận nếu nhận đúng dữ liệu.
Publisher và subcriber của hệ thống không tương tác trực tiếp với nhau. Thay vào đó, một broker (môi giới hay trung gian) xử lý kết nối giữa hai thực thể bằng cách lọc tất cả các tin nhắn từ publisher và phân phối chúng đến các subcriber một cách chính xác.
Broker MQTT
Broker (trung gian) là trung tâm của hệ thống. Nó chịu trách nhiệm nhận tất cả các tin nhắn, lọc chúng và gửi chúng đến subcriber, ở đây là các máy khách trong hệ thống MQTT. Một broker có khả năng xử lý liên lạc với hàng triệu subcriber được kết nối.
MQTT broker
Client MQTT
Về cơ bản, một client (khách hàng) là thiết bị có thể tương tác với broker để gửi và nhận tin nhắn. Một ứng dụng client có thể là một cảm biến nhỏ cung cấp dữ liệu trong khoảng thời gian cố định hoặc một ứng dụng thông minh trên máy tính.
Client có thể đăng ký một topic (chủ đề) nhất định với broker để nhận các thông điệp tương ứng của topic đó. Tương tự như vậy, client cũng có thể xuất bản tin nhắn theo một topic nhất định để broker chuyển tiếp đến những subcriber đã đăng ký chủ đề đó.
Topic MQTT
Các topic (chủ đề) được sử dụng để ghi nhận sự quan tâm đến một loại tin nhắn đến cụ thể và ngược lại, để chỉ định nơi xuất bản các tin nhắn đi.
Một topic có thể chứa nhiều cấp chủ đề, được phân tách bằng dấu gạch chéo.
Ví dụ về một topic:
- company/projectroom/temperature
- company/projectroom/lamp
Tầm quan trọng của MQTT đối với IoT
Trong những năm gần đây, MQTT đã trở thành một trong những giao thức chính cho các giải pháp IoT. Điều này là do một số yếu tố:
- Đầu tiên, nó là một trong những giao thức nhẹ nhất hiện được sử dụng trong IoT. MQTT là một tiêu chuẩn mở có thể được thực hiện trên bất kỳ phần cứng hoặc phần mềm nào. Thư viện client có sẵn cho tất cả các ngôn ngữ lập trình chính, giúp dễ dàng xây dựng các ứng dụng IoT bằng MQTT.
- Nhờ mô hình publisher / subcriber, tính linh hoạt mà MQTT mang lại giúp hỗ trợ đa dạng trường hợp sử dụng và kiến trúc dự án IoT khác nhau. Publisher và subcriber của hệ thống thậm chí không cần biết về sự tồn tại của nhau vì broker sẽ xử lý tất cả các kết nối.
- Giao thức cho phép thực hiện các dự án có khả năng mở rộng cao, có thể kết nối hàng triệu thiết bị IoT trong một hệ thống. Giao tiếp hai chiều của MQTT cho phép truyền tin nhắn đến các nhóm thiết bị lớn.
- MQTT cũng cung cấp khả năng bảo mật cho hệ thống khi hỗ trợ nhiều cơ chế xác thực và bảo mật dữ liệu như mã hóa TLS.
So sánh giao thức MQTT và HTTP
Giao thức MQTT là trung tâm dữ liệu, trong khi giao thức HTTP là trung tâm tài liệu.
HTTP là một giao thức trong đó server (máy chủ) xử lý và phản hồi yêu cầu cho client (máy khách) được vi tính hóa, không tối ưu cho các thiết bị di động (thiết bị IoT).
MQTT gửi dữ liệu dưới dạng một mảng byte, đây là một ưu điểm của giao thức MQTT vì lượng dữ liệu được gửi rất ít. Khi giao thức MQTT được thử nghiệm với mạng 3G, nó cho tốc độ tryền tải nhanh hơn 93 lần so với HTTP.
Bên cạnh đó so với HTTP, MQTT đảm bảo khả năng phân phối cao hơn. Có 3 mức chất lượng dịch vụ (QoS).
Giao thức MQTT có thể tối ưu hóa việc trao đổi dữ liệu trên hệ thống IoT để việc truyền dữ liệu có thể được thực hiện hiệu quả nhất, cụ thể bằng cách:
- Giảm kích thước gói dữ liệu xuống càng nhỏ càng tốt.
- Giảm thiểu quá trình tính toán để mã hóa và giải mã các gói dữ liệu.
- Giảm thiểu việc sử dụng không gian lưu trữ.
Với các thông tin cụ thể trong bài viết này, chúng tôi mong doanh nghiệp đã có thể nắm được hiểu biết cơ bản về khái niệm MQTT là gì.