Slide 1

Slide 1 text

JiST/SWANS勉強会 -‐‑‒  紹介とその他もろもろ  -‐‑‒

Slide 2

Slide 2 text

JiST/SWANSとは? •  JAVA  in  Simulation  Time  /  Scalable  Wireless  Ad-‐‑‒ Hoc  Network  Simulator –  Pure  JAVAで作成されたネットワークシミュレータ –  ⼤大規模なシミュレーションが可能 –  メモリ消費量量が少ない –  ⾼高速なシミュレーションを実現 –  イベント駆動型シミュレータ •  現在のVersion1.0.6 –  開発は停⽌止 –  不不具合を含む

Slide 3

Slide 3 text

特徴など •  メモリの消費が少ない •  ⾼高速なシミュレーション •  ⼤大規模なネットワークに対応 •  Javaで記述されているためシナリオ作成 が容易易 •  シミュレータのソースが公開されている •  拡張が容易易

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

⽋欠点・・・ •  挙動が仕様通りか怪しい – 修正を施した物があるけど、元が中々曲者な のでまだ残存する不不具合はある •  コミュニティが無い – 開発⾃自体が停⽌止 • つまり今後の修正は⾒見見込めない – なのにコミュニティない • 使⽤用者が増加しているけど、まだまだ少ない

Slide 6

Slide 6 text

⽋欠点・・・ •  JiST/SWANSを使⽤用した論論⽂文にも修正したとし か記述がないので、公開された不不具合情報も少 ない •  期待をこめてIETFのMLを覗いても 質問者「未実装項⽬目があるんですが」 開発者「不不具合なども含めてわれわれも修正を⾏行行っていますが、最終的には皆さんの Labで使いやすいように改変してね」 俺涙⽬目 •  そもそもググルと⾃自分のBlogが出てくるとか異異 常 –  しかもGoogleランキング2位とか・・・ –  公式の次ってなに??

Slide 7

Slide 7 text

本当に使えるの??? •  ⽋欠点は修正されてきているので論論⽂文での 使⽤用にも耐えられる •  現在も逐次修正中

Slide 8

Slide 8 text

JiST/SWANSの中⾝身 •  OSIモデルに従った階層モデルを使⽤用 – 各層を1クラスとしインターフェイスを使⽤用 した接続を⾏行行っている – 各層はモジュールの概念念を持ち上・下階層の インターフェイス規約に則れば層を⾃自作可能 • ⾃自分の提案モデルに応じて追加 • 基本は3層にルーティングアルゴリズムを実装 – 電波伝搬モデルもモジュール実装 – パケットも単なるクラス – モジュールの集合体という認識識でいればおk

Slide 9

Slide 9 text

JiST/SWANSの中⾝身 アプリケーション トランスポート ネットワーク データリンク・物理理 フィールド 空間 プレゼンテーション・セッション層 は明確に存在しない データリンク・物理層の明確なモ ジュール上での区別は無い

Slide 10

Slide 10 text

JiST/SWANSの中⾝身 •  Log4Jやjargsなども含 む •  これが主要構成

Slide 11

Slide 11 text

開発⽅方法 •  Eclipse上で開発 – JavaベースのフリーのIDE •  JiST/SWANSのNSL版はNAS上から取得 •  公式サイトからのDLはダメ •  後は普通のJavaのコーディング •  Javadocは公式サイト上に

Slide 12

Slide 12 text

まずやること •  サンプルを動かす –  src/driverにあるもの –  ルーティングプロトコル⾃自体はsrc/jist/swans/route に •  サンプルソースの理理解 –  基本的にsend/receiveメソッドで上下に繋がってい る –  Eclipseの呼び出し元機能などを使えば⼤大まかなデー タの流流れがわかる •  Eclipseすげー

Slide 13

Slide 13 text

その次にやる事 •  ⼤大まかな流流れの理理解が出来たら、早速何 か作る – シナリオに各ノードの作成・各パラメータを 記述しそこから実⾏行行 – driverに相当するもの – アプリケーションソフトと思えばおk

Slide 14

Slide 14 text

開発の流流れ 1.  提案⽅方式を考案 2.  実装⽅方法を決定 3.  シミュレータに実装 4.  実⾏行行 5.  デバッグ •  この繰り返し •  デバッグ実⾏行行はこまめに⾏行行う事推薦

Slide 15

Slide 15 text

デバッグの⽅方向性 •  不不具合の切切り分け – JiST/SWANS⾃自体が⼤大きなソフトなので、原 因が⾃自分のコードにあるのかシミュレータに あるのか切切り分ける – ここでシミュレータの理理解が乏しいと苦しむ – 流流れがわかればある程度度⾒見見通しがつく

Slide 16

Slide 16 text

少し突っ込んだ話 •  詳しくはWEBは使えない・・・ •  このシミュレータは書いたソースを内部でバイ トコードレベルで書き換えている •  メソッド→エンティティと変換 •  イベント駆動に変更更する事でシミュレーション 時間上にイベントを配置する •  再帰を⾏行行ってもヒープエラーなどにはならない

Slide 17

Slide 17 text

下位層なんて・・・ •  理理解しなくてもシナリオ書ける •  そこは上⼿手くモジュール化された恩恵 •  しかし、下をしらないと思わぬところで ⾜足をすくわれるかも •  下位層にも⽬目を通すべき