1. 程式人生 > >NDN全棧: NDNsim (二):安裝

NDN全棧: NDNsim (二):安裝

最新的ndnsim已經更新到2.6版本了,這裡寫一個安裝指南

推薦使用ubuntu 16.04 LTS版本 64或32位皆可

**

一:依賴庫(先完成準備工作)

**

1.1 核心依賴(必須裝)

  • python >= 2.6
  • libsqlite3
  • libcrypto++
  • pkg-config
  • openssl
  • Boost libraries >= 1.54

在Ubuntu Linux下開啟命令列 輸入

sudo apt-get install build-essential libsqlite3-dev libcrypto++-dev libboost-all-dev libssl-dev git python-setuptools

然後回車,即可完成依賴庫安裝,有部分包can not fetched是正常的,這是因為GFW造成的。

**

1.2 NS-3 Python bindings 的依賴元件(視覺化必裝)

** 在Ubuntu Linux下開啟命令列 輸入

sudo apt-get install python-dev python-pygraphviz python-kiwi python-pygoocanvas python-gnome2 python-rsvg ipython

1.3 下載ndnsim原始碼

** ndnSIM包由三部分組成:

  • NS-3的自定義分支,包含一些有用的補丁
  • 一個自定義的python繫結生成庫(如果你想使用NS-3的python繫結和/或視覺化模組,則是必需的)
  • ndnSIM模組的原始碼
  • 修改了ndn-cxx庫和NDN轉發守護程序(NFD)的原始碼,作為git子模組附加到ndnSIM git儲存庫

開啟命令列 輸入

mkdir ndnSIM
cd ndnSIM
git clone https://github.com/named-data-ndnSIM/ns-3-dev.git ns-3
git clone https://github.com/named-data-ndnSIM/pybindgen.git pybindgen
git clone --recursive https://github.com/named-data-ndnSIM/ndnSIM.git ns-3/src/ndnSIM

最後一個命令下載所有子模組的ndnSIM原始碼和原始碼(即ndn-cxx和NFD)。 如果您以前克隆過沒有–recursive標誌(也就是clone下來的資料夾裡sub-module都是空的),則可以使用以下方法檢索正確版本的子模組:

git submodule update --init

**

1.4 編譯並執行ndnSIM

** ndnSIM使用標準的NS-3編譯過程。 通常,以下命令應足以配置和構建啟用了python繫結的ndnSIM:

cd <ns-3-folder>
./waf configure --enable-examples
./waf

1.5 使用ndnSIM進行模擬

**

  • 示例模擬場景 當NS-3配置了–with-examples標誌時,您可以直接執行本教程的示例部分中描述的所有示例。

例如,要執行ndn-simple.cpp場景,可以執行以下命令:

./waf --run=ndn-simple

要執行ndn-grid.cpp場景:

./waf --run=ndn-grid

要在啟用NS-3的日誌記錄模組的情況下執行示例模擬方案(請注意,這僅在NS-3以除錯模式編譯時才有效,也就是單純進行./waf configure 而不加 -d optimized):

NS_LOG=ndn.Producer:ndn.Consumer ./waf --run=<scenario name 如 ndn-simple>

如果你已經使用python繫結編譯,那麼你可以嘗試使用visualizer執行這些模擬(參見1.2):

./waf --run=ndn-simple --vis
  • 真實模擬實驗

模擬場景可以直接在scratch /或src / ndnSIM / examples資料夾中的NS-3內編寫。替代和推薦的方法是在單獨的儲存庫中編寫模擬方案,與NS-3或ndnSIM無關。 例如,您可以使用以下模板編寫擴充套件,模擬方案和度量標準處理指令碼: http://github.com/cawka/ndnSIM-scenario-template: 事實上,GitHub上已經有了兩個成熟的模板

分別是chronosync同步協議和ndn-ping,不久會更新關於這兩個模板的詳細內容,有興趣的讀者可以自行研究

mkdir ndnSIM
cd ndnSIM
git clone https://github.com/named-data-ndnSIM/ns-3-dev.git ns-3
git clone https://github.com/named-data-ndnSIM/pybindgen.git pybindgen
git clone --recursive https://github.com/named-data-ndnSIM/ndnSIM.git ns-3/src/ndnSIM

# Build and install NS-3 and ndnSIM
cd ns-3
./waf configure -d optimized
./waf

sudo ./waf install
cd ..

git clone https://github.com/named-data-ndnSIM/scenario-template.git scenario
cd scenario
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

./waf configure

./waf --run <scenario>