Translate

11 tháng 4, 2020

[100daysTIL] Day 1 - Message Queuing Telemetry Transport


- Là một giao thức truyền thông, sử dụng mô hình (Publish/Subscribe). Sử dụng băng thông thấp, độ tin cậy cao và có khả năng hoạt động trong điều kiện đường truyền không ổn định.
- Bởi giao thức này sử dụng băng thông thấp trong môi trường độ trễ cao nên nó là một giao thức lý tưởng cho các ứng dụng M2M (Machine to Machine).
- Trong một hệ thống sử dụng giao thức MQTT, nhiều node trạm (Node = MQTT client) kết nối tới một MQTT server (MQTT server = Broker).
- MQTT cũng là giao thức sử dụng trong Facebook Messenger.

Ảnh được lấy từ blog Mícellaneous - from India
-------------------------
Các khái niệm cần lưu ý: "subscribe", "publish", "retain", "last will and testament" (lwt)

1) Publish
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ý. Nếu một Client gửi dữ liệu tới kênh đó, quá trình này gọi là Publish

2) Subcribe
Mỗi Client sẽ đăng ký một vài kênh (Topic) VD: /client1/channel1 , /client1/channel2 . Quá trình này gọi là Subcribe

3) QoS - Qualities of Service: Có 3 tùy chọn khi "Publish" và "Subcribe":

QoS0 - Broker/Client sẽ gửi dữ liệu đúng 1 lần, quá trình gửi được xác nhận bởi địa chỉ giao thức TCP/IP.
QoS1 - Broker/Client sẽ gửi dữ liệu với ít nhất 1 lần xác nhận từ đầu kia, nghĩa là có thể nhiều hơn (1 gói tin ACK)
QoS2 - Broker/Client đảm bảo khi gửi dữ liệu thì phía nhận chỉ nhận được đúng 1 lần, quá trình này được thực hiện thông qua 4 bước bắt tay.
Xem thêm tại:
https://code.google.com/p/mqtt4erl/wiki/QualityOfServiceUseCases

4) RETAIN
Retain = 1 Khi publish gửi 1 gói dữ liệu đến client và broker
Retain = 0 Kết quả của việc subscribe trả về client (Giống như gói tin ACK)

5) LWT - Last Will and Testament
Thông tin điều gì sẽ xảy đến sau khi thiết bị ngoại tuyến. Nhưng gói tin này không thực sự biết được client có trực tuyến hay không. Nhiệm vụ này sẽ do gói tin KeepAlive đảm nhận. Ngoài việc đóng kết nối của client đã ngoại tuyến, gói tin LWT có thể được định nghĩa trước và được gửi bởi broker tới kênh nào đó khi thiết bị đăng ký LWT ngoại tuyến.

MQTT Security
Big Problem - - - - -
-------------------------
Link tham khảo: https://esp8266.vn/nonos-sdk/mqtt/what-is-mqtt/

3 nhận xét:

  1. Đây chắc hẳn ngôn ngữ ngoài hành tinh rồi, ôi chúa ơi. Nhưng nhìn trên phương diện người khác lại rất ngắn gọn về dễ hiểu đấy.

    Trả lờiXóa
    Trả lời
    1. :v Tớ thấy chẳng hiểu mô tê gì sất :v Đó là lý do mà tớ sẽ không bao giờ nhắc lại nó nữa :v

      Xóa
    2. Axax đùa, c ghi mà không hiểu, chém vừa thôi.

      Xóa

Cảm ơn bạn đã gióp ý ^^