1. 程式人生 > >NS-3教程(1):NS-3開發環境搭建

NS-3教程(1):NS-3開發環境搭建

前言

在現代網路通訊技術的教學和科研中,迫切希望有一種先進的網路模擬技術。在網路模擬工具的研究和開發方面國內所做的工作較少,但是國外早已出現了很多研究成果和模擬工具,如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環境的搭建也是有多種可行之法,作為開發新手,快速掌握其中的一種方法,並且過濾掉所謂的“高大上”之法,未必不是件好事。

準備工作

ns-3的開發文件在nsnam官網有詳細的介紹,通過官網可以連結到nsnam的wiki頁面,https://www.nsnam.org/wiki/Installation,該頁面詳細介紹了ns-3的安裝。本人根據該文件,成功搭建了Ubuntu14.04 + ns-3.26的開發環境。

下面將準備工作總結為一個小指令碼。

#!/bin/sh
# Copyright(C) 2016 NiceTony Network. All rightsreserved.
# ns-3setup
#
# setup ns-3 env on `Ubuntu14.04+ns-3.26`
# History
# v1.0.0           2016-11-2
# Create.
#
# Have any questions about these content, plscontact me 
[email protected]
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編譯好的元件如下圖,

圖1 ns-3.26編譯後的元件

下載NS-3

直接下載tar壓縮包(推薦使用,最簡單直接)

mkdir ns-3
cd ns-3
wget https://www.nsnam.org/release/ns-allinone-3.26.tar.bz2
tar -jxvf ns-allinone-3.24.1.tar.bz2

圖2 ns-3.26解壓後的檔案

我們下載的是ns-3一體化安裝包,只需要執行build.py就可以滿足大部分需求,下一節將詳細介紹編譯的問題,

編譯安裝

使用build.py編譯

執行命令即可,

sudo ./build.py --enable-examples --enable-tests

使用waf編譯

一旦工程已經編譯過,就不能再使用build.py指令碼
使用waf重新配置和編譯ns-3系統

//清除先前配置編譯
./waf clean   

//重新配置ns-3,優化編譯例子和測試
./waf -d optimized --enable-examples--enable-tests configure   

//optimized引數,優化模式下預設是禁止ns-3特殊的日誌系統(logging),這樣導致執行的的結果不能再控制檯上顯示。因此,建議更改為

//./waf -d debug --enable-examples --enable-tests configure
./waf    正式編譯

圖3 ns-3.26編譯過程及結果
圖4 ns-3.26編譯過程及結果

測試

使用test.py測試

cd ns-3.26/
./test.py -c core    測試ns-3發行版是否編譯正確

圖5 測試ns-3編譯結果

執行指令碼測試

sudo ./waf --run scratch-simulator

圖6 執行scratch-simulator

相關推薦

NS-3教程1NS-3開發環境搭建

前言 在現代網路通訊技術的教學和科研中,迫切希望有一種先進的網路模擬技術。在網路模擬工具的研究和開發方面國內所做的工作較少,但是國外早已出現了很多研究成果和模擬工具,如ns-2、OMNet++、OPNET、GloMoSim、GTNetS、QualNet

EOS Dapp開發1-基於Docker的開發環境搭建

rbo err 通過命令 plugin cat cti nec docker 反饋 隨著EOS主網的上線,相信基於EOS的Dapp開發會越來越多,查閱了很多資料相關的開發資料都不是很多,只能自己摸索,按照網上僅有的幾篇教程,先git clonehttps://github.

Ruby入門1——windows下Ruby開發環境搭建

1、獲得和安裝Ruby1.1 獲取Ruby    1) 從 http://www.ruby-lang.org/en/downloads/ 下載Source Code或者RubyInstaller    2) 從 http://rubyforge.org/frs/?group_

ActiveReports 9實戰教程1 手把手搭建開發環境Visual Studio 2013 社區版

line tool mmu tin style textbox ble mil nts ActiveReports 9剛剛公布3天。微軟就公布了 Visual Studio Community 2013 開發環境。Visual Studio Community 2013

pyspider 爬蟲教程1HTML 和 CSS 選擇器

