📄 throughput.tcl
字号:
puts " n0"puts " \\"puts "5Mb,10ms \\ 1.5Mb,10ms"puts " n1 ---------- n3"puts "5Mb,10ms /"puts " /"puts " n2"#Create a simulator objectset ns [new Simulator]#On definit les codes couleurs$ns color 0 red$ns color 1 blueset namf [open queue.nam w]set nsf [open queue.ns w]$ns namtrace-all $namf$ns trace-all $nsfset qsize [open queuesize.tr w]set qbw [open queuebw.tr w]set qlost [open queuelost.tr w]#On cree les noeudsset n0 [$ns node]set n1 [$ns node]set n2 [$ns node]set n3 [$ns node]#On annote les noeuds$n1 label "Switch (25)"#On cree la procedure de finproc finish {} { global ns namf qsize qbw qlost $ns flush-trace close $qsize close $qbw close $qlost exec nam queue.nam & exec xgraph queuesize.tr -t "Queuesize" & exec xgraph queuebw.tr -t "Throughput" & exec xgraph queuelost.tr -t "Lost" & exit 0}#On cree la procedure d'enregistrementset old_departure 0proc record {} {global ns qmon_size qmon_bw qmon_lost qsize qbw qlost old_departureset ns [Simulator instance]set time 0.05set now [$ns now]$qmon_size instvar size_ pkts_ barrivals_ bdepartures_ parrivals_ pdepartures_ bdrops_ pdrops_ puts $qsize "$now [$qmon_size set size_]"puts $qbw "$now [expr ($bdepartures_ - $old_departure)*8/$time]" set old_departure $bdepartures_#if { $now !=0 } { puts $qbw "$now [expr $bdepartures_*8/$now]" } #puts $qbw "$now [expr $bdepartures_*8/$time] $bdepartures_"#set bdepartures_ 0puts $qlost "$now $pdrops_ $bdrops_"$ns at [expr $now+$time] "record"}#On cree les liens$ns duplex-link $n1 $n3 1.5mb 10ms DropTail$ns duplex-link $n0 $n1 5mb 10ms DropTail$ns duplex-link $n2 $n1 5mb 10ms DropTail#$ns duplex-link-op $n1 $n3 orient right#$ns duplex-link-op $n0 $n1 orient right-down#$ns duplex-link-op $n2 $n1 orient right-up$ns duplex-link-op $n1 $n3 queuePos 0.5$ns queue-limit $n1 $n3 25set tick 0.5set tcp0 [$ns create-connection TCP $n0 TCPSink $n3 0]$tcp0 set packetSize_ 1460$tcp0 set tcpTick_ $tick$tcp0 set fid_ 0#Create a CBR traffic source and attach it to tcp0set cbr0 [new Application/Traffic/CBR]$cbr0 set packetSize_ 1460$cbr0 set rate_ 1200k$cbr0 attach-agent $tcp0set tcp1 [$ns create-connection TCP $n2 TCPSink $n3 1]$tcp1 set packetSize_ 1460$tcp1 set tcpTick_ $tick$tcp1 set fid_ 1#Create a CBR traffic source and attach it to tcp1set cbr1 [new Application/Traffic/CBR]$cbr1 set packetSize_ 1460$cbr1 set rate_ 1200k$cbr1 attach-agent $tcp1##################### QUEUE MONITOR #####################set qf_size [open queue.size w]set qmon_size [$ns monitor-queue $n1 $n3 $qf_size 0.05]#On demarre la simulation$ns at 0.0 "record"$ns at 0.1 "$cbr0 start"$ns at 0.5 "$cbr1 start"$ns at 5.1 "$cbr0 stop"$ns at 5.5 "$cbr1 stop"#Call the finish procedure after 5 seconds of simulation time$ns at 5.5 "finish"#Run the simulation$ns run
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -