1 TCP
TCP 是一種面向連接的、可靠的、基於字節流的傳輸層通信協議。
特點:
- 面向連接
- 可靠通信方式
- 基於流的方式
缺點:
- 花銷大
- 設備必須時刻保持連接狀態(功耗大)
- 消耗時間比較久
2 UDP
用戶數據報協議(UDP,User Datagram Protocol)支持一個無連接的傳輸協議。
特點:
- 不需要連接
- 速度快
- 不需要應答
缺點:
- 不可靠
TCP和UDP比較:
UDP更適合對功耗要求低、可靠性要求不算高的場合。
3 HTTP
HTTP是基於客戶/服務器模式,且面向連接的(建立在TCP之上)。典型的HTTP事務處理有如下的過程:
- 客戶與服務器建立連接;
- 客戶向服務器提出請求;
- 服務器接受請求,並根據請求返回相應的文件作爲應答;
- 客戶與服務器關閉連接。
缺點:
- 必須由客戶端主動向服務器發送請求,服務器無法主動通知客戶端。
- 要實現HTTP需要更多的硬件資源(硬件成本更高)。
結論: 不適合物聯網。
4 MQTT
MQTT是一個基於客戶端-服務器的消息發佈/訂閱傳輸協議(TCP)。
機器與機器(M2M)通信和物聯網(IoT)。其在,通過衛星鏈路通信傳感器、偶爾撥號的醫療設備、智能家居、及一些小型化設備中已廣泛使用。
特點:
- 特別適合於網絡代價昂貴,帶寬低、不可靠的環境。
- 能在處理器和內存資源有限的嵌入式設備中運行。
- 使用發佈/訂閱消息模式,提供一對多的消息發佈,從而解除應用程序耦合。
- 使用 TCP/IP 提供網絡連接。
- 提供Last Will 和 Testament 特性通知有關各方客戶端異常中斷的機制。
5 CoAP
CoAP(Constrained Application Protocol)是一種在物聯網世界的類web協議,名字翻譯來就是“受限應用協議”。
- COAP協議網絡傳輸層爲UDP。
- 它基於REST,server的資源地址和互聯網一樣也有類似url的格式,客戶端同樣有POST,GET,PUT,DELETE方法來訪問server,對HTTP做了簡化。
- COAP是二進制格式的,HTTP是文本格式的,COAP比HTTP更加緊湊。
- 輕量化,COAP最小長度僅僅4B,一個HTTP的頭都幾十個B了。
- 支持可靠傳輸,數據重傳,塊傳輸。 確保數據可靠到達。
- 支持IP多播, 即可以同時向多個設備發送請求。
- 非長連接通信,適用於低功耗物聯網場景。
COAP和MQTT的比較:
MQTT協議是保持連接的,所以及時性相對很好;
CoAP協議是無連接響應式通訊,因此不能主動推送,要等客戶端訪問纔可以攜帶回去,及時性相對較差。
6 LwM2M
LwM2M的全稱是Lightweight Machine-To-Machine,它的名稱裏面包含了這麼兩個重要含義:
1)這個協議是輕量級的;
2)這個協議適用於物聯網設備。
LwM2M是適用於資源有限的終端設備管理的輕量級物聯網協議。
參考資料: