一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

MQTT協(xié)議簡介及協(xié)議原理

汽車電子技術(shù) ? 來源:物聯(lián)網(wǎng)IoT開發(fā) ? 作者: 杰杰mcu ? 2023-02-28 16:16 ? 次閱讀

MQTT協(xié)議簡介

MQTT協(xié)議全稱是Message Queuing Telemetry Transport,翻譯過來就是消息隊列遙測傳輸協(xié)議,它是物聯(lián)網(wǎng)常用的應(yīng)用層協(xié)議,運行在TCP/IP中的應(yīng)用層中,依賴TCP協(xié)議,因此它具有非常高的可靠性,同時它是基于TCP協(xié)議的 <客戶端-服務(wù)器> 模型發(fā)布/訂閱主題消息的輕量級協(xié)議,也是我們常說的發(fā)送與接收數(shù)據(jù),下面我們來初步了解一下mqtt相關(guān)的名稱與功能。

MQTT最大的優(yōu)點在于可以以極少的代碼和有限的帶寬,為遠(yuǎn)程設(shè)備提供實時可靠的消息服務(wù)。作為一種低開銷、低帶寬占用的即時通訊協(xié)議,MQTT在物聯(lián)網(wǎng)、小型設(shè)備、移動應(yīng)用等方面有廣泛的應(yīng)用。

MQTT是哪一層的協(xié)議?

眾所周知,TCP/IP參考模型可以分為四層:應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、鏈路層。TCP和UDP位于傳輸層,應(yīng)用層常見的協(xié)議有HTTP、FTP、SSH等。MQTT協(xié)議運行于TCP之上,屬于應(yīng)用層協(xié)議,因此只要是支持TCP/IP協(xié)議棧的地方,都可以使用MQTT。

MQTT通信模型

MQTT 協(xié)議提供一對多的消息發(fā)布,可以降低應(yīng)用程序的耦合性,用戶只需要編寫極少量的應(yīng)用代碼就能完成一對多的消息發(fā)布與訂閱,該協(xié)議是基于<客戶端-服務(wù)器>模型,在協(xié)議中主要有三種身份:發(fā)布者(Publisher)、服務(wù)器(Broker)以及訂閱者(Subscriber)。其中,MQTT消息的發(fā)布者和訂閱者都是客戶端,服務(wù)器只是作為一個中轉(zhuǎn)的存在,將發(fā)布者發(fā)布的消息進(jìn)行轉(zhuǎn)發(fā)給所有訂閱該主題的訂閱者;發(fā)布者可以發(fā)布在其權(quán)限之內(nèi)的所有主題,并且消息發(fā)布者可以同時是訂閱者,實現(xiàn)了生產(chǎn)者與消費者的脫耦,發(fā)布的消息可以同時被多個訂閱者訂閱。

MQTT通信模型示意圖如下:

圖片

mqtt001

MQTT客戶端的功能:

  1. 發(fā)布消息給其它相關(guān)的客戶端。
  2. 訂閱主題請求接收相關(guān)的應(yīng)用消息。
  3. 取消訂閱主題請求移除接收應(yīng)用消息。
  4. 從服務(wù)端終止連接。

MQTT客戶服務(wù)器功能:

MQTT 服務(wù)器常被稱為 Broker(消息代理),它一般為云服務(wù)器,比如BTA三巨頭的一些物聯(lián)網(wǎng)平臺就是常使用MQTT協(xié)議,它是位于消息發(fā)布者和訂閱者之間,以便用于接收消息并發(fā)送到訂閱者之中,它的功能有:

  1. 接受來自客戶端的網(wǎng)絡(luò)連接請求。
  2. 接受客戶端發(fā)布的應(yīng)用消息。
  3. 處理客戶端的訂閱和取消訂閱請求。
  4. 轉(zhuǎn)發(fā)應(yīng)用消息給符合條件的已訂閱客戶端(包括發(fā)布者自身)。

消息主題與服務(wù)質(zhì)量

什么是主題?MQTT服務(wù)器為每個連接的客戶端(訂閱者)添加一個標(biāo)簽,該標(biāo)簽與服務(wù)器中的所有訂閱相匹配,服務(wù)器會將消息轉(zhuǎn)發(fā)給與標(biāo)簽相匹配的每個客戶端(訂閱者),當(dāng)然訂閱者也是需要有權(quán)限才能訂閱對應(yīng)的主題,比如像阿里云中的,訂閱者只能訂閱同一個產(chǎn)品下的主題,而不能跨產(chǎn)品訂閱,這樣子的處理就能達(dá)到信息的安全性以及多個訂閱者能及時收到消息。一個主題可以有多個級別,各個級別之間用斜杠字符分隔,例如/test 和 /test/test1/test2都 是有效的主題。

發(fā)布者與訂閱者可以通過主題名字,一般為UTF-8編碼(反正用英文字符串就不會錯)的形式發(fā)布和訂閱主題,比如我們可以直接定義一個名字為“test”的主題,絕大多數(shù)的MQTT服務(wù)器支持動態(tài)發(fā)布/訂閱主題,即當(dāng)前服務(wù)器中沒有某個主題,但是客戶端直接可以向該主題發(fā)布/訂閱消息,這樣子服務(wù)器就會創(chuàng)建對應(yīng)的主題,當(dāng)然,服務(wù)器中一般也會默認(rèn)提供多個系統(tǒng)主題,所有連接的客戶端均可訂閱。

每個客戶端與服務(wù)器建立連接后就是一個會話,客戶端和服務(wù)器之間會有狀態(tài)交互,訂閱是基于會話之上,每個訂閱中,都會包含一個主題過濾器,它是一個表達(dá)式,用于標(biāo)識訂閱相關(guān)的一個或多個主題,主題過濾器可以使用通配符,因此訂閱者需要指定訂閱的主題名字與服務(wù)質(zhì)量(QoS),訂閱者能訂閱多個主題,也就能接收到多個發(fā)布者發(fā)布的消息。同理,發(fā)布者也需要首先與服務(wù)器建立會話,并且指定發(fā)送的主題名字與服務(wù)質(zhì)量,同時它也能向多個不同的主題發(fā)送消息。

那么什么是服務(wù)質(zhì)量呢?MQTT的服務(wù)質(zhì)量提供3個等級:

  1. QoS0:最多發(fā)送一次消息,在消息發(fā)送出去后,接收者不會發(fā)送回應(yīng),發(fā)送者也不會重發(fā)消息,消息可能送達(dá)一次也可能根本沒送達(dá),這個服務(wù)質(zhì)量常用在不重要的消息傳遞中,因為即使消息丟了也沒有太大關(guān)系。
  2. QoS1:最少發(fā)送一次消息(消息最少需要送達(dá)一次,也有可送達(dá)多次),QoS 1的PUBLISH報文的可變報頭中包含一個報文標(biāo)識符,需要PUBACK報文確認(rèn)。即需要接收者返回PUBACK應(yīng)答報文。
  3. QoS2:這是最高等級的服務(wù)質(zhì)量,消息丟失和重復(fù)都是不可接受的,只不過使用這個服務(wù)質(zhì)量等級會有額外的開銷,這個等級常用于支付中,因為支付是必須有且僅有一次成功,總不能沒給錢或者給了多次錢吧。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2922

    文章

    45675

    瀏覽量

    385320
  • MQTT
    +關(guān)注

    關(guān)注

    5

    文章

    662

    瀏覽量

    23357
  • 消息隊列
    +關(guān)注

    關(guān)注

    0

    文章

    33

    瀏覽量

    3062
