物聯(lián)網(wǎng)中常見的應(yīng)用層協(xié)議解釋物聯(lián)網(wǎng)在理論上很簡單:利用互聯(lián)網(wǎng)的巨大連接將數(shù)據(jù)從最小的設(shè)備(例如交換機和傳感器)發(fā)送到云、本地服務(wù)器群或大型數(shù)據(jù)平臺,以更準確地對世界進行建模. 該模型構(gòu)成了全新類別的應(yīng)用程序、分析以及以前無法想象的效率和優(yōu)化的基礎(chǔ)。 就技術(shù)創(chuàng)新和社會重要性而言,基于物聯(lián)網(wǎng)的應(yīng)用程序的全球增長使云看起來很溫和。物聯(lián)網(wǎng)為世界提供了自動化工業(yè)運營、個人醫(yī)療監(jiān)控、交通控制和智能家居。這份清單很長,而且還在不斷增加。 然而,對于物聯(lián)網(wǎng)推動的所有可用連接和技術(shù)革命,它提出了在更傳統(tǒng)的網(wǎng)絡(luò)場景中很少見的通信挑戰(zhàn)。 了解物聯(lián)網(wǎng)通信挑戰(zhàn) 物聯(lián)網(wǎng)中的應(yīng)用層協(xié)議必須解決物聯(lián)網(wǎng)網(wǎng)絡(luò)中的一些主要挑戰(zhàn)通訊。物聯(lián)網(wǎng)中的數(shù)據(jù)比傳統(tǒng)網(wǎng)絡(luò)中的數(shù)據(jù)更復(fù)雜。在一個簡單的場景中,傳感器向本地網(wǎng)絡(luò)報告溫度,然后通過互聯(lián)網(wǎng)將數(shù)據(jù)傳遞到云。復(fù)雜的場景可能會變得像工廠車間多臺機器之間的對話一樣棘手,當環(huán)境傳感器報告檢測到火災(zāi)時,它們有選擇地關(guān)閉電源,而云AI系統(tǒng)則監(jiān)控關(guān)閉并將事件報告給多個外部系統(tǒng)。簡單的場景包括單一數(shù)據(jù)類型和一個方向移動的單一消息。復(fù)雜的一種在許多必須有效交換數(shù)據(jù)的設(shè)備之間的許多消息中包括許多數(shù)據(jù)類型。硬件本身可能會有很大差異。 傳統(tǒng)的協(xié)議標準HTTP不一定適用于小型設(shè)備。一些物聯(lián)網(wǎng)設(shè)備支持HTTP并受益于HTTP傳輸?shù)墓δ?,但許多(如果不是大多數(shù))不是也不能。HTTP設(shè)計用于非常繁重、豐富的通信,而考慮到大多數(shù)設(shè)備的小尺寸和稀疏硬件和固件,大多數(shù)物聯(lián)網(wǎng)通信必然是最小的。一個 HTTP頭可以包含數(shù)百個字節(jié);這在大多數(shù)互聯(lián)網(wǎng)通信中不算什么,但對于大多數(shù)物聯(lián)網(wǎng)設(shè)備來說卻是巨大的。需要更精簡且能夠承載HTTP但不是HTTP的協(xié)議。 應(yīng)用層的工作原理 一些物聯(lián)網(wǎng)設(shè)備直接內(nèi)置網(wǎng)絡(luò)功能,但大多數(shù)通過網(wǎng)關(guān)連接到互聯(lián)網(wǎng)。 物聯(lián)網(wǎng)利用開放系統(tǒng)互連模型,該模型采用七個交互層來處理消息傳輸?shù)拿總€階段。物聯(lián)網(wǎng)應(yīng)用層是七層之一,其中三層對物聯(lián)網(wǎng)應(yīng)用協(xié)議特別重要。 物理網(wǎng)絡(luò)層是移動數(shù)據(jù)的實際基礎(chǔ)設(shè)施,例如以太網(wǎng)、Wi-Fi 或藍牙。 傳輸層是支持數(shù)據(jù)移動的協(xié)議,例如傳輸控制協(xié)議 (TCP)、HTTP 或用戶數(shù)據(jù)報協(xié)議(UDP)。 應(yīng)用層是物聯(lián)網(wǎng)設(shè)備與其將與之通信的網(wǎng)絡(luò)之間的接口。它處理數(shù)據(jù)格式化和呈現(xiàn),并充當物聯(lián)網(wǎng)設(shè)備正在執(zhí)行的操作與其生成的數(shù)據(jù)的網(wǎng)絡(luò)切換之間的橋梁。 物聯(lián)網(wǎng)中的頂級應(yīng)用層協(xié)議 工程師有許多物聯(lián)網(wǎng)應(yīng)用層協(xié)議可供選擇,涵蓋廣泛的功能。特定物聯(lián)網(wǎng)應(yīng)用程序的正確協(xié)議取決于許多因素,具體取決于所涉及的設(shè)備類型及其將執(zhí)行的功能: 數(shù)據(jù)延遲。數(shù)據(jù)傳輸需要多快?一個數(shù)據(jù)包從一個點移動到另一個點需要多少時間? 可靠性。物聯(lián)網(wǎng)應(yīng)用中數(shù)據(jù)丟失的后果有多大?設(shè)備通信必須有多冗余? 帶寬。需要容納的數(shù)據(jù)量是多少? 運輸。物聯(lián)網(wǎng)應(yīng)用程序的最佳傳輸協(xié)議是什么?TCP、UDP 和 HTTP 各自提供了可以被與之兼容的應(yīng)用層協(xié)議利用的功能。 在考慮特定協(xié)議以確定哪些功能最重要之前,工程師必須回答這些問題。 對物聯(lián)網(wǎng)最重要的五種頂級協(xié)議及其功能是: 受限應(yīng)用協(xié)議。組織使用CoAP和有限的硬件,因為它是輕量級的,因此傳輸速率很低。該協(xié)議對HTTP友好,使用兩種基本消息類型:請求和響應(yīng)。消息可以是可確認的或不可確認的。數(shù)據(jù)包小,所以報文丟失少。缺點是協(xié)議缺乏安全性,工程師通??梢酝ㄟ^數(shù)據(jù)報傳輸層安全性來彌補,但DTLS在物聯(lián)網(wǎng)中的使用有限。 消息隊列遙測傳輸。MQTT 是一種發(fā)布/訂閱協(xié)議,它對于通過TCP的輕量級機器對機器 (M2M) 連接有效并最大限度地減少數(shù)據(jù)丟失。發(fā)布或訂閱物聯(lián)網(wǎng)意味著客戶端不必調(diào)用更新,從而減少網(wǎng)絡(luò)流量和處理負載。該協(xié)議還適應(yīng)一系列質(zhì)量執(zhí)行級別,從單次握手交付到確認要求。 可擴展的消息和在線協(xié)議。XMPP基于XML,XML是一種文檔編碼標記語言,因其對人類友好的可讀性而廣受歡迎。作為HTML擴展,XMPP可用于實時通信,包括狀態(tài)、內(nèi)容聯(lián)合和即時消息。該協(xié)議具有高度可擴展性,并提供設(shè)備數(shù)據(jù)承載節(jié)點,這些節(jié)點可以根據(jù)請求與其他節(jié)點連接,以創(chuàng)建復(fù)雜的本地網(wǎng)絡(luò)和數(shù)據(jù)共享。 高級消息隊列協(xié)議。AMQP是一種異步協(xié)議。與MQTT一樣,它使用發(fā)布或訂閱方法。工程師主要通過TCP使用該協(xié)議,但它也支持其他傳輸方法。該協(xié)議質(zhì)量靈活,并提供可選的一個或多個交付保證。AMQP 通過傳輸層安全和安全套接字層實現(xiàn)安全。 代表性狀態(tài)轉(zhuǎn)移。REST 是最普遍的協(xié)議,它通過HTTP提供IoT同步請求-響應(yīng)。HTTP使其功能豐富,并且能夠進行身份驗證和緩存,這兩者在復(fù)雜環(huán)境中都很有用,但在物聯(lián)網(wǎng)中很難實現(xiàn)。該協(xié)議同時兼容XML和JSON,這對于M2M以及與平板電腦和智能手機的通信非常有用,這對IoT來說是一個福音。 |