Zigbee—网络层地址分配机制

                                                     🎬慕斯主页:修仙—别有洞天

                                                       ♈️今日夜电波:孤雏

                                                                0:21━━━━━━️💟──────── 4:14
                                                                    🔄   ◀️   ⏸   ▶️    ☰ 

                                      💗关注👍点赞🙌收藏您的每一次鼓励都是对我莫大的支持😍


目录

前言

一、Zigbee网络层地址分配介绍

二、 网络层地址分配计算

        通过一道例题来进一步理解 :

        特别注意!!!


前言

        本文主要是介绍对于zigbee网络层中地址分配机制中对于各个节点的网络地址的计算,对于其他的知识点可能总结的不是很到位。诸如以下的题目:

         计算如下图所示各个节点的网络地址

一、Zigbee网络层地址分配介绍

        水一下定义啦,怎么计算从后面的小点开始

        Zigbee网络层地址分配是指在Zigbee网络中为节点分配唯一的网络地址,以实现节点之间的通信。网络层地址由16位地址组成,通常用十六进制表示。Zigbee网络中有两种类型的地址:短地址和扩展地址。

        短地址用于节点在网络中的直接寻址。短地址是由协调器分配,并且只在网络内唯一。短地址是16位的,范围为0x0000到0xfffe,其中0xfffe保留。协调器的短地址为0x0000。

扩展地址用于唯一标识节点。扩展地址是64位的,由厂商分配。扩展地址通常用于在网络层建立长期的安全连接,以保护通信安全。

        Zigbee网络中还存在一个特殊的短地址0xffff,用于向所有节点广播消息。这个地址无论在哪个网络中都是预留的。

        在Zigbee网络中,节点可以使用短地址或扩展地址进行通信。节点可以根据需要选择使用哪种地址。要向网络中的节点发送消息,需要知道节点的地址。节点的地址可以通过网络扫描或直接查询节点得到。

二、 网络层地址分配计算

         现给出一个公式,请一定一定要记住!!!

         对于该公式的说明:

        C->每个父节点最多可连的节点数 

        R->父节点下的那C个子节点最多可有的路由器节点数 

        L->网络的最大深度 

        d->网络深度 

        Cskip(d)->网络深度d的父节点为子节点分配的地址之间的偏移量 

        注意:我们对于分配地址的计算的要点就是围绕这些来进行的!!!其中最主要的便是Cskip,务必要计算准确!!! 其中C、R、L通常题目会给出!

        一些额外的说明: 