收藏 人收藏

    評論

    相關(guān)推薦

    MQTT 協(xié)議開發(fā)入門

    一、簡述MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸協(xié)議),是一種基于發(fā)布/訂閱(publish/subscribe)模式的"輕量級
    發(fā)表于 11-05 09:38

    MQTT 協(xié)議 開發(fā)入門

    ,消息隊列遙測傳輸協(xié)議),是一種基于發(fā)布/訂閱(publish/subscribe)模式的"輕量級"通訊協(xié)議,該協(xié)議構(gòu)建于TCP/IP協(xié)議上,由IBM在1999年發(fā)布。
    發(fā)表于 11-07 15:51

    MQTT協(xié)議介紹與移植筆記

    # 硬件智能之 MQTT協(xié)議介紹與移植筆記(一)##MQTT是什么?MQTT(MessageQueuing Telemetry Transport Protocol)即全稱消息隊列遙感
    發(fā)表于 08-20 07:08

    MQTT是什么?MQTT協(xié)議的特點有哪些

    MQTT是什么?MQTT協(xié)議的特點有哪些?MQTT協(xié)議有幾種消息發(fā)布服務(wù)質(zhì)量啊?
    發(fā)表于 09-29 07:43

    MQTT協(xié)議的相關(guān)資料推薦

    講到物聯(lián)網(wǎng),就不得不提耳熟能詳?shù)?b class='flag-5'>MQTT協(xié)議,作為當(dāng)下被物聯(lián)網(wǎng)領(lǐng)域廣范圍應(yīng)用的標(biāo)準(zhǔn)協(xié)議,這一誕生于IBM實驗室的“古老”產(chǎn)物(第一個版本誕生于1999年)已作為ISO國際標(biāo)準(zhǔn)越來越多的被廣大應(yīng)用商所
    發(fā)表于 12-13 06:42

    MQTT協(xié)議學(xué)習(xí)過程記錄

    學(xué)習(xí)mqtt協(xié)議(一)介紹1--6步內(nèi)容第一步 了解全局第二步 確定范圍第三步 定義目標(biāo)第四步 尋找資源第五步 創(chuàng)建學(xué)習(xí)計劃第六步 篩選資源總結(jié)介紹采用10步學(xué)習(xí)法學(xué)習(xí)mqtt協(xié)議,根
    發(fā)表于 01-07 06:32

    MQTT協(xié)議的相關(guān)資料分享

    前言搞智能家居就不得不說到網(wǎng)絡(luò)通信,因為我們需要通過各種終端去控制我們的智能家居設(shè)備,所以網(wǎng)絡(luò)通信這方面是必備的.而在市面上比較流行的網(wǎng)絡(luò)通訊協(xié)議就是MQTT通信協(xié)議.今天我們就簡單聊聊如何什么叫
    發(fā)表于 01-20 07:11

    玩轉(zhuǎn)mqtt協(xié)議的方法

    一過完年即將陷入一場惡戰(zhàn)之中,可能無暇在玩這么多東西了,趁著過年把之前一直想搞的mqtt協(xié)議給玩一玩 。簡單說一些mqtt協(xié)議MQTT(M
    發(fā)表于 02-16 06:48

    mqtt-v3.1.1版協(xié)議

    mqtt-v3.1.1版協(xié)議,英文版,時間2014.10.29,物聯(lián)網(wǎng)通信協(xié)議MQTT
    發(fā)表于 10-29 11:22 ?0次下載

    干貨:MQTT協(xié)議開發(fā)入門

    MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸協(xié)議),是一種基于發(fā)布/訂閱(publish/subscribe)模式的輕量級通訊協(xié)議,該協(xié)議
    的頭像 發(fā)表于 10-25 09:16 ?3500次閱讀

    MQTT 5協(xié)議你知道多少?

    MQTT協(xié)議是當(dāng)今世界上最流行、接受度最高的物聯(lián)網(wǎng)協(xié)議。自推出以來,MQTT協(xié)議在各行業(yè)應(yīng)用廣泛。本文帶大家了解
    的頭像 發(fā)表于 02-23 13:14 ?955次閱讀

    智聯(lián)物聯(lián)分享之物聯(lián)網(wǎng)協(xié)議MQTT簡述,MQTT協(xié)議特點

    )基于客戶端/服務(wù)器的信息發(fā)布/訂閱的物聯(lián)網(wǎng)常用傳輸協(xié)議。1999年由開發(fā)商IBM發(fā)布,MQTT協(xié)議是輕量、簡單、開放和易于實現(xiàn)的,這些特點也使得MQTT
    的頭像 發(fā)表于 03-28 18:10 ?1477次閱讀
    智聯(lián)物聯(lián)分享之物聯(lián)網(wǎng)<b class='flag-5'>協(xié)議</b><b class='flag-5'>MQTT</b>簡述,<b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>特點

    MQTT協(xié)議的概念和主要特性 MQTT協(xié)議于物聯(lián)網(wǎng)有何好處

    MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸)是ISO標(biāo)準(zhǔn)下基于發(fā)布/訂閱方式的輕量級消息協(xié)議。MQTT通常使用TCP / IP(傳輸控制
    的頭像 發(fā)表于 07-28 11:21 ?2773次閱讀
    <b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>的概念和主要特性 <b class='flag-5'>MQTT</b><b class='flag-5'>協(xié)議</b>于物聯(lián)網(wǎng)有何好處

    MQTT協(xié)議網(wǎng)關(guān)解決方案設(shè)計與實施

    MQTT協(xié)議網(wǎng)關(guān)是一個中間件,負(fù)責(zé)接收來自不同MQTT客戶端的消息,并將這些消息轉(zhuǎn)發(fā)到MQTT服務(wù)器;同時,也能接收來自MQTT服務(wù)器的消息
    的頭像 發(fā)表于 03-11 14:07 ?702次閱讀

    mqtt協(xié)議和tcp協(xié)議區(qū)別

    MQTT協(xié)議和TCP協(xié)議在設(shè)計和應(yīng)用上存在以下主要區(qū)別: 1. 起源與設(shè)計:MQTT協(xié)議誕生于1999年互聯(lián)網(wǎng)初期,而TCP
    的頭像 發(fā)表于 04-01 09:15 ?2082次閱讀