2024年4月6日 星期六

Meshtastic

Meshtastic® 一個開放原始碼的組織,提供程式用 LoRa 無線裝置來建立傳輸文字訊息的低功率長距離 mesh 網路,存取界面可以是藍牙/Wi-Fi/Ethernet/Serial,不依賴其它通訊平台。

原理:rebroadcast

  • 未達 hop limit
  • 過濾重複的訊息 (保留最新 30 則嗎?)
  • 逾時沒回應重送,最多 3 次。

終點未連上用戶會存大約 30 則最新的訊息。

封包格式:Preamble (16) + LoRa Physical Header (2) + Packet Header (16) + Packet Data (max. 237)

  • Preamble:同步訊號頻率好開始傳資料。
  • LoRa Physical Header:Packet Length (1) + Sync Word (1)。Sync Word 0x2B 表示是 Meshtastic。
  • Packet Header:Destination NodeID (4) + Sender NodeID (4) + Packet ID (4) + Flags (1) + Channel Hash (1) + Padding (2)
    • 不加密,便於路由。
    • NodeID 是藍牙 MAC 位址後 4-byte,Destination NodeID 都 1 表示廣播。
    • Packet ID:和加密有關
    • Flags:3-bit Hop Limit,1-bit WantACK,1-bit ViaMQTT。WantACK 決定 reliable 傳送,等候終點回應。廣播行為不同,有收到 rebroadcast 就視為 ACK。
    • Channel Hash
  • Packet Data:最長 237,不含 protobuf overhead。超過 truncated。237 是因為 + 16 + 2 = 255?

CSMA/CD:傳送前進行 Channel Acitivity Detection (CAD),等候取自 contention window (CW) 的 random slot time。Channel 使用率越高 CW 越大,接收 SNR 越小,CW 越小。

限制 group member, 100 裝置以上。

  • 頻率
  • 機器位置靠近手機基地台,且有 B8 頻段,可以嘗試 RX Boosted Gain 選項關閉。

沒有留言:

張貼留言

SIP header Via

所有 SIP 訊息 都要有 Via,縮寫 v。一開始的 UAC 和後續途經的每個 proxy 都會疊加一個 Via 放傳送的位址,依序作為回應的路徑。 格式 sent-protocol sent-by [ ;branch= branch ][ ; 參數 ...] s...