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

パスワード:


パスワード紛失

新規登録
検索
メインメニュー
アクセスカウンター
2024/05/03:16/16
2024/05/02:19/23

2024/03/04より311/1375
人気モジュール
No.1: フォーラム 96
No.2: ニュース 3
No.3: QualNet概要 1
日曜日からの合計
人気Browser&OS
No.1:巡回ロボット84
No.2:Windows NT1

No.1:どっかの巡回ロボット81
No.2:Majestic-12巡回ロボット2
No.3:Safari1

日曜日からの合計
メイン
   Network Layer Settings: IP, QoS, Queuing & Scheduling
     特定のタイミングでパケットを破棄する方法について
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
kojima
投稿日時: 2007/4/25 14:14
新米
登録日: 2007/4/20
居住地:
投稿: 8
特定のタイミングでパケットを破棄する方法について
はじめまして

シミュレーションの途中で,ネットワーク層でのパケットドロップを意図的に発生させたいと考えていますが,どのようにすればよいでしょうか?
gaku
投稿日時: 2007/4/25 14:47
半人前
登録日: 2005/12/14
居住地:
投稿: 31
Re: 特定のタイミングでパケットを破棄する方法について
# バージョンが分からないので3.9.5をベースと仮定します。
# 他のバージョンでも命名規則とかは似ているので参考になると思います。
network.cpp に
NETWORK_ReceivePacketFromMacLayer
という関数があります。
これが、受信時のMACレイヤとのインタフェースとなっているはずなので、この関数の中あるいはここから呼ばれる処理のいずれか適切なところで、ドロップ処理を行えばよいと思います。

上記関数内でちょうど次のようなコードが実装されています。

// drop the packet due to IP version mismatch
MESSAGE_Free(node, msg);
return;

とても単純です・・・。Message捨ててるだけですね。
これをサンプルに処理を追加してみてはどうでしょうか。
kojima
投稿日時: 2007/4/25 15:08
新米
登録日: 2007/4/20
居住地:
投稿: 8
Re: 特定のタイミングでパケットを破棄する方法について
早速の返信ありがとうございます.

network.cppにドロップコードを追加すればいいというのはわかるんですが,「シナリオファイルでどのように指定したらいいのか.」がわからない状態です.
例えば,「シミュレーション開始後 10s で host1 の Queue にある先頭のパケットを破棄する」というようなシナリオを実現するにはどうしたらよいでしょうか?

私の説明不足でした.申し訳ありません.

引用:

gakuさんは書きました:
# バージョンが分からないので3.9.5をベースと仮定します。

4.0を使っています
gaku
投稿日時: 2007/4/25 16:03
半人前
登録日: 2005/12/14
居住地:
投稿: 31
Re: 特定のタイミングでパケットを破棄する方法について
まだよく意図が読み取れていないかもしれませんが、オリジナルのシミュレーションパラメータを追加したいということでしょうか。
例えばシミュレーション開始後10sの「10s」を設定値としてシミュレータに読み込ませたいということですか。

どのレベルまで理解されているか分かりませんが、普通にGUIを使用する場合は choices.xml に様々なプロパティの定義構文が記述されているのでこれを編集すればパラメータを追加できます。
もちろん読み込むところも実装しないといけないですが。

XMLの解説まではこの場でできませんが、例として適正位置に
<variable name="Drop Start" key="DROP-START-TIME" type="Time" default="10S" />
という構文を追加するとどこか(方針次第で決めてください)のプロパティに"Drop Start"が追加されることになります。
XMLを編集後にGUIを開きなおすと"Drop Start"がどこかに表示されるので時間を指定します。20Sにして保存をかけると
configファイルに
DROP-START-TIME 20S
という行が書き込まれるはずです。

あとはこのDROP-START-TIMEを読み込むところを実装すればいいのですが、ネットワークレイヤなら
NETWORK_Initialize
で実装されている内容が参考になるかと思います。
ここでいろいろパラメータを読み込んでいますので。
kojima
投稿日時: 2007/4/25 17:00
新米
登録日: 2007/4/20
居住地:
投稿: 8
Re: 特定のタイミングでパケットを破棄する方法について
丁寧な説明ありがとうございました.

大変参考になりました.
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ
Copyright c KOZO KEIKAKU ENGINEERING Inc. All Rights Reserved.
XOOPS Cube PROJECT