ns-3快速上手-開發環境搭建篇(譯)

ns-3快速上手-開發環境搭建篇(譯)

前言

在現代網絡通信技術的教學和科研中,迫切希望有一種先進的網絡仿真技術。在網絡模擬工具的研究和開發方面國內所做的工作較少,但是國外早已出現了很多研究成果和仿真工具,如ns-2OMNet++OPNETGloMoSimGTNetSQualNetYansNCTUNSSSFNetJiSTSimPy等。ns-3是在廣泛汲取現有優秀開源工具ns-2GTNetSYans等技術經驗,摒棄現有工具的缺點開發出來的。最重要的是,ns-3基於GNU GPLv2許可,相信在開源力量的推動下,ns-3一定會會更加強大。

本文寫作的目的就是藉此發揚開源精神,給相關從業人士提供儘可能多的相關知識。本文重點內容是ns-3的下載、編譯和安裝。所謂“條條大路通羅馬”,ns-3環境的搭建也是有多種可行之法,作爲開發新手,快速掌握其中的一種方法,並且過濾掉所謂的“高大上”之法,未必不是件好事。

準備工作

ns-3的開發文檔在nsnam官網有詳細的介紹,通過官網可以鏈接到nsnamwiki頁面,https://www.nsnam.org/wiki/Installation,該頁面詳細介紹了ns-3的安裝,截止今日頁面維護的版本是ns-3.13。按照頁面的介紹基本上能夠順利的搭建好ns-3.13的環境。本人根據該文檔,成功搭建了Ubuntu14.04+ns-3.24.1的開發環境。
圖1 Ubuntu14.04+ns-3.24.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.
#
# Have any questions about these content, plscontact me [email protected]
# 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的主體和其他模塊的運行。
圖2 ns-3.24.1編譯後的組件
如果不需要某個模塊可以完全忽略不管這些依賴軟件包。突然發現自己越來越囉嗦啦,OVER

下載ns-3

直接下載tar壓縮包(推薦使用,最簡單直接)
mkdir ns-3
cd ns-3
tar -jxvf ns-allinone-3.24.1.tar.bz2

圖3 ns-3.24.1解壓後的文件

cd ns-allinone-3.24.1/; ls
圖4 ns-allinone-3.24.1
cd ns-3.24.1; ls
圖5 ns-3.24.1

編譯安裝

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    正式編譯

圖6 編譯過程及結果

測試

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

結語

以上關於ns-3快速上手的簡單解析,還有很多具體細節的問題沒有涉及到。還請各位工程師從網絡上獲取相關文檔並研究。經常訪問銳捷社區無線版本的網頁,http://bbs.ruijie.com.cn/?fromuser=unrecoverable找到最新的信息和資料。也非常歡迎您加我好友一起切磋技術,同時也歡迎各位在論壇上提問。另外,歡迎加入ns-3和無線技術交流QQ羣110205992,杜絕廣告商!

最近家中網絡出現了問題,後續補上圖片(非工作時間)。計劃ns-3快速上手下一篇:用Eclipse IDE編譯ns-3工程,敬請期待!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章