如何在OMNET ++中使用EtherHost

时间:2013-01-22 08:43:05

标签: routing omnet++

我正在建立一个模拟IP网络的模拟。简单地说,我使用两个与路由器连接的主机节点。我使用FlatNetworkConfigurator来分配IP。而我的另外两个主机是“EtherHost”,如下面的ned文件所示

package swtichtest.simulations;
import swtichtest.Txc;
import inet.nodes.inet.Router;
import inet.nodes.inet.StandardHost;
import inet.nodes.ethernet.EtherHost;
import inet.nodes.ethernet.EtherSwitch;
import ned.DatarateChannel;
import inet.networklayer.autorouting.ipv4.FlatNetworkConfigurator;


channel cable extends DatarateChannel
{
parameters:
    delay = 0.1us;
    datarate = 100Mbps;
}

network Tictoc
{
@display("bgb=539,141");
submodules:
    tic: EtherHost {
        @display("p=291,114");
    }
    toc: EtherHost {
        @display("p=401,33");
    }
    Rout: Router {
        @display("is=s;p=173,25");
    }
    configurator: FlatNetworkConfigurator {
        @display("p=22,25");
    }
connections:
    Rout.ethg++ <--> cable <--> tic.ethg;
    Rout.ethg++ <--> cable <--> toc.ethg;


}

但我的问题是我应该在哪里添加逻辑以生成数据包。如果我改变了从简单的moudule继承的my tic和toc,那我怎么能生成IP包?

1 个答案:

答案 0 :(得分:2)

你在这里有点困惑。 EtherHost可用于生成RAW以太网帧,因此不存在网络和传输层协议。另一方面,路由器需要帧内的IP数据。

如果您需要TCP / IP流量,必须使用StandardHost。当然,StandardHosts也有以太网接口,因此您可以使用电缆连接这些接口。如果您需要IP,请忘记EtherHost。