You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Omnet++节点中嵌入多个Sink应用并区分不同类型数据包?

数据包统计需求

我们需要按源节点和数据包类型区分目标节点接收的数据包,具体统计要求如下:

SourceDestinationTypeCount
n1n5UdpBasicApp3
n1n5PingApp75
n2n5VoIPApp2
n2n6VoIPApp32
n1n7UdpBasicApp8

建议:可以在目标节点中使用多个Sink应用,每个应用对应一类需要区分的数据包


问题解答

1. 如何为每个节点配置使用多个Sink应用?

在OMNeT++的NED文件或INI配置文件中,直接为目标节点添加多个Sink应用实例即可,每个实例通过设置专属参数(如端口号、数据包过滤规则)匹配特定类型的数据包。

NED文件配置示例:

node n5 {
    gates:
        inout g[];
    submodules:
        udpSink: UdpSink {
            parameters:
                localPort = 1000; // 匹配UdpBasicApp的发送端口
        }
        pingSink: PingSink {
            parameters:
                // 利用PingApp专属的数据包标识做匹配
        }
        voipSink: VoIPSink {
            parameters:
                localPort = 2000; // 匹配VoIPApp的发送端口
        }
    connections:
        g++ --> udpSink.in;
        g++ --> pingSink.in;
        g++ --> voipSink.in;
}

INI文件配置示例:

**.n5.udpSink.localPort = 1000
**.n5.pingSink.display-name = "Ping接收Sink"
**.n5.voipSink.localPort = 2000

每个Sink应用会独立监听并统计匹配到的数据包,后续可通过OMNeT++的结果收集工具(如scalar)获取各Sink的接收计数。

2. 是否需要为每种类型的数据包分别嵌入一个Sink应用?

是的,需要为每种需区分统计的数据包类型单独配置对应的Sink应用。比如节点若要分别统计UdpBasicApp和VoIPApp类型的数据包,就得嵌入UdpSink和VoIPSink两个实例。

不同类型的数据包通常有专属标识(如端口号、协议字段、应用层标记),单个Sink很难同时精准区分多种类型并分别统计。每个Sink专注处理一类数据包,既能保证统计准确性,也便于后续结果分析和数据提取。


内容的提问来源于stack exchange,提问作者Maryam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.05 05:20:42