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

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

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

    聶永的博客

    記錄工作/學習的點點滴滴。

    MQTT-SN協議亂翻之簡要介紹

    前言

    這一段時間在翻看MQTT-SN的協議,對針對不依賴于TCP傳輸的MQTT協議十分感興趣,總是再想著這貨到底是怎么定義的。一系列文章皆有MQTT-SN 1.2協議所拼裝組成,原文檔地址: MQTT-SN_spec_v1.2.pdf

    MQTT-SN文檔分為7個部分,我直接按照從前到后的順序,直接組裝成四個小篇。嗯,若放在一篇文章中,文字太長,造成排版難度。

    非直譯,完全按照自己理解整理而成,請知曉。

    版本變遷歷史

    1. 2007-11-29 1.0版本
    2. 2008-6-5 1.1版本,增加休眠設備支持
    3. 2011-5-20 1.2版本
    • 增加消息長度255字節支持
    • 增加轉發封裝支持
    • 增加返回代碼"0x03 Rejected, not supported"
    • ReturnCode 增加到WILLTOPICRESP和WILLMSGRESP消息中

    MQTT-SN名稱由來

    原名是MQTT-S,但會引起人們的誤解,因此更名成MQTT-SN:

    As part of the job of applying the same or similar license terms to the MQTT-S specification as those on the MQTT specification, we are proposing a small name change. The new name would be MQTT-SN, standing for exactly the same long name, MQTT for Sensor Networks. Some people had assumed that the S in MQTT-S stood for secure, so we hope this change will avoid that confusion. -- Ian Craggs

    MQTT-SN存在目的

    MQTT for Sensor Networks is aimed at embedded devices on non-TCP/IP networks, such as Zigbee. MQTT-SN is a publish/subscribe messaging protocol for wireless sensor networks (WSN), with the aim of extending the MQTT protocol beyond the reach of TCP/IP infrastructure for Sensor and Actuator solutions.

    針對適配傳感裝置(縮寫為SA)的特定版MQTT協議,一般運行在嵌入式電池驅動的電子元件中,傳輸通過基于IEEE 802.15.4規范無線低速網絡構成的無線傳感網絡(WSN),同樣具有企業級別特性具有以數據為核心的(data-centric)訂閱/發布特性。

    總之,針對低功耗、電池驅動、處理存儲受限的設備、不支持TCP/IP協議棧網絡的電子器件而定制,比如常見的ZigBee(或XBee),對所依賴的底層傳輸網絡不可知,但只要網絡支持雙向數據傳輸和網關,都是可以支持較為上層的MQTT-SN協議傳輸。比如簡單數據報服務,只要支持一個源端點發送數據到一個特定目的地端點,這對支持MQTT-SN協議,就足夠了。廣播數據報傳輸服務也是必須的用于網關和終端的自動發現流程。為了降低廣播風暴,MQTT-SN定義了廣播路徑深度(廣播范圍或廣播半徑)。

    一些名詞和術語

    • topic id,主題標識符,兩個字節16位表示的自然數(java語言short類型,0-65535范圍),對應于主題topic name
    • 網關/服務器(gateway/server),在MQTT-SN中統一稱之為網關,主要處理和MQTT-SN客戶端的交互,縮寫為網關
    • MQTT-SN終端和客戶端(client),統一稱之為客戶端,其實也是嵌入式傳感設備,或電子元件,資源受限,在無線區域個人網中運行
    • IEEE 802.15.4,完整棧的整個數據上限為128個字節,一般選擇UDP(相比20個字節的TCP協議,UDP報文頭部僅僅需要8個字節)協議傳輸數據
    • 低速網絡/當前網絡,指的是LR-WPAN(low-rate wireless personal area network,),低速無線個人區域網絡

    MQTT-SN VS MQTT

    盡管MQTT-SN被設計成盡可能接近于MQTT,但那些低功耗、電池驅動、資源受限的設備所在網絡場景為低速帶寬、高連接失敗、物理層數據包上線為128字節。文檔提出了以下不同點:

    1. CONNECT消息被拆分成三個消息(CONNECT,WILLTIPIC,WILLMSG),后兩者用于客戶端傳遞遺囑主題和遺囑消息等
    2. 在PUBLISH消息中主題(topic name)被替換成兩個字節長度自然數(topic id),這個需要客戶端通過注冊流程進行獲取對應的topic id
    3. 預定義(提前定義)topic id和topic name,省去中間注冊流程,客戶端和網關要求提前在其固件中指定
    4. 協議引入的自動發現機制可幫助客戶端發現潛在的網關。若存在多個網關,彼此可協調是為主從互備或者負載均衡
    5. "clean session"即可作用于訂閱持久化,也被擴展作用于遺囑特性(遺囑主題和遺囑消息)
    6. 針對休眠設備增加離線?;顧C制支持,當有消息時代理需要緩存,客戶端被喚醒時再發送

    MQTT-SN架構示意

    在MQTT-SN架構圖中,存在三種組件:

    1. MQTT-SN 客戶端
    2. MQTT-SN 網關,可單獨存在,也可以被集成到MQTT服務器中。需要承擔MQTT-SN和MQTT協議之間的轉換工作
    3. MQTT-SN 轉發器,負責轉發當前客戶端數據到不可直接訪問的網關上去,針對客戶端而言網關不可直接訪問時,轉發器作用就凸顯。轉發器封裝MQTT-SN消息轉發給網關,解封來自網關的消息發送給客戶端。網關不能夠篡改原始數據。

    MQTT-SN傳輸網關

    MQTT-SN網關傳輸方式,下面的圖片一目了然。

    1. 透明網關,會為每一個客戶端都建立一個TCP連接到MQTT服務器的通道,這樣會較為耗費網關網絡資源,但模型簡單
    2. 聚合網關,只建立一條TCP連接通道到MQTT服務器上,所有的客戶端共享一個通道,很經濟的說。

    網關需要抉擇哪些消息需要和遠程的MQTT Server進行交互,比如只選擇客戶端發送的PUBLISH、SUBSCRIBLE消息等。

    小結

    上面簡單介紹了MQTT-SN,下面將會介紹MQTT-SN消息頭部和格式。

    posted on 2015-01-07 22:41 nieyong 閱讀(11763) 評論(0)  編輯  收藏 所屬分類: MQTT

    公告

    所有文章皆為原創,若轉載請標明出處,謝謝~

    新浪微博,歡迎關注:

    導航

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

    統計

    常用鏈接

    留言簿(58)

    隨筆分類(130)

    隨筆檔案(151)

    個人收藏

    最新隨筆

    搜索

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲欧洲日产国码无码久久99 | 三上悠亚亚洲一区高清| 69影院毛片免费观看视频在线 | 亚洲综合久久夜AV | 女人被男人桶得好爽免费视频| 国产一级淫片a免费播放口| 羞羞漫画小舞被黄漫免费| 亚洲高清视频在线| 亚洲第一成年人网站| 久久精品亚洲综合| 亚洲最大AV网站在线观看| 亚洲精品视频久久久| 国产精品国产自线拍免费软件| 在线观看av永久免费| 国产在线观看麻豆91精品免费 | 国产AV无码专区亚洲AV蜜芽| 亚洲三级电影网址| 国产AV无码专区亚洲AV漫画 | 污污视频网站免费观看| 亚洲日韩精品无码专区加勒比| 亚洲成无码人在线观看| 久久亚洲AV成人无码软件| 国产精品亚洲а∨天堂2021| 亚洲乱码一二三四区国产| 亚洲黄色在线观看| 亚洲国产精品lv| 亚洲男人天堂av| 亚洲日本在线看片| 久久综合亚洲色HEZYO社区| 久久精品国产亚洲AV麻豆网站| 亚洲精品无码不卡| 久久精品国产亚洲av水果派 | 男女超爽刺激视频免费播放| 亚洲电影免费观看| 免费观看激色视频网站(性色)| 91热成人精品国产免费| 免费不卡视频一卡二卡| 在线观看免费高清视频| 精品国产免费观看久久久| 免费va在线观看| 亚洲中文字幕成人在线|