Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- set ns [new Simulator]
- #set outputfile [open out.tr w]
- #$ns trace-all $outputfile
- #set nf [open out.nam w]
- #$ns namtrace-all $nf
- set outfile1lr2 [open "WinFile1lr_test" w]
- set outfile2lr2 [open "WinFile2lr_test" w]
- set outfile3lr2 [open "WinFile3lr_test" w]
- set outfile4lr2 [open "WinFile4lr_test" w]
- set outfile1rl2 [open "WinFile1rl_test" w]
- set outfile2rl2 [open "WinFile2rl_test" w]
- set outfile3rl2 [open "WinFile3rl_test" w]
- set outfile4rl2 [open "WinFile4rl_test" w]
- set outfile1lr1 [open "WinFile1lr_test" w]
- set outfile2lr1 [open "WinFile2lr_test" w]
- set outfile3lr1 [open "WinFile3lr_test" w]
- set outfile4lr1 [open "WinFile4lr_test" w]
- set outfile1rl1 [open "WinFile1rl_test" w]
- set outfile2rl1 [open "WinFile2rl_test" w]
- set outfile3rl1 [open "WinFile3rl_test" w]
- set outfile4rl1 [open "WinFile4rl_test" w]
- proc finish {} {
- global ns nf outputfile
- # $ns flush-trace
- # close $nf
- # close $outputfile
- # puts "nam se lance.."
- #exec nam -a out.nam &
- #puts $gp "set yrange \[0:1000\]" augmenter taille de la fenetre dabord
- #puts $gp "set ytics 100"
- set gp [open "|gnuplot" r+]
- puts $gp "reset"
- puts $gp "set terminal png"
- puts $gp "set output 'Tahoe_test.png'"
- #puts $gp "set xrange \[0:10\]"
- #puts $gp "set xtics 01"
- #puts $gp "set yrange \[0:60\]"
- #puts $gp "set ytics 10"
- puts $gp "plot 'WinFile2lr_test' using 1:2 title '1ms' w l,\
- 'WinFile3lr_test' using 1:2 title '5ms' w l,\
- 'WinFile4lr_test' using 1:2 title '10ms' w l,\
- 'WinFile2lr_test' using 1:4 title 'max window' w l"
- puts $gp "reset"
- puts $gp "set terminal png"
- puts $gp "set output 'Debit_Tahoe_test.png'"
- puts $gp "plot 'WinFile2lr_test' using 1:6 title '1ms' w l,\
- 'WinFile3lr_test' using 1:6 title '5ms' w l,\
- 'WinFile4lr_test' using 1:6 title '9ms' w l"
- exit 0
- }
- #
- #
- #plot 'WinFile1' using 1:2 title 'Congestion Window' w l,
- #for {set i 1} {$i<9} {incr i} {
- # set n($i) [$ns node]
- #}
- proc plotWindow {tcpSource outfile} {
- global ns
- set time 0.1
- set now [$ns now]
- set cwnd [$tcpSource set cwnd_]
- set ssth [$tcpSource set ssthresh_]
- set window [$tcpSource set window_]
- set maxseq [$tcpSource set maxseq_]
- set debitUtile [expr $maxseq/$now]
- ###Print TIME CWND for gnuplot to plot progressing on CWND
- puts $outfile "$now $cwnd $ssth $window $maxseq $debitUtile"
- $ns at [expr $now+$time] "plotWindow $tcpSource $outfile"
- }
- for {set i 0} {$i < 8} {incr i} {
- set n($i) [$ns node]
- }
- #$ns duplex-link $n0 $n3 30Mb 0.1ms DropTail
- #$ns duplex-link $n1 $n3 20Mb 0.1ms DropTail
- #$ns duplex-link $n2 $n3 35Mb 0.1ms DropTail
- $ns duplex-link $n(0) $n(3) 10Mb 1ms DropTail
- $ns duplex-link $n(1) $n(3) 10Mb 5ms DropTail
- $ns duplex-link $n(2) $n(3) 10Mb 9ms DropTail
- $ns duplex-link $n(3) $n(4) 10Mb 1ms DropTail
- #$ns duplex-link $n4 $n3 100Mb 0.1ms DropTail
- $ns duplex-link $n(5) $n(4) 10Mb 1ms DropTail
- $ns duplex-link $n(6) $n(4) 10Mb 1ms DropTail
- $ns duplex-link $n(7) $n(4) 10Mb 1ms DropTail
- #$ns set queue-limit $n(3) $n(4) 100
- #$ns set queue-limit $n(4) $n(3) 100
- #premiere partie (de gauche a droite) faire varier les RTT et deuxieme partie (de droite a gauche) faire varier version et tcp et type d'ack
- #3eme partie a version egale parametrage different
- # pour chaque lien faire deux tcp -> deux version de tcp par lien
- # comparer toutes les premieres versions avec 1 rtt
- # puis faire varier le rtt
- set tcp(0-5-1) [new Agent/TCP]
- set sink(0-5-1) [new Agent/TCPSink]
- $ns attach-agent $n(0) $tcp(0-5-1)
- $ns attach-agent $n(5) $sink(0-5-1)
- $ns connect $tcp(0-5-1) $sink(0-5-1)
- $tcp(0-5-1) set window_ 100
- set tcp(1-6-2) [new Agent/TCP]
- set sink(1-6-2) [new Agent/TCPSink]
- $ns attach-agent $n(1) $tcp(1-6-2)
- $ns attach-agent $n(6) $sink(1-6-2)
- $ns connect $tcp(1-6-2) $sink(1-6-2)
- $tcp(1-6-2) set window_ 100
- set tcp(2-7-2) [new Agent/TCP]
- set sink(2-7-2) [new Agent/TCPSink]
- $ns attach-agent $n(2) $tcp(2-7-2)
- $ns attach-agent $n(7) $sink(2-7-2)
- $ns connect $tcp(2-7-2) $sink(2-7-2)
- $tcp(2-7-2) set window_ 100
- #linux
- $ns at 0.1 "$tcp(0-5-1) send 1328318365871346546546584684642857587531"
- #$ns at 0.1 "$tcp(0-5-2) send 1328318365871346546546584684642857587531"
- #newreno
- $ns at 0.1 "$tcp(1-6-2) send 1328318365871346546546584684642857587531"
- #$ns at 0.1 "$tcp(1-6-2) send 1328318365871346546546584684642857587531"
- #tahoe
- $ns at 0.1 "$tcp(2-7-2) send 1328318365871346546546584684642857587531"
- #$ns at 0.1 "$tcp(2-7-2) send 1328318365871346546546584684642857587531"
- #$ns at 0.0 "$tcp(0-5-1) send 132831836587132831836587"
- #$ns at 0.0 "$tcp502 send 132831836587132831836587"
- #$ns at 0.0 "$tcp(1-6-1) send 132831836587132831836587"
- #$ns at 0.0 "$tcp612 send 132831836587132831836587"
- #$ns at 0.0 "$tcp(2-7-1) send 132831836587132831836587"
- #$ns at 0.0 "$tcp722 send 132831836587132831836587"
- #$ns at 0.1 "$tcp(5-0-2) send 1328318365871346546546584684642857587531"
- #$ns at 0.0 "$tcp611 send 132831836587132831836587"
- #$ns at 0.1 "$tcp(6-1-2) send 1328318365871346546546584684642857587531"
- #$ns at 0.0 "$tcp721 send 132831836587132831836587"
- #$ns at 0.1 "$tcp(7-2-2) send 1328318365871346546546584684642857587531"
- #$ns at 0.0 "plotWindow $tcp051 $outfile1"
- $ns at 0.1 "plotWindow $tcp(0-5-1) $outfile2lr2"
- $ns at 0.1 "plotWindow $tcp(1-6-2) $outfile3lr2"
- $ns at 0.1 "plotWindow $tcp(2-7-2) $outfile4lr2"
- #$ns at 0.1 "plotWindow $tcp(5-0-2) $outfile2rl2"
- #$ns at 0.1 "plotWindow $tcp(6-1-2) $outfile3rl2"
- #$ns at 0.1 "plotWindow $tcp(7-2-2) $outfile4rl2"
- $ns at 100.0 "finish"
- $ns run
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement