1

我正在使用 Omnet++,静脉。我使用这里存在的代码:

Flooding.ned也 flooding.cc 存在于同一链接中。

我正在使用泛洪应用程序,我将 sentbeacon 分配为 true,并将 Data 发送为 false,以计算信标传递的概率。 所有统计数据都记录在上述项目中。

对于 flooding.cc 我更改了 onBeacon 函数来记录收到的信标

void Flooding::onBeacon(WaveShortMessage *wsm)
{
    // not used for this algorithm

    // statistics recording
       emit(beaconReceivedSignal, 1);
       stats->updateAllBeaconsReceived();
}

然后我想记录发送数据包的数量,所以我在这个文件 Mac1609_4.cc 中进行了更改(代码是这个文件的一部分,只是我更改的行)。

void Mac1609_4::handleSelfMsg(cMessage* msg) 
{ 
    DBG_MAC << "Sending a Packet. Frequency " << freq << " Priority" << lastAC << std::endl;
    sendDelayed(mac, RADIODELAY_11P, lowerLayerOut);
    statsSentPackets++;
    stats->updateAllpacketsent();
}

我的问题是关于统计数字。我需要方程的帮助来正确计算信标传递的概率。我使用了逼真的地图,当我运行项目并获得结果时,我不知道如何计算概率,我尝试占用部分区域(RoiRect)但我仍然有同样的问题,可能是我需要计算特定范围的概率还是我应该采取小区域,以获得准确的结果?

对于包含的结果,我停止了 36 个节点的模拟。 在此处输入图像描述

4

1 回答 1

0

这是因为发送信标的广播性质。
假设网络包含N个节点并且存在理想的传播条件,当一个节点发送一个信标包时,将被N-1个节点(即所有其他节点)接收。作为结果:

  • allSentBeacon = 1
  • allReceivedBeacon = N-1

顺便说一句:在这种情况下,交付率应定义为:
deliveryRatio = allReceivedBeacon / (allSentBeacon * (N-1))

于 2016-05-09T07:04:20.060 回答