17
JiST/SWANS 勉勉勉 - 勉勉勉勉勉勉勉勉勉勉 -

Jist swans勉強会

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Jist swans勉強会

JiST/SWANS 勉強会

- 紹介とその他もろもろ -

Page 2: Jist swans勉強会

JiST/SWANS とは?• JAVA in Simulation Time / Scalable Wireless Ad-

Hoc Network Simulator– Pure JAVA で作成されたネットワークシミュレータ– 大規模なシミュレーションが可能– メモリ消費量が少ない– 高速なシミュレーションを実現– イベント駆動型シミュレータ

• 現在の Version1.0.6– 開発は停止– 不具合を含む

Page 3: Jist swans勉強会

特徴など

• メモリの消費が少ない• 高速なシミュレーション• 大規模なネットワークに対応• Java で記述されているためシナリオ作成

が容易• シミュレータのソースが公開されている• 拡張が容易

Page 4: Jist swans勉強会

しかしいい事ばかりなはずはなく・・・

Page 5: Jist swans勉強会

欠点・・・

• 挙動が仕様通りか怪しい– 修正を施した物があるけど、元が中々曲者な

のでまだ残存する不具合はある

• コミュニティが無い– 開発自体が停止

• つまり今後の修正は見込めない– なのにコミュニティない

• 使用者が増加しているけど、まだまだ少ない

Page 6: Jist swans勉強会

欠点・・・• JiST/SWANS を使用した論文にも修正したとし

か記述がないので、公開された不具合情報も少ない

• 期待をこめて IETF の ML を覗いても質問者「未実装項目があるんですが」開発者「不具合なども含めてわれわれも修正を行っていますが、最終的には皆さんの

Lab で使いやすいように改変してね」俺涙目

• そもそもググルと自分の Blog が出てくるとか異常– しかも Google ランキング 2 位とか・・・– 公式の次ってなに??

Page 7: Jist swans勉強会

本当に使えるの???

• 欠点は修正されてきているので論文での使用にも耐えられる

• 現在も逐次修正中

Page 8: Jist swans勉強会

JiST/SWANS の中身

• OSI モデルに従った階層モデルを使用– 各層を 1 クラスとしインターフェイスを使用

した接続を行っている– 各層はモジュールの概念を持ち上・下階層の

インターフェイス規約に則れば層を自作可能• 自分の提案モデルに応じて追加• 基本は 3 層にルーティングアルゴリズムを実装

– 電波伝搬モデルもモジュール実装– パケットも単なるクラス– モジュールの集合体という認識でいればおk

Page 9: Jist swans勉強会

JiST/SWANS の中身

アプリケーション

トランスポート

ネットワーク

データリンク・物理

フィールド

空間

プレゼンテーション・セッション層は明確に存在しないデータリンク・物理層の明確なモジュール上での区別は無い

Page 10: Jist swans勉強会

JiST/SWANS の中身

• Log4J や jargs なども含む

• これが主要構成

Page 11: Jist swans勉強会

開発方法

• Eclipse 上で開発– Java ベースのフリーの IDE

• JiST/SWANS の NSL 版は NAS 上から取得

• 公式サイトからの DL はダメ

• 後は普通の Java のコーディング• Javadoc は公式サイト上に

Page 12: Jist swans勉強会

まずやること

• サンプルを動かす– src/driver にあるもの– ルーティングプロトコル自体は src/jist/swans/

route に

• サンプルソースの理解– 基本的に send/receive メソッドで上下に繋がって

いる– Eclipse の呼び出し元機能などを使えば大まかな

データの流れがわかる• Eclipse すげー

Page 13: Jist swans勉強会

その次にやる事

• 大まかな流れの理解が出来たら、早速何か作る– シナリオに各ノードの作成・各パラメータを

記述しそこから実行– driver に相当するもの– アプリケーションソフトと思えばおk

Page 14: Jist swans勉強会

開発の流れ

1. 提案方式を考案2. 実装方法を決定3. シミュレータに実装4. 実行5. デバッグ

• この繰り返し• デバッグ実行はこまめに行う事推薦

Page 15: Jist swans勉強会

デバッグの方向性

• 不具合の切り分け– JiST/SWANS 自体が大きなソフトなので、原因が自分のコードにあるのかシミュレータにあるのか切り分ける

– ここでシミュレータの理解が乏しいと苦しむ–流れがわかればある程度見通しがつく

Page 16: Jist swans勉強会

少し突っ込んだ話

• 詳しくは WEB は使えない・・・

• このシミュレータは書いたソースを内部でバイトコードレベルで書き換えている

• メソッド→エンティティと変換• イベント駆動に変更する事でシミュレーション時間上にイベントを配置する

• 再帰を行ってもヒープエラーなどにはならない

Page 17: Jist swans勉強会

下位層なんて・・・

• 理解しなくてもシナリオ書ける• そこは上手くモジュール化された恩恵

• しかし、下をしらないと思わぬところで足をすくわれるかも

• 下位層にも目を通すべき