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