メイン QualNet General/Miscellaneous ノード機能の追加、処理について | 投稿するにはまず登録を |
題名 | 投稿者 | 日時 |
---|---|---|
ノード機能の追加、処理について | Mual | 2012/7/17 16:11 |
» Re: ノード機能の追加、処理について | hiro | 2012/7/17 17:38 |
Re: ノード機能の追加、処理について | Mual | 2012/7/19 13:46 |
Re: ノード機能の追加、処理について | hiro | 2012/7/21 17:38 |
フラット表示 | 前のトピック | 次のトピック |
投稿者 | スレッド |
---|---|
hiro | 投稿日時: 2012/7/17 17:38 |
長老 登録日: 2005/7/16 居住地: 投稿: 452 |
Re: ノード機能の追加、処理について 一言で回答するならば、できます。
簡単にできるかもしれませんし、 とても面倒なことになるかもしれませんが、 よほど特殊な処理でなければできます。 > 1.ノードのソースをいじり、作成したノードをシミュレーションで使用する。 まず、Nodeを構成しているソースを見つけて下さい。 沢山ありますので、どのレイヤの処理なのか決めて下さい。 > 2.リンクのRTTを指標にノードの処理をわける。 リンクとRTTは全く別の概念なので、 RTTを処理している部分を見つけて下さい。 > 3.任意のパケットに遅延を付加させる。 どのレイヤで遅延を付加するか決定して下さい。 以下は想像ですので外れていたらごめんなさい。。 TCPパケットのRTT(Round-Trip Time)の事であれば、 tcp_slowtimo という関数でt_rtt++ しています。 この t_rttを参照すればRTT別の処理が作れます。 遅延についてはMESSAGE_Sendで遅延を与えれば可能です。 遅延量(遅延を計算するのか、パラメタで与えるのか)を決定して下さい。 該当するレイヤのMESSAGE_Sendに遅延を付与して下さい。 次に、独自の処理を行わせるNodeと、通常のNodeを 見分ける方法を決めて下さい。 QualNetではある特定のNode専用のソースコードというものは 基本的にありません。 ソースコードで今何番のNodeの処理をしているのか、処理して いるNodeではこの処理を動かしてよいのかを常に判定します。 QualNetのほとんどの処理でNode構造体が引数になるのは、 この判定を行うためであり、個別のNode情報が格納されています。 .configファイルで指定することになると思うので、 .configファイル上のキーワードを決めて、 gui側でもそのキーワードが扱える用にして下さい。 改造個所に、独自ノードか否かの判定処理を追加して下さい。 これらの事は、QualNet-5.2-ProgrammersGuide.pdfに 詳しく記載されています。 まずは、QualNet全体を構成するソースコードの概要を把握 することを、強くお勧めします。 |
フラット表示 | 前のトピック | 次のトピック |