ZigBee网络建立过程中数据传输流程分析(一)

ZigBee网络建立过程中数据传输流程分析(一)

最近使用ZigBee协议分析仪Packet Sniffer捕获了ZigBee网络建立过程中数据传输流程数据包(以下是捕获的数据包)。

ZigBee网络建立过程中数据传输流程分析(一)_第1张图片

虽然该分析仪已经为我们将数据段分开,但是,如果没有足够多的理论学习的话,对于捕获到的数据包,也只是一头雾水。刚开始的时候作者也很困惑,这些东西到底是几个意思,网上这方面的资料少之又少。无意中看到一本书,刚好讲到了这一章节,总结了一下,希望对大家有所帮助。

ZigBee网络建立过程中数据传输流程分析

常用名词解析
Sequence number:序号
Dest PAN:目标PAN
Dest Address:目标地址
Source PAN:源PAN
Source Address:源地址
Association Request:入网请求

数据包分析:
第1行,终端节点发送信标(Beacon)请求。
第2行,协调器已经建立了ZigBee无线网络,在ZigBee无线网络中,协调器的网络地址一定是0x0000,第2行的“Source Address”就是协调器的网络地址。
第3行,终端节点发送加入网络请求
第4行,协调器对终端节点的请求作出应答,可以看到“Sequence number”与上面一行的值是一致的。
第5行,终端节点受到协调器的应答之后,发送数据请求(Data Request),请求协调器为其分配网络地址,因为此时的终端节点还没有分配网络地址,所以只能发送IEEE地址0x00124B00075E3E91作为唯一身份认证标识。
第6行,协调器对终端节点的数据请求作出应答。
第7行,协调器将分配的网络地址发送给终端节点,在Short Address(标红)中可以看到,协调器为终端节点分配的网络地址是0x3B4C。
从第9行开始,终端节点就开始使用自己的网络地址0x3B4C进行网络通信了。

疑问:
1、为什么不使用节点的IEEE地址作为源地址进行通信,而要去获取网络地址呢?
我们在第5行可以看到,IEEE地址长度是64位,而重新分配的网络地址是16位的,对于无线通信而言,数据长度越长,发送这些数据所需要的功率就越大,还有,由于每个数据包的最大长度是固定的,如果节点地址占据的位数太多,每个数据包所携带的有效数据必然减少,所以,采用重新分配的网络地址是一种更加合理的选择。

2、终端节点未加入网络时其网络地址是0xFFFF,为什么不直接使用这个地址,而要重新分配呢?
我这里演示的只是一个终端节点加入网络,如果有多个节点同时加入网络的话,那么这些终端节点在未重新分配网络地址时的网络地址都是0xFFFF,当协调器受到加入网络的请求后作出应答,这个时候就出现问题了。所以,网络地址需要重新分配。

参考书籍:zigbee无线传感器网络设计与实现

你可能感兴趣的:(ZigBee,物联网,ZigBee)