由于我们的网络是Zigbee,所以不得不学会抓包。
会抓包,这个很重要。做我们这行不会抓包,就等同于电子工程师不会示波器、程序员不会GDB。
#正题
抓包器介绍
我司用的抓包软件是Ubiqua,是花了重金买的。主界面如下:
添加抓包器
首先,插上我们的抓包器,博主为 NXP 的 JN5168,用 FTDI 串口转USB 的 Dangle。
点击菜单栏:Device -> Add Device ... ,弹出设备添加框:
选 “NXP”,然后选重 "NXP FTDI Device",再点 “Add Device”,如下:
设置信道
然后点击设备上的开关按钮即可。
正常情况下,主界面就会出现大量的数据显示:
其中如下显示的,表示未解密包:
需要遇到 Transport Key 包方可解密。最简单的方法就是入一个设备进网络。
常用工具
在抓包器中一有些常用的工具:
- 保存当前数据
- 滚动显示
- 单包分解窗显示最新包
- 清空所有
- 当前过滤器
- 启用与关闭过滤器
- 新建过滤器
- 编辑当前过滤器
- 删除过滤器
过滤器
过滤器是必要的,不然人眼受不了。
新建过滤器
点击(7)所示的按钮,弹出如下框:
如果是Zigbee新手,用起来都比较麻烦。还有另一种简单的方法。
比如博主要抓 PANID=5FCC的包,即同一个网络的数据包。 先选中一个数据包样本。然后:
Zigbee包结构
ZCL包
如下为ZCL包,开关的属性报告:
Zigbee的协议很多与我们以太网络很像:
不详讲,只想提一下几点:
- PANID 在 MAC 层里
- MAC层与NWK层都有Source Address 与 Destination Address,MAC层的是当前包的源地址与目标地址,而NWK的是指真正的源地址到目标地址。类似以太网的IP层与MAC层的关系
- Frame Information中有包的信息,包括信号强度
- Cluster id 是在 APS 层
##常见的数据包介绍 如下数据包:
- Management Permit Joining Request 开启与关闭组网
- Beacon Request 请求信标
- Beacon 信标
- Acknowledgement (MAC) 点对点确认包
- Acknowledgement (NWK) 目标到源确认包
- Association Request 请求关联
- Association Response 关联回复
- Transport Key 传输密钥
- Device Announce 设备通告
- Active Endpoints Request 请求端点个数
- Active Endpoints Response 回复端点个数
- Simple Descriptor Request 请求端点简单描述
- Simple Descriptor Response 回复端点简单描述
- Data Request 终端结点向父结点获取数据
- Bind Request 请求绑定
- Bind Response 回复绑定
- Configure Reporting 配置属性报告
- Configure Reporting Response 配置属性报告回复
- Read Attributes 读属性
- Read Attributes Response 读属性回复
- Write Attributes 写属性
- Write Attributes Response 写属性回复
- Report Attributes 属性报告
结语
本文就到介绍到这里,以后再一一介绍设备入网与控制的流程分析。