爱智EdgerOS之深入解析安全可靠的开放协议SDDC

news2024/11/18 23:39:22

一、协议简介

  • 在 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.coloradmin.cn/o/1294753.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

测试文档---智力冲刺

文章目录 项目背景测试计划UI测试接口测试手工测试 测试总结 项目背景 项目描述:“智力冲刺”是一款网页小游戏,就像我们平时看到的网页游戏一样,前端页面负责展示游戏效果,后端服务器来实现游戏的逻辑。在我们的“智力冲刺”游戏…

如何解压没有密码的7-zip文件?

7z压缩包设置了密码,解压的时候就需要输入正确对密码才能顺利解压出文件,正常当我们解压文件或者删除密码的时候,虽然方法多,但是都需要输入正确的密码才能完成。忘记密码就无法进行操作。 那么,忘记了7z压缩包的密码…

C //习题10.8 将第7题结果仍存入原有的“stu_sort“文件而不另建立新文件。

C程序设计 (第四版) 谭浩强 习题10.8 习题10.8 将第7题结果仍存入原有的"stu_sort"文件而不另建立新文件。 IDE工具:VS2010 Note: 使用不同的IDE工具可能有部分差异。 说明:此题同习题10.7的代码,唯一的区…

LangChain 23 Agents中的Tools用于增强和扩展智能代理agent的功能

LangChain系列文章 LangChain 实现给动物取名字,LangChain 2模块化prompt template并用streamlit生成网站 实现给动物取名字LangChain 3使用Agent访问Wikipedia和llm-math计算狗的平均年龄LangChain 4用向量数据库Faiss存储,读取YouTube的视频文本搜索I…

KST指标底背离选股公式,通过变动率ROC合成动量震荡指标

KST指标(KnowSureThing)是由马丁普林斯(Martin Pring)于1992年发明的技术分析指标,目的在于及时识别价格趋势的变化和转折点,同时避免短期震荡指标不稳定的缺点。KST指标结合了四个周期的ROC(变…

学习记录---kubernetes中备份和恢复etcd

一、简介 ETCD是kubernetes的重要组成部分,它主要用于存储kubernetes的所有元数据,我们在kubernetes中的所有资源(node、pod、deployment、service等),如果该组件出现问题,则可能会导致kubernetes无法使用、资源丢失等情况。因此…

HarmonyOS学习 第2节 DevEco Studio工程介绍

工程配置页 界面布局介绍 代码编辑区、通知栏、工程目录区、预览区 工程目录区 便于理解,可以切换为 Ohos AppScope主要用于存放整个应用公共的信息与资源 entry默认的初始模块ets文件用于存放编写的代码文件configuration存放相应模块的配置文件resources对应模块…

上证指数近十年走势图

上证指数是中国股市的晴雨表,其近十年的走势图展现了中国经济波动、政策变化、国际形势等多重因素对股市的影响。让我们一起通过这张图,深入探讨上证指数的波动,了解其中的因果关系和背后的故事。 2013-2015:震荡上行 回顾近十年…

【FPGA】Verilog:BCD 加法器的实现

0x00 XOR 运算在 2 的补码加减法中的应用 2 的补码加减法的特点是,当从某个数中减去负数时,将其转换为正数的加法来计算,并将减去正数的情况转换为负数的加法来计算,从而将所有减法运算转换为加法运算。在这种情况下,…

windows系统nodeJs报错node-sass npm ERR! command failed

报错信息 npm WARN deprecated request2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142 npm WARN deprecated tar2.2.2: This version of tar is no longer supported, and will not receive security updates. Please upgrade asa…

DDD架构思想专栏一《初识领域驱动设计DDD落地》

引言 最近准备给自己之前写的项目做重构,这是一个单体架构的小项目,后端采用的是最常见的三层架构。因为项目比较简单,其实采用三层架构就完全够了。但是呢,小编最近在做DDD架构的项目,于是就先拿之前写的一个老项目试…

解决Eslint和Prettier关于三元运算符的冲突问题

三元运算符Prettier的格式化 三元运算符Eslint的格式要求 解决办法 // eslint加入配置,屏蔽标红报错indent: [error, 2, { ignoredNodes: [ConditionalExpression] }]效果

HCIP —— BGP 基础 (上)

BGP --- 边界网关协议 (路径矢量协议) IGP --- 内部网关协议 --- OSPF RIP ISIS EGP --- 外部网关协议 --- EGP BGP AS --- 自治系统 由单一的组织或者机构独立维护的网络设备以及网络资源的集合。 因 网络范围太大 需 自治 。 为区分不同的AS&#…

智能优化算法应用:基于浣熊算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于浣熊算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于浣熊算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.浣熊算法4.实验参数设定5.算法结果6.参考文献7.MATLAB…

1 接口测试介绍

在软件测试工作中,接口测试是必不可少的。接口测试一般是发生在单元测试之后,系统测试之前。当开发人员输出API文档后,测试人员就可以开始编写接口测试用例了。接口测试可以让测试人员更早的介入,不需要等待前后端联调完成才开始测…

信息化,数字化,智能化三者是同一概念么?

引言 在当今科技和商业领域,信息化、数字化和智能化是三个极为关键的概念。信息化强调信息的获取、传递和应用,数字化则是将物理实体转化为数字形式,而智能化则赋予系统更高级的智能和自主性。这些概念的交汇与融合塑造着我们的现实&#xf…

Windows下安装Nginx

Nginx简介 Nginx 是一个高性能的HTTP和反向代理web服务器,其特点是占有内存少,并发能力强,其并发能力在同类型的网页服务器中表现较好。 Nginx安装 下载地址 安装稳定版本 下载完成后进行解压 可以双击nginx.exe 启动nginx 也可以打开cm…

基于POSIX标准的Linux进程间通信

文章目录 1 管道(匿名管道)1.1 管道抽象1.2 接口——pipe1.3 管道的特征1.4 管道的四种情况1.5 匿名管道用例 2 命名管道2.1 创建一个命名管道——mkfifo2.2 关闭一个管道文件——unlink2.3 管道和命名管道的补充2.4 命名管道用例 3 共享内存3.1 原理3.2…

中国特供阉割版 RTX 4090 曝光,老黄这操作绝了

到了现在大伙儿应该发现:国内禁售 NVIDIA RTX 4090 显卡这事儿基本实锤了。 实际上根据老美规定,从上个月 17 号开始,凡是公司主体在中国的显卡品牌,就已经不能生产和销售 RTX 4090。 以后厂商想要卖 4090 只能以整机形式出售&am…

第一启富金:新添澳大利亚(ASIC)牌照

第一启富金:澳大利亞證券及投資委員會(ASIC) GOLDWELL GLOBAL PTY LTD 是 WHOLESALE INVESTOR SERVICES PTY LTD(CAR 編號 001304943)的企業授權代表開發澳大利亞客戶,WHOLESALE INVESTOR SERVICES PTY LT…