#!/usr/bin/tclsh set ctr 10 set k 0 set data2 0 eval "exec cp ./awk/pingthrput.out ./results-sale/pingthrput.out" #heterogenous or homogenous RTT - see dos.tcl foreach heter { 1 } { #reno, newreno, tahoe, sack foreach tcp_type { reno newreno tahoe sack } { #0 - packets, 1 - bytes foreach bytes { 0 } { foreach rate_access { 100 } { foreach rate_bottleneck { 1.5 } { #DropTail or RED foreach queue { DropTail } { #number of TCP flows foreach flowstcp { 1 } { #reverse background traffic 0 or 1 foreach randomflows { 1 } { #random seed foreach rnd { 0 } { #used for minimum-rate DoS streams foreach rate1 { 0 } { foreach length1 { 0 } { foreach rate2 { 1.5 } { #DoS period foreach period { 500 600 700 800 900 1000 1050 1100 1150 1200 1250 1300 1350 1400 1450 1500 1550 1600 1650 1700 1750 1800 1850 1900 2000 3000 4000 5000 } { #DoS packet size foreach pack_size { 50 } { #pulse length (for square-wave) foreach length2 { 30 50 70 90 } { if {[expr ($length1+$length2)/($period)]<0.7} { eval "exec ./mk_dos_trace.out $rate1 $length1 $rate2 $length2 $period $pack_size ./ascii/ascii-$rate1-$length1-$rate2-$length2-$period-$pack_size.txt ./cwnd/dos-$length2-$period" eval "exec rm -f ./cwnd/dos-$length2-$period" eval "exec ./binary_read_file.out ./ascii/file.bin ./ascii/ascii-$rate1-$length1-$rate2-$length2-$period-$pack_size.txt" eval "exec rm -f ./ascii/ascii-$rate1-$length1-$rate2-$length2-$period-$pack_size.txt" puts "before dos.tcl call" eval "exec ./ns dos.tcl $tcp_type $bytes $rate_access $rate_bottleneck $queue $flowstcp $randomflows $rnd $rate1 $length1 $rate2 $length2 $period $pack_size $heter" #NO min RTO #eval "exec ./ns_nominrto dos.tcl $tcp_type $bytes $rate_access $rate_bottleneck $queue $flowstcp $randomflows $rnd $rate1 $length1 $rate2 $length2 $period $pack_size $heter" #> ./results-sale/thr-$tcp_type-$bytes-$rate_access-$rate_bottleneck-$queue-$flowstcp-$randomflows-$rnd-$rate1-$length1-$rate2-$length2-$period-$pack_size-$heter" puts "after dos.tcl call" if {$rnd == 0} { if {$period == 1100} { set file [open ./results-sale/plotcmd "a+"] puts $file "set size 1.0,0.6 set key top right set xrange (0:5) set yrange (0:1.2) set xlabel %Inter-period (sec)% %Helvetica,24% set ylabel %Throughput (normalized)% %Helvetica,24% set terminal postscript color %Helvetica,18% set output %fig-$flowstcp-$length1-$rate1-$length2-$rate2-$tcp_type-$bytes-$heter.ps% plot 'thr-$flowstcp-$length1-$rate1-$length2-$rate2-$tcp_type-$bytes-$heter' using 1:[expr $flowstcp+2] title 'tot-tcp-$length1-$rate1-$length2-$rate2-$tcp_type-$bytes-$heter' w lp lw 2" #Fig 7: #Fig 11: #Per-flow throughput for {set i 0} {$i < $flowstcp} {incr i} { puts $file ", 'thr-$flowstcp-$length1-$rate1-$length2-$rate2-$tcp_type-$bytes-$heter' using 1:[expr 2+$i] title 'tcp$i-$length1-$rate1-$length2-$rate2-$tcp_type-$bytes-$heter' w lp lw 2" } puts $file " " close $file } set file [open ./results-sale/norm "a+"] puts $file "pingthrput.out 6 ./xmit-$tcp_type-$bytes-$rate_access-$rate_bottleneck-$queue-$flowstcp-$randomflows-$rate1-$length1-$rate2-$length2-$period-$pack_size-$heter a ./xmit-$tcp_type-$bytes-$rate_access-$rate_bottleneck-$queue-$flowstcp-$randomflows-$rate1-$length1-$rate2-$length2-$period-$pack_size-$heter-norm 1 $rate_bottleneck thr-$flowstcp-$length1-$rate1-$length2-$rate2-$tcp_type-$bytes-$heter $period $flowstcp" close $file eval "exec chmod 777 ./results-sale/norm" } if {$rnd == 1} { if {$period == 1100} { set file [open ./results-sale/plotcmd "a+"] puts $file "set size 1.0,0.6 set key top right set xrange (0:5) set yrange (0:1.2) set xlabel %Inter-period (sec)% %Helvetica,24% set ylabel %Throughput (normalized)% %Helvetica,24% set terminal postscript color %Helvetica,18% set output %fig-$flowstcp-$length1-$rate1-$length2-$rate2-$tcp_type-$bytes-$heter.ps% plot 'thr-$flowstcp-$length1-$rate1-$length2-$rate2-$tcp_type-$bytes-$heter' using 1:[expr $flowstcp+2] title 'tot-tcp-$length1-$rate1-$length2-$rate2-$tcp_type-$bytes-$heter' w lp lw 2" #Fig 7: #Fig 11: #Per-flow throughput for {set i 0} {$i < $flowstcp} {incr i} { puts $file ", 'thr-$flowstcp-$length1-$rate1-$length2-$rate2-$tcp_type-$bytes-$heter' using 1:[expr 2+$i] title 'tcp$i-$length1-$rate1-$length2-$rate2-$tcp_type-$bytes-$heter' w lp lw 2" } puts $file " " close $file } set file [open ./results-sale/avg "a+"] puts $file "pingthrput.out 5 ./xmit-$tcp_type-$bytes-$rate_access-$rate_bottleneck-$queue-$flowstcp-$randomflows-$rate1-$length1-$rate2-$length2-$period-$pack_size-$heter a ./xmit-$tcp_type-$bytes-$rate_access-$rate_bottleneck-$queue-$flowstcp-$randomflows-$rate1-$length1-$rate2-$length2-$period-$pack_size-$heter-avg 1 1 a $period $flowstcp" close $file eval "exec chmod 777 ./results-sale/avg" set file [open ./results-sale/norm "a+"] puts $file "pingthrput.out 6 ./xmit-$tcp_type-$bytes-$rate_access-$rate_bottleneck-$queue-$flowstcp-$randomflows-$rate1-$length1-$rate2-$length2-$period-$pack_size-$heter-avg a ./xmit-$tcp_type-$bytes-$rate_access-$rate_bottleneck-$queue-$flowstcp-$randomflows-$rate1-$length1-$rate2-$length2-$period-$pack_size-$heter-norm 1 $rate_bottleneck thr-$flowstcp-$length1-$rate1-$length2-$rate2-$tcp_type-$bytes-$heter $period $flowstcp" close $file eval "exec chmod 777 ./results-sale/norm" } } #$period > $length1 + $length2 } #length2 } #pack_size } # period } #rate2 } #length1 } #rate1 } #rnd } #randomflows } #flowstcp incr ctr } #queue } #rate_bottleneck } #rate_access } #bytes } #tcp_type } #heter