2016-06-13 7 views
0

Omnet ++シミュレーションカーネルをアプリケーションに組み込み、私のシミュレーションにinetフレームワークを使用しています。私が抱えている問題は、魔法使いの時間にパケットが目的地に到着すると推定する必要があるということです。Omnet ++でパケットのETAを取得

だから、より具体的には、:H0とH1(inet.node.ethernet.EtherHost)という名前の2つのEtherHost、および1つのEtherSwitchという名前のスイッチ(inet.node.ethernet.EtherSwitch)があり、3は次のように接続されています

H0 < - > C < - >スイッチ< - > C < - > H1

Cは、データレート= 100Mbpsの遅延= 0.1usでDatarateChannelを意味します。 H0のEtherAppCliがH1にEtherAppReqを送信すると、そのパケットの転送中にEterAppReqパケットのETAを取得する必要があります。

私が最初に思ったのは、EtherLLCとEtherMACモジュールに追加されたEtherAppReqのカプセル化パッケージでしたが、これは私が思ったほどシンプルではありません。私はすべての常にカプセル化パッケージへのポインタを取得するか、間違っていますか?

また、パケットの途中転送のETAを取得する別の方法はありますか?

編集:私の目的は、次のモジュールで到着時刻が必要なだけなので、パケットがH0のmacモジュールにある場合は、スイッチのmacレイヤーに到着時刻が必要ですホップ)。あなたがcMessageを持っているときと同じように、あなたはメッセージにgetArrivalTime()を呼び出し、私が間違っていなければ到着時間の見積もりを得ることができます。

あらかじめご協力いただきありがとうございます。

答えて

0

パケットのETAを事前に取得することはできません。
パケットが到着する時間は、ホストおよびスイッチのキュー内の現在のパケット数、スイッチ内の処理時間、スイッチのCPU数、ホスト内のMAC層の処理時間など、多くの要因(実際のネットワークのような)によって異なります。したがって、パケットを送信する瞬間に、ホストまたはシミュレーション環境は、このパケットがいつ宛先ホストに到着するかわからない。。そこで、我々はモデルを準備し、シミュレーションを実行して今度はと測定し、いくつかの要因がその影響をどのように受けるかを学びます。

ところで、あなたの姿にはH1はありません。

+0

ありがとうございます!私は私のオリジナルの質問を編集した、私は次のモジュールで到着時間を取得する必要があり、全体の旅行のETAではありません。それを指定しないと申し訳ありません。 – phyratokar

関連する問題