两个cc2530模块,一个做协调器,一个做终端。连接后,协调器向终端发送数据,终端收到后返回。协调器通过串口连接电脑打印一些信息出来。
协调器发送和接收的数据次数,终端发送和接收数据的次数,都有进行计数,而且每一帧数据都有做校验。
奇怪的是,终端收到数据的计数值,比协调器发送的计数值大。协调器收到的数据的计数值,也比终端返回的数据的计数值大。
如果考虑丢包,不是都应该是接收比发送少吗?
怎么都想不通,向大神求教。谢谢了。
TT LEE:
本来是想用这种方法测试丢包率,结果测出来的都没有丢包了,接收率都大于1了。。困惑。。。
yongjie fu1:
回复 TT LEE:
重发了吧
TT LEE:
回复 yongjie fu1:
谢谢您的回答。
我发现也有可能重发了。我有抓包,如附件图所示
协调器(地址0x0000),下发给终端(地址0xE9F5),好像没有收到ACK,会接着再发一次。其实这时我的应用层只发了一次。还有重发那一次,发给了地址0xFFFF。
终端(地址0xE9F5)返回就也会返回两次。
这好像是我接收计数大于发送计数的原因。
请各位高手,确认下是不是这个原因,还有协调器为什么会发给那个0xFFFF。是不是没有收到ACK就会重发?
另外,请问有没有什么好的方法测丢包率。谢谢了。
user5283978:
回复 TT LEE:
想请问下你怎么测试丢包率的呢?我最近也遇到了这个问题,因为他有丢包重传的机制。我不知道该如何测试他的丢包率,还望能得到你的指导。我的qq:1554132701
YiKai Chen:
回复 user5283978:
测试丢包率可以丟出1000個包之後去統計收到的數量
user5283978:
回复 YiKai Chen:
那样统计的数量十有八九会超过1000个,而且需要把时序弄好,很容易出问题。
YiKai Chen:
回复 user5283978:
丟出1000個包之後统计的数量十有八九会超过1000个?多出來的哪來的?
user5283978:
回复 YiKai Chen:
协议栈有丢包重传机制啊,如果没有收到ack确认就会重传8次,所以会超过1000个啊。
YiKai Chen:
回复 user5283978:
如果你是這樣計算就把重试的也算進去