1 Network Simulator 2 Install Chao-Ying Chiu
2 Outline n Install Cygwin n Install NS2 n Test NS2 Example
3 Install Environment n Linux u NS2 n Windows u Cygwin+NS2 u VMWare+NS2
4 Download Files before Install n Cygwin u /cg/ F /ftp%3a%2f%2fcygwin.csie.ntu.edu.tw%2fpub% 2fcygwin/
5 Files before Install (con.) n Cygwin u
6 Files before Install (con.) n NS2 u tar.gz tar.gz u 55MB
7 Install Cygwin n Download n Execute setup.exe (20~30 minutes)
8 Install Cygwin (con.) n 三種安裝選項
9 Install From Internet n 選擇從網路上直接安裝
10 Download From Internet n 從網路下載安裝檔案
11 Install From Local Directory n 選擇從硬碟裡的檔案安裝
12 Install From Local Directory (con.) n 選擇安裝檔案所在目錄
13 Install From Local Directory (con.) n 選擇安裝檔案所在目錄
14 Install From Local Directory (con.) n 準備安裝
15 Install From Local Directory (con.) n 選擇安裝選項
16 Install From Local Directory (con.) n 開始安裝
17 Install From Local Directory (con.) n 安裝中
18 Install From Local Directory (con.) n 安裝完成
19 Cygwin n Execute 帳號 名稱 電腦 名稱 注意 : 不能 有空格
20 Cygwin (con.) n 安裝完成後
21 Cygwin (con.) Type “ startx ”
22
23 Install NS2 n Download u tar.gz tar.gz u 55MB
24 Install NS2 (con.) n 將 ns2 檔案置於 cygwin/home/ 帳號目錄下
25 Install NS2 (con.) Type “ gzip -d -c ns-allinone-2.27.tar.gz | tar xvf - ” ( 解壓縮檔案 )
26 Install NS2 (con.) n 解壓縮後的結果
27 Install NS2 (con.) Type “ cd ns-allinone-2.27 ”
28 Install NS2 (con.) Type “./install ”
29 Install NS2 (con.) n 開始安裝 NS2
30 Install NS2 (con.)
31 Install NS2 (con.)
32 Install NS2 (con.)
33 Install NS2 (con.) n 安裝完成
34 Install NS2 (con.) n 加入環境變數 n Update your environment variables: u export NS_HOME=`pwd` u export PATH=$NS_HOME/tcl8.4.5/unix:$NS_HOME/tk8.4.5/unix:$NS_HOME/bin:$PATH u export LD_LIBRARY_PATH=$NS_HOME/tcl8.4.5/unix:$NS_HOME/tk8.4.5/unix:\ u $NS_HOME/otcl-1.8:$NS_HOME/lib:$LD_LIBRARY_PATH u export TCL_LIBRARY=$NS_HOME/tcl8.4.5/library
35 Install NS2 (con.) n To avoid retyping these commands everytime you login you can do the following, after having updated your environment variables as described above: u Type pwd at the command prompt u Note what the shell returns: a directory of the form /home/XXX/ns- allinone-2.27/ (where XXX is your login name) u Update your ~/.bashrc file by adding the following commands to it: F export NS_HOME=/ home/XXX/ns-allinone-2.27/ F export PATH=$NS_HOME/tcl8.4.5/unix:$NS_HOME/tk8.4.5/unix:$NS_HOME/bin:$PATH F export LD_LIBRARY_PATH=$NS_HOME/tcl8.4.5/unix:$NS_HOME/tk8.4.5/unix:\ F $NS_HOME/otcl-1.8:$NS_HOME/lib:$LD_LIBRARY_PATH F export TCL_LIBRARY=$NS_HOME/tcl8.4.5/library
36 Install NS2 (con.) n where you replace /home/XXX/ns-allinone- 2.27/ by whatever pwd returned. Make sure you respect the line breaks as shown above.
37 Install NS2 (con.) n 設環境變數
38 Install NS2 (con.)
39 Install NS2 (con.) Type “ cd ns-2.27 ”
40 Install NS2 (con.) Type “./validate ” ( 需要 70~80 分鐘 )
41 Install NS2 (con.)
42 Install NS2 (con.)
43 Install NS2 (con.)
44 Install NS2 (con.)
45 Install NS2 (con.) n NS2 安裝完成
46 Test NS2 Example (con.) n NS2 範例所在位置 u C:\cygwin\home\ 帳號 \ns-allinone-2.27\ns- 2.27\tcl\ex
47
48 Test NS2 Example (con.) Type “ cd tcl/ex ”
49 Test NS2 Example (con.) Type “ startx ”
50
51 Test NS2 Example (con.) n 執行 simple.tcl 範例 Type “ ns simple.tcl ”
52
53
54
55
56 NS2 Introduction n NS2 Network Simulator – version2 n 由 VINT project 所開發 u Virtual InterNetwork Testbed n Language u Kernel: C++ u TCL/OTCL (Object Tool Command Language)
57 Basic OTCL set ns_ [new Simulator] set tracefd [open simple.tr w] $ns_ trace-all $tracefd set namtrace [open simple.nam w] $ns_ namtrace-all-wireless $namtrace $val(x) $val(y) Simulator ObjectTrace file nameNAM file name
58 Basic – creating wireless topology set topo [new Topography] $topo load_flatgrid $opt(x) $opt(y) where opt(x) and opt(y) are the boundaries used in simulation. create-god $val(nn) Number of node
59 Basic – node config $ns_ node-config -adhocRouting DSDV or DSR or TORA or AODV \ -topoInstance $topo \ -addressType hierarchical \ -wiredRouting ON \ -mobileIP ON \ -llType LL \ -macType Mac/802_11 \ -antType Antenna/OmniAntenna \ -propType Propagation/TwoRayGround \ -phyType Phy/WirelessPhy \ -channelType Channel/WirelessChannel \ -ifqType Queue/DropTail/PriQueue \ -ifqLen \ Wired-cum-wireless MobileIP
60 Basic – node config (con.) -agentTrace ON or OFF \ -routerTrace ON or OFF \ -macTrace ON or OFF \ -movementTrace ON or OFF
61 Basic – create node set $node [$ns node] n Create Node $node set X_ $node set Y_ $node set Z_ n Start-position
62 Basic – node movement $ns_ at $time $node setdest n Future destinations
63 Basic n Create Node for {set i 0} {$i < $val(nn)} {incr i}{ $node_($i) set X_ [expr { $val(x)*rand() } ] $node_($i) set Y_ [expr { $val(y)*rand() } ] $node_($i) set Z_ 0.0 $node_($i) radius 500} n Random initial node position for {set i 0} {$i < $val(nn)} {incr i} { set node_($i) [$ns_ node]} Only wireless node
64 Basic n Initial node size $ns duplex-link $n0 $n2 2Mb 10ms DropTail n Link for {set i 0} {$i < $val(nn)} {incr i} { $ns_ initial_node_pos $node_($i) 50;}
65 Basic 範例 n Two nodes, one link set n0 [$ns node] set n1 [$ns node] $ns duplex-link $n0 $n1 1Mb 10ms DropTail
66
67 Basic 範例 n #Create a UDP agent and attach it to node n0 set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 # Create a CBR traffic source and attach it to udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ $cbr0 attach-agent $udp0
68 Basic 範例 n #Create a Null agent (a traffic sink) and attach it to node n1 set null0 [new Agent/Null] $ns attach-agent $n1 $null0 n #Connect the traffic source with the traffic sink $ns connect $udp0 $null0 n #Schedule events for the CBR agent $ns at 0.5 "$cbr0 start" $ns at 4.5 "$cbr0 stop"
69
70 Basic 範例 n #Create links between the nodes $ns duplex-link $n0 $n2 1Mb 10ms DropTail $ns duplex-link $n1 $n2 1Mb 10ms DropTail $ns duplex-link $n3 $n2 1Mb 10ms SFQ SFQ (stochastic fair queueing) $ns duplex-link-op $n0 $n2 orient right-down $ns duplex-link-op $n1 $n2 orient right-up $ns duplex-link-op $n2 $n3 orient right
71
72 Basic 範例 n #Define different colors for data flows $ns color 1 Blue $ns color 2 Red $udp0 set class_ 1 $udp1 set class_ 2 n #Monitor the queue for the link between node 2 and node 3 $ns duplex-link-op $n2 $n3 queuePos 0.5
73 Basic 範例 n #Connect the traffic sources with the traffic sink $ns connect $udp0 $null0 $ns connect $udp1 $null0 n #Schedule events for the CBR agents $ns at 0.5 "$cbr0 start" $ns at 1.0 "$cbr1 start" $ns at 4.0 "$cbr1 stop" $ns at 4.5 "$cbr0 stop"
74
75
76 Simulation of AODV
77 Simulation of AODV
78 Simulation of AODV
79
80
81 Trace File
82
83 Reference n Cygwin u n Cygwin+NS2 安裝 u cygwin.shtml cygwin.shtml n NS2 基本語法教學 ( 中文 ) u n 華玄明 u
84 Reference (con.) n File download u FTP F F Port:21 F Name: ns2 F Password: ns2123