![]() ![]() ![]() | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
yousuke | 投稿日時: 2006/12/12 12:49 |
新米 ![]() ![]() 登録日: 2006/11/14 居住地: 投稿: 4 |
複数の経路表を使い分ける方法について 複数の経路表を同一シミュレーション内で
使い分けるようなシミュレーションを作成したいと考えています。 例えば以下のトポロジにおいて ((.a.b)はIPアドレス192.0.a.bを示します。) .0.1 .1.1 +--1---+ | | .0.2 | | .1.2 2 3 .2.1 | | .3.1 | | +--4---+ .2.2 .3.2 4から1に行く経路は2通りあると思います。 デフォルトの経路表としてroute-staticに (経路表1) 4 N8-192.0.0.0 192.0.2.1 4 N8-192.0.1.0 192.0.3.1 と書いていますが、 (この経路表ですとデフォルトでは4→2→1の経路を使っていることは確認できました) 2-1間リンクがボトルネックリンクになった場合には (経路表2) 4 N8-192.0.0.0 192.0.3.1 4 N8-192.0.1.0 192.0.3.1 と書かれてある経路表を用いて4→3→1とトラヒックを流すように 考えています。 シミュレーション時間を30秒として、.appファイルに CBR 2 1 0 1000 0.0001S 10S 20S PRECEDENCE 0 CBR 4 1 0 1000 0.0001S 1S 30S PRECEDENCE 0 と記述されていたとき、 10s〜20sの間だけ、経路表2を用いるような設定は QualNetでは可能でしょうか? 自分でも調べてみたのですが、未熟者でして、どうにもわからず ここに書き込まさせて頂きました。 自分でもさらに調べてみますが、 おわかりの方いらっしゃいましたら、ご教授いただけると幸いです。 よろしくおねがいします。 |
gp | 投稿日時: 2006/12/12 15:03 |
新米 ![]() ![]() 登録日: 2005/12/2 居住地: 投稿: 13 |
Re: 複数の経路表を使い分ける方法について 引用:
10s〜20sの間だけ、経路表2を用いるような設定はQualNetでは可能でしょうか? 一見そうした仕組みはなさそうです。 また外部ファイルは初期化時に読み込まれるため、 シミュレーション途中でファイルを書き換えても適用されません。 以下は試したことがないので、もしかしたらできるかもという程度で読んでください。 XXX-FILEというパラメータ名で、configファイルにファイル名を設定しておけば、 ファイルの内容がキャッシュされてIO_ReadCachedFile()を用いて読み込むことができます。 その方法で経路変更後のファイルを読み込んでおき、途中で強制的にスタティックルートの初期化関数を呼び出して、変更後のファイルの内容で設定を上書きすればできるかもしれないと思いました。 うまくいかなければ、また面倒であればプロトコルを独自に作成することになると思います。 ちなみにsadさんの質問も同様の質問でしょうか。(ご存知なければ気にしないでください。) http://simweb.kke.co.jp/qualnet/forum/modules/newbb/viewtopic.php?forum=27&post_id=1160&topic_id=322#forumpost1160 |
yousuke | 投稿日時: 2006/12/13 12:47 |
新米 ![]() ![]() 登録日: 2006/11/14 居住地: 投稿: 4 |
Re: 複数の経路表を使い分ける方法について >gpさん
コメントありがとうございます。 途中でスタティックルートの初期化関数を呼び出すということですが、 今回の場合ですと、 10秒にスタティックルートを初期化し、経路表2を読み込む。 20秒に再びスタティックルートを初期化し、経路表1を読み込む。 と言うことになると思うのですが、 そういった、初期化関数などをシミュレーション途中に呼び出すような設定はconfigファイルに書いて実現できるのでしょうか? sadさんの質問も同じ質問のようですね。 別でスレッドをたててしまい申し訳ありませんでした。 |
gp | 投稿日時: 2006/12/13 14:23 |
新米 ![]() ![]() 登録日: 2005/12/2 居住地: 投稿: 13 |
Re: 複数の経路表を使い分ける方法について 初期化関数の呼び出しはやはりソースコードの中で行わないといけません。
送信前にシミュレーション時刻を取得して、10秒あるいは20秒を超えていたら初期化して送信するというイメージでした。 どちらにしてもソースコードを変更する必要はありますね。 時間があればアプリケーションレイヤやネットワークレイヤのソースを見ることをおすすめします。 |
yousuke | 投稿日時: 2006/12/14 11:57 |
新米 ![]() ![]() 登録日: 2006/11/14 居住地: 投稿: 4 |
Re: 複数の経路表を使い分ける方法について >gpさん
ありがとうございます。 アプリケーション層のstatic_routing.cpp ネットワーク層のroute_map.cpp あたりを見て、経路変更が可能かどうかを調査してみたいと思います。 |
yousuke | 投稿日時: 2006/12/19 19:36 |
新米 ![]() ![]() 登録日: 2006/11/14 居住地: 投稿: 4 |
Re: 複数の経路表を使い分ける方法について 自分でいろいろといじってみたのですが、
どうにもうまくいきません ![]() どなたか、経路表の切り替え方法をご存じでしたら ご教授お願いいたします。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |