導航:首頁 > 編程大全 > ns2移動網路的模擬

ns2移動網路的模擬

發布時間:2023-02-11 08:05:37

① 求NS2模擬無線區域網WLAN 802.11b模擬的源代碼

NS是一種針對網路技術的源代碼公開的、免費的軟體模擬平台,研究人員使用它可以很容易的進行網路技術的開發,而且發展到今天,它所包含的模塊已經非常豐富,幾乎涉及到了網路技術的所有方面。所以,NS成了目前學術界廣泛使用的一種網路模擬軟體。在每年國內外發表的有關網路技術的學術論文中,利用NS給出模擬結果的文章最多,通過這種方法得出的研究結果也是被學術界所普遍認可的,此外,NS也可作為一種輔助教學的工具,已被廣泛應用在了網路技術的教學方面。因此,目前在學術界和教育界,有大量的人正在使用或試圖使用NS。

然而,對初學者來說,NS是非常難於掌握的,一般人從學習NS到上手至少需要半年多時間。原因是多方面的:一方面,NS內容龐雜,隨軟體所提供的手冊更新不夠快,初學者閱讀起來非常困難;另一方面,使用NS還要掌握其它很多必備的相關知識以及相關工具,這會使初學者感到無從入手;有的使用者可能還不了解網路模擬的過程或是對NS軟體的機制缺乏理解,這也影響了對NS的掌握。另外,不論在國外還是國內,還沒有一本書能集中回答和解決這些問題,這也是NS難於被掌握的一個重要原因。

1、NS2簡介

NS2(Network Simulator, version 2)是一種面向對象的網路模擬器,本質上是一個離散事件模擬器。由UC Berkeley開發而成。它本身有一個虛擬時鍾,所有的模擬都由離散事件驅動的。目前NS2可以用於模擬各種不同的IP網,已經實現的一些模擬有:網路傳輸協議,比如TCP和UDP;業務源流量產生器,比如FTP, Telnet, Web CBR和VBR;路由隊列管理機制,比如Droptail , RED和CBQ;路由演算法,比如Dijkstra等。NS2也為進行區域網的模擬而實現了多播以及一些MAC 子層協議。

NS2使用C++和Otcl作為開發語言。NS可以說是Otcl的腳本解釋器,它包含模擬事件調度器、網路組件對象庫以及網路構建模型庫等。事件調度器計算模擬時間,並且激活事件隊列中的當前事件,執行一些相關的事件,網路組件通過傳遞分組來相互通信,但這並不耗費模擬時間。所有需要花費模擬時間來處理分組的網路組件都必須要使用事件調度器。它先為這個分組發出一個事件,然後等待這個事件被調度回來之後,才能做下一步的處理工作。事件調度器的另一個用處就是計時。NS是用Otcl和C++編寫的。由於效率的原因,NS將數據通道和控制通道的實現相分離。為了減少分組和事件的處理時間,事件調度器和數據通道上的基本網路組件對象都使用C++寫出並編譯的,這些對象通過映射對Otcl解釋器可見。

當模擬完成以後,NS將會產生一個或多個基於文本的跟蹤文件。只要在Tcl腳本中加入一些簡單的語句,這些文件中就會包含詳細的跟蹤信息。這些數據可以用於下一步的分析處理,也可以使用NAM將整個模擬過程展示出來。

2、使用NS進行網路模擬的方法和一般過程。

進行網路模擬前,首先分析模擬涉及哪個層次,NS模擬分兩個層次:一個是基於OTcl編程的層次。利用NS已有的網路元素實現模擬,無需修改NS本身,只需編寫OTcl腳本。另一個是基於C++和OTcl編程的層次。如果NS中沒有所需的網路元素,則需要對NS進行擴展,添加所需網路元素,即添加新的C++和OTcl類,編寫新的OTcl腳本。

假設用戶已經完成了對NS的擴展,或者NS所包含的構件已經滿足了要求,那麼進行一次模擬的步驟大致如下:

(1)開始編寫OTcl腳本。首先配置模擬網路拓撲結構,此時可以確定鏈路的基本特性,如延遲、帶寬和丟失策略等。

(2)建立協議代理,包括端設備的協議綁定和通信業務量模型的建立。

(3)配置業務量模型的參數,從而確定網路上的業務量分布。

(4)設置Trace對象。NS通過Trace文件來保存整個模擬過程。模擬完後,用戶可以對Trace文件進行分析研究。

(5)編寫其他的輔助過程,設定模擬結束時間,至此OTcl腳本編寫完成。

(6)用NS解釋執行剛才編寫的OTcl腳本。

(7)對Trace文件進行分析,得出有用的數據。

(8)調整配置拓撲結構和業務量模型,重新進行上述模擬過程。

NS2採用兩級體系結構,為了提高代碼的執行效率,NS2 將數據操作與控制部分的實現相分離,事件調度器和大部分基本的網路組件對象後台使用C++實現和編譯,稱為編譯層,主要功能是實現對數據包的處理;NS2的前端是一個OTcl 解釋器,稱為解釋層,主要功能是對模擬環境的配置、建立。從用戶角度看,NS2 是一個具有模擬事件驅動、網路構件對象庫和網路配置模塊庫的OTcl腳本解釋器。NS2中編譯類對象通過OTcl連接建立了與之對應的解釋類對象,這樣用戶間能夠方便地對C++對象的函數進行修改與配置,充分體現了模擬器的一致性和靈活性。

3、NS2的功能模塊

NS2模擬器封裝了許多功能模塊,最基本的是節點、鏈路、代理、數據包格式等等,下面分別來介紹一下各個模塊。

(1)事件調度器:目前NS2提供了四種具有不同數據結構的調度器,分別是鏈表、堆、日歷表和實時調度器。

(2)節點(node):是由TclObject對象組成的復合組件,在NS2中可以表示端節點和路由器。

(3)鏈路(link):由多個組件復合而成,用來連接網路節點。所有的鏈路都是以隊列的形式來管理分組的到達、離開和丟棄。

(4)代理(agent):負責網路層分組的產生和接收,也可以用在各個層次的協議實現中。每個agent連接到一個網路節點上,由該節點給它分配一個埠號。

(5)包(packet):由頭部和數據兩部分組成。一般情況下,packet只有頭部、沒有數據部分。

4、NS2的軟體構成

NS2包含Tcl/Tk, OTcl, NS,Tclcl。其中Tcl是一個開放腳本語言,用來對NS2進行編程;Tk是Tcl的圖形界面開發工具,可幫助用戶在圖形環境下開發圖形界面;OTcl是基於Tcl/Tk的面向對象擴展,有自己的類層次結構;NS2為本軟體包的核心,是面向對象的模擬器,用C++編寫,以OTcl解釋器作為前端;Tclcl則提供NS2和OTcl的介面,使對象和變數出現在兩種語言中。為了直觀的觀察和分析模擬結果,NS2 提供了可選的Xgraphy、可選件Nam。

5、NS現有的模擬元素

從網路拓撲模擬、協議模擬和通信量模擬等方面介紹NS的相應元素:

(1)網路拓撲主要包括節點、鏈路。NS的節點由一系列的分類器(Classifier,如地址分類器等)組成,而鏈路由一系列的連接器(Connector)組成。

(2)在節點上,配置不同的代理可以實現相應的協議或其它模型模擬。如NS的TCP代理,發送代理有:TCP,TCP/Reno,TCP/Vegas,TCP/Sack1,TCP/FACK,TCP/FULLTCP等,接收代理有:TCPSINK,TCPSINK/DELACK。TCPSINK/SACK1,TCPSINK/SACK1/DELACK等。此外,還提供有UDP代理及接收代理Null(負責通信量接收)、Loss Monitor(通信量接收並維護一些接收數據的統計)。

(3)網路的路由配置通過對節點附加路由協議而實現。NS中有三種單播路由策略:靜態、會話、動態。

(4)在鏈路上,可以配置帶寬、時延和丟棄模型。NS支持:Drop-tail(FIFO)隊列、RED緩沖管、CBO(包括優先權和Round-robin 調度)。各種公平隊列包括:FQ,SFQ,DRR等。

(5)通信量模擬方面,NS提供了許多通信應用,如FTP,它產生較大的峰值數據傳輸;Telnet則根據相應文件隨機選取傳輸數據的大小。此外,NS提供了四種類型的通信量產生器:EXPOO,根據指數分布(On/Off)產生通信量,在On階段分組以固定速率發送,Off階段不發送分組,On/Off的分布符合指數分布,分組尺寸固定;POO,根據Pareto分布(On/Off)產生通信量,它能用來產生長范圍相關的急劇通信量;CBR,以確定的速率產生通信量,分組尺寸固定,可在分組間隔之間產生隨機抖動;Traffic Trace,根據追蹤文件產生通信量。

② 如何在ubuntu系統下安裝NS2網路模擬軟體

下載 官方ftp:ftp://ftp.soest.hawaii.e/gmt 需要下載的包包括: gmt-4.5.13-src.tar.bz2 gshhg-gmt-2.3.4.tar.gz 註:GMT中的triangulate命令有兩個不同的源碼,其中一個遵循GPL協議,另一個不遵循GPL協議。GMT的src包中包含了前者。若有特殊需求,需要使用後者源碼的功能,可以下載gmt-4.5.13-non-gpl-src.tar.bz2,並將解壓後的triangulate源碼覆蓋gmt-4.5.13-src.tar.bz2中的相應源碼。 依賴關系 基礎依賴包 GMT編譯過程需要C編譯器,以及一些底層的庫文件。 對於Ubuntu/Debian: sudo apt-get install gcc g++ make sudo apt-get install libxt-dev libxaw7-dev libxmu-dev libSM-dev 對於CentOS/RHEL/Fedora: sudo yum install gcc gcc-c++ make sudo yum install libXt-devel libXaw-devel libXmu-devel libSM-devel zlib-devel 軟體依賴包 GMT4主要依賴於netCDF4,可以直接使用linux發行版官方源中提供的netCDF包。除了netcdf之外,建議還安裝gdal包。雖然GMT不依賴於gdal,但gdal可以輕松地將其他數據格式轉換為GMT可識別的格式。 對於Ubuntu/Debian: sudo apt-get install libnetcdf-dev libgdal1-dev 對於RHEL/CentOS/Fedora: sudo yum install netcdf netcdf-devel gdal gdal-devel 注意: 一定不要試圖自己手動編譯netCDF。如果在閱讀本文之前曾經手動編譯過,一定要將原來手動編譯生成的文件刪除干凈。通常可以使用locate netcdf,找到/usr/local目錄下的與netCDF相關的文件,直接刪除即可。 CentOS和RHEL的官方源中沒有netCDF,需要首先添加EPEL源再安裝netCDF;Fedora官方源中自帶netCDF; 安裝GMT 編譯GMT源碼 1 2 3 4 5 $ tar -jxvf gmt-4.5.13-src.tar.bz2 $ cd gmt-4.5.13 $ ./configure --prefix=/opt/GMT-4.5.13 $ make $ sudo make install-all 其中--prefix指定了GMT安裝路徑,你可以指定為其他路徑,但要注意後面其他步驟要與這里的路徑統一。 安裝海岸線數據 1 2 3 $ tar -zxvf gshhg-gmt-2.3.4.tar.gz $ sudo mkdir /opt/GMT-4.5.13/share/coast $ sudo cp -r gshhg-gmt-2.3.4/* /opt/GMT-4.5.13/share/coast/ 修改環境變數 向~/.bashrc中加入GMT4的環境變數,並使環境變數生效: 1 2 3 4 $ echo 'export GMT4HOME=/opt/GMT-4.5.13' >> ~/.bashrc $ echo 'export PATH=${GMT4HOME}/bin:$PATH' >> ~/.bashrc $ echo 'export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:${GMT4HOME}/lib64' >> ~/.bashrc $ exec $SHELL -l 說明: 第一個命令向~/.bashrc中添加環境變數GMT4HOME; 第二個命令修改~/.bashrc,將GMT4的bin目錄加入到PATH中; 第三個命令將GMT4的lib目錄加入到動態鏈接庫路徑中,若為32位系統,則為lib;64位系統則為lib64; 第四個命令是重新載入bash,相當於source ~/.bashrc。

③ 我的電腦是win7家庭普通版,想要使用NS2網路模擬器模擬

(一)准備工作
NS2(Network Simulator 2)必須在UNIX/Linux平台下運行,因此一般需要安裝UNIX/Linux 操作系統。若要在Windows下使用NS可以採用Windows+虛擬機(VMware、Virtual PC)+NS組合的方式,或者是Windows+Cygwin(一個模擬的Linux平台)+NS組合的方式。目前Windows的使用較為普遍,因此本文主要介紹Windows+Cygwin(一個模擬的Linux平台)+NS的方式。
1.Cygwin
Cygwin是一個在Windows平台上運行的UNIX模擬環境,是Cygnus solutions公司開發的自由軟體。它對於學習UNIX/Linux操作環境,從UNIX到Windows的應用程序移植,以及進行某些特殊的開發工作,尤其是使用gnu工具集在Windows上進行嵌入式系統開發,非常有用。隨著嵌入式系統開發在國內日漸流行,越來越多的開發者對Cygwin產生了興趣。
Cygwin當初首先把gcc,gdb,gas等開發工具進行了改進,使他們能夠生成並解釋Win32的目標文件。然後,他們要把這些工具移植到Windows平台上去。一種方案是基於Win32 API對這些工具的源代碼進行大幅修改,這樣做顯然需要大量工作。因此,他們採取了一種不同的方法——他們寫了一個共享庫(就是Cygwin dll),把Win32 API中沒有的UNIX風格的調用(如fork,spawn,signals,select,sockets等)封裝在裡面,也就是說,他們基於Win32 API寫了一個UNIX系統庫的模擬層。這樣,只要把這些工具的源代碼和這個共享庫連接到一起,就可以使用UNIX主機上的交叉編譯器來生成可以在Windows平台上運行的工具集。以這些移植到Windows平台上的開發工具為基礎,Cygnus又逐步把其他的工具(幾乎不需要對源代碼進行修改,只需要修改他們的配置腳本)軟體移植到Windows上來。這樣,在Windows平台上運行bash和開發工具、用戶工具,感覺好像在Linux上工作。
目前國內的網站上有"在線安裝"和"本地安裝"兩種。兩者在本質上並沒有多少不同,只是Cygwin必須安裝特定的軟體包。默認的軟體包不夠用。在線安裝更夠更新Cygwin的的軟體包,可以減少安裝過程中的一些不必要的錯誤。因此,本文採用在線安裝,下面介紹一下安裝Cygwin的步驟:
1. 首先關閉殺毒軟體,否則可能會誤報病毒導致安裝失敗。
2. 從http://www.Cygwin.com/ 下載setup.exe在線安裝包。
3. 點擊setup.exe開始安裝,選擇」install from Internet」從網路上進行安裝,如圖

4. 對軟體包進行篩選,不需要的軟體包點擊「skip」,則會跳過該安裝包的安裝。如圖所示

必要軟體包是Cygwin用來生成並解釋Win32的目標文件,缺一不可。安裝過程也可以不點擊skip,則默認將所有軟體包都安裝,如果是系統允許,可建議這么做,避免有些必要的安裝包沒有選擇到,而出現錯誤。Cygwin必要的安裝包如下:

[plain] view plain
gcc
gcc-g++
gnuplot
make
patch
perl
tar
X-startup-scripts
xorg-x11-base
xorg-x11-bin
xorg-x11-devel
xorg-x11-bin-dlls
xorg-x11-bin-lndir
xorg-x11-etc
xorg-x11-fenc
xorg-x11-fnts
xorg-x11-libs-data

軟體包安裝成功後,點下一步,則安裝成功。
2.下載NS2源代碼

NS2存在很多版本,不同的版本存在不同的兼容性問題。例如:Ns2.28以後不再提供編譯好的可執行文件,因此需要自己編譯源碼,時間比較長;Ns2.29,2.30等較早版本存在兼容性問題,安裝後無法使用,需要打補丁或改源碼,操作難度較大,因此要選擇最新版本2.35,避免打補丁等操作。打開網址 http://www.isi.e/下載ns-allinone-2.35 安裝包。下載完後,解壓到c:\Cygwin\home\Administrator\ns-allinone-2.35。路徑要嚴格選擇對,否則使用過程中會出現問題。

(二)NS2編譯安裝

打開Cygwin terminal,切換到解壓的目錄cd/home/Administrator/ns-allinone-2.35
輸入./install安裝。此安裝過程很緩慢,因為是從源代碼進行編譯。
(注意:一定要關閉殺毒軟體!我發現金山毒霸會誤報病毒而導致編譯失敗)

安裝完成後,用 ultraedit 打開 c:\Cygwin\home\Administrator\.bashrc配置環境變數。
在文件的尾部添加如下代碼:

[plain] view plain
export
NS_HOME=/home/Administrator/ns-allinone-2.35
export
PATH=$NS_HOME/nam-1.15:$NS_HOME/tcl8.5.10/UNIX:$NS_HOME/tk8.5.10/UNIX:$NS_HOME/bin:$PATH
export
LD_LIBRARY_PATH=$NS_HOME/tcl8.5.10/UNIX:$NS_HOME/tk8.5.10/UNIX:$NS_HOME/otcl-1.14:$NS_HOME/lib:$LD_LIBRARY_PATH
export
TCL_LIBRARY=$NS_HOME/tcl8.5.10/library

使用UtraEdit而不要使用記事本,因為是UNIX文本,刪除不必要的空格和回車;環境變數之間要用冒號分隔,而不是分號。
2、必須在Cygwin 下運行 source .bashrc使環境變數生效。
3、環境變數生效後,輸入startxwin啟動Cygwin的xwindow界面,只有xwindow界面才可以運行NS模擬,否則會出錯。如圖所示:

4、切換到需要使用的TCL文件目錄。輸入ns [file-name].tcl啟動模擬。可以使用自帶的example2.tcl進行測試,如果配置成功

④ 如何用ns2對模擬和測試tcp的擁塞控制演算法

快速TCP模擬NS2。你可以下載並部署在NS2模擬器。
FAST TCP(也寫作FastTCP)是一種TCP擁塞避免演算法在長距離,高延遲鏈路特別是有針對性的,在網路實驗室開發的,加州理工學院,現在被商業化FastSoft。 FastSoft是在2012年收購了Akamai的技術
FastTCP與現有的TCP演算法兼容,無需修改只到發送數據的計算機。
大多數當前的擁塞控制演算法檢測擁塞和減速時,他們發現該數據包被丟棄,使平均發送速率取決於損失概率。這具有兩個缺點。首先,低丟失概率必須維持高數據傳輸率;在TCP中里諾的情況下,非常低的丟失概率是必需的,但即使是新的擁塞避免演算法,如H-TCP,BIC TCP和HSTCP需要損失率比由多數無線廣域網提供低。此外,分組丟失僅提供關於擁塞等級信息的單個比特,而延遲時間為一個連續量並原則提供有關網路的更多信息。

⑤ ns2網路模擬工具 gnuplot顯示結果

ns2是網路模擬模擬器,不是繪圖軟體,你可以把模擬出來的數據在其他軟體上畫出來,比如excel或者matlab等等。一般linux自帶了一個叫gnuplot的軟體可以繪圖,你也可以看看怎麼使用它。

閱讀全文

與ns2移動網路的模擬相關的資料

熱點內容
u盤可以用但不能保存文件 瀏覽:625
多個名稱多個文件名 瀏覽:11
如何恢復隱藏的文件夾 瀏覽:474
u盤插入電腦直接彈出文件 瀏覽:317
jt是什麼文件 瀏覽:353
法律助手app 瀏覽:937
雲存儲文件路徑 瀏覽:523
硬碟有點壞文件復制到桌面很慢 瀏覽:894
尼爾pod技能升級 瀏覽:586
vb編程打開pdf文件 瀏覽:617
qq七彩氣泡id大全 瀏覽:963
iphone4隻能免提說話才有聲音 瀏覽:79
CNC雕刻機用什麼軟體編程 瀏覽:173
aoe什麼文件 瀏覽:111
高大上的網站是怎麼樣的 瀏覽:169
win10安裝找不到ssd硬碟 瀏覽:610
js中addtag 瀏覽:702
cnc編程跟繪圖哪個難學 瀏覽:96
新手做游戲編程用什麼 瀏覽:793
oracel資料庫恢復 瀏覽:403

友情鏈接