樂鑫科技ESP32-C3藍牙WiFi模塊數據通信協議總結TCP/UDP/HTTP/CoAP協議
樂鑫科技ESP32-C3藍牙WiFi模塊TCP 協議
可靠傳輸,支持重傳、流量控制和擁塞控制;
面向連接,通過 3 次握手建立連接和 4 次握手斷開連接,長連接;
一對一連接;
包頭小為 20 B;
根據網絡環境,在出現丟包時會重傳,導致傳輸速率降低;
適用于可靠傳輸的應用,如文件傳輸等;
樂鑫科技ESP32-C3藍牙WiFi模塊UDP 協議
不可靠傳輸,不支持重傳、流量控制和擁塞控制;
無連接,直接進行數據傳輸,短連接;
支持一對一單播,一對所有的廣播和一對多的組播;
包頭只有8B;
快,不受網絡環境影響,只負責將數據傳輸到網絡;
適用于實時傳輸應用,如 VoIP 電話、視頻電話、流媒體等;
對于本地控制的數據通信而言,單純從傳輸層的角度來講,可選擇 TCP 協議,因為需要數據的準確性;在使用 UDP 協議時,智能手機 App 會發送開燈命令,可能該命令由于網絡環境問題被丟棄了,ESP32-C3 可能就無法收到該命令;相比于 TCP 協議而言,就算數據包被丟棄了,智能手機 App 底層還會重新發送該命令。
但使用單純的傳輸層協議發送數據有個缺陷,需要用戶自行開發上層應用業務邏輯,所以本節又介紹了基于 TCP和UDP 協議的應用協議 HTTP 和 COAP。
HTTP和CoAP 都是基于 REST 模型的網絡傳輸協議,用于發送請求與響應請求,只是它們-個基于 TCP 協議,另一個基于 UDP 協議,并且各自繼承了傳輸層協議的相關特性。HTTP 協議和 CoAP 協議的區別如下表所示。
樂鑫科技ESP32-C3藍牙WiFi模塊HTTP 協議
傳輸層TCP 協議;
可能含有大量消息頭數據,開銷大;
長連接,功耗高;
資源發現不支持;
一般由客戶端主動觸發,服務器端無法主動觸發;
適用于性能好、內存比較多的設備;
樂鑫科技ESP32-C3藍牙WiFi模塊CoAP 協議
傳輸層UDP 協議;
包頭采用二進制壓縮,開銷??;
短連接,功耗低;
資源發現支持;
雖然也有客戶端與服務器端之分,但兩者都可以主動觸發;
適用于性能差、內存比較少的設備;
相比較而言,CoAP 協議更適合一些資源少的物聯網設備,如果設備資源多、性能好,HTTP協議的功能比 CoAP 協議更加健全。對比了 TCP/IP 協議族內的通信協議后,接下來比較該類協議與藍牙協議,它們直觀的區別就是,藍牙是點對點的協議,而 TCP/IP 協議是端對端的協議,中間可能會經過路由。因此在速度響應方面,同樣是 2.4 GHZ 頻道的無線傳輸技術,智能手機到 ESP32-C3 之間的數據通信上,藍牙要快于 Wi-Fi。樂鑫科技ESP32-C3藍牙WiFi模塊藍牙的數據包大小會比使用TCP/IP 協議棧的應用數據更??;藍牙的功耗天然地比 Wi-Fi 功耗低。藍牙協議支持資源發現,也不需要本地發現,因為藍牙是點對點的連接,可以說藍牙非常適合用于本地控制。但由于目前大部分物聯網產品都要連云所以 Wi-Fi功能是必不可少的。很多物聯網產品都可以只使用 Wi-Fi或者只使用藍牙進行配網如果物聯網產品不需要連云,則可以只使用藍牙進行本地控制;如果物聯網產品需要連云,則需要借助 Wi-Fi連云和進行本地控制。