開始之前 由於教程是基於 pyspider 的,你可以安裝一個 pyspider(Quickstart,也可以直接使用 pyspider 的 demo 環境: http://demo.pyspider.org/。 有需要Python學習資料的小夥伴嗎?小編整理【一套Pyt

Nginx 教程 1基本概念

簡介 嗨!分享就是關心!所以,我們願意再跟你分享一點點知識。我們準備了這個劃分為三節的《Nginx教程》。如果你對 Nginx 已經有所瞭解,或者你希望瞭解更多,這個教程將會對你非常有幫助。 我們會告訴你 Nginx 是如何工作的,其背後的概念有哪些,以及如何優化

系列教程1學習如何用C#編寫一個軟渲染引擎

宣告:轉載請註明出處!!!本人摘錄其中C#的部分進行翻譯,同時捨棄了其中一些無關緊要的話。另外,英語水平渣,見諒。 由於這位大神是用的win8和XAML,而本人是win7,沒法進行實踐。所以自己用普通的WinForm寫了一個上傳到了github。 地址:https://g

教程】Spire.Doc系列教程1給Word文件設定背景顏色和背景圖片

使用Spire.Doc,開發人員可以非常方便地給Word文件設定背景顏色和新增背景圖片。以下示例將詳細講述如何使用Spire.Doc給一個現有Word文件設定純色背景顏色,漸變背景顏色以及新增背景圖片。 設定背景顏色 設定純色背景顏色 //建立Document例項 Document doc

J2EE基礎教程1簡介和windows下環境配置

(1)相關概念 我們以前在linux作業系統初級教程中,介紹過LAMP架構伺服器技術。現在,我們來介紹J2EE。 通過J2EE開發的應用程式屬於分散式多層應用程式,包括 (1)客戶層:客戶應用,web瀏覽器的動態網頁(含applet) (2)web層:

PHP極其強大的圖片處理庫Grafika詳細教程1影象基本處理

use Grafika\Grafika; $editor = Grafika::createEditor(); $src = 'yanying.jpg'; $editor->open( $image, $src ); $editor->crop( $image, 300, 200, 'top-l

就算萌新也能看得懂的gulp教程1①讀檔案②修改③寫到新檔案

1、安裝gulp 核心點是gulp檔案的檔名一定是:gulpfile.js。 task就是一個任務(要做的一系列事) 執行通過gulp來執行預設的task或者通過gulp task名來執行指定的task(因為一個gulp檔案裡可能有多個互相獨立的t

OpenFaceswap 入門教程1軟件安裝篇

2-2 install nfa esc github上 中文版 LEDE alt 是什麽 眾多換臉軟件中,DeepFaceLab其實是安裝和使用最方便,更新最快的,但是由於其沒有可是化界面,對於很新手來說,可能入門還是有點難度。那麽今天就來介紹一款操作極其直觀和簡單的換

TensorFlow1使用docker鏡像搭建TensorFlow環境

根據 free nts 安裝配置 wiki 永久 ebo 關於 exec 1,關於TensorFlow TensorFlow 隨著AlphaGo的勝利也火了起來。 google又一次成為大家膜拜的大神了。google大神在引導這機器學習的方向。 同時docker 也是一個

【更新】CLion v2018.3釋出初始遠端開發支援

下載CLion最新版本 CLion是一款專為開發C及C++所設計的跨平臺IDE。它是以IntelliJ為基礎設計的,包含了許多智慧功能來提高開發人員的生產力。這種強大的IDE幫助開發人員在Linux、OS X和Windows上來開發C/C++,同時它還使用智慧編輯器來提高程式碼質量、自動程式碼重構並且深

最佳實踐1安卓開發

這篇文章主要為Futurice公司Android開發者總結的經驗教訓。遵循這些規範可以避免無謂的重複勞動。如果對iOS或Windows Phone平臺的開發感興趣,請檢視《iOS開發最佳實踐》和《Windows客戶端最佳實踐》。 歡迎反饋,但請先閱讀反饋規範。 摘要 使用Gr

語義網技術1jena的使用——環境以及例項

大四畢設做關於語義網技術的研究,其中需要學習關於protege,jena等工具,以及owl和rdf的技術,網上的資料比較少,在這裡給自己做一個學習的記錄。關於jena和protege簡單說,寫個式子:(jena→java)    =    (protege→使用者)不難理解,

SCFSenparcCoreFramework 系列教程專案介紹及快速搭建

  2020年3月25日的“盛派週三分享”活動首次使用直播的方式與大家見面,共有 500 多人蔘與了活動,得到了眾多開發者的好評,並強烈要求我分享 PPT,這點要求當然必須滿足啦!   除此以外,還有許多開發者因為時間衝突,沒有能夠及時光看直播,我們特地錄製了直播視訊,並提供

flask框架系列教程 flask簡介及虛擬環境搭建

flask簡介      博主快兩個月沒更新了,原因是私下學了前端,奈何前端東西太多,即便以後想去做後端,也要明白JS jquery,這個有時間再發自己的理解,最近開始學習flask了,希望與諸位看客共同進步。前期先講基礎,過一段時間會把整個網站的建設過程發出來。  

Spring Boot+Vue從零開始搭建系統專案前端_Vuejs環境搭建

2.驗證Node.js是否安裝好,在windows下,win+r召喚出執行視窗,輸入cmd開啟命令列視窗。輸入node -v即可得到對應的Node.js版本。 npm包管理器是整合在Node.js中了,所以在安裝Node.js的時候就已經自帶了npm,輸入npm -v可得

Web筆記 Web 簡介與開發環境搭建

tro env 原理圖 start log auc wid serve enc Web應用程序的工作原理 大多數的Web應用程序結構都是采用最為流行的B/S軟件開發體系結構,將Web應用程序部署在Web服務器上,只要Web服務器啟動,用戶就可以通過客戶端瀏覽器發送HTTP