1. 程式人生 > >ns-allinone-3.X(simulator模擬器)簡單配置

ns-allinone-3.X(simulator模擬器)簡單配置

一,引言:
談談NS-3的用途吧。我們知道在網際網路資料的暴增之後,面對來自資料壓力的不僅僅是伺服器,對我們來說是對大資料的操作。而我們可以充分ns-3對網路資料進行優化和整合,想想它的用處以及對網路的熱愛,筆者瞬間就路轉粉了。似乎飛蛾撲火般的撲到這個行當之中了。
以下是執行ns-3庫的基本條件:
1)環境:虛擬機器+Ubuntu14.04+ns-allinone-3.X+Subversion管理工具
2)導圖如下,本文以此作為講解的順序。
NS3環境配置

二,正文:
疑問請參考官網:https://www.nsnam.org/support/faq
NS3官方文件:https://www.nsnam.org/ns-3-25/documentation


1)在Ubuntu系統中利用APT下載NS3安裝包,命令如下:
sudo apt-get install python2.7;(下載編譯器)
sudo ./build.py;(執行build檔案,安裝ns包)

2)因為ns3中有庫檔案涉及到gcc++編譯,因此需要下載內建庫,命令如下:
sudo apt-get install build-essential

5)在安裝好了NS3庫之後,以及配置完成之後,我們可以執行一下NS3包當中的測試樣例,NS3庫module的基本組成參考官網module:
https://www.nsnam.org/developers/maintainers/

6)windows環境下的Unix模擬器Cygwin,以及簡單的CNU庫MinGW下載及安裝
Cygwin演示
MinGW演示

三,正文部分詳解:
1)安裝NS3:
筆者在此之前通過samba伺服器建立了(Linux+Windows)的網路共享, 以及apt下載外掛;

1.Downloading development tree(命令):
  hg clone http://code.nsnam.org/ns-3-allinone
 cd ns-3-allinone
 ./download.py

2.你會得到以下檔案
   build.py*     dist.py*      ns-3-dev/   pybindgen/  util.py
constants.py download.py* nsc/ README 然後執行 build.py檔案即可。當然,此前需要安裝python。 3.Building(樣例): cd ns-3-dev ./waf check 4.利用cygwin和mingw: 因為mingw不能編譯ns3.x。所以需要使用gcc++編譯。 ./waf configure --check-cxx-compiler=g++

2)程式碼管理工具介紹以及安裝:

    1.“Setting Up an Ubuntu Subversion ServerSubversion安裝的基本方法
    下載:
    $ sudo apt-get install subversion
    建立庫目錄:
    $ sudo mkdir /usr/local/svn
    建立庫檔案目錄:
    $ sudo mkdir /usr/local/svn/repos
    使用者獲得庫目錄的許可權:
    $ sudo groupadd svn
    使用者組許可權的修改:
    $ sudo chgrp svn /usr/local/svn/repos
    修改管理員讀寫許可權:
    $ sudo chmod g+w /usr/local/svn/repos
    修改新增庫檔案的許可權:
    $ sudo chmod g+s /usr/local/svn/repos
    指定庫檔案使用者
    $ sudo usermod -a -G svn xxxx
    登出使用者之後測試時候成功:
    $ groups
    xxxx adm dialout cdrom plugdev lpadmin admin sambashare svn
    新增其他使用者:
    $ sudo usermod -a -G svn jimmy 
    $ sudo usermod -a -G svn craig

   2.測試管理工具Test
    提前修改建立檔案的許可權:
    $ umask 002
    通過subversion建立測試樣例:
    $ svnadmin create /usr/local/svn/repos/test
    還原umask:
    $ umask 022
    測試庫是否建立成功:
    $ svn checkout file:///usr/local/svn/repos/test
    Checked out revision 0.
    建立庫樣例:
    $ cd test
    $ echo 'Hello, World!' > hello.txt
    通過svn新增hello.txt:
    $ svn add hello.txt
    A         hello.txt
    將庫樣例指派到Test庫目錄當中:
    $ svn commit -m "Added a 'hello world' text file."
    Adding         hello.txt
    Transmitting file data .
    Committed revision 1.

    3.使用者通過protocol SSH加密/不加密 方式訪問庫目錄(以SSH加密為樣例)
    svn檢驗:
    $ svn checkout svn+ssh://192.168.10.11/usr/local/svn/repos/test --username XXXX
    登陸密碼:
    XXXX@192.168.10.11's password:
    返回庫目錄資訊:
    A test/hello.txt
    Checked out revision 2.

    4.SVNserve初始化指令碼:
    自定義建立svnserve服務:
    $ sudo chmod +x /etc/init.d/svnserve
    通過update-rc.d初始化svnserve服務:
    $ sudo update-rc.d svnserve defaults
 Adding system startup for /etc/init.d/svnserve ...
   /etc/rc0.d/K20svnserve -> ../init.d/svnserve
   /etc/rc1.d/K20svnserve -> ../init.d/svnserve
   /etc/rc6.d/K20svnserve -> ../init.d/svnserve
   /etc/rc2.d/S20svnserve -> ../init.d/svnserve
   /etc/rc3.d/S20svnserve -> ../init.d/svnserve
   /etc/rc4.d/S20svnserve -> ../init.d/svnserve
   /etc/rc5.d/S20svnserve -> ../init.d/svnserve
   開啟服務:
   $ sudo /etc/init.d/svnserve start
   svnserve程式碼請參考:
    [http://odyniec.net/articles/ubuntu-subversion-server/svnserve]

3.NS3樣例測試:
進入NS-3資料夾,裡面會有一些樣例,直接執行即可。

四,後續:
以後會根據自身的學習逐步講解和分析其中的例項。

Module模組:

  • antenna aodv applications bake-build-system bridge buildings click
    config-store core csma csma-layout dsdv dsr energy fd-net-device
    flow-monitor internet (IP, ICMP, UDP) internet (routing) internet
    (TCP) internet (NSC TCP) internet-apps lte (PHY and MAC) lte (RLC
    and above, core, EPC) lte (general) mesh mobility mpi netanim
    network nix-vector olsr openflow point-to-point point-to-point-layout
    propagation spectrum stats tap-bridge test framework tools
    topology-read traffic-control uan virtual-net-device visualizer wifi
    (lead) wifi (802.11n aspects) wifi (sleep/energy aspects) wifi
    (rate control aspects) wimax python bindings tutorial tutorial-pt-br
    manuals Doxygen waf build system wiki

Tools工具:

  • Bugzilla Mercurial Waf Rietveld Mailing-Lists Jenkins-CI
    IRC