静脉 - 某些车辆丢失数据包的意外行为
Veins - Unexpected behavior with lost packets in certain vehicles
我在 OMNeT++ 模拟器上使用 Veins 框架,我遇到了一个奇怪的情况,某些节点丢失了所有接收到的数据包。
为了让每个人都了解情况,我模拟了 100 个节点(25 个节点的 4 个流),所有这些都在覆盖范围内(显然),并且每个节点每秒发送 10 个数据包。根据节点进入网络的时间(即:由 SUMO 创建),其中一些节点(通常只有 1 个,但可以是 2、3、4 ...)进入一种所有数据包都标记为丢失的模式(SNIRLostPackets ) 因为他们收到一个数据包,而另一个数据包已经被接收(根据决策者,NIC 已经同步到另一个帧)。
在 802.11 中不会发生这种情况,除非存在隐藏节点并且发送方在发送各自的帧时看不到对方(都看到信道空闲),对吗?
因此,这种行为完全出乎意料,并且会破坏最终的丢失数据包统计信息。我调整了传输的传输功率和干扰范围,但没有任何变化。
经常忽略它,我想知道是否有人遇到过这种行为以及如何解决它。
谢谢
(好的,显然问题出在接收到数据包(开始接收)的特殊情况下,但是在接收结束时,节点已更改为 TX 状态。
然后,数据包被标记为"received while sending",但节点已经将此帧标记为下一个正确接收。所以它会无休止地丢弃所有接收到的。
这似乎是一个错误,可能的解决方法是添加这些行
if (!frame->getWasTransmitting()){
curSyncFrame = 0;
}
在 processSignalEnd
函数(Decider80211p 文件)中,在“(frame->getWasTransmitting() || phy11p->getRadioState() == Radio::TX)
”案例中。
我不太确定这种情况是否应该发生,因为节点不应该在接收时发送数据包。
希望对您有所帮助。
我在 OMNeT++ 模拟器上使用 Veins 框架,我遇到了一个奇怪的情况,某些节点丢失了所有接收到的数据包。
为了让每个人都了解情况,我模拟了 100 个节点(25 个节点的 4 个流),所有这些都在覆盖范围内(显然),并且每个节点每秒发送 10 个数据包。根据节点进入网络的时间(即:由 SUMO 创建),其中一些节点(通常只有 1 个,但可以是 2、3、4 ...)进入一种所有数据包都标记为丢失的模式(SNIRLostPackets ) 因为他们收到一个数据包,而另一个数据包已经被接收(根据决策者,NIC 已经同步到另一个帧)。
在 802.11 中不会发生这种情况,除非存在隐藏节点并且发送方在发送各自的帧时看不到对方(都看到信道空闲),对吗?
因此,这种行为完全出乎意料,并且会破坏最终的丢失数据包统计信息。我调整了传输的传输功率和干扰范围,但没有任何变化。
经常忽略它,我想知道是否有人遇到过这种行为以及如何解决它。
谢谢
(好的,显然问题出在接收到数据包(开始接收)的特殊情况下,但是在接收结束时,节点已更改为 TX 状态。
然后,数据包被标记为"received while sending",但节点已经将此帧标记为下一个正确接收。所以它会无休止地丢弃所有接收到的。
这似乎是一个错误,可能的解决方法是添加这些行
if (!frame->getWasTransmitting()){
curSyncFrame = 0;
}
在 processSignalEnd
函数(Decider80211p 文件)中,在“(frame->getWasTransmitting() || phy11p->getRadioState() == Radio::TX)
”案例中。
我不太确定这种情况是否应该发生,因为节点不应该在接收时发送数据包。
希望对您有所帮助。