Presentation is loading. Please wait.

Presentation is loading. Please wait.

NS3 & NS2 (network simulator)

Similar presentations


Presentation on theme: "NS3 & NS2 (network simulator)"— Presentation transcript:

1 NS3 & NS2 (network simulator)
資工碩一 陳彥銘

2 UBUNTU 安裝 確保擁有至少25GB的可用存儲空間,或5GB的最小安裝空間。 使用 光碟 或者 USB 安裝 Ubuntu

3 選擇安裝Ubuntu

4

5

6

7

8

9

10 Ubuntu 常用指令 sudo apt-get install -軟體名 安裝軟體命令 ls -列出當前目錄文件(不包括隱含文件)
cd .. -回當前目錄的上一級目錄  mkdir XX -目錄名 創建一個名稱為xx的目錄  mv -路經/文件 /經/文件 移動相對路經下的文件到絕對路經下  tar -c 創建包 –x 釋放包 -v 顯示命令過程 –z 代表壓縮包  tar –cvf benet.tar /home/benet 把/home/benet目錄打包  tar –zcvf benet.tar.gz /mnt 把目錄打包並壓縮  tar –zxvf benet.tar.gz 壓縮包的文件解壓恢復  tar –jxvf benet.tar.bz 解壓縮

11 NS2 NS2是由C++和OTcl作為開發語言
NS2是一個OTcl的腳本直譯器,把使用者所寫好的腳本進行解讀後,產生出模擬的 結果,進而對結果進行分析 透過NAM工具程式把模擬的過程視覺化呈現出來

12 Why two language? (Tcl & C++)
• C++: Detailed protocol simulations require systems programming language – byte manipulation, packet processing, algorithm implementation – Run time speed is important – Turn around time (run simulation, find bug, fix bug, recompile, re-run) is slower • Tcl: Simulation of slightly varying parameters or configurations – quickly exploring a number of scenarios – iteration time (change the model and re -run) is more important

13 Install ns2 Step1.在任何更新之前最好都先做這一個動作,讓軟體資料保持在最新的狀況之下。
sudo apt-get update Step2.下載ns2 allinonce到家目錄 ns-allinone-2.35 Step3. 解壓縮下載下來的檔案 tar xvfz ns-allinone-2.33.tar.gz

14 Install ns2 Step4. 執行以下兩行在去檢查套件 Step5.修改 ls.h 的文件
apt-get install tcl8.5-dev tk8.5-dev  sudo apt-get install build-essential  autoconf automake libxmu-dev Step5.修改 ls.h 的文件 sudo gedit ns-2.35/linkstate/ls.h 將 void eraseAll() { erase(baseMap::begin(), baseMap::end()); }  改為: void eraseAll() { this->erase(baseMap::begin(), baseMap::end()); }

15 Install ns2 Step6.在命令行裏進入你下載的文件,比如我的是/ns/ns-allinone-2.35  然後輸入./install

16 Install ns2 Step7.安裝成功後會提醒你設置環境變量,根據命令行的提示設置好環境變量。 然後重啟。
輸入:sudo gedit ./bashrc 在文件尾加入: export PATH="$PATH:/home/用戶名/ns/bin:/home/用戶名/ns/tcl8.5.10/unix:/home/用戶名 /ns/tk8.5.10/unix" export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/用戶名/ns/otcl-1.14:/home/用 戶名/ns/lib" export TCL_LIBRARY="$TCL_LIBRARY:/home/用戶名/ns/tcl8.5.10/library"

17 Install ns2 Step 8. 最後測試看看是否安裝成功,輸入指令 ns 成功會顯示 %

18 Install nam Nam is a Tcl/TK based animation tool for viewing network simulation traces and real world packet traces. It supports topology layout, packet level animation, and various data inspection tools.  NAM=>模擬結果視覺化 sudo apt-get install nam

19 NSG(Network Scenario Generator )

20 NSG(Network Scenario Generator )
NSG是ㄧ個專門為NS2所設計的劇本產生器,目前最近版本為NSG2,除了原本支援的無線網路之外, 還有支援有線網路 以下列出NSG2主要的功能及支援ns2的物件種類 1.產生有線/無線網路的劇本 2.支援的Node種類︰WirelessNode/WiredNode 3.支援WirelessNode的移動設定 4.支援的Link種類︰Duplex-link及Simplex-link 5.Agent支援(TCP、TCP/Tahoe、TCP/Reno、TCP/Newreno、TCP/Vegas、 TCPSink、UDP及NULL) 6.支援的應用種類:CBR及FTP 7.支援的Routing protocol種類︰DSDV、DSR、AODV及TORA 8.支援的Queue種類︰DropTail、RED、FQ、DRR、SFQ及CBQ 參數設定(NSG提供一組802.11b的預設參數)

21 NSG(Network Scenario Generator )
由於在執行NSG2之前必須先確定電腦中存有Java Runtime Environment/Java SE Development Kit

22 Ubuntu java安裝指令 1. 安裝指令 1. sudo add-apt-repository ppa:webupd8team/java 2. sudo apt-get update 3. sudo apt-get install oracle-java7-installer 2. 看看是否安裝成功 java –version

23 Ns2-OTcl (Object Tcl) OTcl = Tcl + OO
C++ implements the code that executed frequently OTcl configures the system

24 OTCL(Tool Command Language)
在NS2扮演的角色為描述腳本 描述網路環境和參數設定 *命令句語法 指令 變數 參數

25 變數宣告及使用 set $ 範例: 結果: 2:3:97 set month2 set day 3 set year 97
set date “ $month : $day:$year ” puts $date 結果: 2:3:97

26 表示式 Tcl包含許多種類的表示式,如數學表示式、關係表示式等。
通常這些表示式會使用“expr”這個指令去判斷表示式的真假或者去求得表示式的 值 範例1: set value [expr 0==1] put $value 結果: 0 說明:使用了expr去判斷0是否等於1,結果是假,所以把0存到value這個變數中。

27 表示式 範例2: set value [expr 2+1] put $value 結果: 3

28 指令替換 如同變數替換一樣,指令替換可以把”原tcl 腳本執行結果”取代”原tcl 腳本”。 範例:
puts "I am [expr 10 * 2] years old, and my I.Q. is [expr ]“ 結果: I am 20 years old, and my I.Q. is 75 說明: []可以用來達成指令替換,所以在執行此行tcl script時,會先去執行[expr 10*2]和[expr ]並把結果20和75取代原本tcl script中[expr 10*2]和[expr ]的位置,最後在使用puts把此字串秀出來。

29 程序 讓使用者自定程序 proc name params body name為程序的名稱 params是參數列表 body則是程序的主體

30 程序 範例: proc PROCNAME {arg1 arg2} { } 常見錯誤: body
wrong # args: should be "proc name args body"

31 C++ TcpAgent::TcpAgent() { bind(“window_”, &wnd_); } Otcl $tcp set window_ 200

32 Hello World - Batch mode
simple.tcl: set ns [new Simulator] $ns at 1 “puts \“Hello World!\”” $ns at 1.5 “exit” $ns run [Lin]$ ns simple.tcl Hello World! [lin]$

33 Basic tcl proc test {} { set a 43 #a = 43 set b 27 #b = 27
set c [expr $a + $b] ; #c = a + b set d [expr [expr $a - $b] * $c] #d = (a – b) * c for {set k 0} {$k < 10} {incr k} { #for (k=0; k<10;k++) puts “k = $k” }

34 Basic Otcl set a [new mom] $a set age_ 45 set b [new kid]
Class mom mom instproc greet {} { $self instvar age_ puts “ $age_ years old mom: How are you doing?” } Class kid -superclass mom kid instproc greet {} { $self instvar age_ puts “$age_ years old kid: What’s up, dude?” set a [new mom] $a set age_ 45 set b [new kid] $b set age_ 15 $a greet $b greet

35 Creating simulator instance
set ns [new Simulator] -通常為NS-2第一個指令。 Turning on a tracefile Open file for NS tracing set f [open out.tr w] $ns trace-all $f 參考網址 :

36 Commands $ns_ simplex-link node1 node2 bw delay qtype
$ns simplex-link $node_(h1) $node_(r1) 10Mb 2ms DropTail $ns_ simplex-link-op n1 n2 args The attributes may be the orientation, color, label, or queue-position.

37

38

39 The Network Topology

40

41

42

43

44 無線網路模擬

45 無線網路模擬

46 無線網路模擬


Download ppt "NS3 & NS2 (network simulator)"

Similar presentations


Ads by Google