1

IPネットワークをシミュレートするシミュレーションを構築しています。簡単に言うと、ルーターに接続された 2 つのホスト ノードを使用しています。FlatNetworkConfigurator を使用して IP を割り当てました。一方、私の他の2つのホストは、以下のnedファイルに示すように「EtherHost」です

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;


}

しかし、私の質問は、パケットを生成するためにロジックをどこに追加する必要があるかということです。単純なモジュールから継承した tic と toc を変更すると、どうすれば IP パケットを生成できますか?

4

1 に答える 1

2

あなたはここで少し混乱しています。EtherHostを使用してRAWイーサネットフレームを生成できるため、ネットワークおよびトランスポート層プロトコルは存在しません。一方、ルーターはフレーム内にIPデータを必要とします。

TCP / IPトラフィックが必要な場合は、StandardHostを使用する必要があります。もちろん、StandardHostsにはイーサネットインターフェイスもあるので、それらのインターフェイスをケーブルで接続できます。IPが必要な場合は、EtherHostのことを忘れてください。

于 2013-01-31T19:41:27.190 に答える