2022年11月6日 星期日

一、ESP-NOW基本觀念介紹

 一、ESP-NOW基本觀念介紹

ESP_NOW是上海樂鑫公司以其ESPxx無線WiFi晶片為基礎所定義的一種無線通信協定,這種通信協定是一種不需要交握(Handshake)的過程就可以讓多個設備在不使用 Wi-Fi 的情況下相互通信的協定。該協定類似於2.4GHz低功耗的無線連接這些設備之間在它們通信之前需要先經過配對的過程配對完成後,是屬於點對點且安全的連接這意味著在將設備相互配對後,它們之間的連接是連續且持久的換句話說如果其中一個ESPxx模組板突然斷電或重置,當它重新啟動時,它會自動連接到它之前配對的對等實體以繼續通信。

在ESP-NOW中應用程式的資料被封裝成供應廠商指定(Vendor – Specific)式的動作框架(action frame),它可以在沒有連接的狀態下從一個WiFi裝置傳送到另一個WiFi裝置上去。為了保護這個動作框架的安全性在其中使用了CCMP (CTR with CBC-MAC) 這種安全通信協定 


🖸 ESP-NOW框架格式

ESP-NOW使用所謂的供應廠商指定(Vendor – Specific)式動作框架(action frame),這個動作框架的格式內容如下,其預設的傳輸速度為 1 Mpbs。


MAC Header

Category Code

Organization Identifier

Random Values

Vendor Specific Content


FCS

24 bytes

1 bytes

3 bytes

4 bytes

7~255 bytes

4 bytes

供應廠商指定(Vendor – Specific)動作框架(action frame)格式內容


1MAC Header:MAC表頭,由於 ESP-NOW 是無連接的,因此 MAC 標頭與標準WiFi框架的標頭略有不同,其中FrameControl 字段的 FromDS 和 ToDS的位元值均為0;接著第一個字段設定為目標地址第二地址字段設定為來源地址第三個地址字段設定為廣播地址(即0xff:0xff:0xff:0xff:0xff:0xff)

2Category Code:類別代碼,在此設定為表示供應商特定類別的值 (即127)

3Organization Identifier:組織識別碼,組織識別碼包含一個唯一代碼,即上海樂鑫申請的 MAC 地址的前三個bytes(0x18fe34)

4Random Values:隨機值,主要是用於防止網路的中繼攻擊(Realy Attack)之用

5Vendor Specific Content:供應廠商特定內容,其內容如下:


Element ID

Length

Organization Identifier

Type

Version

Body

1 byte

1 byte

3 bytes

1 byte

1 byte

0~250 bytes


1Element ID:元素 ID 字段設定的值為 (221),表示供應商特定的元素碼

2Length:長度字段組織識別碼類型版本本體總長度的集合

3•Organization Identifier:組織識別碼,其意義同前由上海樂鑫申請的 MAC地址的前三個bytes(即0x18fe34)

4Type:類型字段在此設定為代表 ESP-NOW 的值 (4)

5Version:版本字段即目前 ESP-NOW 的版本

6Body:本體字段ESP-NOW真正傳送的數據最大值為250個位元組


🖸 ESP-NOW安全性

ESP-NOW 使用了 CCMP加密方法,該方法在 IEEE 802.11-2012標準中有詳細的描述保護供應商特定的操作框架。在Wi-Fi 設備中會維持一個主要主密鑰 (PMK) 和幾個本地主密鑰 (LMK)PMK 和 LMK 的長度都是 16 bytes。

  • PMK 用於使用 AES-128 算法加密 LMK。使用esp_now_set_pmk()指令可以設定採用 PMK加密方式。如果未設置 PMK,則默認使用PMK。

  • 配對設備的 LMK 用於使用 CCMP 方法加密供應商特定的操作框架不同 LMK 的最大數量為六個如果未設置配對設備的 LMK,則不會加密供應商特定的操作框架。

在ESP-NOW中不支持加密廣播特定供應商的操作框架。


🖸 ESP-NOW整體綜合特性

經由前面的說明與樂鑫公司所提供的技術資料我們可歸納出以下ESP-NOW這種通信協定的特性:

  • 可做加密和未加密的單播通信

  • 混合加密和未加密的對等設備

  • 最多可承載250 bytes的有效資料荷載

  • 發送回應函數,可用來設置通知應用層程式傳輸成功或失敗的訊息

 

ESP-NOW 技術也有以下限制:

  • 有限的加密對等點Station模式最多支持10個加密對等裝置 SoftAP+Station模式下最多6個

  • 支持多個未加密對等裝置,但其總數應少於 20 個,包括加密對等裝置

  • 有效荷載資料長度限制為 250 bytes。

簡單來說,ESP-NOW 是一種快速及非交握式的通信協議,可用於在 ESPxx 板之間交換簡短的訊息(最多 250 bytes)。


沒有留言:

張貼留言