ZigBee技术与实践教程(持续更新笔记)

1.安全性

802.15.4 在数据传输过程中提供了三级安全性。

(1)第一级实际是无安全性方式,对于某种应用,如果安全性并不重要或者上一层已经提供了安全性保护,器件就可以采用这种方式来转移数据。

(2)第二级安全性,器件可以使用接入控制清单(ACL)来防止非法器件获取数据,在这一级不采取加密措施。

(3)第三级安全性,在数据转移中采用高级加密标准(AES)的对称密码,AES可以用来保护数据净荷和防止攻击者冒用合法器件。但是它不能防止攻击者在通信双方交换密钥时通过窃听来截取密钥。为了防止这种攻击,可以采用公钥加密的方式。

2.网络组成和拓扑结构

根据设备的通信能力可以分为全功能设备(FFD)和精简功能设备(RFD)。

两种设备的不同之处:

1.FFD采用主电源保证充足的能耗,而RFD采用电磁供电。

2.FFD可以和FFD以及RFD进行通信,而RFD只能和RFD之间进行通信。

在IEEE802.15.4网络中有一个FFD充当网络的协调器(PAN)是低速无限个人局域网(LR-WLAN)中的主控器。

IEEE802.15.4 网络可以组成两种拓扑结构:1.形状网络拓扑结构所有的设备都与中心设备网络协调器通信

2.点对点网络拓扑结构。负责实现管理链路状态信息,认证设备身份等信息。

2.1星状网络的形成

星状网络以网络协调器为中心,所有设备只能与网络协调器为中心进行通信,因此在星状网络形成过程中,第一步就是建立网络协调器。(任何一个FFD设备都有可能称为网络协调器,一个网络如何确定自己的网络协调器是由上层协议确定的)有两种方式:1.在设备被激活时发送一个广播成为网络协调器的请求,如果接受到回应那么说明网络中已经存在了网络协调器。

网络协调器要选择一个唯一标识符,所有该星状网络中的设备都是用这个标识符来规定自己的属主关系。不同的星状网络之间的网络设备通过设置专门的网关完成相互通信。

2.2点对点网络的形成

点对点网络中,任意两个设备之间只要能够彼此收到对方的无线信号就可以直接进行通信,不需要其他设备进行转发。但是点对点网络中任然需要一个网络协调器,不过该协调器的功能不再是为其它设备转发数据了而是完成设备注册和访问控制等基本的管理功能。

网络协调器首先将自己设置为簇头(  CLH),并将簇标识符设置为0,同时为该簇选择一个未被使用的PAN标识符,形成网络中的第一个簇。接着网络协调器开始广播信标帧,临近的设备收到信标帧后就可以加入该簇。

PAN 协调器可以指定另一个设备为邻接的新簇头,以此形成更多的簇。新簇头同样可以选择其他设备称为簇头,进一步扩大网络的范围。

多簇网络的缺点:会增加簇间消息传递的延迟性和通信开销。为了减少延迟和通信开销簇头可以选择最远的通信设备相邻簇的簇头,这样可以最大限度的减小不同簇间消息传递的跳数,达到减少延迟和开销的目的。

3.协议栈架构

IEEE 802.15.4 网络协议分栈基于开放系统互联模型OSI,每一层都实现一部份通信功能,并向高层提供服务。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/733085.shtml

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

相关文章

(已解决)报错:Could not load the Qt platform plugin “xcb“

完整报错信息 QObject::moveToThread: Current thread (0x6a879f0) is not the object’s thread (0x61bb590). Cannot move to target thread (0x6a879f0)qt.qpa.plugin: Could not load the Qt platform plugin “xcb” in “” even though it was found. This application…

深入了解 Python 的 compile() 函数

在 Python 中,compile() 是一个内置函数,用于将字符串形式的 Python 代码编译为可执行的代码对象,或者将 AST(抽象语法树)对象编译为代码对象。本文将深入探讨 compile() 函数的用法、参数和返回值,以及其在…

【Java】使用`LinkedList`类来实现一个队列,并通过继承`AbstractQueue`或者实现`Queue`接口来实现自定义队列

使用LinkedList类来实现一个队列,并通过继承AbstractQueue或者实现Queue接口来实现自定义队列。 以下是一个简单的示例,其中队列的大小与另一个List的容量保持一致: import java.util.LinkedList; import java.util.List; import java.util…

网络安全运营的工作内容(附资料下载)

【推荐】最新网络安全运营方案和实践合集(共80多份).zip 网络安全运营的工作内容是一个多层次、多维度的体系,涵盖了多个关键领域以确保网络环境的稳定和安全。以下是一些主要的工作内容: 安全策略制定与实施: 制定网…

【前端Vue】Vue从0基础到大神完整教程第1篇:vue基本概念,vue-cli的使用【附代码文档】

Vue从0基础到大神学习完整教程完整教程(附代码资料)主要内容讲述:vue基本概念,vue-cli的使用,vue的插值表达式,{{ gaga }},{{ if (obj.age > 18 ) { } }},vue指令,综合…

20行代码搞定PDF表格转为Excel表

