丢失消息没重发问题
时间:10-02
整理:3721RD
点击:
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的话会重发的。