ns-3におけるWiFiモジュール †ns-3のWiFIモジュールはIEEE 802.11a/b/g/nに対応した無線通信のモジュールです。インフラストラクチャとアドホックネットワークの両方に対応しています。ApWifiMac、StaWifiMacを利用することでAP(アクセスポイント)とSTA(ステーション)のネットワークを構築できます。AdhocWifiMacを利用することでアドホックネットワークを構築できます。 トランスポート層のプロトコル †
ネットワーク層のプロトコル †
MAC層のプロトコル †アクセス制御方式
レートコントロール
物理層 †変復調方式
エラーモデル
Nist and Yans Error Rate Model ns-3のWiFiモジュールのチュートリアル †wifiモジュールを用いたシミュレーションを動かすためのmain関数の作成、シミュレーションの実行方法について記載します。 公式サイトのマニュアルのStatistical Frameworkの内容を基に、シミュレーションを実行するために必要なことを説明します。 アプリケーション層のプログラムとしてJoe Kopenaさんの作成したSenderとReceiverのプログラムを利用します。 説明する内容 †図1: トポロジ
解説資料 †実行方法 †前提として、homeディレクトリにns-3.20をインストールしてあり、「ns-allinone-3.20」がhomeディレクトリに存在するものとします。インストール方法は↓を参考にしてください。 ※ sqlite3がインストールされていない場合は動作しませんのでご注意ください。 ↓のURLから、「Wifi.zip」をダウンロードしてください。 ダウンロードした「Wifi.zip」フォルダをhomeディレクトリに置きます。「Wifi.zip」フォルダを解凍するために以下のコマンドを実行してください。 unzip Wifi.zip 「Wifi.zip」の解凍に成功すると、homeディレクトリに「Wifi」ディレクトリが生成されます。生成された「Wifi」ディレクトリをns-3で実行可能なディレクトリに移動するために、以下のコマンドを実行してください。 mv Wifi/ ns-allinone-3.20/ns-3.20/scratch/ 「Wifi」ディレクトリに移動します。 cd ns-allinone-3.20/ns-3.20/scratch/Wifi/ をWifiディレクトリないのプログラムをビルドするために、以下のコマンドを実行します。 ./waf 「./waf: 許可がありません」と表示された場合は、以下のコマンドを実行して「waf」に実行権限を与えてからもう一度、上記コマンドを試してみて下さい。 chmod 755 waf 以上でシミュレーションの実行に必要な準備が整いました。シミュレーションの実行には「waf」を用います。 ./waf --run "Wifi" とすることでデフォルトの設定(ノード間の距離が 90 [m]の場合)でシミュレーションを実行することが可能です。 Wifiディレクトリ内に「sim-script.sh」「sim-db.sh」を用意しました。「sim-script.sh」はノード間の距離とランダムシードを変えてシミュレーションを行い、その結果をSQLiteのフォーマットで「data.db」に書き込むスクリプトファイルです。ランダムシードの数は10です。「sim-db.sh」は「data.db」内に保存されたデータを距離で集約して,集約した結果を「distance.data」に書き込むためのスクリプトファイルです。下記のコマンドを実行することで、ノード間距離を変化させた場合のパケットの受信率が「distance.data」に書き込まれます。 sh sim-script.sh sh sim-db.sh ↓の図は「sim-script.sh」と「sim-db.sh」を実行した際のコマンドラインへの出力です。 既に「data.db」が存在する場合は、「Kill data.db? (y/n)」が表示されます。data.dbを削除する場合は'y'をタイプしてエンターキーを押してください。data.dbを削除しない場合は、'n'をタイプしてエンターキーを押してください。 参考文献 †ns-3のWiFiモジュール詳細 †wifiモジュールについてプログラムの中身を説明していきます。 公式サイトのWifiのマニュアルにモジュールの概要は載っておりますので、モジュールの概要は省き、wifiモジュールのプログラムを関数レベルで説明します。 物理層のクラスとしてYansWifiPhy,YansWifiChannelを用いて説明します。また、簡略化のため、QOS制御については省いて説明をします。 説明する内容 †図2: トポロジと設定
解説資料 † |