Omnet++ 计算每条链路的丢包数和整个网络中的总丢包数

Omnet++ 计算每条链路的丢包数和整个网络中的总丢包数,omnet++,Omnet++,我是Inet/Omnet++新手,希望计算无线网络中每个链路的丢包率。显然,不考虑接收目标地址与节点不匹配的数据包。我假设我必须使用这个公式: 数据包丢失率=TotalostPackets/SentPackets 如何在omnet++中计算每条链路的丢包率(链路的两侧都在彼此的传输范围内)和整个网络中丢包的总和? 我的文件是: import inet.networklayer.configurator.ipv4.Ipv4NetworkConfigurator; import inet.node.

我是Inet/Omnet++新手,希望计算无线网络中每个链路的丢包率。显然,不考虑接收目标地址与节点不匹配的数据包。我假设我必须使用这个公式:

数据包丢失率=TotalostPackets/SentPackets

如何在omnet++中计算每条链路的丢包率(链路的两侧都在彼此的传输范围内)和整个网络中丢包的总和? 我的文件是:

import inet.networklayer.configurator.ipv4.Ipv4NetworkConfigurator;
import inet.node.inet.AdhocHost;
import inet.physicallayer.ieee80211.packetlevel.Ieee80211ScalarRadioMedium;
import inet.visualizer.contract.IIntegratedVisualizer;

network Net80211
{
    parameters:
        int numHosts;
        @display("bgb=650,450;bgi=background/terrain");
    submodules:
        visualizer: <default("IntegratedCanvasVisualizer")> like IIntegratedVisualizer if hasVisualizer() {
            parameters:
                @display("p=640,15;is=s");
        }
        configurator: Ipv4NetworkConfigurator {
            parameters:
                @display("p=640,112;is=s");
        }
        radioMedium: Ieee80211ScalarRadioMedium {
            parameters:
                @display("p=638,56;is=s");
        }
        host[numHosts]: AdhocHost {
            parameters:
                @display("r=,,#707070;p=300,200;is=s");
        }
}
导入inet.networklayer.configurator.ipv4.Ipv4NetworkConfigurator;
导入inet.node.inet.AdhocHost;
导入inet.physicalayer.ieee80211.packetlevel.Ieee80211ScalarRadioMedium;
导入inet.visualizer.contract.IIntegratedVisualizer;
网络80211
{
参数:
int numHosts;
@显示(“bgb=650450;bgi=背景/地形”);
子模块:
可视化工具:如IIntegratedVisualizer,如果hasVisualizer()的话{
参数:
@显示(“p=640,15;is=s”);
}
配置程序:Ipv4NetworkConfigurator{
参数:
@显示(“p=640112;is=s”);
}
无线媒体:IEEE801无线媒体{
参数:
@显示(“p=638,56;is=s”);
}
主机[numHosts]:附加主机{
参数:
@显示(“r=,,#707070;p=300200;is=s”);
}
}

如何定义无线网络的“TotalOstPackets”?让我们假设网络包含四个节点。当节点1发送分组时,例如节点2和3(靠近发送方)可以接收到该分组,但是节点4(远离)没有接收到该分组。对于这个示例,SentPackets=1,但是什么值应该有TotalOstPackets?在您的示例中,有四个节点,例如n1、n2、n3和n4。假设n1想要向n4发送50个数据包。假设n2和n3在n1的传输范围内,n4不在n1的传输范围内。如果n4接收到这50个数据包中的47个数据包,则丢弃3个数据包。到目前为止,丢弃数据包的总数是3。如果n2希望将26个数据包发送至n3,但在这26个数据包中接收到24个数据包,则丢弃的数据包计数为2,此网络中丢弃的数据包总数为3+2=5,因此TotalOSTPACKTS=5。您是否意识到这种方式的数据包丢失率可能大于1.0?例如,当节点n1发送50个数据包,n2只接收10个(即40个丢失),n3接收10个(即40个丢失),TotalostPackets=80,SentPackets=50,因此数据包丢失率=1.6。感谢您的帮助,您是对的,公式被更正为“PacketLossRatio(source,destination)=1-destination中的ReceivedPacketCount/SentPacketCount by source”并且是为一对“源和目的地”定义的,在我之前的注释中的示例中,源是n1,目的地是n4。所以PacketLossRatio(n1,n4)=1-47/50=0.06。在您的示例中,PacketLossRatio(n1,n2)=1-10/50=0.8。另外,我还有一个问题,如何在omnet++中记录丢包的原因?INET包含许多现成的示例。查看示例/adhoc/ieee80211,启动模拟,然后在结果分析器中,您可能会发现以下标量:packetDropQueueOverflow、packetRemoved、packetDropDuplicateDetected、packetDropRetryLimitReached、packetDropNotAddressedToUs。如何定义无线网络的“TotalostPackets”?让我们假设网络包含四个节点。当节点1发送分组时,例如节点2和3(靠近发送方)可以接收到该分组,但是节点4(远离)没有接收到该分组。对于这个示例,SentPackets=1,但是什么值应该有TotalOstPackets?在您的示例中,有四个节点,例如n1、n2、n3和n4。假设n1想要向n4发送50个数据包。假设n2和n3在n1的传输范围内,n4不在n1的传输范围内。如果n4接收到这50个数据包中的47个数据包,则丢弃3个数据包。到目前为止,丢弃数据包的总数是3。如果n2希望将26个数据包发送至n3,但在这26个数据包中接收到24个数据包,则丢弃的数据包计数为2,此网络中丢弃的数据包总数为3+2=5,因此TotalOSTPACKTS=5。您是否意识到这种方式的数据包丢失率可能大于1.0?例如,当节点n1发送50个数据包,n2只接收10个(即40个丢失),n3接收10个(即40个丢失),TotalostPackets=80,SentPackets=50,因此数据包丢失率=1.6。感谢您的帮助,您是对的,公式被更正为“PacketLossRatio(source,destination)=1-destination中的ReceivedPacketCount/SentPacketCount by source”并且是为一对“源和目的地”定义的,在我之前的注释中的示例中,源是n1,目的地是n4。所以PacketLossRatio(n1,n4)=1-47/50=0.06。在您的示例中,PacketLossRatio(n1,n2)=1-10/50=0.8。另外,我还有一个问题,如何在omnet++中记录丢包的原因?INET包含许多现成的示例。查看示例/adhoc/ieee80211,开始模拟,然后在结果分析器中,您可能会发现以下标量:packetDropQueueOverflow、packetRemoved、packetDropDuplicateDetected、packetDropRetryLimitReached、packetDropNotAddressedToUs。