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

如何在OMNET++/INET中正确配置STP以消除广播风暴?

环形拓扑STP配置后仍存在广播问题排查

我搭建了环形拓扑(拓扑示意图如下):
拓扑示意图

为阻断环路、防止广播风暴,我配置了生成树协议(STP),以下是我的Network Description(NED)文件和Initialization(INI)文件:

NED文件

network testNet

    configurator: Ipv4NetworkConfigurator {
        parameters:
            @display("p=42,340;is=s");
    }

    switch1: EthernetSwitch {
        parameters:
            @display("p=221,149");
        gates:
            ethg[6];
    }
    switch2: EthernetSwitch {
        parameters:
            @display("p=290,240");
        gates:
            ethg[6];
    }
    switch3: EthernetSwitch {
        parameters:
            @display("p=385,149");
        gates:
            ethg[6];
    }
    switch4: EthernetSwitch {
        parameters:
            @display("p=303,42");
        gates:
            ethg[3];
    }
    // 创建9个终端节点
    host1: StandardHost {
        @display("p=99,72");
    }
    host2: StandardHost {
        @display("p=99,150");
    }
    host3: StandardHost {
        @display("p=99,259");
    }
    host4: StandardHost {
        @display("p=221,371");
    }
    host5: StandardHost {
        @display("p=364,371");
    }
    host6: StandardHost {
        @display("p=290,371");
    }
    host7: StandardHost {
        @display("p=520,61");
    }
    host8: StandardHost {
        @display("p=520,143");
    }
    host9: StandardHost {
        @display("p=520,259");
    }
connections allowunconnected:
    switch1.ethg[0] <--> Eth1G {  length = 100m; } <--> switch2.ethg[0];
    switch2.ethg[1] <--> Eth1G {  length = 100m; } <--> switch3.ethg[1];
    switch3.ethg[0] <--> Eth1G {  length = 100m; } <--> switch4.ethg[0];
    switch4.ethg[1] <--> Eth1G {  length = 100m; } <--> switch1.ethg[1];
    switch3.ethg[2] <--> Eth1G {  length = 100m; } <--> switch1.ethg[2];
    switch2.ethg[2] <--> Eth1G {  length = 100m; } <--> switch4.ethg[2];
    switch1.ethg[3] <--> Eth1G {  length = 100m; } <--> host1.ethg++;
    switch1.ethg[4] <--> Eth1G {  length = 100m; } <--> host2.ethg++;
    switch1.ethg[5] <--> Eth1G {  length = 100m; } <--> host3.ethg++;
    switch2.ethg[3] <--> Eth1G {  length = 100m; } <--> host4.ethg++;
    switch2.ethg[4] <--> Eth1G {  length = 100m; } <--> host5.ethg++;
    switch2.ethg[5] <--> Eth1G {  length = 100m; } <--> host6.ethg++;
    switch3.ethg[3] <--> Eth1G {  length = 100m; } <--> host7.ethg++;
    switch3.ethg[4] <--> Eth1G {  length = 100m; } <--> host8.ethg++;
    switch3.ethg[5] <--> Eth1G {  length = 100m; } <--> host9.ethg++;
}

INI文件(配置host1向host2发送UDP数据)

[General]
network = testNet
sim-time-limit = 400s
**.host*.numUdpApps = 1 
*.host1.numApps = 1
*.host1.app[0].typename = "UdpSourceApp"
*.host1.app[0].io.destAddress = "host2"
*.host1.app[0].io.localPort = 1000
*.host1.app[0].io.destPort = 1000
*.host1.app[0].source.packetLength = 1000B
*.host1.app[0].source.productionInterval = 100ms
*.host2.numApps = 1
*.host2.app[0].typename = "UdpSinkApp"
*.host2.app[0].io.localPort = 1000
**.switch*.hasStp = true
**.spanningTreeProtocol = "Stp"
**.switch*.eth[*].typename = "LayeredEthernetInterface"
**.switch*.ethernet.typename = "EthernetLayer"
**.switch*.eth[*].bitrate = 1Gbps
**.switch*.bridging.typename = "MacRelayUnit"
**.switch1.**.address="AAAAAA000001"
**.switch2.**.address="AAAAAA000002"
**.switch3.**.address="AAAAAA000003"
**.switch4.**.address="AAAAAA000004"

尽管完成上述配置,仍存在广播现象(示意图如下):
广播现象示意图

请问我的配置是否存在问题?恳请提供相关指导。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 20:44:53