Advertisement
fongoses

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

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