Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Exemplo dado em aula pelo professor.
- #A documentação do ns2 possui uma boa explicação sobre cada
- #uma das funções utilizadas aqui. Comando:
- # $ man ns
- #Create a simulator object
- set ns [new Simulator]
- #Define different colors for data flows
- $ns color 1 Blue
- $ns color 2 Red
- $ns color 3 Green
- #Cria arquivos de saida
- set run_nam 0
- #utilizamos o nome out.tr para utilizacao no gbandafluxo.pl
- set f [open out.tr w]
- $ns trace-all $f
- set nf [open out-ex1ci.nam w]
- $ns namtrace-all $nf
- #Define a ’finish’ procedure
- proc finish {} {
- global ns nf f run_nam
- $ns flush-trace
- #Close the trace file
- close $nf
- close $f
- if {$run_nam} {
- puts "running nam..."
- exec nam out-ex1ci.nam
- }
- exit 0
- #Execute nam on the trace file
- exit 0
- }
- #Create four nodes
- set n1 [$ns node]
- set n2 [$ns node]
- set n3 [$ns node]
- set n4 [$ns node]
- set n5 [$ns node]
- set n6 [$ns node]
- set n7 [$ns node]
- set n8 [$ns node]
- set n9 [$ns node]
- set n10 [$ns node]
- set n11 [$ns node]
- set n12 [$ns node]
- #Create links between the nodes
- $ns duplex-link $n1 $n5 10Mb 5ms DropTail
- $ns duplex-link $n2 $n5 10Mb 5ms DropTail
- $ns duplex-link $n3 $n5 10Mb 5ms DropTail
- $ns duplex-link $n4 $n5 10Mb 5ms DropTail
- $ns duplex-link $n5 $n6 1Mb 5ms DropTail
- $ns duplex-link $n6 $n7 10Mb 5ms DropTail
- $ns duplex-link $n6 $n8 1Mb 5ms DropTail
- $ns duplex-link $n8 $n9 10Mb 5ms DropTail
- $ns duplex-link $n8 $n10 500Kb 5ms DropTail
- $ns duplex-link $n8 $n11 10Mb 5ms DropTail
- $ns duplex-link $n10 $n12 10Mb 5ms DropTail
- #'op' define uma operacao para o link, que no caso é uma definição de
- #posicionamento dele.
- $ns duplex-link-op $n1 $n5 orient right-down
- $ns duplex-link-op $n2 $n5 orient right
- $ns duplex-link-op $n3 $n5 orient right-up
- $ns duplex-link-op $n4 $n5 orient up
- $ns duplex-link-op $n5 $n6 orient right
- $ns duplex-link-op $n6 $n7 orient up
- $ns duplex-link-op $n6 $n8 orient right
- $ns duplex-link-op $n8 $n9 orient up
- $ns duplex-link-op $n8 $n10 orient right
- $ns duplex-link-op $n8 $n11 orient down
- $ns duplex-link-op $n10 $n12 orient up
- #--Criacao do agente/transmissor TCP1 e do (sink) R1, bem como a aplicacao ftp2--#
- set tcpTrans1 [new Agent/TCP/FullTcp]
- #seta tamanho da janela do TCP
- $tcpTrans1 set fid_ 1
- #$tcpTrans1 set window_ 20
- #puts [$tcpTrans1 set window_]
- #Gera receptor (sink) para o fluxo tcp e acopla ele no nodo 3
- set tcpSinkR1 [new Agent/TCP/FullTcp]
- $ns attach-agent $n1 $tcpTrans1
- $ns attach-agent $n7 $tcpSinkR1
- #Conecta o transmissor com o receptor
- $ns connect $tcpTrans1 $tcpSinkR1
- $tcpSinkR1 listen
- #cria aplicacao ftp para rodar sobre o transmissor TCP
- set ftpApp1 [new Application/FTP]
- $ftpApp1 attach-agent $tcpTrans1
- #--Criacao do agente/transmissor TCP2 e do (sink) R2, bem como a aplicacao ftp2--#
- set tcpTrans2 [new Agent/TCP/FullTcp]
- #seta tamanho da janela do TCP
- $tcpTrans2 set fid_ 2
- #$tcpTrans2 set window_ 20
- #puts [$tcpTrans2 set window_]
- #Gera receptor (sink) para o fluxo tcp e acopla ele no nodo 3
- set tcpSinkR2 [new Agent/TCP/FullTcp]
- $ns attach-agent $n2 $tcpTrans2
- $ns attach-agent $n9 $tcpSinkR2
- #Conecta o transmissor com o receptor
- $ns connect $tcpTrans2 $tcpSinkR2
- $tcpSinkR2 listen
- #cria aplicacao ftp para rodar sobre o transmissor TCP
- set ftpApp2 [new Application/FTP]
- $ftpApp2 attach-agent $tcpTrans2
- #--Criacao do agente/transmissor TCP3 e do (sink) R3, bem como a aplicacao ftp3--#
- set tcpTrans3 [new Agent/TCP/FullTcp]
- #seta tamanho da janela do TCP
- $tcpTrans3 set fid_ 3
- #$tcpTrans3 set window_ 20
- #puts [$tcpTrans3 set window_]
- #Gera receptor (sink) para o fluxo tcp e acopla ele no nodo 3
- set tcpSinkR3 [new Agent/TCP/FullTcp]
- $ns attach-agent $n3 $tcpTrans3
- $ns attach-agent $n12 $tcpSinkR3
- #Conecta o transmissor com o receptor
- $ns connect $tcpTrans3 $tcpSinkR3
- $tcpSinkR3 listen
- #cria aplicacao ftp para rodar sobre o transmissor TCP
- set ftpApp3 [new Application/FTP]
- $ftpApp3 attach-agent $tcpTrans3
- #Escalona no tempo o inicio de cada aplicacao FTP
- $ns at 1.0 "$ftpApp1 start"
- $ns at 15.0 "$ftpApp1 stop"
- $ns at 2.0 "$ftpApp2 start"
- $ns at 15.0 "$ftpApp2 stop"
- $ns at 3.0 "$ftpApp3 start"
- $ns at 15.0 "$ftpApp3 stop"
- #Call the finish procedure after 4 seconds of simulation time
- $ns at 16.0 "finish"
- #Run the simulation
- $ns run
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement