亚洲一区二区三区国产日韩欧美_日韩无码动漫精品一区_欧美日韩另类视频在线_国产极品美女扒开粉嫩小泬91_无遮挡又爽又刺激的视频_综合高清亚洲无码_天天躁夜夜躁狠狠85台湾_一区二区日韩精选_精品国产第一网站_先锋影音中文字幕51啪啪

新聞資訊
MQTT是什么?MQTT如何工作的?
2022-08-19


  MQTT是什么

  MQTT是一種輕量級(jí)的開放式消息傳遞協(xié)議,它為資源受限的網(wǎng)絡(luò)客戶端提供了一種在低帶寬環(huán)境中分發(fā)遙測(cè)信息的簡單方法。該協(xié)議采用發(fā)布/訂閱通信模式,用于機(jī)器對(duì)機(jī)器 ( M2M ) 通信。

  作為一種低開銷協(xié)議創(chuàng)建以適應(yīng)帶寬和 CPU 限制,MQTT 被設(shè)計(jì)為在嵌入式環(huán)境中運(yùn)行,它可以提供可靠、有效的通信路徑。MQTT 適用于連接代碼占用空間小的設(shè)備,對(duì)于由于偶爾的帶寬限制或不可靠的連接而經(jīng)歷不同延遲水平的無線網(wǎng)絡(luò)來說,它是一個(gè)不錯(cuò)的選擇。該協(xié)議適用于從汽車到能源再到電信等行業(yè)。

  管 MQTT 最初是用于與石油和天然氣行業(yè)的監(jiān)控和數(shù)據(jù)采集 ( SCADA ) 系統(tǒng)進(jìn)行通信的專有協(xié)議,但它已在智能設(shè)備領(lǐng)域變得流行,如今已成為連接物聯(lián)網(wǎng)的領(lǐng)先開源協(xié)議 ( IoT ) 和工業(yè) IoT ( IIoT ) 設(shè)備。

  雖然 MQTT 中的TT代表 Telemetry Transport,但MQ指的是一種名為 IBM MQ 的產(chǎn)品。盡管MQTT的拼寫有時(shí)被稱為消息隊(duì)列遙測(cè)傳輸,但 MQTT 通信中沒有消息隊(duì)列。

 MQTT是什么

  MQTT 是如何工作的?

  為了最大化可用帶寬,MQTT 的發(fā)布/訂閱(pub/sub)通信模型是直接與端點(diǎn)通信的傳統(tǒng)客戶端-服務(wù)器架構(gòu)的替代方案。相比之下,在pub/sub 模型中,發(fā)送消息的客戶端(發(fā)布者)與接收消息的客戶端(或訂閱者)分離。因?yàn)榘l(fā)布者和訂閱者之間都沒有直接聯(lián)系,所以第三方——經(jīng)紀(jì)人——負(fù)責(zé)他們之間的聯(lián)系。

  MQTT 客戶端包括發(fā)布者和訂閱者,這些術(shù)語指的是客戶端是發(fā)布消息還是訂閱接收消息。這兩個(gè)功能可以在同一個(gè) MQTT 客戶端中實(shí)現(xiàn)。當(dāng)設(shè)備(或客戶端)想要向服務(wù)器(或代理)發(fā)送數(shù)據(jù)時(shí),它被稱為發(fā)布。當(dāng)操作反向時(shí),它被稱為訂閱。在發(fā)布/訂閱模式下,多個(gè)客戶端可以連接到代理并訂閱他們感興趣的主題。

  如果從訂閱客戶端到代理的連接中斷,那么代理將緩沖消息并在訂閱者重新聯(lián)機(jī)時(shí)將它們推送給訂閱者。如果從發(fā)布客戶端到代理的連接在沒有通知的情況下斷開,那么代理可以關(guān)閉連接并向訂閱者發(fā)送包含發(fā)布者指令的緩存消息。

  MQTT 消息的類型

  一個(gè) MQTT 會(huì)話分為四個(gè)階段:連接、認(rèn)證、通信和終止。客戶端首先使用代理的操作員定義的標(biāo)準(zhǔn)端口或自定義端口創(chuàng)建與代理的傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議 ( TCP/IP ) 連接。創(chuàng)建連接時(shí),重要的是要認(rèn)識(shí)到如果為服務(wù)器提供了重用的客戶端身份,它可能會(huì)繼續(xù)舊會(huì)話。

  標(biāo)準(zhǔn)端口是 1883 用于非加密通信和 8883 用于加密通信 - 使用安全套接字層 ( SSL )/傳輸層安全性 ( TLS )。在 SSL/TLS 握手期間,客戶端驗(yàn)證服務(wù)器證書并驗(yàn)證服務(wù)器??蛻舳诉€可以在握手期間向代理提供客戶端證書。代理可以使用它來驗(yàn)證客戶端。雖然不是 MQTT 規(guī)范的具體部分,但代理已經(jīng)習(xí)慣于使用 SSL/TLS 客戶端證書支持客戶端身份驗(yàn)證。

  因?yàn)?MQTT 協(xié)議旨在成為資源受限和 IoT 設(shè)備的協(xié)議,所以 SSL/TLS 可能并不總是一種選擇,并且在某些情況下可能不需要。在這種情況下,身份驗(yàn)證顯示為明文用戶名和密碼,由客戶端發(fā)送到服務(wù)器——這是 CONNECT/CONNACK 數(shù)據(jù)包序列的一部分。此外,一些經(jīng)紀(jì)商,尤其是在互聯(lián)網(wǎng)上發(fā)布的公開經(jīng)紀(jì)商,將接受匿名客戶。在這種情況下,用戶名和密碼只需留空即可。

  MQTT 被認(rèn)為是一種輕量級(jí)協(xié)議,因?yàn)槠渌邢⒌拇a占用量都很小。每條消息都由一個(gè)固定的標(biāo)頭(2個(gè)字節(jié))、一個(gè)可選的可變標(biāo)頭、一個(gè)限制為 256 兆字節(jié) (MB) 信息的消息有效負(fù)載和一個(gè)服務(wù)質(zhì)量 ( QoS ) 級(jí)別組成。

  在通信階段,客戶端可以執(zhí)行發(fā)布、訂閱、取消訂閱和ping操作。發(fā)布操作將二進(jìn)制數(shù)據(jù)塊(內(nèi)容)發(fā)送到發(fā)布者定義的主題。

  MQTT 支持最大 256 MB 的消息二進(jìn)制大對(duì)象 (BLOB)。內(nèi)容的格式將是特定于應(yīng)用程序的。使用 SUBSCRIBE/SUBACK 數(shù)據(jù)包對(duì)進(jìn)行主題訂閱,并且使用 UNSUBSCRIBE/UNSUBACK 數(shù)據(jù)包對(duì)類似地執(zhí)行取消訂閱。


關(guān)注有人微信公眾號(hào)
了解更多信息