这是本文档旧的修订版!


问题和现象:

办公室内,相对静态网络,9个节点一组,但每组只有一个模块接天线,其余8个没接。
数据模型:
40s一个心跳包,7Byte,如果没握手上,10s后retry,并递增重发次数
80s 一个数据包, 70Byte, 也有重发机制

在120个节点下,没发现多大问题,但随着节点数的进一步增加,出现了很多A1包,以及流控CTS时不时拉高,导至协调器发送时机减少。

调试过程:
原AR=18(三分钟),一分钟大约收373个0xA1,三分钟收到1312个0xA1.

把AR设置为0,全网退网后,三分钟内还是收到1448个0xA1包,可见,这MTO包主要并不是周期产生的,更主要是发送失败,路径修复时产生的。

采过分组上电的方式,记录下各种包的数量:(下面83台和120台,当时也可能是85台或122台?)
83台上电时:421个0xA1 , 1526个心跳 , 208个数据包
120台上电时: 902个0xA1 , 2115个心跳 ,283个数据包
128台:943个0xA1, 2300个心跳 301个数据包

初步研判:和模块本身关系不大,因为有许多0xA1,意味着有许多发送失败和重传,虽然用户觉得数据模型所占的带宽不至于引发流控,但如果计入数据包重传所占的带宽,还是相当可观的,因此首先要排除天线因素,看是否是没接天线的原因,由于在同一个办公室堆叠在一起,也不应该把板子的功率都设置为最大,因此要通过降率来更真实地模拟现场实际情况。

测试一: 加天线降功率

目标:观察有无天线在办公室环境中的区别,以便决定是否能不接天线来模拟现场

    收集发送失败反馈包的种类和数量,以便分析什么原因引起过多重发,以及路径失效的可能原因

方法:AR还是要设置为0,通过给每个无线模块加上天线,并广播PL=0,并确保协调器的功率为PL=4没变,关掉那些没有接天线的板子的电源(防止作为跳点),然后记录三分钟内下面数据:
83台上电时: 0xA1= ; 心跳=: ; 数据包=:
120台上电时: 0xA1= ; 心跳=: ; 数据包=:
128台上电时: 0xA1= ; 心跳=: ; 数据包=:

三分钟内,路由器发送失败的常见反馈包有:

1:
2:
3: