Ns3 によるシミュレーション 愛媛大学総合情報メディアセンター 佐々木隆志 @TakashiSasaki.

Slides:



Advertisements
Similar presentations
1 WSIF における Web サービス・メソッドの自動設 定 2004 年 3 月 23 日 越田高志 松江工業高等専門学校 情報工学科 電子情報通信学会 2004年総合 大会.
Advertisements

1 プリミティブ Web サービスの 入出力データに関する一考察 2005 年 3 月 21 日 松江工業高等専門学校 情報工学科 奈良先端科学技術大学院大学 情報科学研究科 越田高志 電子情報通信学会 2005年総合 大会.
統一メールアドレス 管理ページの使い方 ジュリナビ運営事務局. 統一メールアドレスとは 統一メールアドレス管理ページでできること 統一メールアドレス管理ページを開く(BASIC認証) 統一メールアドレスを新規発行する(1)(2) 登録者向けに一斉メールを配信する(1)(2)(3) 登録者情報をダウンロードする(1)(2)
Plone の使い方. とは 日本におけるオープンソース GIS ( FOSS4G) の活用を促進するための双方向の知識 ベース 最新の GIS および周辺ソフトウェアーの動 向、利用 方法、トラブルシューティング など実践的な情報を集め共有.
プラグイン作成講座 Control System Studio 3.0 Takashi Nakamoto
Trac と Eclipse の 便利な機能. プロジェクト管理システム: Trac 0. はじめに バージョン管理システム: Subversion 統合開発環境: Eclipse ・ Wiki による情報 管理 ・進捗状況の管理 ・プログラムの作 成 ・リポジトリに データを集める.
演習3 米澤研究室 発表2 山崎孝裕. 主な内容  分散動的サーバモデル(復習)  掲示板システムの問題点と仮定  掲示板システムの大まかな動き(細かい エラー処理は考慮しない)
InstallShieldLecture InstallShield でインストーラを作成する方法 ( 初級編 ) ソニーエンジニアリング 設計 3 部 1 課 齋藤佑輔.
管理者用の手順 使用環境により、 SaaS またはオンプレミスのパワーポ イント資料集を選択します。 ユーザ環境に適するように、赤色のテキストを編集しま す。編集後、テキストを白色に変更することをお勧めし ます。 このスライドを削除します。 ユーザが参照しやすいように、スライド ショーを PDF 形式で保存します。
OWL-Sを用いたWebアプリケーションの検査と生成
シーケンス図の生成のための実行履歴圧縮手法
モバイルエージェントシステムの実装 エージェント移動(状態とコードの一括移送) エージェント移動の特徴 システム構成 エージェントプログラム
IIS 4.0で開発をするコツ Webアプリケーション構築.
PROCESS 14:一般情報(2) InstallShieldLecture
JXTA Shell (3) P2P特論 (ソフトウェア特論) 第6回 /
IGD Working Committee Update
IEEE eにおける無線伝送速度の 変化に応じた最適なEDCAパラメータの設定
Mavenによる プロジェクト管理 近畿大学理工学部 情報学科3年  小野実.
WSDL と JAX-RPC 年10月13日 Webサービス II (第3回) WSDL と JAX-RPC 年10月13日.
ユースケース図 FM12012 比嘉久登.
キャンパスクラウドによる 実験環境の構築 情報ネットワーク特論 講義資料.
メールの利用 計算機実習室でThunderbird.
Al-Mailのインストールと使い方 インストール –1 (pop-authの設定、Al-Mailのインストール用ファイルをダウンロード)
侵入検知システム(IDS) 停止 IDS サーバへの不正アクセスが増加している
CHAPTER1 UMLとオブジェクト指向の基本概念(2)
TranSwitch:ネットワークフロー毎における最適な TCP への動的切替機構
MSBuild 色々出来るよ 2011/04/02 お だ.
AscVision & AvServer 映像情報配信表示システムは、展示施設等の大型ディスプレイ( プラズマディスプレ
Copyright Yumiko OHTAKE
東北大学金属材料研究所・材料分析研究コア・分析電顕室
ネストした仮想化を用いた VMの安全な帯域外リモート管理
リファクタリングのための 変更波及解析を利用した テスト支援ツールの提案
WSDL と JAX-RPC 年10月20日 Webサービス II (第4回) WSDL と JAX-RPC 年10月20日.
TA 高田正法 B10 CPUを作る 2日目 SPIMのコンパイル TA 高田正法
早稲田大学教育学部数学科 Team:そらまめ
アスペクト指向プログラミングを用いたIDSオフロード
概要 Boxed Economy Simulation Platform(BESP)とその基本構造 BESPの設計・実装におけるポイント!
ネットワークプログラミング 中村 修.
XNA Framework 2.0 SESSION 01.
識別子の命名支援を目的とした動詞-目的語関係の辞書構築
XNA Framework 2.0 SESSION 01.
暗黙的に型付けされる構造体の Java言語への導入
分散IDSの実行環境の分離 による安全性の向上
オーバレイ構築ツールキットOverlay Weaver
ユーザ毎にカスタマイズ可能な Webアプリケーションの 効率の良い実装方法
インターネットにおける真に プライベートなネットワークの構築
キャンパスクラウドによる 実験環境の構築 情報ネットワーク特論 講義資料.
10-1 SAXの概要 10-2 Saxプログラミングの基礎 10-3 saxのプログラム例
第7回 授業計画の修正 中間テストの解説・復習 前回の補足(クロックアルゴリズム・PFF) 仮想記憶方式のまとめ 特別課題について
クラウドにおけるIntel SGXを用いた VMの安全な監視機構
Webプロキシ HTTP1.0 ヒント CS-B3 ネットワークプログラミング  &情報科学科実験I.
JXTA Shell (1) P2P特論 (ソフトウェア特論) 第4回 /
メールの仕組みとマナー.
インタラクティブ・ゲーム制作 プログラミングコース 補足資料
IP over DVB-RCSの設計と実装
JXTA Shell (2) P2P特論 (ソフトウェア特論) 第5回 /
1-3 UMLの図(ダイアグラム) コンポーネント図 システムの物理的な構成を表現 ソフトウェアコンポーネントの依存性を表現
UMLの概要とオブジェクト指向の基本概念
gate登録システム: 設計ポリシーから使い方まで
★C++/オブジェクト指向実践企画★ Othelloゲーム作成
福岡工業大学 情報工学部 情報工学科 種田研究室 于 聡
トラフィックプロファイラAGURIの設計と実装
vc-3. ダンプリスト,配列 (Visual Studio C++ の実用知識を学ぶシリーズ)
プログラムの差分記述を 容易に行うための レイヤー機構付きIDEの提案
ユビキタスコンピューティングの ための ハンドオーバー機能付きRMIの実装
vc-1. Visual Studio C++ の基本操作 (Visual Studio C++ の実用知識を学ぶシリーズ)
vc-3. ダンプリスト,配列 (Visual Studio C++ の実用知識を学ぶシリーズ)
プログラム分散化のための アスペクト指向言語
異種セグメント端末による 分散型仮想LAN構築機構の設計と実装
Visual Studio 2013 の起動と プロジェクトの新規作成 (C プログラミング演習,Visual Studio 2019 対応) 金子邦彦.
Presentation transcript:

ns3 によるシミュレーション 愛媛大学総合情報メディアセンター 佐々木隆志 @TakashiSasaki

本日の内容 ns3 の概要 ソースコードの入手と初回ビルド方法 シミュレーションのサンプル シミュレーション作成上の各種テクニッ ク 独自コンポーネントの作成と組み込み – DifsWifiMac とヘルパーの作成 linux0.cc.ehime-u.ac.jp での利用 目標:新しい無線 MAC 層を実装できるように なる

ns-3 の概要 オブジェクト指向 – ネットワーク機器の各構成要素に対応するク ラス – C++ のソースコードで提供 – Python のラッパーも利用可 イベントドリブン型 – イベントの発生を事前にスケジュール – 事前定義したイベントが原因となりイベント 生成 – 生成されたイベントを再スケジュール

主要な構成要素 チャネル ノード NetDevice MAC PHY L3 L4 アプリケーショ ン ルーティング ノード NetDevice MAC PHY L3 L4 アプリケーショ ン ルーティング

ns-3 を構成するクラスの例 チャネル PHY MAC キューイング デバイス インターネット層 ルーティング・プロトコル アプリケーション Wi-Fi 通信の L2 以下に関わる構成要素 ノー ド デバイス チャネル

シミュレーションの流れ シナリオ作成: C++, Eclipse, Emacs ビルドと実行: make, waf ログ解析 – 定義済みログ – ユーザー定義ログ – PCAP 出力, tcpdump 可視化 – XML ログ, NetAnim

ns-3 のソースコード入手 /home/sasaki/ns-allinone-3.17.tar.bz2 tar zxvf で展開 最新のリリースは 3.18 最新のコードは hg(mercurial) で管理されている

waf Python で記述されたビルドツール

./waf configure

./waf build

./waf check テストシナリオを実行し正しい結果と照 合 中略 失敗したテストスートが無いことを確 認

ns3 のディレクトリ構成 サンプルコード集 既存のコンポーネントを使ったシ ミュレーションについて参考にな る。 自分で作ったシミュレーションの コードはこのディレクトリの中に 配置する。 既存のコンポーネントについての コードは全てこの中に入っている。 ビルド中にはここに一旦コードが 集められてコンパイルされる。

build 以下 自分で作ったコード はここに一旦コピー されてビルドされる。 ヘッダファイルは ここに集められる

src 以下 ns3 でモデル化された構成要素 は全て C++ のクラスとして表現 model と helper クラス AbcDef – abc-def.h クラス定義、メソッド 宣言 – abc-def.cc メソッド定義 クラス AbcDefHelper – あるコンポーネントを別のコン ポーネント群全てに次々とイン ストールするためのクラス

シミュレーションの実行./waf --run シナリオ名(拡張子.cc 除く) 例) examples/tcp/star.cc の実行

Pcap ファイルの表示 libpcap 互換、 tcpdump で表示可能 3-way ハンドシェイ ク

examples/tcp/star.cc

デバイス チャネル ヘルパー プロトコルスタックの組み 込み アドレスの割当 受信ソケット 送信アプリケーショ ン

神の視点からルーティン グテーブル組み込み ApplicationContainer に 8 個のアプリケーショ ンをまとめているので一括指定可能

dumbbell-animation NetAnim はインストール済み( NetAnim& で実 行)

dumbbell-animation.cc

アニメーショント用 XML ログの生成を指 定 指定したほうが見栄えが良 い。

grid-animation

自作のシナリオは scratch 下 前述のとおり../waf --run で実行

コールバック関数 ソケットが受信動 作をした時のコー ルバック関数 スケジューラから特定時 刻にコールバックされる ことでパケットを送信す る関数 WiFi の物理層がフレームを受信 したときのコールバック関数 WiFi の物理層がフレームを受信 失敗したときのコールバック関 数

コマンドラインパラメータ シミュレーションにはコマン ドラインパラメータを与える ことができる。定義してから パース。

アトリビュートのデフォルト値 アトリビュートのデフォル ト値を予め設定できること もできる。

無線チャネル 電波の伝播はチャネル として設定。アンテナ とチャネルの関連付け。

オブジェクトファクトリ ns3 には C++ の静的 なクラス機構に加 えて独自の動的な クラス機構がある。 これにより動的な コンポーネントの 追加やスマートポ インタを実現して いる。通常意識す る必要はないが、 細かい使い方をす るためにはオブ ジェクトファクト リを直接使う場合 もある

ヘルパーを使わない方法 複数ノードや複数デバイス への MAC や PHY の組み込みに は通常はヘルパーをクラス 使うが、個別に行う方法も 知っておくとよい。

ノードの位置 ノードの位置の指定 L4 でのソケット。あえて TypeId からソケットを生 成する方法をとってみた。 コールバック関数の設 定

パケットの送信予約 特定の時刻にコール バック関数を呼び出 すことができる。

無線物理層へのアクセス 無線物理層に直接ビー コンなどを出すために は WifiPhy を直接使う。 ここではシミュレーションをクラスとして表現して みた。

無線物理層への送出

無線物理層からの受信

シミュレーションパラメータのク ラス化 シミュレーションに与 えるパラメータが多い 時にはクラス化すると 便利。

フロー ID の利用 フロー ID を付けてパケッ トを識別することもでき る。

送受信ゲイン

エラーモデル どの程度電波が減衰すればど のようなビットエラーがおき るかのモデルを与えることも できる

シミュレーションクラスの完成

独自の MAC 層の設計 独自の MAC 層など新コンポーネントの開 発 例 DIFS ( DCF Interframe Space )期間を任意 に設定できる MAC 層 ns3 では IEEE802.11e の AIFS として表現 – AC_VO, AC_VI, AC_BE, AC_BK or QoS 無し IEEE 準拠マルチホップ無線 LAN におけるスループット不公平性の解析 笠原 正治, 2007

Github で公開中

difs-wifi-mac.h AdhocWifiMac を継承 ns3 のクラス機構に参加さ せるにはこのメソッドが必 要 AdhocWifiMac→RegularWifiMac→WifiMac で 定義されている。大まかな設定終了後に呼 び出される仮想関数。ここでやりたい放題。

ns3 のクラス機構への登録 名前空間はちゃんと指定するこ と。グローバル名前空間厳禁。 ns3 のクラス機構への登録

新規タイプ ID の定義

DIFS とコンテンションウィンドウ幅の再 設定 AIFS を使わない場合は、特別なクラス AC_BE_NQOS として扱う。内部的にも QoS な しのキューに入れられる。 AIFS はスロット数として指定する。 AIFS が導入される前のデフォルト値は 2 。

主要な規格の EIFS など

主要な規格の AIFS と CW

DifsWifiMacHelper (1) ヘルパークラスも作って おくと既存のコンポーネ ントと簡単に交換可能。

DifsWifiHelper (2)

DifsWifiMac の使い方 AdhocWifiMac と完 全互換なので一行 の書き換えだけで 完了

linux0 へのログイン リモートデスクトップ SSH Chrome の Secure Shell 拡張 Cygwin, PuTTY, Tera Term アカウントは修学支援システムなどと同じく愛媛大学アカウ ント

リモートデスクトップによるロ グイン 愛媛大学情報基盤システム利用 アカウント申請書により申請し ていただくことでアカウントを 発行します。

linux0 のデスクトップ Cent OS gnome CentOS 6.4 + GNOME Desktop ターミナル(仮 想端末)は良く 使う。

linux0 のスペック RAM 70GB 24 cores

Eclipse によるコードの編集 ビルドツール waf を直接 Eclipse か ら容易に使うことはできないが、 CDT プロジェクトとして構成すれ ば編集やコード補完には使うこ とができる。保管のためにイン クルードパスを適切に設定する 必要がある。