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