协调器偶尔没有ACK,导致节点数据重发
时间:10-02
整理:3721RD
点击:
我用CC2530, ZStack-CC2530-2.5.1a版本的协议栈。
网络模式使用的是星型网络,在一个协调器和一个节点的情况下。节点发送数据给协调器。协调器偶尔不返回ACK包,请问这是什么情况?
上图中第一个包协调器立刻回了一个ACK,但是第二个包协调器就没有回ACK,等待超时之后,节点重新发送,直到第4包协调器才回应了ACK。
在节点给协调器后面发送的4条数据来看,第一条是应用层发起的发送,Seq number=0xC0,后面的三条是MAC重发的数据,因为Seq number还是0xC0,在我们的协议栈里面底层默认重发次数在f8wcondig.cfg文件里面
/* The maximum number of retries allowed after a transmission failure */
-DAPSC_MAX_FRAME_RETRIES=3
在最后一次发送的时候协调器收到回复了。
原因
可能节点端的无线性能或者和协调器的距离比较远,导致发送有时候没法收到。