ns-3とは

ns-3は研究や教育目的で開発された離散イベント駆動型のネットワークシミュレータです。ns-3のプロジェクトは2006年に始まり、オープンソースのプロジェクトとしてメーリングリストのメンバーによりベストフォワード型で開発が進められています。

ns-3はモデルとシミュレーションのエンジンで構成されています。 モデルはcsma、openflow、wifi、wimax、lteなどの有線と無線のモデルが存在します。 また、network、internet、coreなどの有線と無線のシミュレーションで共通で利用するパケット、IPアドレス、シミュレーションのイベントを処理するモデルも存在します。

ns-3は以下の特徴を持ちます。

  • C++とPythonで記述可能
  • Linuxをメインで開発(FreeBSD、Cygwin (for Windows)もサポート)

インストール方法

Windows環境で動かす為の準備

cygwinのダウンロード

  1. cygwinからダウンロード
    1. python、c++、gccを選択して導入

インストール方法の詳細を知りたい方は↓のリンクをクリックしてください。

cygwinのインストール方法の「Cygwinのインストール」をお読みください。

あると便利なパッケージ

  • qt、xorg-server: アニメーションを表示可能

Linux(Ubuntu 12.04)環境で動かす為の準備

必要なパッケージをインストール

sudo apt-get install gcc g++ python python-dev sqlite sqlite3 libsqlite3-dev
  • gcc、g++: C++コンパイル時に必要
  • python、python-dev: pythonコンパイル時に必要

あると便利なパッケージ

  • gdb: デバッグ可能
  • sqlite、sqlite3、libsqlite3-dev: SQLiteにシミュレーション結果を格納可能
  • mercurial: Mercurialのコマンドでns-3をダウンロード可能
  • tcpdump: tcpdumpでログを解析可能
  • gnuplot: gnuplotでグラフを作成可能
  • qt: アニメーションを表示可能

OS共通

ダウンロード

筆者らが開発しているモジュールでの動作が保障されているns-3.20のダウンロード方法を記載します。↓のURLをクリックしてください。

ns-3.20のダウンロード

ns-3.20をダウンロードできるページにいきます。「The latest ns-3.20 source code can be downloaded from here」と書かれている部分の「here」をクリックすることでns-3.20のプログラムである「ns-allinone-3.20.tar.bz2」のダウンロードが開始されます。

ビルド

例として、OSにLinuxを用いた場合のインストール方法を記載します。homeディレクトリに「ns-allinone-3.20.tar.bz2」を置いた場合について説明をしていきます。OSにWindowsやMACを用いた場合もインストール方法は同じです。

homeディレクトリに「ns-allinone-3.20.tar.bz2」を置きます。解凍するためにhomeディレクトリにて以下のコマンドを実行してください。

bzip2 -dc ns-allinone-3.20.tar.bz2 | tar xvf -

解凍が成功すると、homeディレクトリ以下に「ns-allinone-3.20」というディレクトリが生成されます。「ns-allinone-3.20」ディレクトリが生成されてことを確認した後に「ns-allinone-3.20/ns-3.20」に移動します。

cd ns-allinone-3.20/ns-3.20

「ns-allinone-3.20/ns-3.20」に移動した後、ビルドするために以下のコマンドを実行してください。ビルドにはpythonベースのビルド・コンパイル・インストールのためのフレームワークの「waf」を用います。「waf」はns-3をダウンロードしたフォルダに格納されているため、wafを準備する必要はありません。ビルドには数分時間がかかります。

./waf configure
./waf clean
./waf --build-profile=optimized --enable-examples --enable-tests configure
./waf

ns-3のモジュールが正しく動くことを確認するために、以下のコマンドを実行してください。

./test.py

  添付編集
Last-modified: 2014-12-28 (日) 17:54:27 (3617d)