Advertisement
Guest User

Untitled

a guest
Nov 25th, 2018
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
TCL 5.76 KB | None | 0 0
  1.  
  2. set ns [new Simulator]
  3. #set outputfile [open out.tr w]
  4. #$ns trace-all $outputfile
  5.  
  6. #set nf [open out.nam w]
  7. #$ns namtrace-all $nf
  8.  
  9.  
  10. set outfile1lr2  [open  "WinFile1lr_test"  w]
  11. set outfile2lr2  [open  "WinFile2lr_test"  w]
  12. set outfile3lr2  [open  "WinFile3lr_test"  w]
  13. set outfile4lr2  [open  "WinFile4lr_test"  w]
  14.  
  15. set outfile1rl2  [open  "WinFile1rl_test"  w]
  16. set outfile2rl2  [open  "WinFile2rl_test"  w]
  17. set outfile3rl2  [open  "WinFile3rl_test"  w]
  18. set outfile4rl2  [open  "WinFile4rl_test"  w]
  19.  
  20. set outfile1lr1  [open  "WinFile1lr_test"  w]
  21. set outfile2lr1  [open  "WinFile2lr_test"  w]
  22. set outfile3lr1  [open  "WinFile3lr_test"  w]
  23. set outfile4lr1  [open  "WinFile4lr_test"  w]
  24.  
  25. set outfile1rl1  [open  "WinFile1rl_test"  w]
  26. set outfile2rl1  [open  "WinFile2rl_test"  w]
  27. set outfile3rl1  [open  "WinFile3rl_test"  w]
  28. set outfile4rl1  [open  "WinFile4rl_test"  w]
  29.  
  30.  
  31.  
  32. proc finish {} {
  33.     global ns nf outputfile
  34. #   $ns flush-trace
  35. #   close $nf
  36. #   close $outputfile
  37. #   puts "nam se lance.."
  38.     #exec nam -a out.nam &
  39.  
  40. #puts $gp "set yrange \[0:1000\]" augmenter taille de la fenetre dabord
  41.     #puts $gp "set ytics 100"
  42.  
  43.     set gp [open "|gnuplot" r+]
  44.   puts $gp "reset"
  45.   puts $gp "set terminal png"
  46.   puts $gp "set output 'Tahoe_test.png'"
  47.   #puts $gp "set xrange \[0:10\]"
  48.   #puts $gp "set xtics 01"
  49.   #puts $gp "set yrange \[0:60\]"
  50.   #puts $gp "set ytics 10"
  51.   puts $gp  "plot 'WinFile2lr_test' using 1:2 title '1ms' w l,\
  52.        'WinFile3lr_test' using 1:2 title '5ms' w l,\
  53.        'WinFile4lr_test' using 1:2 title '10ms' w l,\
  54.        'WinFile2lr_test' using 1:4 title 'max window' w l"
  55.  
  56.   puts $gp "reset"
  57.   puts $gp "set terminal png"
  58.   puts $gp "set output 'Debit_Tahoe_test.png'"
  59.  
  60.   puts $gp  "plot 'WinFile2lr_test' using 1:6 title '1ms' w l,\
  61.        'WinFile3lr_test' using 1:6 title '5ms' w l,\
  62.        'WinFile4lr_test' using 1:6 title '9ms' w l"
  63.  
  64.     exit 0
  65. }
  66. #
  67. #
  68.  
  69. #plot 'WinFile1' using 1:2 title 'Congestion Window' w l,
  70.  
  71. #for {set i 1} {$i<9} {incr i} {
  72. #   set n($i) [$ns node]   
  73. #}
  74.  
  75.  
  76.  
  77.  proc plotWindow {tcpSource outfile} {
  78.      global ns
  79.      set time 0.1
  80.      set now [$ns now]
  81.      set cwnd [$tcpSource set cwnd_]
  82.      set ssth [$tcpSource set ssthresh_]
  83.      set window [$tcpSource set window_]
  84.      set maxseq [$tcpSource set maxseq_]
  85.  
  86.      set debitUtile [expr $maxseq/$now]
  87.  
  88.   ###Print TIME CWND   for  gnuplot to plot progressing on CWND
  89.      puts  $outfile  "$now $cwnd $ssth $window $maxseq $debitUtile"
  90.  
  91.      $ns at [expr $now+$time] "plotWindow $tcpSource $outfile"
  92.   }
  93.  
  94. for {set i 0} {$i < 8} {incr i} {
  95.   set n($i) [$ns node]
  96. }
  97.  
  98.  
  99. #$ns duplex-link $n0 $n3 30Mb 0.1ms DropTail
  100. #$ns duplex-link $n1 $n3 20Mb 0.1ms DropTail
  101. #$ns duplex-link $n2 $n3 35Mb 0.1ms DropTail
  102.  
  103.  
  104. $ns duplex-link $n(0) $n(3) 10Mb 1ms DropTail
  105. $ns duplex-link $n(1) $n(3) 10Mb 5ms DropTail
  106. $ns duplex-link $n(2) $n(3) 10Mb 9ms DropTail
  107.  
  108. $ns duplex-link $n(3) $n(4) 10Mb 1ms DropTail
  109. #$ns duplex-link $n4 $n3 100Mb 0.1ms DropTail
  110.  
  111. $ns duplex-link $n(5) $n(4) 10Mb 1ms DropTail
  112. $ns duplex-link $n(6) $n(4) 10Mb 1ms DropTail
  113. $ns duplex-link $n(7) $n(4) 10Mb 1ms DropTail
  114.  
  115. #$ns set queue-limit $n(3) $n(4) 100
  116. #$ns set queue-limit $n(4) $n(3) 100
  117.  
  118.  
  119. #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
  120. #3eme partie a version egale parametrage different
  121. # pour chaque lien faire deux tcp -> deux version de tcp par lien
  122. # comparer toutes les premieres versions avec 1 rtt
  123. # puis faire varier le rtt
  124.  
  125.  
  126.  
  127.  
  128. set tcp(0-5-1) [new Agent/TCP]
  129.       set sink(0-5-1) [new Agent/TCPSink]
  130.       $ns attach-agent $n(0) $tcp(0-5-1)
  131.       $ns attach-agent $n(5) $sink(0-5-1)
  132.       $ns connect $tcp(0-5-1) $sink(0-5-1)
  133.       $tcp(0-5-1) set window_ 100
  134.  
  135. set tcp(1-6-2) [new Agent/TCP]
  136.       set sink(1-6-2) [new Agent/TCPSink]
  137.       $ns attach-agent $n(1) $tcp(1-6-2)
  138.       $ns attach-agent $n(6) $sink(1-6-2)
  139.       $ns connect $tcp(1-6-2) $sink(1-6-2)
  140.       $tcp(1-6-2) set window_ 100
  141.  
  142.  
  143. set tcp(2-7-2) [new Agent/TCP]
  144.       set sink(2-7-2) [new Agent/TCPSink]
  145.       $ns attach-agent $n(2) $tcp(2-7-2)
  146.       $ns attach-agent $n(7) $sink(2-7-2)
  147.       $ns connect $tcp(2-7-2) $sink(2-7-2)
  148.       $tcp(2-7-2) set window_ 100
  149.  
  150.  
  151. #linux
  152. $ns at 0.1 "$tcp(0-5-1) send 1328318365871346546546584684642857587531"
  153. #$ns at 0.1 "$tcp(0-5-2) send 1328318365871346546546584684642857587531"
  154.  
  155. #newreno
  156. $ns at 0.1 "$tcp(1-6-2) send 1328318365871346546546584684642857587531"
  157. #$ns at 0.1 "$tcp(1-6-2) send 1328318365871346546546584684642857587531"
  158.  
  159. #tahoe
  160. $ns at 0.1 "$tcp(2-7-2) send 1328318365871346546546584684642857587531"
  161. #$ns at 0.1 "$tcp(2-7-2) send 1328318365871346546546584684642857587531"
  162.  
  163. #$ns at 0.0 "$tcp(0-5-1) send 132831836587132831836587"
  164. #$ns at 0.0 "$tcp502 send 132831836587132831836587"
  165. #$ns at 0.0 "$tcp(1-6-1) send 132831836587132831836587"
  166. #$ns at 0.0 "$tcp612 send 132831836587132831836587"
  167. #$ns at 0.0 "$tcp(2-7-1) send 132831836587132831836587"
  168. #$ns at 0.0 "$tcp722 send 132831836587132831836587"
  169.  
  170. #$ns at 0.1 "$tcp(5-0-2) send 1328318365871346546546584684642857587531"
  171. #$ns at 0.0 "$tcp611 send 132831836587132831836587"
  172. #$ns at 0.1 "$tcp(6-1-2) send 1328318365871346546546584684642857587531"
  173. #$ns at 0.0 "$tcp721 send 132831836587132831836587"
  174. #$ns at 0.1 "$tcp(7-2-2) send 1328318365871346546546584684642857587531"
  175.  
  176.  #$ns  at  0.0  "plotWindow $tcp051 $outfile1"
  177.  $ns  at  0.1  "plotWindow $tcp(0-5-1) $outfile2lr2"
  178.  $ns  at  0.1  "plotWindow $tcp(1-6-2) $outfile3lr2"
  179.  $ns  at  0.1  "plotWindow $tcp(2-7-2) $outfile4lr2"
  180.  
  181.  #$ns  at  0.1  "plotWindow $tcp(5-0-2) $outfile2rl2"
  182.  #$ns  at  0.1  "plotWindow $tcp(6-1-2) $outfile3rl2"
  183.  #$ns  at  0.1  "plotWindow $tcp(7-2-2) $outfile4rl2"
  184.  
  185.  
  186.  
  187. $ns at 100.0 "finish"
  188.  
  189. $ns run
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement