This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

丢失消息没重发问题



1、现在我们展厅测试环境中,30个设备左右,在没有Route Reqest消息的时候,能正常通信,但一旦出现了Route Request广播就导致应用层掉消息。 问题补充:上面的程序中都去掉了协议栈自带的30s过期作废的功能,RouteTable大小是协议栈默认的40。掉消息的一般都是3~4跳路由才到的设备。

疑问:掉了消息,为啥没有重复发送,正常是协议栈默认会发送8次的,但实际抓包中,从未发现发送多次。

  • 你在哪里看到重发8次??

  • 抓包工具看到,到可以正常通信的两个设备,突然该其中收消息的一方断电,就会默认发送八次。

    我还想请问一下,一个消息经多次路由后,丢失了。这个消息的丢失跟前面几跳路由节点已经没有关系了是吗,因为它们已经正常收到后面路由发给他们的mac层的ACK了,只有丢失消息的两个设备之间的路由实现重发就可以了吧

  • 1: 你看的8次发的数据是包括了不同数据帧的,1种是想法的数据,应该是3次,后面的是data request  可以把你抓包的文件上传吗?

    2:对的,中间的路由只都转发,以mac ack为主,对于真正的source node和destination node,还有Aps层的ack,如果没有收到aps ack的话会重发的。