<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    聶永的博客

    記錄工作/學(xué)習(xí)的點(diǎn)點(diǎn)滴滴。

    MQTT-SN協(xié)議亂翻之小結(jié)篇

    前言

    這里簡(jiǎn)單做一些小結(jié)和對(duì)比,針對(duì)前面的協(xié)議翻譯部分,一階段的學(xué)習(xí)完結(jié)。

    MQTT-SN VS MQTT

    MQTT-SN基于MQTT原有語(yǔ)義,但做了很多的調(diào)整。比如: 一個(gè)CONNECT消息被拆分為3個(gè)消息 主題名稱需要使用主題標(biāo)識(shí)符替代 * 網(wǎng)關(guān)地址可以廣播、查詢得知

    MQTT-SN 與 MQTT對(duì)比,使用一張圖介紹

    比較類型 MQTT MQTT-SN
    傳輸類型 可靠點(diǎn)對(duì)點(diǎn)流模式 不可靠的數(shù)據(jù)報(bào)
    通信方式 TCP/IP Non-IP 或 UDP
    網(wǎng)絡(luò)傳輸 Ethernet, WiFi, 3G ZigBee,Bluetooth,RF
    最小消息 2個(gè)字節(jié) 2個(gè)字節(jié)
    最大消息 ≤24MB < 128個(gè)字節(jié)
    電池供電 X
    休眠支持 X
    QoS -1(啞客戶端) X
    主題標(biāo)識(shí)符 X
    網(wǎng)關(guān)自動(dòng)發(fā)現(xiàn)和回退 X

    QoS

    有關(guān)QoS,MQTT-SN新增增加了啞客戶端(QoS :-1)支持:

    QoS Level 消息傳輸次數(shù) 傳輸語(yǔ)義 傳輸保證
    -1 ≤ 1 至多一次 無(wú)連接,只用于傳輸,盡力而為,無(wú)保證;只有MQTT-SN支持
    0 ≤ 1 至多一次 盡力而為,無(wú)保證
    1 ≥ 1 至少一次 保證送達(dá),可能存在重復(fù)
    -1 ≡ 1 只有一次 保證送達(dá),并且不存在重復(fù)

    網(wǎng)關(guān)的查詢和發(fā)現(xiàn)

    1. MQTT-SN客戶端無(wú)須提前知道網(wǎng)關(guān)地址,接收網(wǎng)關(guān)的周期性廣播好了,或直接廣播一條網(wǎng)關(guān)查詢;接收廣播+主動(dòng)查詢,就夠了
    2. MQTT-SN對(duì)客戶端/網(wǎng)關(guān)的亂入和丟失,處理的很好,備用網(wǎng)關(guān)在主網(wǎng)關(guān)掛掉之后即可轉(zhuǎn)換為主網(wǎng)關(guān),針對(duì)客戶端而言,直接更新一個(gè)新的網(wǎng)關(guān)地址就可以
    3. 存在的若干網(wǎng)關(guān)可以互相協(xié)調(diào)彼此之間角色,互為主備stand-by,出現(xiàn)問(wèn)題,主機(jī)下線維護(hù),從機(jī)升級(jí)主機(jī)

    清理會(huì)話

    和MQTT 3.1協(xié)議類似,在上一次的客戶端成功連接時(shí)在CONNECT中設(shè)置了清理會(huì)話標(biāo)志clean session為false,遺囑特性Will也為true,再次連接時(shí),那么服務(wù)器為其緩存訂閱數(shù)據(jù)和遺囑數(shù)據(jù)是否已經(jīng)被刪除,對(duì)客戶端不透明,因?yàn)榫退闶欠?wù)器因內(nèi)存壓力等清理了緩存,但沒(méi)有通知到客戶端,會(huì)造成訂閱、遺囑的誤解。

    還好,MQTT-SN協(xié)議中,網(wǎng)關(guān)在清理掉遺囑數(shù)據(jù)后,可以咨詢客戶端,或主動(dòng)通知客戶端斷開(kāi),重新建立會(huì)話流程。

    在MQTT 3.1.1協(xié)議中,服務(wù)器會(huì)在CONNACK中標(biāo)記會(huì)話是否已經(jīng)被持久的標(biāo)記。

    主題標(biāo)識(shí)符(Topic id)

    確切來(lái)說(shuō),MQTT-SN協(xié)議存在三種格式主題名稱(topic name),可由消息標(biāo)志位包含TopicIdType屬性決定:

    • 0b01:預(yù)分配的主題標(biāo)識(shí)符(topic id),16位自然數(shù),0-65535范圍
    • 0b10:預(yù)分配的短主題名稱(short topic name),只有兩個(gè)字符表示
    • 0b00:正常主題名稱(topic name),可直接附加在REGISTER/SUBSCRIBE/WILLTOPICUPD消息對(duì)應(yīng)字段中

    所有主題被替換成標(biāo)識(shí)符,在發(fā)布PUBLISH消息時(shí),直接使用被指定的主題標(biāo)識(shí)符topic id、short topic name即可。

    MQTT-SN流程梳理

    下面對(duì)MQTT-SN常用流程進(jìn)行的流程簡(jiǎn)單梳理:

                  Client              Gateway            Server/Broker
                    |                   |                    |
    Generic Process | --- SERCHGW ----> |                    |
                    | <-- GWINFO  ----- |                    |
                    | --- CONNECT ----> |                    |
                    | <--WILLTOPICREQ-- |                    |
                    | --- WILLTOPIC --> |                    |
                    | <-- WILLMSGREQ -- |                    |
                    | --- WILLMSG ----> | ---- CONNECT ----> |(accepted)
                    | <-- CONNACK ----- | <--- CONNACK ----- |
                    | --- PUBLISH ----> |                    |
                    | <-- PUBACK  ----- | (invalid TopicId)  |
                    | --- REGISTER ---> |                    |
                    | <-- REGACK  ----- |                    |
                    | --- PUBLISH ----> | ---- PUBLISH ----> |(accepted)
                    | <-- PUBACK  ----- | <---- PUBACK ----- |
                    |                   |                    |
                    //                  //                   //
                    |                   |                    |
     SUBSCRIBE   -->| --- SUBSCRIBE --> | ---- SUBSCRIBE --> |
     [var Callback] | <-- SUBACK ------ | <--- SUBACK ------ |
                    |                   |                    |
                    //                  //                   //
                    |                   |                    |
                    | <-- REGISTER ---- | <--- PUBLISH ----- |<-- PUBLISH
                    | --- REGACK  ----> |                    |
    [exec Callback] | <-- PUBLISH  ---- |                    |
                    | --- PUBACK   ---> | ---- PUBACK  ----> |--> PUBACK
                    |                   |                    |
                    //                  //                   //
                    |                   |                    |
    active -> asleep| --- DISCONNECT -> | (with duration)    |
                    | <-- DISCONNECT -- | (without duration) |
                    |                   |                    |
                    //                  //                   //
                    |                   |                    |
                    |                   | <--- PUBLISH ----- |<-- PUBLISH
                    |                   | ----- PUBACK ----> |
                    |                   | <--- PUBLISH ----- |<-- PUBLISH
                    |                   | ----- PUBACK ----> |
                    |                   | (buffered messages)|
    asleep -> awake |                   |                    |
                    | --- PINGREQ ----> |                    |
    awake state     | <-- PUBLISH  ---- |                    |
                    | <-- PUBLISH  ---- |                    |
                    | <-- PINGRESP ---- |                    |
    asleep <-awake  |                   |                    |

    MQTT-SN運(yùn)行的協(xié)議棧

    MQTT-SN可以運(yùn)行在不同的無(wú)線協(xié)議上,只要可以滿足MQTT-SN 所定義即可:支持雙向數(shù)據(jù)傳輸和網(wǎng)關(guān)即可,MQTT-SN完全可以運(yùn)行在其上面。

    MQTT-SN可以在ZigBee、Bluetooth、RF、UDP、6loWPAN等底層協(xié)議層面運(yùn)行。

    MQTT-SN網(wǎng)絡(luò)拓?fù)鋱D

    下面是來(lái)自網(wǎng)友的基于MQTT-SN運(yùn)行的架構(gòu)圖:

    但實(shí)際上的其網(wǎng)絡(luò)拓?fù)淇赡芨鼮閺?fù)雜,比如兩個(gè)不同的傳感器網(wǎng)絡(luò):

    小結(jié)

    傳感器和制動(dòng)器,合稱為SA。傳感器匯報(bào)狀態(tài)數(shù)值(自身發(fā)布PUBLISH消息),制動(dòng)器會(huì)被某參數(shù)值觸發(fā)(接收到的PUBLISH消息)。好比,文件的輸入-輸出模式,傳感器用于文件的讀取,制動(dòng)器用于文件寫入。或者使用管道閥門,某指標(biāo)超過(guò)閥值觸發(fā)制動(dòng)器報(bào)警,SA一起作用便于更好追蹤數(shù)據(jù)。大部分時(shí)間,PUBLISH消息被用于觸發(fā)制動(dòng)器,這建立在后端服務(wù)器的分析結(jié)果基礎(chǔ)上。

    MQTT-SN比較知名的實(shí)現(xiàn),比如(http://eclipse.org/proposals/technology.mosquitto/)[Eclipse Mosquitto],(RMSB)[http://git.eclipse.org/c/mosquitto/org.eclipse.mosquitto.rsmb.git/]等,但不是實(shí)現(xiàn)所有已定義細(xì)節(jié),比如MQTT-SN協(xié)議轉(zhuǎn)發(fā)部分(MQTT-SN Forwarder),就鮮有實(shí)現(xiàn),但實(shí)現(xiàn)不難嘛,可能缺乏相應(yīng)的場(chǎng)景支持吧。

    MQTT-SN支持類似于傳感器的網(wǎng)關(guān),稍強(qiáng)的網(wǎng)絡(luò)可與適用于MQTT協(xié)議,這樣看來(lái),MQTT要做到連接一切(Connect anything),如IBM所發(fā)布的紅皮書所說(shuō),要使用MQTT打造一個(gè)智能星球,有戲!

    posted on 2015-01-13 17:15 nieyong 閱讀(9511) 評(píng)論(6)  編輯  收藏 所屬分類: MQTT

    評(píng)論

    # re: MQTT-SN協(xié)議亂翻之小結(jié)篇 2015-01-13 17:20 澀兔子leslie

    哈哈,發(fā)現(xiàn)老師也孤島Arduino  回復(fù)  更多評(píng)論   

    # re: MQTT-SN協(xié)議亂翻之小結(jié)篇[未登錄](méi) 2015-01-13 17:24 changedi

    先贊一個(gè),攢好貨以后看~~  回復(fù)  更多評(píng)論   

    # re: MQTT-SN協(xié)議亂翻之小結(jié)篇 2015-01-22 15:38 痘坑

    好文章,當(dāng)然要頂  回復(fù)  更多評(píng)論   

    # re: MQTT-SN協(xié)議亂翻之小結(jié)篇 2015-01-28 09:17 mq

    請(qǐng)問(wèn)目前有開(kāi)源的mqtt-sn代理嗎  回復(fù)  更多評(píng)論   

    # re: MQTT-SN協(xié)議亂翻之小結(jié)篇 2015-01-28 09:41 nieyong

    @mq
    請(qǐng)參考 Mosquitto,RMSB等  回復(fù)  更多評(píng)論   

    # re: MQTT-SN協(xié)議亂翻之小結(jié)篇 2015-01-28 09:50 mq

    @nieyong
    mosquitto目前還不支持
    RSMB沒(méi)有試成功過(guò)  回復(fù)  更多評(píng)論   

    公告

    所有文章皆為原創(chuàng),若轉(zhuǎn)載請(qǐng)標(biāo)明出處,謝謝~

    新浪微博,歡迎關(guān)注:

    導(dǎo)航

    <2015年1月>
    28293031123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    統(tǒng)計(jì)

    常用鏈接

    留言簿(58)

    隨筆分類(130)

    隨筆檔案(151)

    個(gè)人收藏

    最新隨筆

    搜索

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 国产av无码专区亚洲av果冻传媒| 在线播放国产不卡免费视频| 亚洲AV午夜福利精品一区二区 | 国产自偷亚洲精品页65页| 91九色精品国产免费| 免费国产在线视频| 久久国产一片免费观看| 国产AV日韩A∨亚洲AV电影| 亚洲三级中文字幕| 亚洲视频欧洲视频| 亚洲国产精品自在在线观看| 国产性爱在线观看亚洲黄色一级片 | 四虎免费大片aⅴ入口| 美女视频黄的全免费视频| 色猫咪免费人成网站在线观看| 国产精品免费久久久久久久久| 黄色a三级免费看| WWW亚洲色大成网络.COM | 国产成人精品免费视频网页大全| 国产亚洲精品精品精品| 亚洲日日做天天做日日谢| 亚洲中文无码线在线观看| 亚洲欧洲国产综合| 亚洲一区二区电影| 久久精品国产亚洲夜色AV网站| 亚洲夜夜欢A∨一区二区三区| 免费大片在线观看网站| 国产免费小视频在线观看| 国产精品色午夜免费视频| 国产美女无遮挡免费网站| 国内外成人免费视频| 好爽…又高潮了免费毛片| 女人18毛片特级一级免费视频| 国产成人免费网站| 在线视频观看免费视频18| 国产92成人精品视频免费| 野花高清在线观看免费3中文| 免费大片黄在线观看yw| 成年丰满熟妇午夜免费视频| 在线免费不卡视频| 波多野结衣中文一区二区免费|