愛智EdgerOS之深入解析安全可靠的開放協議SDDC

一、協議簡介

  • 在 EdgerOS 的智慧生態場景中,許多智能設備或傳感器的生命周期都與 SDDC 協議息息相關,這些設備可能是使用 libsddc 智能配網技術開發的,也有可能是因為主要功能上是使用其他技術如 MQTT、LoRa 等但是設備的上下線依然是使用上述的技術。
  • SDDC(Smart Device Discovery & Control,智能設備發現與控制)是 EdgerOS 專門為 Wi-Fi 和以太網通信技術的物聯網設備定義的發現與控制通信協議。使用 SDDC 協議開發的物聯網設備能被 EdgerOS 自動管理,因此推薦 Wi-Fi 和以太網通信技術的物聯網設備使用 SDDC 協議與 EdgerOS 通信。
  • SDDC 協議實現了以下功能:
    • EdgerOS 發現設備;
    • EdgerOS 邀請設備加入;
    • 設備加入和退出 EdgerOS;
    • EdgerOS 維持設備 Online 狀態;
    • EdgerOS 與設備間的雙向數據通信,數據可加密,支持帶有消息重傳和確認的可靠通信方式。
  • SDDC 協議流程如下圖:

在這里插入圖片描述

二、協議的實現原理

  • SDDC 協議是基于 UDP 協議實現的,如圖所示,UDP 報文的數據部分的前 16 個字節實際上就是 SDDC 數據報的頭部:

在這里插入圖片描述

  • 對于 SDDC 協議的頭部來說,它的結構組成如下:

在這里插入圖片描述

  • 說明:
    • magic_version 標志著 SDDC 協議的版本號;
    • flag 分別為 0x00(無標志)、0x10(緊急標志)、0x20(加入標志)、0x40(請求標志)、0x80(確認標志);
    • type 分別為 0x00(Discover 消息)、0x01( Report 消息)、0x02(更新消息)、0x03(邀請消息)、0x04(PING消息)、0x05(普通消息)、0x60(系統時間消息);
    • seq_no:SDDC 數據報的序列號;
    • MAC[0]-MAC[2] 和 MAC[3]-MAC[5]:設備的6字節MAC地址數組;
    • security:選擇是否進行加密通信,設備也可以通過此標志位設置使用設備密碼;
    • data_len:sddc payload 的長度。

三、協議的實現流程

  • Spirit 1(Spirit 1 是翼輝愛智推出的一款高性能、高速率、高可靠、低延時的智能邊緣計算機) 在廣播地址發送一個值為 1500568c409505fe800004b700000000 的 UDP 報文,其中 flag_type 為 00 ,代表這是一條發送到所有連接到 Spirit 1 的網絡的設備的【發現】報文,用于搜索所有的 SDDC 設備。
  • 設備收到 Discover 消息,會回復一條 flag_type 為 01 代表 Report 消息的 UDP 報文。

在這里插入圖片描述

  • Spirit 1 邀請設備加入到自己的設備組。
  • 在加入之后,普通消息一般為 flag_type 為 45 的 UDP 報文 ,如下是 Spirit 1 向設備發送的消息,其中 flag 為 4 代表請求包,type 為 5 代表普通消息,且 seq_no 標志為 67 95:

在這里插入圖片描述

  • 設備收到消息后,會對消息進行處理,假如需要確認則會回復一個確認包。flag_type 為 84,其中 flag 為 8 代表確認包,type 為 5 代表普通消息,且 seq_no 標志為 67 95 ,代表回復的是 67 95 的確認包。我們知道 UDP 數據報是無連接的,SDDC 協議使用 seq_no 機制可以保證數據有序。

在這里插入圖片描述

  • 當 Spirit 1 和 設備沒有進行消息傳送的時候, Spirit 1 會發送 flag_type 為 44 的請求 PING 包,等待來自遠程設備的回復。當遠程設備未回復時,系統將自動重新發送此消息,直到遠程設備響應或超時。

在這里插入圖片描述

  • 當設備收到請求 PING 包時,設備會向該 seq_no 的包回復一個 flag_type 為 84 的 確認包,這樣 Spirit 1 就知道設備還在線。

四、更多

  • SDDC 數據報是基于 UDP 協議實現,該通信協議免費開源,實現簡單,可以有效降低開發成本,在 UDP 的基礎上做到了安全可靠、有序到達,除此之外還有許多功能,比如可以發送時間戳消息,這樣沒有 RTC 芯片的無狀態設備也可以同步網絡時間;可以發送緊急消息,這樣設備或系統可以優先處理等。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/214828.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/214828.shtml
英文地址,請注明出處:http://en.pswp.cn/news/214828.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

圖的遍歷(深度優先遍歷 + 廣度優先遍歷)

目錄 🌼廣度優先遍歷 (1)鄰接矩陣BFS (2)鄰接表BFS (3)非連通圖BFS (4)復雜度分析 🌼深度優先遍歷 (1)鄰接矩陣的DFS &#x…

Caching the Application Engine Server 緩存應用程序引擎服務器

Caching the Application Engine Server 緩存應用程序引擎服務器 Application Engine caches metadata just like the application server. This caching enhances performance because a program can refer to the local cache for any objects that it uses. 應用程序引擎…

科技云報道:從數據到生成式AI,是該重新思考風險的時候了

科技云報道原創。 OpenAI“宮斗”大戲即將塵埃落定。 自首席執行官Sam Altman突然被董事會宣布遭解雇、董事長兼總裁Greg Brockman辭職;緊接著OpenAI員工以辭職威脅董事會要求Altman回歸;再到OpenAI董事會更換成員、Altman回歸OpenAI。 表面上看&…

深入解析Java中的String:特點、重要方法及源碼分析

