Zigbee设备类型

Coordinator:形成网络,选择信道、PANID、允许其他设备加入等。

Router: 作为路由节点,转发报文。

End Device: 终端节点,不转发报文。

Zigbee网络类型

Zigbee PRO标准只支持mesh网络类型。

R

outer device常规入网流程示例

  1. 子设备在各个信道广播beacon request,查询哪个网络允许加入。
  1. 协调器和路由节点回应beacon报文。

    主要字段:

    PAN Coordinator: 是否是协调器 (source address)

    Association permit: 是否允许新设备入网

    GTS相关字段: zigbee pro不使用GTS非竞争网络的字段。

    Stack profile、NWK protocol version: zigbee版本。

    Router Capacity: 是否能接受路由设备的入网请求

    End Device Capacity: 是否能接受end device的入网请求,即作为end device设备的父节点。

    NWK extended pan id: 网络的唯一标识,pan id可变,extended pan id不变。

  1. 子设备在可入网的网络中,选择信号最优的一个进行关联。

    Association Request

  2. 协调器接收设备的关联请求后,单播回应Association Response.

    给子设备分配短地址。

  3. 协调器通过子设备的认证后,发送网络密钥,负载使用tc link key加密。

    Transport Key

  4. 子设备解析network key,入网成功。发送device announce通知网络中的其他设备,自己加入网络。

Zigbee3.0子设备入网后需要更新link key,参考《zigbee3.0 security特性.docx》

End device入网流程

  1. End device通过beacon request查询信道是否有网络可以加入。
  2. 协调器和路由节点回应beacon
  3. End device选择协调器或路由节点加入。

    End device 直接接入协调器

  4. End device发送association request,请求加入网络
  5. 协调器(父节点)回应association response,分配短地址给子设备。
  6. 协调器(Trust Center)通过Transport Key命令传输nwk key,报文使用TC link key加密。(这里协调器和子设备没有使用install codes,使用的是global link key)
  7. 子设备正确解析transport key报文,获得nwk key
  8. 子设备广播device announce报文,通知其他设备自己已成功加入网络。

以路由节点做父节点

  1. 向父节点发送Association Request
  2. 父节点回应Asspciation Response, 提供短地址
  3. 父节点向协调器发送update device,通知协调器有设备加入(unsecured join, 还没有经过TC验证)
  4. TC验证通过后,协调器经过end device的父节点给end device发送network key,需要父节点做中转。协调器和该父节点的数据使用nwk key加密,父节点转发给子设备的数据,去掉tunnel头,使用link key加密。
  5. 子设备获得网络密钥,入网成功。
  6. 子设备广播device announce.

BDB中定义的流程:

