1. 程式人生 > >物聯網:協議總攬

物聯網:協議總攬

物聯網:協議總攬

 

物聯網(IoT)從單一受限裝置擴充套件到全系列的雲系統,所有這些系統都通過一系列允許裝置和伺服器相互通訊的協議進行連線。 我們來看看幾個IoT協議。

國際電信聯盟(ITU)將物聯網定義為“資訊社會的全球基礎設施,通過基於現有的和不斷髮展的可互操作的資訊和通訊技術相互連線(物理和虛擬)的事物來實現先進的服務。”

物聯網的範圍正在不斷擴大,因為基於物聯網的解決方案正在擴充套件到幾乎日常生活的所有領域,從智慧家居到智慧工業生產。工業4.0的發展已經開始。

“物聯網”一詞包含兩個詞 - 網際網路和事物。 “物聯網”一詞指具有獨特身份的各種物聯網裝置,它們具有執行某些型別資料的遙感,啟動和實時監控的功能。物聯網裝置還可以直接或間接與其他連線的裝置和應用程式實時交換資料,或者從其他裝置收集資料,處理資料並將其傳送到各種伺服器。另一個術語“網際網路”被定義為一個全球通訊網路,連線全球數以萬億計算機,實現資訊共享。

 

 

物聯網架構
由於物聯網能夠通過網際網路連線數十億個異構物件,因此對動態分層架構有新的要求。圖1展示了一個標準的物聯網分層架構。
物件層:第一層(感知層)表示物聯網的物理感測器來感知,收集和處理資訊。
物件抽象層:通過安全通道將物件層獲取的資料傳輸到服務管理層。資料可以通過3G,4G,GSM,UMTS,Wi-Fi,藍芽,ZigBee等不同技術傳輸。
服務管理層:該層使IoT應用程式設計師能夠處理異構物件,而不管硬體平臺如何。
應用層:這使得高質量的智慧服務能夠按照他們的要求獲取客戶需要的東西。它涵蓋智慧家居,智慧製造,交通運輸,基於智慧醫療的生物感測器裝置等。
業務層

:該層管理整個物聯網系統的活動和服務。它負責根據應用層獲取的資料構建業務模型,圖表和流程圖。

物聯網協議

IEEE(電氣和電子工程師協會)和ETSI(歐洲電信標準協會)已經為物聯網定義了一些最重要的協議。這些在下面列出。

 

 

CoAP(Constrained Application Protocol約束應用協議):這是由IETF約束RESTful環境(CoRE)工作組建立的。 CoAP是受限裝置的網際網路應用協議。它被設計用於同一受限網路中的裝置之間,網際網路上的裝置和通用節點之間,以及不同受限網路上的裝置之間 - 都加入網際網路。該協議專為基於HTTP協議的物聯網系統而設計。 CoAP利用UDP協議實現輕量級。它還使用RESTful架構,這與HTTP協議非常相似。它用於基於移動裝置和社交網路的應用程式,並通過使用HTTP get,post,put和delete方法消除了歧義。除了傳送物聯網資料之外,CoAP還與DTLS一起開發,用於安全交換訊息。它使用DTLS在傳輸層中安全傳輸資料。

MQTT協議

:MQTT(Message Queue Telemetry Transport訊息佇列遙測傳輸)是一種訊息傳遞協議,由IBM的Andy Stanford-Clark和Arcom的Arlen Nipper於1999年開發。它主要用於IoT中的遠端監控。其主要任務是從許多裝置獲取資料並將其傳輸到IT基礎架構。 MQTT將裝置和網路與應用程式和中介軟體連線起來。對於MQTT來說,hub-and-spoke架構是很自然的。所有裝置連線到IBM新的MessageSight裝置等資料集中器伺服器。 MQTT協議在TCP之上工作,以提供簡單而可靠的資料流。
MQTT協議由三個主要元件組成:訂戶,釋出者和代理。釋出者生成資料並通過代理將資訊傳輸給訂閱者。經紀人通過交叉核對釋出者和訂閱者的授權來確保安全。

MQTT協議是基於物聯網裝置的首選選項,能夠為易受攻擊的低頻寬網路中的小型,廉價,低記憶體和耗電裝置提供高效的資訊路由功能。

 

