Packet Sniffer 分析Z-Stack协议数据

  至于如何使用Packet Sniffer 软件,我之前的博文有过介绍。

  1.打开Packet Sniffer软件,协调器上电,其他设备不通电,抓包情况如下图所示:

Packet Sniffer 分析Z-Stack协议数据

     可以看到,协调器建立网络后,后面几条带黄色的数据包是协调器向整个网络中发送消息,目地是为了检测是否有其他协调器占用了0xFF00这个PANID,该消息15s的周期向其他设备告知自己网络质量以及连接状态。

  第一条数据包是协调器发送的Beacon request(信标请求帧)。(在路由或者终端节点未开启时,就已经存在,并且后面带黄色字样的数据包每隔15s(这个数值应该可以在协议栈中修改,至于在哪里修改暂时还不清楚,不一定正确)发送一次。个人理解为第一条数据包是软件还没有形成网络时,该数据帧是协议分析仪在收到第一帧数据时产生的一帧默认数据,开启协调器后均会出现如上字样。)

  该条数据帧的作用是:通知网络中所有的协调器,意思就是:我来了,请你们所有的协调器均给我回复一下。(PS:可以设置实验将另外一个协调器也提前开启,然后在抓包中可以看到第二个协调器发送信标请求帧后会受到第一个协调器的回复消息。)

  2.关闭协调器,路由器上电,抓包如下:

Packet Sniffer 分析Z-Stack协议数据

  路由器或者终端节点会不断的发送Beacon request来请求网络信息,由于收不到协调器的回复,所以一直在发送信标请求帧。

  3.路由器或者终端连续发了3个Beacon request,协调器分别回应了3次(这个协议的机制本身就是如此,至于为什么需要握手6次,不太清楚,毕竟TCP/IP也只需要握手3次,释放连接4次也足够了。)Packet Sniffer 分析Z-Stack协议数据

   4.路由器或者终端节点将自己的MAC地址信息加入(0x00124B00015873C55),发送了Data request,协调器再回复一个ACK信号,协调器根据Data request,给路由或者终端结点分配一个shortaddr(0xEEF2)发送给协调器(0x0000)。协调器收到后给予一个ACK回应。

Packet Sniffer 分析Z-Stack协议数据

  5.接着路由器和协调器分别广播一个APS CLUSTER ID = 0x0F08的数据信息,组网已经全部完成,这时候协调器分别会以15秒的间隔不断的广播自己的网路状态.

Packet Sniffer 分析Z-Stack协议数据

  仔细观察上述数据帧,不难发现,起初从应用层淡黄色的APS Payload中的数据加上应用层的其他部位封装到了NWK payload层中(也是淡黄色)。而NWK payload中的数据经过一定的封装被封装到了MAC层形成数据帧。数据由顶层到下,逐渐封装。以上就是整个入网过程的抓包数据分析。

  PS:上图截了全屏图片,图片还是挺清晰的。另外抓包可以用来分析距离,Packet sniffer中有时间轴的相应的功能,最简单的通过数据的一收一发就可测出距离,通过最简单的三点定位即可实现定位操作。总的来说packet sniffer 还是个实用的工具。参考博文链接:https://www.cnblogs.com/jianli/p/5458704.html