Japan QualNet Community Forums Japan QualNet Community Forums
Welcome Guest 
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
検索
メインメニュー
アクセスカウンター
2024/05/09:13/14
2024/05/08:22/25

2024/03/10より371/1383
人気モジュール
No.1: フォーラム 92
No.2: QualNet概要 6
日曜日からの合計
人気Browser&OS
No.1:巡回ロボット83
No.2:Linux3
No.3:Unknown OS1

No.1:どっかの巡回ロボット79
No.2:Safari3
No.3:Baidu巡回ロボット3

日曜日からの合計
メイン
   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全体を構成するソースコードの概要を把握
することを、強くお勧めします。
フラット表示 前のトピック | 次のトピック
Copyright c KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
XOOPS Cube PROJECT