Java的String類是Java語言中最常用的類之一。 作為一位Java高級工程師,了解String類的特性和方法對于編寫高效和優化的Java代碼至關重要。在這篇技術博客中,我們將深入探討String類的特點,介紹其中一些重要的方法,并分析其源碼以獲…

java--LocalDate、LocalTime、LocalDateTime、ZoneId、Instant

1.為什么要學習JDK8新增的時間 LocalDate:代表本地日期(年、月、日、星期) LocalTime:代表本地時間(時、分、秒、納秒) LocalDateTime:代表本地日期、時間(年、月、日、星期、時、分、秒、納秒) 它們獲取對象的方案 2.LocalDate的常用API(…

Android的開機logo生成

生成可用的uboot和kernel的logo圖片 可以通過命令轉換BMP格式的圖片 ### 將 png 轉為顏色深度為8bit的的bmp圖片。jpeg使用jpegtopnm ### pngtopnm logo.png | ppmquant 31 | ppmtobmp -bpp 8 > logo.bmp然后就可以使用新圖替換舊圖片,在kernel目錄下的logo.bmp…

【精選】 VulnHub (超詳細解題過程)

🍬 博主介紹👨?🎓 博主介紹:大家好,我是 hacker-routing ,很高興認識大家~ ?主攻領域:【滲透領域】【應急響應】 【python】 【VulnHub靶場復現】【面試分析】 🎉點贊?評論?收藏…

C# 任務的異常和延續處理

寫在前面 當Task在執行過程中出現異常或被取消等例外的情況時,為了讓執行流程能夠繼續進行,可以使用延續方法實現這種鏈式處理;還可以針對前置任務不同的執行結果,選擇執行不同的延續分支方法。子任務執行過程中的任何異常都會被…

線程安全的哈希表ConcurrentHashMap

1. HashTable 不推薦使用,無腦給各種方法加鎖 2.ConcurrentHashMap 多線程下推薦使用 鎖粒度控制 HashTable直接在方法上加synchronized,相當于對哈希表對象加鎖,一個哈希表只有一把鎖。多線程環境下,無論線程如何操作哈希表…

深入理解Dubbo-3.高級功能剖析和原理解析

👏作者簡介:大家好,我是愛吃芝士的土豆倪,24屆校招生Java選手,很高興認識大家📕系列專欄:Spring源碼、JUC源碼、Kafka原理、分布式技術原理🔥如果感覺博主的文章還不錯的話&#xff…

利用貝葉斯超參數優化,提升模型效果更科學(附Python代碼)

超參數優化在大多數機器學習流水線中已成為必不可少的一步,而貝葉斯優化則是最為廣為人知的一種“學習”超參數優化方法。 超參數優化的任務旨在幫助選擇學習算法中成本(或目標)函數的一組最佳參數。這些參數可以是數據驅動的(例…

【UE5】初識MetaHuman 創建虛擬角色

步驟 在UE5工程中啟用“Quixel Bridge”插件 打開“Quixel Bridge” 點擊“MetaHumans-》MetaHuman Presets UE5” 點擊“START MHC” 在彈出的網頁中選擇一個虛幻引擎版本,然后點擊“啟動 MetaHuman Creator” 等待一段時間后,在如下頁面點擊選擇一個人…

Apipost版IDEA插件:Apipost-Helper

Apipost-Helper是由Apipost推出的IDEA插件,寫完接口可以進行快速調試,且支持搜索接口、根據method跳轉接口,還支持生成標準的API文檔,注意:這些操作都可以在代碼編輯器內獨立完成,非常好用!這里…

Tair(2):Tair安裝部署

1 安裝相關依賴庫 yum install -y gcc gcc-c make m4 libtool boost-devel zlib-devel openssl-devel libcurl-devel yum:是yellowdog updater modified 的縮寫,Linux中的包管理工具gcc:一開始稱為GNU C Compiler,也就是一個C編…

N皇后,回溯【java】

問題描述 八皇后問題是十九世紀著名的數學家高斯于1850年提出的。 問題是:在88的棋盤上擺放八個皇后,使其不能互相攻擊,即任意兩個皇后都不能處于同一行、同一列或同一斜線上。可以把八皇后問題擴展到n皇后問題,即在nn的棋盤上擺…

管理類聯考——數學——真題篇——按知識分類——幾何

文章目錄 2023真題(2023-07)-幾何-解析幾何-最值真題(2023-10)-幾何-立體幾何-正方體:體積: V = a 3 V=a^3 V

AX和A(T)X的區別是?

目錄 1.快速了解的例子: (1)假設所有節點的初始特征都是[1, 0, 0] ,那么AX的結果是: (2) 的結果是: (3) 總結: 2.計算結構系數的例子 (1&#xff09…

day45-46-Vue+ElementUI實現學生管理

VueElementUI實現學生管理 代碼: qiushiju/java2313_vue_elementui_crud (gitee.com) 一、思考 考慮需求(登錄,查詢全部,基本增刪改查,分頁,搜索,批量) 設計數據庫搭建項目 后端…

2024美賽備戰2--模型建立(*****必看****)

建模 美賽涉及的建模知識范圍非常廣且深,縱觀美賽真題不難發現,很多的模型 都是讀研或者讀博的時候才會真正深入開始研究,因此,對于做建模的同學來說, 是無法在賽前吃透大量模型的。推薦本科生分兩個步驟去有效準備比賽…

【S32DS RTD實戰】-1.3-S32K3工程生成S19,BIN,Hex文件,以及Post-build steps的妙用

目錄 1 方法一:逐個生成Motorola S-record(s19,srec…),Intel HEX,Bin文件 1.1 生成Motorola S-record(s19,srec…)文件 1.2 生成Intel HEX文件 1.3 生成Bin文件 2 …