XMPP(Extensible Messaging and Presence Protocol可擴充套件訊息和存在協議):這是一種基於XML語言的面向訊息的中介軟體的通訊IoT協議。它支援在任何兩個或多個網路實體之間實時交換結構化,可擴充套件的資料。該協議由Jabber開源社群於1999年開發,主要用於實時訊息傳遞,狀態資訊和聯絡人列表的維護。 XMPP使訊息傳遞應用程式能夠實現認證,訪問控制,逐跳和端到端加密。作為一個安全協議,它位於核心IoT協議之上,並通過XML節的流將客戶端連線到伺服器。 XML節有三個主要元件:訊息,狀態和IQ。

AMQP(Advanced Message Queuing Protocol高階訊息佇列協議):這是由John O'Hara在倫敦JP摩根大通開發的。 AMQP是面向訊息中介軟體環境的應用層協議。它通過訊息傳遞保證原語支援可靠的通訊,例如最多一次,至少一次以及一次交付。 AMQP協議由一組元件組成,這些元件在代理服務中路由和儲存訊息,並有一組規則將元件連線在一起。 AMQP協議使客戶端應用程式可以與代理進行通訊並與AMQP模型進行互動。該模型具有以下三個元件,它們連線到伺服器中的處理鏈中以建立所需的功能。
Exchange交換:從基於發行者的應用程式接收訊息並將它們路由到“訊息佇列”。
Message queue訊息佇列:儲存訊息,直到消費客戶端應用程式可以安全地處理它們。
Binding繫結:指出訊息佇列和交換機之間的關係。
資料分發服務(Data Distribution Service - DDS):這種用於實時機對機通訊的IoT協議由物件管理組織(OMG)開發。它通過釋出 - 訂閱方法實現可擴充套件,實時,可靠,高效能和可互操作的資料交換。與MQTT和CoAP IoT協議相比,DDS利用無代理體系結構和多播技術為應用程式提供高質量的QoS。 DDS可以部署在從低佔用空間裝置到雲的各種平臺上,支援高效的頻寬使用以及系統元件的敏捷協調。
DDS協議有兩個主要層:資料中心釋出訂閱(DCPS)和資料本地重建層(DLRL)。 DCPS執行將資訊傳遞給使用者的任務,並且DLRL層提供DCPS功能的介面,使得能夠在啟用IoT的物件之間共享分散式資料。

STOMP(Simple Text Oriented Messaging Protocol簡單的面向文字訊息協議:這種面向文字的協議是為了與面向訊息的中介軟體一起開發的。它提供了可互操作的連線格式,使STOMP客戶端能夠與任何STOMP訊息代理進行通訊,從而在多種語言,平臺和代理之間實現簡單而廣泛的訊息互操作性。像AMQP一樣,STOMP為訊息頭提供屬性和幀體。
但是,STOMP不處理佇列和主題 - 它使用SEND語義和“目標”字串。代理必須將其對映到內部理解的內容上,如主題,佇列或交換。消費者然後訂閱這些目的地。由於這些目的地在規格中沒有規定,不同的經紀人可能會支援不同的目的地。因此,在代理之間移植程式碼並不總是直截了當的。

但是,STOMP簡單輕便(儘管在網路上有些冗長),並且具有各種各樣的語言繫結。它還提供了一些事務性語義。 RabbitMQ Web Stomp是最有趣的例子之一,它允許您通過Websockets在瀏覽器中公開訊息。

 

VSCP(Very Simple Control Protocol非常簡單的控制協議):是超越協議更多的框架。 VSCP具有高度可擴充套件性,佔用空間小,是用於裝置發現和識別,裝置配置,自治裝置功能和安全韌體更新的免費兼開源解決方案。 VSCP使事物在應用程式層進行互動。它使用CAN,RS-232,乙太網,TCP/IP,MQTT和6LowPan。
VSCP使用事件格式並支援節點的全域性唯一識別符號,因此無論節點安裝在世界哪個地方,節點都可以識別。此外,它還包含一個暫存器模型,以便為節點配置提供靈活的通用介面,併為控制每個節點的功能提供模型。 VSCP對於用於實現與節點的物理互連的較低階系統沒有作出任何假設;因此,它適用於乙太網,TCP/IP,無線,Zigbee,藍芽,CAN,GPRS,RS-232和USB等不同的傳輸機制。

VSCP是基於事件的。每次發生事件時,都會向網路上的所有其他節點廣播。從那裡開始,每個節點自行決定是否需要處理收到的事件。最終的決策取決於節點的決策矩陣,它由若干'if condition> then action> lines'組成,其中條件>根據廣播給網路的VSCP資料報中存在的欄位進行評估。