Zigbee系列(网络)的更多相关文章

  1. ZigBee无线网络技术在小区路灯照明系统的应用

    小区路灯照明系统是楼宇智能的一部分,但受制于布线.成本等的问题,难以得以实施.随着计算机技术的迅猛发展,无线网络技术越来越成熟,ZigBee无线网络成本低.功耗低.传输距离远等的特点,非常适合在无线路 ...

  2. OpenStack实践系列⑤网络服务Neutron

    OpenStack实践系列⑤网络服务Neutron 3.8 Neturn 服务部署 注册neutron服务 [root@node1 ~]# source admin-openrc.sh [root@n ...

  3. 抓住“新代码”的影子 —— 基于GoAhead系列网络摄像头多个漏洞分析

    PDF 版本下载:抓住“新代码”的影子 —— 基于GoAhead系列网络摄像头多个漏洞分析 Author:知道创宇404实验室 Date:2017/03/19 一.漏洞背景 GoAhead作为世界上最 ...

  4. iOS开发系列--网络开发

    概览 大部分应用程序都或多或少会牵扯到网络开发,例如说新浪微博.微信等,这些应用本身可能采用iOS开发,但是所有的数据支撑都是基于后台网络服务器的.如今,网络编程越来越普遍,孤立的应用通常是没有生命力 ...

  5. Linux网路编程系列-网络I/O模型

    应用程序从网络中拿数据,要经历两个阶段:1.等待数据准备好-分组到达,被拷贝到内核缓冲区,组装数据报:2.数据从内核缓冲区拷贝至用户态应用程序的缓冲区.Unix下五个I/O模型: 阻塞I/O: 进程调 ...

  6. Zigbee系列(end device)

    End device设备分为睡眠和非睡眠两种(RxOnWhenIdle标记不同). 入网时的association请求,会使用这个标记. 共同特性 子节点多次发送数据失败(无回应),发送孤点扫描(re ...

  7. Zigbee系列(概览)

    Zigbee技术特点 低速率: 数据传输速率只有20~250kb/s, 2.4GHZ提供250kb/s, 915MHz对应40kb/s, 868Mhz对应20kb/s 低功耗:睡眠模式设备使用电池供电 ...

  8. 三、ZigBee无线网络工具

    CC2530概述 CC2530是德州仪器Ti公司用于2.4-GHz IEEE 802.15.4.ZigBee 和 RF4CE 应用的一个真正的片上系统(SoC)解决方案,是作为ZigBee无线传 感网 ...

  9. 二、ZigBee无线网络

    概述 ZigBee是基于IEEE802.15.4标准的低功耗局域网协议.根据国际标准规定,ZigBee技术是一种短距离.低功耗的无线通信技术.这一名称(又称紫蜂协议)来源于蜜蜂的八字舞,由于蜜蜂(be ...

随机推荐

  1. Kali-linux绘制网络结构图

    CaseFile工具用来绘制网络结构图.使用该工具能快速添加和连接,并能以图形界面形式灵活的构建网络结构图.本节将介绍Maltego CaseFile的使用. 在使用CaseFile工具之前,需要修改 ...

  2. indexzero/http-server-1-简介

    ethereumjs-vm的例子有用到这个 看完ethereumjs-vm,再看他ethereumjs/browser-builds,然后最后看他http-server,然后就能了解ethereumj ...

  3. 使用Apache HttpClient 4.x发送Json数据

    Apache HttpClient是Apache提供的一个开源组件,使用HttpClient可以很方便地进行Http请求的调用.自4.1版本开始,HttpClient的API发生了较大的改变,很多方法 ...

  4. Spring@PostConstruct注解和构造方法的调用顺序

    先看下@PostConstruct的注解 * The PostConstruct annotation is used on a method that needs to be executed * ...

  5. struts2的动态方法调用(DMI)和通配符映射

    动态方法调用   1.Struts2默认关闭DMI功能,需要使用需要手动打开,配置常量 struts.enable.DynamicMethodInvocation = true 2.使用“!”方法,即 ...

  6. OPENGL绘制文字

    OPENGL没有提供直接绘制文字的功能,需要借助于操作系统. 用OPENGL绘制文字比较常见的方法是利用显示列表.创建一系列显示列表,每个字符对应一个列表编号.例如,'A'对应列表编号1000+'A' ...

  7. Source folder is not on the Java build class path

    源文件夹不在Java构建类路径上 只需右键单击文件夹src - > build path - >Using source folders就是这样

  8. TCP中的三次握手和四次挥手

    三次握手:目的是同步连接双方的序列号和确认号 并交换 TCP窗口大小信息. 理论上跟通话一样: a: 你听的到吗?  b: 我能听到.只需要两次就可以了,但建立连接阶段不是双向即时通信的,且最终的目的 ...

  9. python3 datetime和time获取当前日期和时间

    import datetime import time # 获取当前时间, 其中中包含了year, month, hour, 需要import datetime today = datetime.da ...

  10. java学习无止境,工资价更高

    原 推荐10个Java方向最热门的开源项目(8月) 2018年08月28日 17:54:32 SnailClimb在CSDN 阅读数:849   版权声明:本文为博主原创文章,未经博主允许不得转载. ...