ns-3快速上手-開發環境搭建篇(譯)
0 前言
在現代網絡通信技術的教學和科研中,迫切希望有一種先進的網絡仿真技術。在網絡模擬工具的研究和開發方面國內所做的工作較少,但是國外早已出現了很多研究成果和仿真工具,如ns-2、OMNet++、OPNET、GloMoSim、GTNetS、QualNet、Yans、NCTUNS、SSFNet、JiST和SimPy等。ns-3是在廣泛汲取現有優秀開源工具ns-2、GTNetS、Yans等技術經驗,摒棄現有工具的缺點開發出來的。最重要的是,ns-3基於GNU
GPLv2許可,相信在開源力量的推動下,ns-3一定會會更加強大。
本文寫作的目的就是藉此發揚開源精神,給相關從業人士提供儘可能多的相關知識。本文重點內容是ns-3的下載、編譯和安裝。所謂“條條大路通羅馬”,ns-3環境的搭建也是有多種可行之法,作爲開發新手,快速掌握其中的一種方法,並且過濾掉所謂的“高大上”之法,未必不是件好事。
1 準備工作
下面將準備工作總結爲一個小腳本,省時!
#!/bin/sh
# Copyright(C) 2016 Ruijie Network. All rightsreserved.
# ns-3setup
#
# setup ns-3 env on `Ubuntu14.04+ns-3.24.1`
# History
# v1.0.0 2016-02-22
# Create.
#
# Permanent effective QQ Group: 110205992, join inus to communicate with ns-3 and wireless.
sudo apt-get install gcc g++ python -y
sudo apt-get install gcc g++ python python-dev -y
sudo apt-get install qt4-dev-tools libqt4-dev -y
sudo apt-get install mercurial -y
sudo apt-get install bzr -y
sudo apt-get install cmake libc6-dev libc6-dev-x32 g++-multilib -y
sudo apt-get install gdb valgrind -y
sudo apt-get install gsl-bin libgsl0-devlibgsl0ldbl -y
sudo apt-get install flex bison libfl-dev -y
sudo apt-get install tcpdump -y
sudo apt-get install sqlite sqlite3 libsqlite3-dev-y
sudo apt-get install libxml2 libxml2-dev -y
sudo apt-get install libgtk2.0-0 libgtk2.0-dev -y
sudo apt-get install vtun lxc -y
sudo apt-get install uncrustify -y
sudo apt-get install doxygen grphviz imagemagick -y
sudo apt-get install texlive texlive-extra-utilstexlive-latex-extra texlive-font-utils dvipng -y
sudo apt-get install python-sphinx dia -y
sudo apt-get install python-pygraphviz python-kiwipython-pygoocanvas libgoocanvas-dev -y
sudo apt-get install libboost-signals-dev libboost-filesystem-dev -y
sudo apt-get install openmpi-bin openmpi-commonopenmpi-doc libopenmpi-dev -y
注意:支持python綁定生成修改,需要安裝如下的軟件包:apt-get install cmake libc6-dev libc6-dev-i386g++-multilib,但是ubuntu14.04系統源中未能發現軟件包libc6-dev-i386,於是使用libc6-dev-x32代替。如果系統缺少模塊所需的軟件包,會造成模塊安裝失敗。但是一般不會影響系統影響ns-3的主體和其他模塊的運行。
如果不需要某個模塊可以完全忽略不管這些依賴軟件包。突然發現自己越來越囉嗦啦,OVER!
2 下載ns-3
直接下載tar壓縮包(推薦使用,最簡單直接)
mkdir ns-3
cd ns-3
tar -jxvf ns-allinone-3.24.1.tar.bz2
cd ns-allinone-3.24.1/; ls
圖4 ns-allinone-3.24.1
cd ns-3.24.1; ls
圖5 ns-3.24.1
3 編譯安裝
1)使用build.py編譯
sudo ./build.py --enable-examples --enable-tests
2)使用waf編譯
一旦工程已經編譯過,就不能再使用build.py腳本
使用waf重新配置和編譯ns-3系統
./waf clean 清除先前配置編譯
./waf -d optimized --enable-examples--enable-tests configure 重新配置ns-3,優化編譯例子和測試
optimized參數,優化模式下默認是禁止ns-3特殊的日誌系統(logging),這樣導致運行的的結果不能再控制檯上顯示。因此,建議更改爲./waf -d debug
--enable-examples --enable-tests configure
./waf 正式編譯
4 測試
1)使用test.py測試
cd ns-3.24.1/
./test.py -c core 測試ns-3發行版是否編譯正確
圖7 測試ns-3編譯結果
2)運行腳本測試
sudo ./waf --run scratch-simulator
圖8 運行scratch-simulator
5 結語
最近家中網絡出現了問題,後續補上圖片(非工作時間)。計劃ns-3快速上手下一篇:用Eclipse IDE編譯ns-3工程,敬請期待!