whatis ndnSIM?
- NDN(CCN)で利用されているシミュレータ
- NS3(Network Simulator 3)上で動作。
ndnSIM 2.1関係のドキュメント
- Doxygen: https://ndnsim.net/2.1/doxygen/
NFD-0.3.4-ndnSIM
- Mon May 4 12:56:48 2015 -0700のやつ
- https://static.eric-lightning.info/Docs/nfd/0.3.4/doxygen/
- DevGuide: Rev4
ns3.23-dev-ndnSIM-2.1
依存関係
sudo apt install python libsqlite3-dev libcrypto++-dev libboost-all-dev
設定とコンパイル
# ns-3のディレクトリにwafがある.
cd ns-3
######################
# 設定(初回のみ)
./waf configure --enable-example
#####################
# コンパイル(2回目以降は変更箇所のみ)
./waf
# 基本,ソースコードの変更 -> ./waf -> ソースコードの変更 -> ./waf ....
# で,コンパイルが通るか,確認する.
# --------------------------------
# 下記の「シミュレーション実行」を参考にシナリオを実行して,シミュレーションを実行する.
# ---------------------------------
###############################
# 全て,コンパイルしなおす場合
# コンパイルしたものを全て消して
./waf clean
# 設定しなおして
./waf configure --enable-examples
# 全部コンパイルしなおす
./waf
シミュレーション実行
# ns-3/src/ndnSIM/examples/ndn-simple.cppのシナリオを実行
./waf --run "ndn-simple"
# パラメータがある場合
./waf --run "ndn-simple --DATA_RATE=1Mbps"
メモ
ディレクトリ構造
ns-3
├── bindings
├── build .... コンパイルしたもの。
├── doc
├── examples ... NS3のシナリオ(ndnSIMではない)
├── src
│ ├── ndnSIM(ndnSIMのディレクトリ)
│ │ ├── NFD(転送関連をつかさどる、NDN FORWARDING DAEMON)
│ │ │ ├── contrib
│ │ │ ├── core
│ │ │ ├── daemon
│ │ │ │ ├── face
│ │ │ │ ├── fw(転送関係の処理、forwarder.cpp)
│ │ │ │ ├── mgmt
│ │ │ │ └── table(各種テーブル)
│ │ │ ├── docs
│ │ │ ├── rib
│ │ │ ~~
│ │ ├── apps
│ │ │ └─ 送信要求のConsumerと返送のProducer
│ │ ├── examples(シナリオファイル)
│ │ ├── helper(ヘルパー、シナリオファイルで使うHelperのプログラム)
│ │ ├── model
│ │ │ └── cs(キャッシング)
│ │ │ └── custom-policies
│ │ ├── ndn-cxx(NDNのツール群)
│ │ │ └── src
│ │ │ └── data,interest,link,name,face...(データに情報入れて返送する)
│ │ │
| | |
| | |
| | |
│ │ └── utils
│ │ ├── ndn-fw-hop-count-tag.[h|c]pp ... インタレストにタグの情報を入れて送信する.
│ │ ├── topology
│ │ ├── tracers
│ │ └── trie
│ │ ├── LFU
│ │ ├── ONE
│ │ ├── TWICE
│ │ ~~
│ ├── network
│ ├── openflow
│ ├── point-to-point
│ ~~(そのほか、いろいろ)
├── utils
│ └── lcov
└── waf-tools