天天看點

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

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 準備工作

ns-3 的開發文檔在nsnam 官網有詳細的介紹,通過官網可以連結到nsnam 的wiki 頁面, https://www.nsnam.org/wiki/Installation ,該頁面詳細介紹了ns-3 的安裝,截止今日頁面維護的版本是ns-3.13 。按照頁面的介紹基本上能夠順利的搭建好ns-3.13 的環境。本人根據該文檔,成功搭建了Ubuntu14.04+ns-3.24.1 的開發環境。

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

圖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 的主體和其他子產品的運作。

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

圖2 ns-3.24.1編譯後的元件 如果不需要某個子產品可以完全忽略不管這些依賴軟體包。突然發現自己越來越啰嗦啦,OVER !

2 下載下傳ns-3

直接下載下傳tar 壓縮包(推薦使用,最簡單直接) mkdir ns-3 cd ns-3 wget  http://www.nsnam.org/release/ns-allinone-3.24.1.tar.bz2 tar -jxvf ns-allinone-3.24.1.tar.bz2

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

圖3 ns-3.24.1解壓後的檔案

cd ns-allinone-3.24.1/; ls

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

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

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

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

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

圖6 編譯過程及結果

4 測試

1 )使用test.py 測試 cd ns-3.24.1/ ./test.py -c core     測試ns-3 發行版是否編譯正确

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

圖7 測試ns-3編譯結果

2 )運作腳本測試 sudo ./waf --run scratch-simulator

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

圖8 運作scratch-simulator

5 結語

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

最近家中網絡出現了問題,後續補上圖檔(非工作時間)。計劃ns-3快速上手下一篇:用Eclipse IDE編譯ns-3工程,敬請期待!

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

繼續閱讀