CoderTools

MQTT Codec

Mã hóa và giải mã gói tin giao thức MQTT

🔒 100% Xử lý cục bộDữ liệu bạn nhập được xử lý hoàn toàn trong trình duyệt. Không có dữ liệu nào được tải lên máy chủ.

Dán dữ liệu gói MQTT được thu thập từ Wireshark, bộ phân tích mạng hoặc nhật ký broker

Gói tin mẫu

Kết quả giải mã

Nhập dữ liệu gói tin và nhấp Giải mã để xem kết quả

Tham chiếu loại gói MQTT

Tên Hướng Mô tả
0x10CONNECTC→SYêu cầu kết nối từ client
0x20CONNACKS→CXác nhận kết nối
0x30PUBLISHC↔SXuất bản tin nhắn
0x40PUBACKC↔SXác nhận xuất bản (QoS 1)
0x50PUBRECC↔SĐã nhận xuất bản (QoS 2 phần 1)
0x60PUBRELC↔SGiải phóng xuất bản (QoS 2 phần 2)
0x70PUBCOMPC↔SHoàn tất xuất bản (QoS 2 phần 3)
0x80SUBSCRIBEC→SYêu cầu đăng ký
0x90SUBACKS→CXác nhận đăng ký
0xA0UNSUBSCRIBEC→SYêu cầu hủy đăng ký
0xB0UNSUBACKS→CXác nhận hủy đăng ký
0xC0PINGREQC→SYêu cầu ping (keep-alive)
0xD0PINGRESPS→CPhản hồi ping
0xE0DISCONNECTC→SClient ngắt kết nối

Hướng dẫn Giao thức MQTT

Hiểu về Giao thức MQTT

MQTT (Message Queuing Telemetry Transport) là giao thức nhắn tin nhẹ được xây dựng trên TCP/IP. Được IBM phát triển năm 1999 để giám sát đường truyền vệ tinh, nó đã trở thành tiêu chuẩn thực tế cho giao tiếp IoT. Giao thức sử dụng mô hình publish-subscribe trong đó các client giao tiếp thông qua một broker trung tâm, lý tưởng cho mạng không ổn định và thiết bị có tài nguyên hạn chế.

Cấu trúc nhị phân của gói tin

Mỗi gói MQTT bắt đầu bằng header cố định (1-5 byte), theo sau là header biến tùy chọn và payload. Byte đầu tiên chứa loại gói ở bit 7-4 và các cờ đặc trưng cho loại ở bit 3-0. Trường độ dài còn lại sử dụng mã hóa độ dài biến.

Phạm vi bit Tên trường Mô tả
7-4Loại gói tinLoại gói điều khiển (1-15)
3-0CờCờ đặc trưng cho loại (DUP, QoS, RETAIN cho PUBLISH)

Mã hóa độ dài biến

MQTT sử dụng mã hóa gọn cho trường độ dài còn lại. Mỗi byte sử dụng 7 bit cho dữ liệu và 1 bit làm cờ tiếp tục. Giá trị 0-127 cần 1 byte, 128-16383 cần 2 byte, tối đa lên đến 4 byte cho độ dài đến 268.435.455.

Byte Giá trị tối thiểu Giá trị tối đa
10127
212816,383
316,3842,097,151
42,097,152268,435,455

Chi tiết gói CONNECT

Gói CONNECT được gửi đầu tiên sau khi thiết lập kết nối TCP. Nó chứa phiên bản giao thức, khoảng thời gian keep-alive, ID client và thông tin xác thực tùy chọn. Các cờ kết nối kiểm soát hành vi phiên bao gồm Clean Session, cấu hình tin nhắn di chúc và xác thực.

Cơ chế gói PUBLISH

Gói PUBLISH mang các tin nhắn ứng dụng. Các cờ header cố định chỉ ra mức QoS, hành vi retain và trạng thái trùng lặp. QoS 0 là fire-and-forget, QoS 1 đảm bảo giao ít nhất một lần, QoS 2 đảm bảo chính xác một lần qua bắt tay bốn bước.

Đảm bảo giao hàng QoS

QoS 0
Tối đa một lần - giao hàng fire and forget
QoS 1
Ít nhất một lần - đảm bảo với khả năng trùng lặp
QoS 2
Chính xác một lần - đảm bảo giao hàng duy nhất

Ứng dụng thực tế

  • Phân tích bắt gói từ Wireshark hoặc tcpdump để gỡ lỗi
  • Xây dựng gói test để xác minh triển khai broker hoặc client MQTT
  • Học nội bộ giao thức MQTT qua kiểm tra gói thực hành
  • Khắc phục sự cố kết nối và giao tin nhắn của thiết bị IoT
  • Tạo gói mẫu cho các kịch bản kiểm thử tự động

Các phiên bản giao thức

Ba phiên bản chính của MQTT đang được sử dụng: MQTT 3.1 (mức giao thức 3), MQTT 3.1.1 (mức giao thức 4, ISO/IEC 20922:2016), và MQTT 5.0 (mức giao thức 5) với các tính năng nâng cao. Công cụ này tập trung chủ yếu vào MQTT 3.1.1 - phiên bản được triển khai rộng rãi nhất.

Menu Nhanh

Chưa có công cụ gần đây