物聯網環境那么復雜,單單一款協議當然不能適應所有種類的物聯網環境的呀,所以就有除了MQTT之外的另外的幾種協議,這次小生先帶你們了解一下,COAP協議!
1、什么是COAP協議?
COAP,全稱Constrained Application Protocol,中文意思是受限制的應用協議,是IETF組織發布的互聯網系列標準之一!是一種目的在于實現M2M應用中的嵌入式消息傳遞,支持多播,異步消息傳輸。
COAP和HTTP協議類似,也是一種文檔傳輸協議,但是和HTTP不同的是,HTTP是基于TCP的傳輸,但是COAP是基于UDP協議運行,客戶端和服務器之間是通過無連接數據報進行通信的,支持UDP廣播和多播用于尋址!
2、COAP的結構模型
COAP結構圖
如上圖所示,COAP協議遵循客戶端/服務器模型,這樣和我們日常使用的HTTP協議的架構很像。但是和HTTP不一樣的是,使用COAP的節點,既可以是客戶端也可以是服務器!和HTTP很像,COAP也支持REST模型,可以使用GET,PUT,POST,DELETE等方法對資源進行操作!
3、COAP報文格式
COAP協議報文類型可以分為,待確認報文(Confirmable Message)、無需確認報文(Non-Confirmable Message)、確認報文(Acknowledge Message)和重置報文(Reset Message),這幾種報文的只要實現在于下面報文格式中T(類型),占2位。
COAP報文格式
4、COAP報文傳輸實現
上文小生說到,COAP是基于UDP實現的,了解UDP的都知道,UDP是無連接的,是一種不可靠傳輸協議。所以在報文傳輸的過程中,很容易出現報文亂序,丟失和重復等現象。所以COAP為了解決這些問題,實現了一種可靠傳輸機制,不像TCP那么復雜,COAP可靠傳輸具有重傳和重復檢測的兩個特點:
(1)報文發送完CON類型報文后,會啟動一個簡單的指數型避讓stop-and-wait機制
(2)不管什么類型的報文,都會經過報文重復檢測的步驟!
5、COAP的特點
(1)基于輕量級的UDP,支持IP多播。
(2)協議輕量級,最小的數據報只有4字節。
(3)基于REST結構,是目前互聯網主流架構。
(4)提供可靠傳輸機制。
(5)消息模型,以消息為數據通信載體。
(6)等等...