(1)当一个路由器节点的Cskip(d)为0时,它就不具备为子节点分配地址的能力(意思就是不用往后算了!!!,也即表明不能够在使用别的节点通过他加入网络。
(2)当Cskip(d)大于0时表明父节点可以接受其他节点为其子节点(意思是你要你要往后继续算!!!,并为子节点分配网络地址。父节点会为第一个与它关联的路由器分配比他大1的地址,之后与之关联的路由器节点的地址之间都相隔偏移量Cskip(d)。
(3)每个父节点最多可以分配R个这样的地址。伪终端节点分配地址和为路由器节点分配地址不同,假设父节点的地址为Ap,则第N个与之关联的终端节点地址An按下式计算:

在这里插入图片描述

        通过一道例题来进一步理解 :

  1. 计算如下图所示各个节点的网络地址。其中,1号节点为ZigBee协调器,与协调器相连的其他节点为路由器和终端;假设在当前的网络结构中,每个父节点最多可以连接4个子节点,子节点最多可以有4个路由器节点,当前网络的最大深度为3。

         分析一下这道题目:父节点最多可以连接4个子节点->C=4,子节点最多可以有4个路由器节点->R=4,最大深度为3->L=3,结合图来分析:

         再来看这个公式,我们已经知道R为4的情况下,对此选择下半公式来进行计算!

计算如下:分别计算出深度为0、1、2时的Cskip

        Cskip(0) = (1+4-4-(4*4^(3-0-1)))/(1-4) = 21

        Cskip(1) = (1+4-4-(4*4^(3-1-1)))/(1-4) = 5

        Cskip(2) = (1+4-4-(4*4^(3-2-1)))/(1-4) = 1

         在计算完成之后其实已近完成了大半的工作,接下来按照规则来分配节点即可:

首先从ZigBee协调器相邻的节点开始分配,分配完成后,再依次分配各自的子节点。

        如下图所示:

        接下来是重点,请注意!!! 

        由于本题未说明终端节点以及以及路由器,对此本题按一下规则: 

        我们就将所有节点都看作为路由器吧!现在,(1)我们选择与父节点(默认1号节点地址addr(1)=0)相邻的任意一个节点,剩下的先放在一边,让这个节点在根节点的地址基础上+1!!!这里选择了2号节点,则二号节点的地址:addr(2) = addr(1)+1。(2)其他剩余的节点按照逆时针、顺时针都可以分别用上一层次深度的Cskip加上相邻节点的地址,例:3号:addr(3) = addr(2) + Cskip(0) = 1+21 = 22,4号:addr(4) = addr(3) + Cskip(0) = 22+21 = 43,5号:addr(5) = addr(4) + Cskip(0) = 43+21 = 64 既:如下图所示:

        在进行完上面的步骤后,我们分别以各个已近分配好地址的节点为父节点,接着重复(1)(2)操作即可,(特别注意:在Cskip=0时就没必要继续分配了) 

        以下是本文的总体解题:

1号:addr(1)=0

Cskip(0)=21

2号:2addr(2) = addr(1)+1=1
3号::addr(3) = addr(2) + Cskip(0) = 1+21 = 22
4号:addr(4) = addr(3) + Cskip(0) = 22+21 = 43
5号:addr(5) = addr(4) + Cskip(0) = 43+21 = 64
Cskip(1)=5
9号:addr(9) = addr(5) + 1 = 64+1 = 65
6号:addr(6) = addr(9) + Cskip(1) = 65+5 = 70
7号:addr(7) = addr(3) + 1 = 22+1 = 23
8号:addr(8) = addr(4) + 1 = 43+1 = 44

 

        特别注意!!!

        如若是区分协调器以及终端的题目则对终端用以下公式:

在这里插入图片描述

        这里就不多阐述了,对于终端就多注意一下就好 

 

 


                     感谢你耐心的看到这里ღ( ´・ᴗ・` )比心,如有哪里有错误请踢一脚作者o(╥﹏╥)o! 

                                       

                                                                         给个三连再走嘛~  

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

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

相关文章

AI 时代的企业级安全合规策略

目录 漏洞分类管理的流程 安全策略管理 在扫描结果策略中定义细粒度的规则 有效考虑整个组织中的关键漏洞 确保职责分离 尝试组合拳 本文来源:about.gitlab.com 作者:Grant Hickman 在应用程序敏捷研发、敏捷交付的今天,让安全人员跟上…

EasyExcel 导出冻结指定行

导出的实体类 package org.jeecg.modules.eis.test;import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.write.style.*; import lombok.Getter; import lombok.Setter; import org.apache.poi.ss.usermodel.HorizontalAlignment;import…

pytorch复现_UNet

什么是UNet U-Net由收缩路径和扩张路径组成。收缩路径是一系列卷积层和汇集层,其中要素地图的分辨率逐渐降低。扩展路径是一系列上采样层和卷积层,其中特征地图的分辨率逐渐增加。 在扩展路径中的每一步,来自收缩路径的对应特征地图与当前特征…

css设置浏览器表单自动填充时的背景

浏览器自动填充表单内容,会自动设置背景色。对于一般的用户,也许不会觉得有什么,但对于要求比较严格的用户,就会“指手画脚”。这里,我们通过css属性来设置浏览器填充背景的过渡时间,使用户看不到过渡后的背…

win10下.net framework 3.5 | net framework 4 无法安装解决方案

.net缺失解决方案 win10 .net framework 3.5组策略设置方案一方案二 win10 .net framework 4 参考文章 win10 .net framework 3.5 组策略设置 方案一 搜索组策略,依次展开“计算机配置”、“管理模板”,然后选择“系统”,找到指定可选组件…

Leetcode2246. 相邻字符不同的最长路径

Every day a Leetcode 题目来源:2246. 相邻字符不同的最长路径 解法1:树形 DP 如果没有相邻节点的限制,那么本题求的就是树的直径上的点的个数,见于Leetcode543. 二叉树的直径。 考虑用树形 DP 求直径。 枚举子树 x 的所有子…

如何让群晖Audio Station公开共享的本地音频公网可访问?

文章目录 1. 本教程使用环境:2. 制作音频分享链接3. 制作永久固定音频分享链接: 之前文章我详细介绍了如何在公网环境下使用pc和移动端访问群晖Audio Station: 公网访问群晖audiostation听歌 - cpolar 极点云 群晖套件不仅能读写本地文件&a…

Go基础知识全面总结

文章目录 go基本数据类型bool类型数值型字符字符串 数据类型的转换运算符和表达式1. 算数运算符2.关系运算符3. 逻辑运算符4. 位运算符5. 赋值运算符6. 其他运算符运算符优先级转义符 go基本数据类型 bool类型 布尔型的值只可以是常量 true 或者 false。⼀个简单的例⼦&#…

竞赛选题 深度学习猫狗分类 - python opencv cnn

文章目录 0 前言1 课题背景2 使用CNN进行猫狗分类3 数据集处理4 神经网络的编写5 Tensorflow计算图的构建6 模型的训练和测试7 预测效果8 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **基于深度学习猫狗分类 ** 该项目较为新颖&a…

Python基础教程之十六:Python multidict示例–将单个键映射到字典中的多个值

1.什么是multidict词典> 在python中,“ multidict ”一词用于指代字典,在字典中可以将单个键映射到多个值。例如 多重结构 multidictWithList {key1 : [1, 2, 3],key2 : [4, 5]}multidictWithSet {key1 : {1, 2, 3},key2 : {4, 5}}1. list如果要…

内核移植笔记 Cortex-M移植

常用寄存器 PRIMASK寄存器 为1位宽的中断屏蔽寄存器。在置位时,它会阻止不可屏蔽中断(NMI)和HardFault异常之外的所有异常(包括中断)。 实际上,它是将当前异常优先级提升为0,这也是可编程异常/…

uniapp使用vue3和ts开发小程序自定义tab栏,实现自定义凸出tabbar效果

要实现自定义的tabbar效果,可以使用自定义tab覆盖主tab来实现,当程序启动或者从后台显示在前台时隐藏自带的tab来实现。自定义一个tab组件,然后在里面实现自定义的逻辑。 组件中所使用的组件api可以看:Tabbar 底部导航栏 | uView…

Centos7下搭建H3C log服务器

rsyslogH3C 安装rsyslog服务器 关闭防火墙 systemctl stop firewalld && systemctl disable firewalld关闭selinux sed -i s/enforcing/disabled/ /etc/selinux/config && setenforce 0centos7服务器,通过yum安装rsyslog yum -y install rsysl…

【uniapp】六格验证码输入框实现

效果图 代码实现 <view><view class"tips">已发送验证码至<text class"tips-phone">{{ phoneNumber }}</text></view><view class"code-input-wrap"><input class"code-input" v-model"…

AI:75-基于生成对抗网络的虚拟现实场景增强

🚀 本文选自专栏:AI领域专栏 从基础到实践,深入了解算法、案例和最新趋势。无论你是初学者还是经验丰富的数据科学家,通过案例和项目实践,掌握核心概念和实用技能。每篇案例都包含代码实例,详细讲解供大家学习。 📌📌📌在这个漫长的过程,中途遇到了不少问题,但是…

[量化投资-学习笔记008]Python+TDengine从零开始搭建量化分析平台-CCI和ATR

目录 1. 指标简介CCIATR 2. 程序编写题外话 1. 指标简介 将这两个指标放在一起&#xff0c;一方面是因为这两个指标都属于摆动指数&#xff0c;可以反应市场的活跃度。 另一方面是因为CCI和ATR与之前提到的EMA,MACD,布林带的三个指标的计算基础不同。之前的三个指标都是以收盘…

坐标系转换(仅作记载)

一.极坐标转换为普通坐标系 参考&#xff1a;极坐标方程与直角坐标方程的互化 - 知乎 (zhihu.com) 公式&#xff1a;&#xff08;无需考虑象限引起的正负问题&#xff09; 普通坐标系转换为极坐标系 参考&#xff1a; 极坐标怎么与直角坐标系相互转化&#xff1f; - 知乎 (zh…

Docker本地镜像发布到阿里云或私有库

本地镜像发布到阿里云流程 &#xff1a; 1.自己生成个要传的镜像 2.将本地镜像推送到阿里云: 阿里云开发者平台:开放云原生应用-云原生&#xff08;Cloud Native&#xff09;-云原生介绍 - 阿里云 2.1.创建仓库镜像&#xff1a; 2.1.1 选择控制台&#xff0c;进入容器镜像服…

如何在Linux上部署1Panel运维管理面板并远程访问内网进行操作

文章目录 前言1. Linux 安装1Panel2. 安装cpolar内网穿透3. 配置1Panel公网访问地址4. 公网远程访问1Panel管理界面5. 固定1Panel公网地址 前言 1Panel 是一个现代化、开源的 Linux 服务器运维管理面板。高效管理,通过 Web 端轻松管理 Linux 服务器&#xff0c;包括主机监控、…