jist swans勉強会
DESCRIPTION
TRANSCRIPT
JiST/SWANS 勉強会
- 紹介とその他もろもろ -
JiST/SWANS とは?• JAVA in Simulation Time / Scalable Wireless Ad-
Hoc Network Simulator– Pure JAVA で作成されたネットワークシミュレータ– 大規模なシミュレーションが可能– メモリ消費量が少ない– 高速なシミュレーションを実現– イベント駆動型シミュレータ
• 現在の Version1.0.6– 開発は停止– 不具合を含む
特徴など
• メモリの消費が少ない• 高速なシミュレーション• 大規模なネットワークに対応• Java で記述されているためシナリオ作成
が容易• シミュレータのソースが公開されている• 拡張が容易
しかしいい事ばかりなはずはなく・・・
欠点・・・
• 挙動が仕様通りか怪しい– 修正を施した物があるけど、元が中々曲者な
のでまだ残存する不具合はある
• コミュニティが無い– 開発自体が停止
• つまり今後の修正は見込めない– なのにコミュニティない
• 使用者が増加しているけど、まだまだ少ない
欠点・・・• JiST/SWANS を使用した論文にも修正したとし
か記述がないので、公開された不具合情報も少ない
• 期待をこめて IETF の ML を覗いても質問者「未実装項目があるんですが」開発者「不具合なども含めてわれわれも修正を行っていますが、最終的には皆さんの
Lab で使いやすいように改変してね」俺涙目
• そもそもググルと自分の Blog が出てくるとか異常– しかも Google ランキング 2 位とか・・・– 公式の次ってなに??
本当に使えるの???
• 欠点は修正されてきているので論文での使用にも耐えられる
• 現在も逐次修正中
JiST/SWANS の中身
• OSI モデルに従った階層モデルを使用– 各層を 1 クラスとしインターフェイスを使用
した接続を行っている– 各層はモジュールの概念を持ち上・下階層の
インターフェイス規約に則れば層を自作可能• 自分の提案モデルに応じて追加• 基本は 3 層にルーティングアルゴリズムを実装
– 電波伝搬モデルもモジュール実装– パケットも単なるクラス– モジュールの集合体という認識でいればおk
JiST/SWANS の中身
アプリケーション
トランスポート
ネットワーク
データリンク・物理
フィールド
空間
プレゼンテーション・セッション層は明確に存在しないデータリンク・物理層の明確なモジュール上での区別は無い
JiST/SWANS の中身
• Log4J や jargs なども含む
• これが主要構成
開発方法
• Eclipse 上で開発– Java ベースのフリーの IDE
• JiST/SWANS の NSL 版は NAS 上から取得
• 公式サイトからの DL はダメ
• 後は普通の Java のコーディング• Javadoc は公式サイト上に
まずやること
• サンプルを動かす– src/driver にあるもの– ルーティングプロトコル自体は src/jist/swans/
route に
• サンプルソースの理解– 基本的に send/receive メソッドで上下に繋がって
いる– Eclipse の呼び出し元機能などを使えば大まかな
データの流れがわかる• Eclipse すげー
その次にやる事
• 大まかな流れの理解が出来たら、早速何か作る– シナリオに各ノードの作成・各パラメータを
記述しそこから実行– driver に相当するもの– アプリケーションソフトと思えばおk
開発の流れ
1. 提案方式を考案2. 実装方法を決定3. シミュレータに実装4. 実行5. デバッグ
• この繰り返し• デバッグ実行はこまめに行う事推薦
デバッグの方向性
• 不具合の切り分け– JiST/SWANS 自体が大きなソフトなので、原因が自分のコードにあるのかシミュレータにあるのか切り分ける
– ここでシミュレータの理解が乏しいと苦しむ–流れがわかればある程度見通しがつく
少し突っ込んだ話
• 詳しくは WEB は使えない・・・
• このシミュレータは書いたソースを内部でバイトコードレベルで書き換えている
• メソッド→エンティティと変換• イベント駆動に変更する事でシミュレーション時間上にイベントを配置する
• 再帰を行ってもヒープエラーなどにはならない
下位層なんて・・・
• 理解しなくてもシナリオ書ける• そこは上手くモジュール化された恩恵
• しかし、下をしらないと思わぬところで足をすくわれるかも
• 下位層にも目を通すべき