1.环境准备 安装好python并且配置好环境安装pdfplumber、xlwt库使用Vscode或者PyCharm等编辑器 在pycharm中如果报红,可以鼠标点击报红的库,altenter进行安装 2.代码部分 import pdfplumber import xlwt # 读取源pdf文件 pdf pdfplumber.open("…

2024-2030年再生混凝土市场供给规模及投资策略战略规划报告

2024-2030年再生混凝土市场供给规模及投资策略战略规划报告 《报告编号》: BG475174 《出版时间》: 2024年3月 《出版机构》: 中智正业研究院 《交付方式》: EMIL电子版或特快专递 《报告价格》:【纸质版】: 6500元 【电子版】: 6800元 【纸质电子】: 7000元 《 免费售后 服务…

图像处理ASIC设计方法 笔记8 卷积计算芯片的结构

(一) P81 卷积芯片内部模板框图 该设计有两个数据通路:图像数据和模板数据。 图像数据是经过帧控制、实时图SPRAM(写控制、 SPRAM读控制、数据读控制)、计算单元; 模板数据是经过模板SPRAM、计算单元。 4.5.4运算单元像素寄存器控制 存储SPRAM写入的64bit数据,输出为…

Unity2023.1.19_DOTS_JobSystem

Unity2023.1.19_DOTS_JobSystem 上篇我们知道了DOTS是包含Entity Component System,Job System,Burst compiler三者的。接下来看下JobSystem的工作原理和具体实现。 简介: 官方介绍说:JobSystem允许您编写简单而安全的多线程代…

C++篇 语 句

到目前为止,我们只见过两种语句: return 语句和表达式语句。根据语句对执行顺 序的影响,C 语言其余语句大多属于以下 3 大类。 选择语句: if 语句和 switch 语句。循环语句: while 语句, do...while 语句和…

XSS漏洞-存储型漏洞案例

一、环境 在github上找DVWA的靶机环境 DVWA存储库 二、复现 先将其安全等级改为低 然后点击存储型的xss,先随便写几条看看现象 可以看到我们写的都展示在了下面的框中 看看源码,分析在存储时的漏洞 我们可以看到,在对数据插入的时候&am…

01_04_JavaWEB01_HTMLCSS

一 HTML入门 参考尚硅谷再总结复习 1.1 HTML&CSS&JavaScript的作用 HTML 主要用于网页主体结构的搭建 CSS 主要用于页面元素美化 JavaScript 主要用于页面元素的动态处理 1.2 什么是HTML HTML是Hyper Text Markup Language的缩写。意思是超文本标记语言。它的作用是搭…

筛选出等于1的式子

然后统计和归类 归类分行归类方法 算术符号归类 数字大小排序算术符号归类 import randomdef generate_expression(num_range, num_count, operators):nums random.sample(range(num_range[0], num_range[1]1), num_count)ops random.choices(operators, knum_count-1)expre…

ChatGPT 结合实际地图实现问答式地图检索功能基于Function calling

ChatGPT 结合实际地图实现问答式地图检索功能基于Function calling ChatGPT结合实际业务,主要是研发多函数调用(Function Calling)功能模块,将自定义函数通过ChatGPT 问答结果,实现对应函数执行,再次将结果…

List(CS61B学习记录)

问题引入 上图中,赋给b海象的weight会改变a海象的weight,但x的赋值又不会改变y的赋值 Bits 要解释上图的问题,我们应该从Java的底层入手 相同的二进制编码,却因为数据类型不同,输出不同的值 变量的声明 基本类型…

强引用、软引用、弱引用、幻象引用 —— Java的四种引用类型解析

强引用、软引用、弱引用、幻象引用 —— Java的四种引用类型解析 在Java中,对象的生命周期并不总是由我们直接控制。除了我们常见的强引用外,Java还提供了软引用、弱引用和幻象引用这三种引用类型,它们对对象生命周期的影响各不相同。理解这…

一步到位!快速精通Git工作流及实战技巧详解

Git是一个分布式版本控制系统。 1、git的应用场景 1.备份 小明负责的模块就要完成了,就在即将release之前的一瞬间,电脑突然蓝屏。硬盘光荣牺牲!几个月来的努力付之东流。 场景二:代码还原 这个项目中需要一个很复杂的功能&…

Linux下使用MD5SUM命令详解

在Linux操作系统中,md5sum是一个非常实用的工具,用于生成和校验文件的MD5散列值。MD5是一种广泛使用的密码散列函数,可以产生一个128位(16字节)的散列值,常用来确保数据的完整性和一致性。 一、MD5SUM命令…

【Java】<Java类库> 与 <Java标准库>

Java标准库 和 Java类库 在某种程度上是相互关联的概念,但它们又有一些不同之处。 Java标准库: Java标准库是指Java平台提供的一组标准的类和接口的集合,用于实现Java程序的基本功能和常见任务。Java标准库是Java平台的一部分,包含…

CVHub | 初识langchain,3分钟快速了解!

本文来源公众号“CVHub”,仅用于学术分享,侵权删,干货满满。 原文链接:初识langchain 1 什么是langchain langchain[1]是一个用于构建LLM-Based应用的框架,提供以下能力: 上下文感知:可以为LLM链接上下文…