A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Iniciando o uso do ns Isabela Guimarães Siqueira Curso de ns Ciência da Computação UFMG Julho/Agosto 2003.

Apresentações semelhantes


Apresentação em tema: "Iniciando o uso do ns Isabela Guimarães Siqueira Curso de ns Ciência da Computação UFMG Julho/Agosto 2003."— Transcrição da apresentação:

1 Iniciando o uso do ns Isabela Guimarães Siqueira Curso de ns Ciência da Computação UFMG Julho/Agosto 2003

2 Introdução Lets start at the very beginning, a very nice place to start, when you sing, you begin with A, B, C, when you simulate, you begin with the topology. Rodgers and Hammerstein

3 Um primeiro exemplo cbr udp n1 n0 Link duplex Largura de banda: 1Mbps Atraso de 10ms Fila droptail null 200 pacotes/s Pacote de 500 bytes t cbr Final da simulação

4 Um primeiro exemplo set ns [new Simulator] set nf [open out.nam w] $ns namtrace-all $nf set f [open out.tr w] $ns trace-all $f proc finish {} { global ns nf f $ns flush-trace close $nf close $f exec nam out.nam & exit 0 } set n0 [$ns node] set n1 [$ns node] $ns duplex-link $n0 $n1 1Mb 10ms DropTail set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ $cbr0 attach-agent $udp0 set null0 [new Agent/Null] $ns attach-agent $n1 $null0 $ns connect $udp0 $null0 $ns at 0.5 "$cbr0 start" $ns at 4.5 "$cbr0 stop" $ns at 5.0 "finish" $ns run

5 Um primeiro exemplo set ns [new Simulator] set nf [open out.nam w] $ns namtrace-all $nf set f [open out.tr w] $ns trace-all $f proc finish {} { global ns nf f $ns flush-trace close $nf close $f exec nam out.nam & exit 0 } set n0 [$ns node] set n1 [$ns node] $ns duplex-link $n0 $n1 1Mb 10ms DropTail set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ $cbr0 attach-agent $udp0 set null0 [new Agent/Null] $ns attach-agent $n1 $null0 $ns connect $udp0 $null0 $ns at 0.5 "$cbr0 start" $ns at 4.5 "$cbr0 stop" $ns at 5.0 "finish" $ns run

6 Um primeiro exemplo set ns [new Simulator] Gera instância do simulador O construtor de Simulator: Inicializa o formato dos pacotes Cria um escalonador Seleciona o formato de endereçamento A classe Simulator contém métodos que: Criam objetos compostos (como nodos e links) Conectam os componentes criados Configuram os parâmetros dos elementos etc

7 Um primeiro exemplo set ns [new Simulator] set nf [open out.nam w] $ns namtrace-all $nf set f [open out.tr w] $ns trace-all $f proc finish {} { global ns nf f $ns flush-trace close $nf close $f exec nam out.nam & exit 0 } set n0 [$ns node] set n1 [$ns node] $ns duplex-link $n0 $n1 1Mb 10ms DropTail set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ $cbr0 attach-agent $udp0 set null0 [new Agent/Null] $ns attach-agent $n1 $null0 $ns connect $udp0 $null0 $ns at 0.5 "$cbr0 start" $ns at 4.5 "$cbr0 stop" $ns at 5.0 "finish" $ns run

8 Um primeiro exemplo set nf [open out.nam w] $ns namtrace-all $nf set f [open out.tr w] $ns trace-all $f Abre o arquivo out.nam para escrita e o associa a nf, que passa a ser o seu tratador Diz ao simulador para escrever todos os dados trace de NAM nesse arquivo Abre o arquivo out.tr para escrita e o associa a nf, que passa a ser o seu tratador Diz ao simulador para escrever todos os dados trace nesse arquivo

9 Um primeiro exemplo set ns [new Simulator] set nf [open out.nam w] $ns namtrace-all $nf set f [open out.tr w] $ns trace-all $f proc finish {} { global ns nf f $ns flush-trace close $nf close $f exec nam out.nam & exit 0 } set n0 [$ns node] set n1 [$ns node] $ns duplex-link $n0 $n1 1Mb 10ms DropTail set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ $cbr0 attach-agent $udp0 set null0 [new Agent/Null] $ns attach-agent $n1 $null0 $ns connect $udp0 $null0 $ns at 0.5 "$cbr0 start" $ns at 4.5 "$cbr0 stop" $ns at 5.0 "finish" $ns run

10 Um primeiro exemplo $ns at 5.0 "finish" Escalona procedimento finish para ser executado aos 5s de simulação Genérico: $ns at

11 Um primeiro exemplo proc finish {} { global ns nf f $ns flush-trace close $nf close $f exec nam out.nam & exit 0 } Fecha o arquivo de trace do NAM e inicializa o NAM Fecha o arquivo de trace do simulador

12 Um primeiro exemplo set ns [new Simulator] set nf [open out.nam w] $ns namtrace-all $nf set f [open out.tr w] $ns trace-all $f proc finish {} { global ns nf f $ns flush-trace close $nf close $f exec nam out.nam & exit 0 } set n0 [$ns node] set n1 [$ns node] $ns duplex-link $n0 $n1 1Mb 10ms DropTail set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ $cbr0 attach-agent $udp0 set null0 [new Agent/Null] $ns attach-agent $n1 $null0 $ns connect $udp0 $null0 $ns at 0.5 "$cbr0 start" $ns at 4.5 "$cbr0 stop" $ns at 5.0 "finish" $ns run

13 Um primeiro exemplo set n0 [$ns node] set n1 [$ns node] A função node cria os nodos da rede Nessa caso associados aos tratadores n0 e n1

14 Um primeiro exemplo set ns [new Simulator] set nf [open out.nam w] $ns namtrace-all $nf set f [open out.tr w] $ns trace-all $f proc finish {} { global ns nf f $ns flush-trace close $nf close $f exec nam out.nam & exit 0 } set n0 [$ns node] set n1 [$ns node] $ns duplex-link $n0 $n1 1Mb 10ms DropTail set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ $cbr0 attach-agent $udp0 set null0 [new Agent/Null] $ns attach-agent $n1 $null0 $ns connect $udp0 $null0 $ns at 0.5 "$cbr0 start" $ns at 4.5 "$cbr0 stop" $ns at 5.0 "finish" $ns run

15 Um primeiro exemplo $ns duplex-link $n0 $n1 1Mb 10ms DropTail Criação do link que conecta n0 e n1 Canal duplex, 1Mbps de largura de banda, 10ms de atraso, fila droptail Comando genérico: $ns -link =

16 Um primeiro exemplo set ns [new Simulator] set nf [open out.nam w] $ns namtrace-all $nf set f [open out.tr w] $ns trace-all $f proc finish {} { global ns nf f $ns flush-trace close $nf close $f exec nam out.nam & exit 0 } set n0 [$ns node] set n1 [$ns node] $ns duplex-link $n0 $n1 1Mb 10ms DropTail set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ $cbr0 attach-agent $udp0 set null0 [new Agent/Null] $ns attach-agent $n1 $null0 $ns connect $udp0 $null0 $ns at 0.5 "$cbr0 start" $ns at 4.5 "$cbr0 stop" $ns at 5.0 "finish" $ns run

17 Um primeiro exemplo set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 Cria agente UDP Anexa o agente ao nodo n0 Comando genérico: $ns attach-agent

18 Um primeiro exemplo set ns [new Simulator] set nf [open out.nam w] $ns namtrace-all $nf set f [open out.tr w] $ns trace-all $f proc finish {} { global ns nf f $ns flush-trace close $nf close $f exec nam out.nam & exit 0 } set n0 [$ns node] set n1 [$ns node] $ns duplex-link $n0 $n1 1Mb 10ms DropTail set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ $cbr0 attach-agent $udp0 set null0 [new Agent/Null] $ns attach-agent $n1 $null0 $ns connect $udp0 $null0 $ns at 0.5 "$cbr0 start" $ns at 4.5 "$cbr0 stop" $ns at 5.0 "finish" $ns run

19 Um primeiro exemplo set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ $cbr0 attach-agent $udp0 Cria gerador de tráfego CBR (Constant Bit Rate) Configura tamanho do pacote e taxa de envio Ver manual para parâmetros relevantes a cada tipo de agente Anexa a aplicação CBR ao agente UDP Comando genérico: attach-agent Utilitário: indep-utils/cbrgen.tcl Outros geradores de tráfego: Exponential, Pareto e Trace

20 Um primeiro exemplo set ns [new Simulator] set nf [open out.nam w] $ns namtrace-all $nf set f [open out.tr w] $ns trace-all $f proc finish {} { global ns nf f $ns flush-trace close $nf close $f exec nam out.nam & exit 0 } set n0 [$ns node] set n1 [$ns node] $ns duplex-link $n0 $n1 1Mb 10ms DropTail set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ $cbr0 attach-agent $udp0 set null0 [new Agent/Null] $ns attach-agent $n1 $null0 $ns connect $udp0 $null0 $ns at 0.5 "$cbr0 start" $ns at 4.5 "$cbr0 stop" $ns at 5.0 "finish" $ns run

21 Um primeiro exemplo set null0 [new Agent/Null] $ns attach-agent $n1 $null0 Cria agente Null Atua como sink do tráfego Anexa o agente Null ao nodo n1

22 Um primeiro exemplo set ns [new Simulator] set nf [open out.nam w] $ns namtrace-all $nf set f [open out.tr w] $ns trace-all $f proc finish {} { global ns nf f $ns flush-trace close $nf close $f exec nam out.nam & exit 0 } set n0 [$ns node] set n1 [$ns node] $ns duplex-link $n0 $n1 1Mb 10ms DropTail set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ $cbr0 attach-agent $udp0 set null0 [new Agent/Null] $ns attach-agent $n1 $null0 $ns connect $udp0 $null0 $ns at 0.5 "$cbr0 start" $ns at 4.5 "$cbr0 stop" $ns at 5.0 "finish" $ns run

23 Um primeiro exemplo $ns connect $udp0 $null0 Conecta os dois agentes de transporte Comando genérico: $ns connect

24 Um primeiro exemplo set ns [new Simulator] set nf [open out.nam w] $ns namtrace-all $nf set f [open out.tr w] $ns trace-all $f proc finish {} { global ns nf f $ns flush-trace close $nf close $f exec nam out.nam & exit 0 } set n0 [$ns node] set n1 [$ns node] $ns duplex-link $n0 $n1 1Mb 10ms DropTail set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ $cbr0 attach-agent $udp0 set null0 [new Agent/Null] $ns attach-agent $n1 $null0 $ns connect $udp0 $null0 $ns at 0.5 "$cbr0 start" $ns at 4.5 "$cbr0 stop" $ns at 5.0 "finish" $ns run

25 Um primeiro exemplo $ns at 0.5 "$cbr0 start" $ns at 4.5 "$cbr0 stop" Configura momento do início do envio de pacotes CBR Configura momento do final do envio de pacotes CBR

26 Um primeiro exemplo set ns [new Simulator] set nf [open out.nam w] $ns namtrace-all $nf set f [open out.tr w] $ns trace-all $f proc finish {} { global ns nf f $ns flush-trace close $nf close $f exec nam out.nam & exit 0 } set n0 [$ns node] set n1 [$ns node] $ns duplex-link $n0 $n1 1Mb 10ms DropTail set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ $cbr0 attach-agent $udp0 set null0 [new Agent/Null] $ns attach-agent $n1 $null0 $ns connect $udp0 $null0 $ns at 0.5 "$cbr0 start" $ns at 4.5 "$cbr0 stop" $ns at 5.0 "finish" $ns run

27 Um primeiro exemplo $ns run Inicia a simulação

28 Um primeiro exemplo out.nam

29 Um primeiro exemplo cbr cbr cbr cbr cbr cbr r cbr cbr cbr r cbr cbr cbr r cbr (...) cbr cbr r cbr cbr cbr r cbr cbr cbr r cbr r cbr r cbr

30 Um primeiro exemplo cbr cbr r cbr Formato: + pacote entrou na fila - pacote saiu da fila r pacote recebido d pacote descartado

31 Um exemplo mais elaborado n1 n0 n2n3

32 Um exemplo mais elaborado set n0 [$ns node] set n1 [$ns node] set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node] set val(nn) 4 for {set i 0} {$i < $val(nn)} {incr i} { set node_($i) [$ns node] }

33 Um exemplo mais elaborado n1 n0 n2n3 Link duplex Largura de banda: 2Mbps Atraso de 10ms Fila droptail Link duplex Largura de banda: 2Mbps Atraso de 10ms Fila droptail Link duplex Largura de banda: 1,7Mbps Atraso de 20ms Fila droptail

34 Um exemplo mais elaborado $ns duplex-link $n0 $n1 1Mb 10ms DropTail $ns duplex-link $n0 $n2 2Mb 10ms DropTail $ns duplex-link $n1 $n2 2Mb 10ms DropTail $ns duplex-link $n2 $n3 1.7Mb 20ms DropTail $ns queue-limit $n2 $n3 10 $ns duplex-link-op $n0 $n2 orient right-down $ns duplex-link-op $n1 $n2 orient right-up $ns duplex-link-op $n2 $n3 orient right $ns duplex-link-op $n2 $n3 queuePos 0.5 NAM

35 Um exemplo mais elaborado 1 Mbps Pacote de 1000 bytes n1 n0 n2n3 ftp tcp cbr udp null sink

36 Um exemplo mais elaborado set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ $cbr0 attach-agent $udp0 set null0 [new Agent/Null] $ns attach-agent $n1 $null0 $ns connect $udp0 $null0 set udp0 [new Agent/UDP] $udp0 set class_ 1 $ns attach-agent $n1 $udp0 set null0 [new Agent/Null] $ns attach-agent $n3 $null0 $ns connect $udp0 $null0 set cbr0 [new Application/Traffic/CBR] $cbr0 attach-agent $udp0 $cbr0 set packet_size_ 1000 $cbr0 set rate_ 1mb set tcp0 [new Agent/TCP] $tcp0 set class_ 2 $ns attach-agent $n0 $tcp0 set sink0 [new Agent/TCPSink] $ns attach-agent $n3 $sink0 $ns connect $tcp0 $sink0 set ftp [new Application/FTP] $ftp0 attach-agent $tcp0

37 Um exemplo mais elaborado set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ $cbr0 attach-agent $udp0 set null0 [new Agent/Null] $ns attach-agent $n1 $null0 $ns connect $udp0 $null0 set udp0 [new Agent/UDP] $udp0 set class_ 1 $ns attach-agent $n1 $udp0 set null0 [new Agent/Null] $ns attach-agent $n3 $null0 $ns connect $udp0 $null0 set cbr0 [new Application/Traffic/CBR] $cbr0 attach-agent $udp0 $cbr0 set packetSize_ 1000 $cbr0 set rate_ 1mb set tcp0 [new Agent/TCP] $tcp0 set class_ 2 $ns attach-agent $n0 $tcp0 set sink0 [new Agent/TCPSink] $ns attach-agent $n3 $sink0 $ns connect $tcp0 $sink0 set ftp [new Application/FTP] $ftp0 attach-agent $tcp0

38 Um exemplo mais elaborado $udp0 set class_ 1 $tcp0 set class_ 2 Identifica a classe do fluxo Referente ao parâmetro do trace Comando genérico: set class_

