Advertisement
fongoses

Item ii - Exercício 3 - Relatório 6

Jan 9th, 2013
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
TCL 4.82 KB | None | 0 0
  1. #Exemplo dado em aula pelo professor.
  2. #A documentação do ns2 possui uma boa explicação sobre cada
  3. #uma das funções utilizadas aqui. Comando:
  4. #   $ man ns
  5.  
  6. #Create a simulator object
  7. set ns [new Simulator]
  8.  
  9. #Define different colors for data flows
  10. $ns color 1 Blue
  11. $ns color 2 Red
  12. $ns color 3 Green
  13. $ns color 4 Yellow
  14.  
  15. #Cria arquivos de saida
  16. set run_nam 0
  17. #utilizamos o nome out.tr para utilizacao no gbandafluxo.pl
  18. set f [open out.tr w]
  19. $ns trace-all $f
  20. set nf [open out-ex1cii.nam w]
  21. $ns namtrace-all $nf
  22.  
  23. #Define a ’finish’ procedure
  24. proc finish {} {
  25.     global ns nf f run_nam
  26.     $ns flush-trace
  27.     #Close the trace file
  28.     close $nf
  29.     close $f
  30.         if {$run_nam} {
  31.             puts "running nam..."
  32.             exec nam out-ex1ci.nam
  33.     }
  34.         exit 0
  35.     #Execute nam on the trace file
  36.     exit 0
  37. }
  38. #Create four nodes
  39. set n1 [$ns node]
  40. set n2 [$ns node]
  41. set n3 [$ns node]
  42. set n4 [$ns node]
  43. set n5 [$ns node]
  44. set n6 [$ns node]
  45. set n7 [$ns node]
  46. set n8 [$ns node]
  47. set n9 [$ns node]
  48. set n10 [$ns node]
  49. set n11 [$ns node]
  50. set n12 [$ns node]
  51.  
  52. #Create links between the nodes
  53. $ns duplex-link $n1 $n5 10Mb 5ms DropTail
  54. $ns duplex-link $n2 $n5 10Mb 5ms DropTail
  55. $ns duplex-link $n3 $n5 10Mb 5ms DropTail
  56. $ns duplex-link $n4 $n5 10Mb 5ms DropTail
  57. $ns duplex-link $n5 $n6 1Mb 5ms DropTail
  58. $ns duplex-link $n6 $n7 10Mb 5ms DropTail
  59. $ns duplex-link $n6 $n8 1Mb 5ms DropTail
  60. $ns duplex-link $n8 $n9 10Mb 5ms DropTail
  61. $ns duplex-link $n8 $n10 500Kb 5ms DropTail
  62. $ns duplex-link $n8 $n11 10Mb 5ms DropTail
  63. $ns duplex-link $n10 $n12 10Mb 5ms DropTail
  64.  
  65. #'op' define uma operacao para o link, que no caso é uma definição de
  66. #posicionamento dele.
  67. $ns duplex-link-op $n1 $n5 orient right-down
  68. $ns duplex-link-op $n2 $n5 orient right
  69. $ns duplex-link-op $n3 $n5 orient right-up
  70. $ns duplex-link-op $n4 $n5 orient up
  71. $ns duplex-link-op $n5 $n6 orient right
  72. $ns duplex-link-op $n6 $n7 orient up
  73. $ns duplex-link-op $n6 $n8 orient right
  74. $ns duplex-link-op $n8 $n9 orient up
  75. $ns duplex-link-op $n8 $n10 orient right
  76. $ns duplex-link-op $n8 $n11 orient down
  77. $ns duplex-link-op $n10 $n12 orient up
  78.  
  79. #--Criacao do agente/transmissor TCP1 e do (sink) R1, bem como a aplicacao ftp2--#
  80. set tcpTrans1 [new Agent/TCP/FullTcp]
  81. #seta tamanho da janela do TCP
  82. $tcpTrans1 set fid_ 1
  83. #$tcpTrans1 set window_ 20
  84. #puts [$tcpTrans1 set window_]
  85. #Gera receptor (sink) para o fluxo tcp e acopla ele no nodo 3
  86. set tcpSinkR1 [new Agent/TCP/FullTcp]
  87. $ns attach-agent $n1 $tcpTrans1
  88. $ns attach-agent $n7 $tcpSinkR1
  89. #Conecta o transmissor com o receptor
  90. $ns connect $tcpTrans1 $tcpSinkR1
  91. $tcpSinkR1 listen
  92. #cria aplicacao ftp para rodar sobre o transmissor TCP  
  93. set ftpApp1 [new Application/FTP]
  94. $ftpApp1 attach-agent $tcpTrans1
  95.  
  96. #--Criacao do agente/transmissor TCP2 e do (sink) R2, bem como a aplicacao ftp2--#
  97. set tcpTrans2 [new Agent/TCP/FullTcp]
  98. #seta tamanho da janela do TCP
  99. $tcpTrans2 set fid_ 2
  100. #$tcpTrans2 set window_ 20
  101. #puts [$tcpTrans2 set window_]
  102. #Gera receptor (sink) para o fluxo tcp e acopla ele no nodo 3
  103. set tcpSinkR2 [new Agent/TCP/FullTcp]
  104. $ns attach-agent $n2 $tcpTrans2
  105. $ns attach-agent $n9 $tcpSinkR2
  106. #Conecta o transmissor com o receptor
  107. $ns connect $tcpTrans2 $tcpSinkR2
  108. $tcpSinkR2 listen
  109. #cria aplicacao ftp para rodar sobre o transmissor TCP  
  110. set ftpApp2 [new Application/FTP]
  111. $ftpApp2 attach-agent $tcpTrans2
  112.  
  113. #--Criacao do agente/transmissor TCP3 e do (sink) R3, bem como a aplicacao ftp3--#
  114. set tcpTrans3 [new Agent/TCP/FullTcp]
  115. #seta tamanho da janela do TCP
  116. $tcpTrans3 set fid_ 3
  117. #$tcpTrans3 set window_ 20
  118. #puts [$tcpTrans3 set window_]
  119. #Gera receptor (sink) para o fluxo tcp e acopla ele no nodo 3
  120. set tcpSinkR3 [new Agent/TCP/FullTcp]
  121. $ns attach-agent $n3 $tcpTrans3
  122. $ns attach-agent $n12 $tcpSinkR3
  123. #Conecta o transmissor com o receptor
  124. $ns connect $tcpTrans3 $tcpSinkR3
  125. $tcpSinkR3 listen
  126. #cria aplicacao ftp para rodar sobre o transmissor TCP  
  127. set ftpApp3 [new Application/FTP]
  128. $ftpApp3 attach-agent $tcpTrans3
  129.  
  130. #--Criacao do agente/transmissor UDP e do (sink) R4--#
  131. set udp1 [new Agent/UDP]
  132. $udp1 set fid_ 4
  133. #Gera receptor (sink) para o fluxo tcp e acopla ele no nodo 3
  134. set udpSinkR4 [new Agent/Null]
  135. $ns attach-agent $n4 $udp1
  136. $ns attach-agent $n11 $udpSinkR4
  137. #Conecta o transmissor com o receptor
  138. $ns connect $udp1 $udpSinkR4
  139. #cria aplicacao CBR para rodar sobre o transmissor UDP  
  140. set cbrApp [new Application/Traffic/CBR]
  141. #$cbrApp set packetSize_ 500
  142. $cbrApp set rate_ 500Kbps
  143. $cbrApp attach-agent $udp1
  144.  
  145. #Escalona no tempo o inicio de cada aplicacao FTP
  146. $ns at 1.0 "$ftpApp1 start"
  147. $ns at 15.0 "$ftpApp1 stop"
  148. $ns at 2.0 "$ftpApp2 start"
  149. $ns at 15.0 "$ftpApp2 stop"
  150. $ns at 3.0 "$ftpApp3 start"
  151. $ns at 15.0 "$ftpApp3 stop"
  152. $ns at 4.0 "$cbrApp start"
  153. $ns at 15.0 "$cbrApp stop"
  154.  
  155. #Call the finish procedure after 4 seconds of simulation time
  156. $ns at 16.0 "finish"
  157. #Run the simulation
  158. $ns run
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement