![NS3對于初學(xué)者的教程-高手忽略這個吧20頁_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/12/1c5b9bc9-b38b-4e41-9c43-4bab1c1c29c6/1c5b9bc9-b38b-4e41-9c43-4bab1c1c29c61.gif)
![NS3對于初學(xué)者的教程-高手忽略這個吧20頁_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/12/1c5b9bc9-b38b-4e41-9c43-4bab1c1c29c6/1c5b9bc9-b38b-4e41-9c43-4bab1c1c29c62.gif)
![NS3對于初學(xué)者的教程-高手忽略這個吧20頁_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/12/1c5b9bc9-b38b-4e41-9c43-4bab1c1c29c6/1c5b9bc9-b38b-4e41-9c43-4bab1c1c29c63.gif)
![NS3對于初學(xué)者的教程-高手忽略這個吧20頁_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/12/1c5b9bc9-b38b-4e41-9c43-4bab1c1c29c6/1c5b9bc9-b38b-4e41-9c43-4bab1c1c29c64.gif)
![NS3對于初學(xué)者的教程-高手忽略這個吧20頁_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-5/12/1c5b9bc9-b38b-4e41-9c43-4bab1c1c29c6/1c5b9bc9-b38b-4e41-9c43-4bab1c1c29c65.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、1. Ns3 的安裝: 開發(fā)環(huán)境配置:sudo apt-get install gcc g+ python python-dev /C+和python安裝,必裝sudo apt-get install mercurial /NS3代碼維護使用的源碼版本控制管理系統(tǒng)sudo apt-get install bzr /運行python綁定ns-3-dev需要bazaar這個組件sudo apt-get install libgtk2.0-0 libgtk2.0-dev /基于GTK的配置系統(tǒng)sudo apt-get install gdb valgrind /調(diào)試工具sudo apt-get in
2、stall doxygen graphviz imagemagick /文檔生成器sudo apt-get install texlive texlive-latex-extra /文檔生成器,從源代碼中生成說明文檔 sudo apt-get install texinfo dia texlive-extra-utils texi2html /ns-3手冊和tutorial編寫查看工具sudo apt-get install flex bison /仿真必需的詞法分析器和語法分析生成器,必裝sudo apt-get install libgoocanvas-dev /部分移動場景仿真的可視化測
3、試需要這個組件sudo apt-get install tcpdump /讀取pcap的packet traces,即包嗅探器sudo apt-get install sqlite sqlite3 libsqlite3-dev /支持統(tǒng)計特性的數(shù)據(jù)庫軟件sudo apt-get install libxml2 /xml的配置存儲軟件sudo apt-get install python-pygraphviz python-kiwi python-pygoocanvas /Gustavos ns-3-pyviz的可視化軟件sudo apt-get install qt4-qmakesudo ap
4、t-get install qt4-dev-tools安裝完成后:進入ns-allinone-3.16目錄sudo ./build.py 之后 進入ns-allinone-3.16/ns-3.16sudo ./waf -check返回目錄ns-allinone-3.16進入目錄netanim-3.103sudo make cleansudo qmake NetAsudo make之后sudo ls可以看見綠色的NetAnim這個東西就成功了sudo ./NetAnim 打開仿真界面安裝全部完成2. ns3仿真的運行 ctrl+alt+t調(diào)出終端,進入ns-allinone-3.1
5、6目錄, 輸入 cd ns-3.16/ 進入ns-3.16文件夾 輸入 cd examples/tutorial/ 進入examples里面的tutorial文件夾(里面有剛剛上手專用的實例,我們就用這個來調(diào)試) 在tutorial目錄下,輸入 cp first.cc /ns-allinone/ns-3.16/scratch/ ,將first.cc這個文件復(fù)制到ns-3.16的scratch文件夾里面. 具體位置由實際的自己的計算機的文件目錄所定。 輸入 cd . 輸入 cd . 此時進入的是ns-3.16文件夾 輸入cd scratch/ 進入scratch文件夾 輸入 ls 查看有沒有那個
6、復(fù)制進去的文件 有的話進行下面,沒有的話 要先復(fù)制進去 確定有的話,輸入 cd . 返回ns-3.16/ 輸入 sudo ./waf -run scratch/first 注意:在輸入運行的文件名時,不要加后綴名。 現(xiàn)在就可以運行了。以下是這個的顯示結(jié)果:此結(jié)果表示的意思是:第一行:客戶機在第2s的時候向IP為的節(jié)點的第九號端口(port)發(fā)送了1024字節(jié)大小的數(shù)據(jù)包第二行:的這個服務(wù)器接在2.00369s收到了來自的端口為49153的1024字節(jié)大小的數(shù)據(jù)包第三行:服務(wù)器在2.00369s向的49153號端口發(fā)
7、送了1024字節(jié)的一個數(shù)據(jù)包第四行:2.00737s客戶機()接收到了來自ip為(服務(wù)器)的9號端口的一個1024字節(jié)的數(shù)據(jù)包3. 圖形仿真器(Netanim)的使用 進入ns-allinone-3.16文件夾 輸入cd netanim-3.103 進入netanim-3.103文件夾 看見那個綠色的了吧,就是運行那個綠色的來調(diào)出仿真界面輸入 ./NetAnim 可以看見下圖點擊左上角的文件夾符號,可以打開導(dǎo)入文件(PS:必須是.xml文件)選擇一個.xml文件即可導(dǎo)入。(如果沒有,請繼續(xù)下節(jié)的生成.xml文件)點擊綠色的開始符號即可運行。4. 生成.xml文件
8、比如:進入ns-3.16文件夾,可以看到有個scratch目錄。將你需要生成.xml的文件復(fù)制到scratch文件夾。進入scratchcd scratch/sudo apt-get install vim輸入sudo vim first.cc 即打開vim編輯器??梢钥吹竭@是first.cc的源代碼 按下I 可以進入編輯模式 按下ESC可以退出編輯模式 在頭文件包含處添加一句#include “ns3/netanim-module.h”然后去找到有一句 Simulator:Run();在這句的前面添加一行代碼AnimationInterface anim(“first.xml”);按下ESC
9、,退出編輯模式按下:wq 可以將剛才的改動保存輸入 cd .返回ns-3.16文件夾輸入 sudo ./waf run scratch/first 注意不要有后綴名運行成功輸入 ls 可以看到有個名字叫做 first.xml的文件 這個就是可以當(dāng)作動畫的文件。再用上一節(jié)的仿真界面的使用來運行這個就行如圖:成功的仿真了。5. .tr和.pcap文件的生成和解析tr文件的生成:需要在Simulator:Run (); 這個的前面加上 AsciiTraceHelper ascii; csmaHelper.EnableAll (ascii.CreateFileStream (“csma-1.tr”);
10、pcap文件的生成: 需要在Simulator:Run (); 這個的前面加上 csmaHelper.EnablePcapAll (“csma-1”, false);如圖:之后按照上面的運行方法運行。(csmaHelper是由CsmaHelper這個類(協(xié)議)實例化的對象).如圖運行完成:之后ls 看有沒有自己命名的那些文件:我的tr文件為test-csma-1.tr 我的pcap文件為 test-csma-1.pcap輸入vim 自己的文件名 即: vim test-csma-1.tr如圖:分析Ascii Traces 在一個極其密集的文檔中有很多信息,但是需要注意的第一件事是在這個文件中有
11、很多分立的行。除非你大大加寬你的窗口,否則是很難看清楚的。每一行對應(yīng)了一個trace事件。本例中我們在查看每個點到點設(shè)備的傳輸隊列的trace事件。傳輸隊列是任一個目的地為點到點信道的數(shù)據(jù)包的必經(jīng)隊列。注意trace文件的每行以一個單獨的字符開始(后面帶有空格)。這個字符具有如下含義: +: An enqueue operation occurred on the device queue; -: A dequeue operation occurred on the device queue; d: A packet was dropped, typically because the qu
12、eue was full; r: A packet was received by the net device. +:設(shè)備隊列中的入隊操作; -:設(shè)備隊列中的出隊操作; d:數(shù)據(jù)包被丟棄,通常因為隊列已滿; r:網(wǎng)絡(luò)設(shè)備接收到數(shù)據(jù)包。我們來更詳細的看一下trace文件的第一行。為了看得更清晰,我把這一行分成了不同的部分,并在左邊標(biāo)出序號: 00 + 01 2 02 /NodeList/0/DeviceList/0/$ns3:PointToPointNetDevice/TxQueue/Enqueue 03 ns3:PppHeader ( 04 Point-to-Point Protocol:
13、IP (0x0021) 05 ns3:Ipv4Header ( 06 tos 0x0 ttl 64 id 0 protocol 17 offset 0 flags none 07 length: 1052 ) 08 ns3:UdpHeader ( 09 length: 1032 49153 9) 10 Payload (size=1024) 展開后的trace事件的第一行(序號00)代表操作。+字符表示是一個傳輸隊列的入隊操作。第二行(序號01)是單位為秒的仿真時間。Trace的下一行(序號02)告訴我們trace發(fā)送端發(fā)起這個事件(以tracing命名空間表
14、示)。你可以認(rèn)為tracing命名空間有點像一個文件系統(tǒng)命名空間。命名空間的根為NodeList。這個NodeList是NS-3核心代碼管理的一個容器,此容器包含有一個腳本中創(chuàng)建的所有的節(jié)點。正如一個文件系統(tǒng)在根下有目錄,在NodeList下有節(jié)點數(shù)。字符串/NodeList/0是指NodeList中第0個節(jié)點,我們通常認(rèn)為是node 0.每個節(jié)點中有一個已經(jīng)安裝好的設(shè)備列表。這個列表是在命名空間的下一個出現(xiàn)的??梢钥吹絫race事件來自節(jié)點中安裝的第0個設(shè)備DeviceList/0。下一個字符串,$ns3:PointToPointNetDevice告訴我們第0個節(jié)點的設(shè)備列表的第0個位置的設(shè)
15、備類型。回憶序號00處的+操作表示設(shè)備的傳輸隊列發(fā)生了入隊操作,這個在trace pathTxQueue/Enqueue的最后部分反映出來了。Trace中剩下的幾行是很直觀的。序號03-04處表明數(shù)據(jù)包封裝成點到點協(xié)議。序號05-07處顯示數(shù)據(jù)包IP版本,發(fā)送端IP地址,接收端IP地址為。序號08-09出顯示數(shù)據(jù)包的UDP頭,最后序號10處表明數(shù)據(jù)包數(shù)據(jù)量為1024bytes。在trace文件中的下一行顯示了這個數(shù)據(jù)包在這個節(jié)點中從傳輸隊列中被移除。Trace文件的第三行顯示了數(shù)據(jù)包正在被回顯服務(wù)器所在的節(jié)點的網(wǎng)絡(luò)設(shè)備接收。trace如下。 00 r 01 2.
16、25732 02 /NodeList/1/DeviceList/0/$ns3:PointToPointNetDevice/MacRx 03 ns3:Ipv4Header ( 04 tos 0x0 ttl 64 id 0 protocol 17 offset 0 flags none 05 length: 1052 ) 06 ns3:UdpHeader ( 07 length: 1032 49153 9) 08 Payload (size=1024) 注意,trace操作現(xiàn)在是r并且仿真時間已經(jīng)增加到2.25732秒。如果你一直按照本教程來操作,你已經(jīng)把網(wǎng)絡(luò)設(shè)備
17、的DataRate,和信道Delay設(shè)置成默認(rèn)值。在第2行中,Trace發(fā)送端命名空間條目已經(jīng)改變,來顯示這個事件是來自節(jié)點1(/NodeList/1),即數(shù)據(jù)包的接收trace端(/MacRx)。通過查看文件中其他的traces,你可以很容易的跟蹤數(shù)據(jù)包。5.3.2 PCAP 格式Tracing ns-3設(shè)備控制器也可以被用來創(chuàng)建.pcap格式的trace文件??s寫pcap(通常為小寫)表示packet capture,事實上是包含有定義一個.pcap文件格式的API??梢宰x取并且顯示這種格式的最流行的程序是Wireshark(以前被稱為Ethereal)。然而,有很多其他的分析器也使用這個
18、包格式。我們鼓勵讀者了解其他的分析pcap追蹤文件的工具。在本教程中,我們用tcpdump來查看pcap trace。在scratch/myfirst.cc中我們剛增加的ASCII追蹤代碼后面插入這行代碼。注意我們剛使用的是字符串myfirst而不是myfirst.pcap。這是因為這里傳遞的參數(shù)是個前綴,而不是完整的文件名。在仿真過程中,helper將為任何一個點到點設(shè)備創(chuàng)建一個追蹤文件。文件名將包含預(yù)設(shè)前綴,節(jié)點名,設(shè)備名,和.pcap后綴。在我們的例子腳本中,我們最終將看到名為myfirst-0-0.pcap和myfirst-1-0.pcap。這分別是為節(jié)點0設(shè)備0,和節(jié)點1設(shè)備0創(chuàng)建的
19、pcap trace文件。用tcpdump讀取結(jié)果 此處最簡單的做法就是使用tcpdump來查看pcap文件, tcpdump -nn -tt -r myfirst-0-0.pcap reading from file myfirst-0-0.pcap, link-type PPP (PPP) 2.000000 IP .49153 .9: UDP, length 1024 2.514648 IP .9 .49153: UDP, length 1024 tcpdump -nn -tt -r myfirst-1-0.pcap read
20、ing from file myfirst-1-0.pcap, link-type PPP (PPP) 2.257324 IP .49153 .9: UDP, length 1024 2.257324 IP .9 .49153: UDP, length 1024在myfirst-0-0.pcap(客戶端設(shè)備)文件中可以看到回顯數(shù)據(jù)包在第二秒被發(fā)送。如果查看第二個文件(myfirst-1-0.pcap)可以看到此包在2.257324秒被收到。在第二個文件中可以看到在2.257324秒這個包被回應(yīng),最終,在客戶端2.514648秒回應(yīng)
21、的包被收到。 用Wireshark讀取結(jié)果如果你對Wireshark不熟悉,從/可以下載到程序和文檔。Wireshark是一個可以用來顯示trace文件的用戶圖形接口。如果你安裝了Wireshark,可以打開和查看每一個trace文件,就像這些trace是使用包嗅探工具在真正的網(wǎng)絡(luò)上抓下來一樣。對于trace文件和pcap文件 均可以自己編寫gawk腳本來查看,編寫方法自己百度。以下為實例講解:打開first.cc文件 (前面的標(biāo)號是我自己的vim配置,只是方便閱讀,并不是代碼。)頂部的注釋欄為GNU聲明 1 /* -*- Mode:
22、C+; c-file-style:gnu; indent-tabs-mode:nil; -*- */ 2 /* 3 * This program is free software; you can redistribute it and/or modify 4 * it under the terms of the GNU General Public License version 2 as 5 * published by the Free Software Foundation; 6 * 7 * This program is distributed in the hope that i
23、t will be useful, 8 * but WITHOUT ANY WARRANTY; without even the implied warranty of 9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10 * GNU General Public License for more details. 11 * 12 * You should have received a copy of the GNU General Public License 13 * along with this pro
24、gram; if not, write to the Free Software 14 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 15 */然后是頭文件包含 16 17 #include ns3/core-module.h 核心模型庫 18 #include ns3/network-module.h 網(wǎng)絡(luò)模型庫 19 #include ns3/internet-module.h 因特網(wǎng)模型庫 20 #include ns3/point-to-point-module.h 點到點網(wǎng)絡(luò)模型 2
25、1 #include ns3/applications-module.h 應(yīng)用模型庫正式代碼: 22 23 using namespace ns3; 使用ns3的命名空間 24 25 NS_LOG_COMPONENT_DEFINE (FirstScriptExample); 啟用日志,日志是方便在運行和運行成功后查看輸出的信息的。 26 27 int 28 main (int argc, char *argv) 29 30 LogComponentEnable (UdpEchoClientApplication, LOG_LEVEL_INFO); 開啟客戶機應(yīng)用日志,記錄客戶機的使用情況 31
26、 LogComponentEnable (UdpEchoServerApplication, LOG_LEVEL_INFO); 開啟服務(wù)器應(yīng)用日志,記錄服務(wù)器的使用情況 32 33 NodeContainer nodes; 實例化一個節(jié)點容器對象,里面還是空的。 34 nodes.Create (2); 為容器創(chuàng)建兩個新的節(jié)點。 35 36 PointToPointHelper pointToPoint; 實例化一個點到點協(xié)議的對象。 37 pointToPoint.SetDeviceAttribute (DataRate, StringValue (5Mbps); 設(shè)置點到點協(xié)議的數(shù)據(jù)傳輸速
27、率。 38 pointToPoint.SetChannelAttribute (Delay, StringValue (2ms); 設(shè)置點到點協(xié)議的網(wǎng)絡(luò)延遲。 39 40 NetDeviceContainer devices; 實例化一個網(wǎng)卡容器。 41 devices = pointToPoint.Install (nodes); 為節(jié)點安裝帶有點到點協(xié)議的網(wǎng)卡。 42 43 InternetStackHelper stack; 實例化一個協(xié)議棧。 44 stack.Install (nodes); 為每個節(jié)點安裝一個協(xié)議棧用于網(wǎng)卡存儲網(wǎng)絡(luò)協(xié)議。 45 46 Ipv4AddressHelper address; 實例化一個IP地址的對象。 47 address.SetBase (, ); 設(shè)置IP地址和子網(wǎng)掩碼。 48 49 Ipv4InterfaceContainer interfaces = address.Assign (devices); 為網(wǎng)卡注冊IP地址。 50 以下為應(yīng)用層配置 51 Ud
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年安全準(zhǔn)入考試練習(xí)試卷附答案
- 稽核人員上崗考試練習(xí)卷含答案
- 產(chǎn)房練習(xí)測試題附答案
- 9萬合同寫合同范本
- 農(nóng)村無證土地合同范本
- 保安公司勞務(wù)合同范本
- 2025年度房地產(chǎn)經(jīng)紀(jì)合同服務(wù)內(nèi)容與傭金收費標(biāo)準(zhǔn)規(guī)范
- 山東密封用填料及類似品制造市場前景及投資研究報告
- 買賣合同范本買方
- 1986電站用工合同范本
- 北京市房山區(qū)2024-2025學(xué)年七年級上學(xué)期期末英語試題(含答案)
- 安全生產(chǎn)事故調(diào)查與案例分析(第3版)課件 呂淑然 第5、6章 事故案例評析、相關(guān)法律法規(guī)
- 2025年南陽科技職業(yè)學(xué)院高職單招數(shù)學(xué)歷年(2016-2024)頻考點試題含答案解析
- 加油站復(fù)工復(fù)產(chǎn)方案
- 2025-2030年中國增韌劑(MBS高膠粉)行業(yè)發(fā)展現(xiàn)狀及前景趨勢分析報告
- 2025年高考物理復(fù)習(xí)新題速遞之萬有引力與宇宙航行(2024年9月)
- 2025年首都機場集團公司招聘筆試參考題庫含答案解析
- 2025云南省貴金屬新材料控股集團限公司面向高校畢業(yè)生專項招聘144人高頻重點提升(共500題)附帶答案詳解
- 蘇州市區(qū)2024-2025學(xué)年五年級上學(xué)期數(shù)學(xué)期末試題一(有答案)
- 暑期預(yù)習(xí)高一生物必修二知識點
- (高清版)DB43∕T 1147-2015 太陽能果蔬烘干機
評論
0/150
提交評論