39 Um exemplo mais elaborado set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ $cbr0 attach-agent $udp0 set null0 [new Agent/Null] $ns attach-agent $n1 $null0 $ns connect $udp0 $null0 set udp0 [new Agent/UDP] $udp0 set class_ 1 $ns attach-agent $n1 $udp0 set null0 [new Agent/Null] $ns attach-agent $n3 $null0 $ns connect $udp0 $null0 set cbr0 [new Application/Traffic/CBR] $cbr0 attach-agent $udp0 $cbr0 set packetSize_ 1000 $cbr0 set rate_ 1mb set tcp0 [new Agent/TCP] $tcp0 set class_ 2 $ns attach-agent $n0 $tcp0 set sink0 [new Agent/TCPSink] $ns attach-agent $n3 $sink0 $ns connect $tcp0 $sink0 set ftp [new Application/FTP] $ftp0 attach-agent $tcp0

40 Um exemplo mais elaborado set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ $cbr0 attach-agent $udp0 set null0 [new Agent/Null] $ns attach-agent $n1 $null0 $ns connect $udp0 $null0 set udp0 [new Agent/UDP] $udp0 set class_ 1 $ns attach-agent $n1 $udp0 set null0 [new Agent/Null] $ns attach-agent $n3 $null0 $ns connect $udp0 $null0 set cbr0 [new Application/Traffic/CBR] $cbr0 attach-agent $udp0 $cbr0 set packetSize_ 1000 $cbr0 set rate_ 1mb set tcp0 [new Agent/TCP] $tcp0 set class_ 2 $ns attach-agent $n0 $tcp0 set sink0 [new Agent/TCPSink] $ns attach-agent $n3 $sink0 $ns connect $tcp0 $sink0 set ftp [new Application/FTP] $ftp0 attach-agent $tcp0

41 Um exemplo mais elaborado set tcp0 [new Agent/TCP] $ns attach-agent $n0 $tcp0 set sink0 [new Agent/TCPSink] $ns attach-agent $n3 $sink0 $ns connect $tcp0 $sink0 Anexa um agente TCP a n0 Anexa um agente TCPSink a n3 Conecta os dois agentes

42 Um exemplo mais elaborado set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packetSize_ 500 $cbr0 set interval_ $cbr0 attach-agent $udp0 set null0 [new Agent/Null] $ns attach-agent $n1 $null0 $ns connect $udp0 $null0 set udp0 [new Agent/UDP] $udp0 set class_ 1 $ns attach-agent $n1 $udp0 set null0 [new Agent/Null] $ns attach-agent $n3 $null0 $ns connect $udp0 $null0 set cbr0 [new Application/Traffic/CBR] $cbr0 attach-agent $udp0 $cbr0 set packetSize_ 1000 $cbr0 set rate_ 1mb set tcp0 [new Agent/TCP] $tcp0 set class_ 2 $ns attach-agent $n0 $tcp0 set sink0 [new Agent/TCPSink] $ns attach-agent $n3 $sink0 $ns connect $tcp0 $sink0 set ftp [new Application/FTP] $ftp0 attach-agent $tcp0

43 Um exemplo mais elaborado set ftp [new Application/FTP] $ftp0 attach-agent $tcp0 Cria instância de aplicação FTP Anexa a aplicação FTP à instância do TCP Application/FTP é uma aplicação simulada, assim como Application/Telnet

44 Um exemplo mais elaborado t cbr Final da simulação ftp $ns at 0.5 "$cbr0 start" $ns at 4.5 "$cbr0 stop" $ns at 0.5 "$cbr0 start" $ns at 4.5 "$cbr0 stop $ns at 1.0 "$ftp0 start" $ns at 4.0 "$ftp0 stop

45 Um exemplo mais elaborado E por último... $ns color 1 Blue $ns color 2 Red Define as cores de cada classe de tráfego para visualização no NAM

46 Um exemplo mais elaborado

47

48

49

50 cbr cbr cbr cbr r cbr cbr cbr cbr cbr (...) tcp r ack ack ack r ack r cbr cbr d cbr tcp

51 Um gostinho de wireless ftp tcp n1 n0 Wireless sink ftp Final da simulação t

52 Um gostinho de wireless Define os componentes do nodo móvel set val(chan) Channel/WirelessChannel ;# tipo do canal set val(prop) Propagation/TwoRayGround ;# modelo de propagação de rádio set val(ant) Antenna/OmniAntenna ;# tipo da antena set val(ll) LL ;# tipo da camada de enlace set val(ifq) Queue/DropTail/PriQueue ;# tipo da fila set val(ifqlen) 50 ;# número máximo de pacotes na fila set val(netif) Phy/WirelessPhy ;# tipo da interface de rede set val(mac) Mac/802_11 ;# Tipo da camada MAC set val(rp) DSDV ;# protocolo de roteamento ad hoc set val(nn) 2 ;# número de nodos móveis

53 Um gostinho de wireless Inicializa variáveis globais set ns_ [new Simulator] set tracefd [open simple.tr w] $ns_ trace-all $tracefd Configura topografia e o canal set topo [new Topography] $topo load_flatgrid set chan [new $val(chan)] Cria objeto GOD (General Operations Director) create-god $val(nn)

54 Um gostinho de wireless Configura o nodo móvel $ns_ node-config -adhocRouting $val(rp) \ -llType $val(ll) \ -macType $val(mac) \ -ifqType $val(ifq) \ -ifqLen $val(ifqlen) \ -antType $val(ant) \ -propType $val(prop) \ -phyType $val(netif) \ -channelType $val(chan) \ -topoInstance $topo \ -agentTrace ON \ -routerTrace ON \ -macTrace OFF \ -movementTrace OFF

55 Um gostinho de wireless Cria os nodos for {set i 0} {$i < $val(nn) } {incr i} { set node_($i) [$ns_ node] $node_($i) random-motion 0 } Configura posição inicial $node_(0) set X_ 5.0 $node_(0) set Y_ 2.0 $node_(0) set Z_ 0.0 $node_(1) set X_ $node_(1) set Y_ $node_(1) set Z_ 0.0

56 Um gostinho de wireless Agenda eventos de movimento Nodo 1 se move em direção ao nodo 0 $ns_ at 10.0 "$node_(0) setdest $ns_ at 50.0 "$node_(1) setdest " Nodo 1 se distancia do nodo 0 $ns_ at "$node_(1) setdest Cria conexão TCP do nodo 0 ao nodo 1 set tcp [new Agent/TCP] $tcp set class_ 2 set sink [new Agent/TCPSink] $ns_ attach-agent $node_(0) $tcp $ns_ attach-agent $node_(1) $sink $ns_ connect $tcp $sink

57 Um gostinho de wireless Cria fonte de dados set ftp [new Application/FTP] $ftp attach-agent $tcp $ns_ at 20.0 "$ftp start Diz aos nodos o tempo final de simulação for {set i 0} {$i < $val(nn) } {incr i} { $ns_ at "$node_($i) reset"; }

58 Um gostinho de wireless Agenda finalização $ns_ at "stop" $ns_ at "puts \"NS EXITING...\" ; $ns_ halt" proc stop {} { global ns_ tracefd $ns_ flush-trace close $tracefd } Inicia simulação puts "Starting Simulation..." $ns_ run

59 Exercícios 1) Simular os três exemplos mostrados. 2) Elaborar um script e simular uma topologia composta por n nodos, estando cada um conectado diretamente aos outros n-1 (grafo completo) através de um meio fixo duplex com largura de banda de 0,5Mbps, 5ms de atraso e fila do tipo CBQ. O valor de n deve ser facilmente configurável. Criar uma fonte de dados do tipo ftp sobre TCP de cada nodo i até seu vizinho de índice i+1, exceto nodo de índice i=n que deverá enviar dados ao nodo de índice 0. 3) Elaborar um script e simular uma rede ad hoc com três nodos em linha reta, criando uma conexão UDP entre os dois nodos da ponta e gerando um tráfego CBR de um até o outro. Sabendo que o alcance default é de 250m, agendar a movimentação dos nodos de tal forma que até a metade do tempo de simulação os nodos da ponta se comuniquem entre si apenas através do nodo mediano e após eles passem a se comunicar diretamente.


Carregar ppt "Iniciando o uso do ns Isabela Guimarães Siqueira Curso de ns Ciência da Computação UFMG Julho/Agosto 2003."

Apresentações semelhantes


Anúncios Google