⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 final.tcl

📁 ns2 sample script for graph generation
💻 TCL
字号:
# ======================================================================# Define options# ====================================================================== set val(chan)         Channel/WirelessChannel  ;# channel type set val(prop)         Propagation/TwoRayGround ;# radio-propagation model set val(ant)          Antenna/OmniAntenna      ;# Antenna type set val(ll)           LL                       ;# Link layer type set val(ifq)          Queue/DropTail/PriQueue  ;# Interface queue type set val(ifqlen)       250                       ;# max packet in ifq set val(netif)        Phy/WirelessPhy          ;# network interface type set val(mac)          Mac/802_11               ;# MAC type set val(nn)           20                        ;# number of mobilenodes set val(rp)	       AO2P                    ;# routing protocol set val(x)            1000 set val(y)            1000CMUTrace set newtrace_  1set RouterTrace         ON
set MacTrace            ONPhy/WirelessPhy set CPThresh_ 10.0Phy/WirelessPhy set CSThresh_ 1.559e-11Phy/WirelessPhy set RXThresh_ 3.652e-10Phy/WirelessPhy set bandwidth_ 2e6Phy/WirelessPhy set Pt_ 0.2818    ;# for 250.0Phy/WirelessPhy set freq_ 914e+6Phy/WirelessPhy set L_ 1.0  set ns [new Simulator]#ns-random 0set f [open output.tr w]$ns trace-all $fset namtrace [open output.nam w]$ns namtrace-all-wireless $namtrace $val(x) $val(y)$ns use-newtrace# *** Throughput Trace ***set f0 [open out1.tr w]set f1 [open out2.tr w]set f2 [open out3.tr w]# *** Packet Loss Trace ***set f3 [open jitter1.tr w]set f4 [open jitter2.tr w]set f5 [open jitter3.tr w]# *** Packet Delay Trace ***set f6 [open delay1.tr w]set f7 [open delay2.tr w]set f8 [open delay3.tr w]set topo [new Topography]$topo load_flatgrid 1000 1000create-god $val(nn)#set chan_1 [new $val(chan)]#set chan_2 [new $val(chan)]#set chan_3 [new $val(chan)]#set chan_4 [new $val(chan)]#set chan_5 [new $val(chan)]#set chan_6 [new $val(chan)]# CONFIGURE AND CREATE NODES$ns node-config  -adhocRouting AODV \ 		 -llType $val(ll) \                 -macType $val(mac) \                 -ifqType $val(ifq) \                 -ifqLen $val(ifqlen) \                 -antType $val(ant) \                 -propType $val(prop) \                 -phyType $val(netif) \                 -channelType $val(chan) \                 -topoInstance $topo \                 -agentTrace ON \                 -routerTrace ON \                 -macTrace ON \                 -movementTrace ON \                 proc finish {} {        global ns f f0 f1 f2 f3 f4 f5 f6 f7 f8  namtrace	$ns flush-trace        close $namtrace           close $f0  	close $f1        close $f2        close $f3        close $f4        close $f5        close $f6        close $f7        close $f8        exec ./xgraph out1.tr out2.tr out3.tr -geometry 800x400 &        exec ./xgraph jitter1.tr jitter2.tr jitter3.tr -geometry 800x400 &        exec ./xgraph delay1.tr delay2.tr delay3.tr -geometry 800x400 &                  exit 0} # define color index$ns color 0 red$ns color 1 blue$ns color 2 chocolate$ns color 3 red$ns color 4 brown$ns color 5 tan$ns color 6 gold$ns color 7 black                        set n(0) [$ns node]$n(0) color "0"$n(0) shape "circle"set n(1) [$ns node]$n(1) color "blue"$n(1) shape "circle"set n(2) [$ns node]$n(2) color "tan"$n(2) shape "circle"set n(3) [$ns node]$n(3) color "red"$n(3) shape "circle"set n(4) [$ns node]$n(4) color "tan"$n(4) shape "circle"set n(5) [$ns node]$n(5) color "red"$n(5) shape "circle"set n(6) [$ns node]$n(6) color "0"$n(6) shape "circle"set n(7) [$ns node]$n(7) color "brown"$n(7) shape "circle"set n(8) [$ns node]$n(8) color "black"$n(8) shape "circle"set n(9) [$ns node] $n(9) color "red"$n(9) shape "circle"set n(10) [$ns node]$n(10) color "tan"$n(10) shape "circle"set n(11) [$ns node]$n(11) color "red"$n(11) shape "circle"set n(12) [$ns node]$n(12) color "red"$n(12) shape "circle"set n(13) [$ns node]$n(13) color "tan"$n(13) shape "circle"set n(14) [$ns node]$n(14) color "red"$n(14) shape "circle"set n(15) [$ns node]$n(15) color "tan"$n(15) shape "circle"set n(16) [$ns node]$n(16) color "red"$n(16) shape "circle"set n(17) [$ns node]$n(17) color "red"$n(17) shape "circle"set n(18) [$ns node]$n(18) color "tan"$n(18) shape "circle"set n(19) [$ns node]$n(19) color "red"$n(19) shape "circle"for {set i 0} {$i < $val(nn)} {incr i} {	$ns initial_node_pos $n($i) 30+i*100}$n(0) set X_ 0.0$n(0) set Y_ 0.0$n(0) set Z_ 0.0$n(1) set X_ 0.0$n(1) set Y_ 0.0$n(1) set Z_ 0.0$n(2) set X_ 0.0$n(2) set Y_ 0.0$n(2) set Z_ 0.0$n(3) set X_ 0.0$n(3) set Y_ 0.0$n(3) set Z_ 0.0$n(4) set X_ 0.0$n(4) set Y_ 0.0$n(4) set Z_ 0.0$n(5) set X_ 0.0$n(5) set Y_ 0.0$n(5) set Z_ 0.0$n(6) set X_ 0.0$n(6) set Y_ 0.0$n(6) set Z_ 0.0$n(7) set X_ 0.0$n(7) set Y_ 0.0$n(7) set Z_ 0.0$n(8) set X_ 0.0$n(8) set Y_ 0.0$n(8) set Z_ 0.0$n(9) set X_ 0.0$n(9) set Y_ 0.0$n(9) set Z_ 0.0$n(10) set X_ 0.0$n(10) set Y_ 0.0$n(10) set Z_ 0.0$n(11) set X_ 0.0$n(11) set Y_ 0.0$n(11) set Z_ 0.0$n(12) set X_ 0.0$n(12) set Y_ 0.0$n(12) set Z_ 0.0$n(13) set X_ 0.0$n(13) set Y_ 0.0$n(13) set Z_ 0.0$n(14) set X_ 0.0$n(14) set Y_ 0.0$n(14) set Z_ 0.0$n(15) set X_ 0.0$n(15) set Y_ 0.0$n(15) set Z_ 0.0$n(16) set X_ 0.0$n(16) set Y_ 0.0$n(16) set Z_ 0.0$n(17) set X_ 0.0$n(17) set Y_ 0.0$n(17) set Z_ 0.0$n(18) set X_ 0.0$n(18) set Y_ 0.0$n(18) set Z_ 0.0$n(19) set X_ 0.0$n(19) set Y_ 0.0$n(19) set Z_ 0.0$ns at 0.0 "$n(0) setdest 100.0 100.0 3000.0"$ns at 0.0 "$n(1) setdest 200.0 200.0 3000.0"$ns at 0.0 "$n(2) setdest 300.0 200.0 3000.0"$ns at 0.0 "$n(3) setdest 400.0 300.0 3000.0"$ns at 0.0 "$n(4) setdest 500.0 300.0 3000.0"$ns at 0.0 "$n(5) setdest 600.0 400.0 3000.0"$ns at 0.0 "$n(6) setdest 550.0 30.0 3000.0"$ns at 0.0 "$n(7) setdest 15.0 740.0 3000.0"$ns at 0.0 "$n(8) setdest 600.0 340.0 3000.0"$ns at 0.0 "$n(9) setdest 180.0 240.0 3000.0"$ns at 0.0 "$n(10) setdest 25.0 610.0 3000.0"$ns at 0.0 "$n(11) setdest 615.0 535.0 3000.0"$ns at 0.0 "$n(12) setdest 425.0 79.0 3000.0"$ns at 0.0 "$n(13) setdest 346.0 95.0 3000.0"$ns at 0.0 "$n(14) setdest 645.0 57.0 3000.0"$ns at 0.0 "$n(15) setdest 120.0 245.0 3000.0"$ns at 0.0 "$n(16) setdest 367.0 410.0 3000.0"$ns at 0.0 "$n(17) setdest 560.0 390.0 3000.0"$ns at 0.0 "$n(18) setdest 680.0 235.0 3000.0"$ns at 0.0 "$n(19) setdest 168.0 157.0 3000.0"$ns at 2.0 "$n(5) setdest 170.566.0 106.349 5.0"$ns at 1.5 "$n(3) setdest 134.868 84.518 5.0"$ns at 5.0 "$n(7) setdest 37.0 45.0 5.0"$ns at 5.1 "$n(8) setdest 160.0 740.0 5.0"$ns at 5.2 "$n(9) setdest 480.0 640.0 5.0"$ns at 5.9 "$n(9) setdest 330.0 400.0 5.0"$ns at 5.2 "$n(10) setdest 580.0 90.0 5.0"$ns at 5.8 "$n(11) setdest 160.0 300.0 5.0"$ns at 5.9 "$n(12) setdest 230.0 390.0 5.0"$ns at 6.0 "$n(13) setdest 136.0 410.0 5.0"$ns at 7.5 "$n(14) setdest 430.0 330.0 5.0" $ns at 5.8 "$n(15) setdest 247.0 315.0 5.0"$ns at 5.9 "$n(16) setdest 128.0 522.0 5.0"$ns at 6.0 "$n(17) setdest 380.0 45.0 5.0"$ns at 7.5 "$n(18) setdest 305.0 202.0 5.0"$ns at 7.5 "$n(19) setdest 538.0 455.0 5.0" $ns at 1.0 "$n(0) color Blue"$ns at 1.0 "$n(0) label Source1"$ns at 1.0 "$n(7) color blue"$ns at 1.0 "$n(7) label Receiver1"$ns at 1.0 "$n(6) color brown"$ns at 1.0 "$n(6) label source2"$ns at 1.0 "$n(11) color Brown"$ns at 1.0 "$n(11) label Receiver2"$ns at 1.0 "$n(2) color cyan"$ns at 1.0 "$n(2) label source3"$ns at 1.0 "$n(5) color cyan"$ns at 1.0 "$n(5) label Receiver3"# CONFIGURE AND SET UP A FLOWproc record {} {        global sink7 sink11 sink5 f0 f1 f2 f3 f4 f5 f6 f7 f8            set ns [Simulator instance]    set time 0.9       ;#Set Sampling Time to 0.9 Sec    set bw0 [$sink7 set bytes_]    set bw1 [$sink11 set bytes_]    set bw2 [$sink5 set bytes_]    set bw3 [$sink7 set nlost_]    set bw4 [$sink11 set nlost_]    set bw5 [$sink5 set nlost_]    set bw6 [$sink7 set lastPktTime_]    set bw7 [$sink7 set npkts_]    set bw8 [$sink11 set lastPktTime_]    set bw9 [$sink11 set npkts_]    set bw10 [$sink5 set lastPktTime_]    set bw11 [$sink5 set npkts_]             set now [$ns now]        # Record Bit Rate in Trace Files puts $f0 "$now [expr (($bw0)*8)/(2*$time*1000000)]" puts $f1 "$now [expr (($bw1)*8)/(2*$time*1000000)]" puts $f2 "$now [expr (($bw2)*8)/(2*$time*1000000)]" # Record Packet Loss Rate in File        puts $f3 "$now [expr $bw3/$time]"        puts $f4 "$now [expr $bw4/$time]"        puts $f5 "$now [expr $bw5/$time]"        # Record Packet Delay in File        if { $bw7 > 0} {                puts $f6 "$now [expr ($bw6)/($bw7)]"        } else {                puts $f6 "$now [expr ($bw7)]"        }         if { $bw9 > 0 } {          puts $f7 "$now [expr ($bw8)/($bw9)]"        } else {                puts $f7 "$now [expr ($bw9)]"        }         if { $bw11 > 0 } {            puts $f8 "$now [expr ($bw10)/($bw11)]"        } else {                puts $f8 "$now [expr ($bw11)]"        }          $ns at [expr $now+$time] "record"    ;# Schedule Record after $time     #interval sec}set sink0 [new Agent/LossMonitor]set sink1 [new Agent/LossMonitor]set sink2 [new Agent/LossMonitor]set sink3 [new Agent/LossMonitor]set sink4 [new Agent/LossMonitor]set sink5 [new Agent/LossMonitor]set sink6 [new Agent/LossMonitor]set sink7 [new Agent/LossMonitor]set sink8 [new Agent/LossMonitor]set sink9 [new Agent/LossMonitor]set sink10 [new Agent/LossMonitor]set sink11 [new Agent/LossMonitor]set sink12 [new Agent/LossMonitor]set sink13 [new Agent/LossMonitor]set sink14 [new Agent/LossMonitor]set sink15 [new Agent/LossMonitor]$ns attach-agent $n(0) $sink0$ns attach-agent $n(1) $sink1$ns attach-agent $n(2) $sink2$ns attach-agent $n(3) $sink3$ns attach-agent $n(4) $sink4$ns attach-agent $n(5) $sink5$ns attach-agent $n(6) $sink6$ns attach-agent $n(7) $sink7$ns attach-agent $n(8) $sink8$ns attach-agent $n(9) $sink9$ns attach-agent $n(10) $sink10$ns attach-agent $n(11) $sink11$ns attach-agent $n(12) $sink12$ns attach-agent $n(13) $sink13$ns attach-agent $n(14) $sink14$ns attach-agent $n(15) $sink15set tcp0 [new Agent/TCP]$tcp0 set prio_ 1   $ns attach-agent $n(0) $tcp0set tcp1 [new Agent/TCP]$tcp1 set prio_ 2$ns attach-agent $n(1) $tcp1set tcp2 [new Agent/TCP]$tcp2 set prio_ 3$ns attach-agent $n(2) $tcp2set tcp3 [new Agent/TCP]$ns attach-agent $n(3) $tcp3set tcp4 [new Agent/TCP]$tcp4 set prio_ 4$ns attach-agent $n(4) $tcp4set tcp5 [new Agent/TCP]$ns attach-agent $n(5) $tcp5set tcp6 [new Agent/TCP]$ns attach-agent $n(6) $tcp6set tcp7 [new Agent/TCP]$ns attach-agent $n(7) $tcp7set tcp8 [new Agent/TCP]$ns attach-agent $n(8) $tcp8set tcp9 [new Agent/TCP]$ns attach-agent $n(9) $tcp9set tcp10 [new Agent/TCP]$ns attach-agent $n(10) $tcp10set tcp11 [new Agent/TCP]$tcp11 set prio_ 5$ns attach-agent $n(11) $tcp11set tcp12 [new Agent/TCP]$tcp12 set prio_ 6$ns attach-agent $n(12) $tcp12set tcp13 [new Agent/TCP]$tcp13 set prio_ 7$ns attach-agent $n(13) $tcp13set tcp14 [new Agent/TCP]$tcp14 set prio_ 8$ns attach-agent $n(14) $tcp14proc attach-CBR-traffic { node sink size interval } {   #Get an instance of the simulator   set ns [Simulator instance]   #Create a CBR sink14 agent and attach it to the node   set cbr [new Agent/CBR]   $ns attach-agent $node $cbr   $cbr set packetSize_ $size   $cbr set interval_ $interval   #Attach CBR source to sink;   $ns connect $cbr $sink   return $cbr  }set cbr0 [attach-CBR-traffic $n(0) $sink7 512 .042]set cbr1 [attach-CBR-traffic $n(6) $sink11 512 .041]set cbr2 [attach-CBR-traffic $n(2) $sink5 512 .041]$ns at 0.0 "record"$ns at 1.0 "$cbr0 start"$ns at 1.0 "$cbr1 start"$ns at 1.0 "$cbr2 start"$ns at 100.0 "finish"puts "Start of simulation.."$ns run

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -