Carlos Alberto Kamienski ([email protected]) UFABC Avaliação de Desempenho Simulação com o ns-2 Média do índice de justiça 100 95 Fases 1 90 2 5 85 10 80 75 0 20 1 30 2 40 3 50 4 Carga (chamadas - x 1000) 60 5 6 Roteiro Motivação e objetivos Conceitos básicos Simulação de sistemas Simulando a Internet O simulador de redes ns Exemplos de simulação com o ns Estudo de caso 2 Network Simulator Três versões Network Simulator 1 (ns-1) Network Simulator 2 (ns-2): http://nsnam.isi.edu/nsnam Network Simulator 3 (ns-3): O ns-2 ainda é a versão estável mais utilizada O ns-3 está ainda em fase inicial de desenvolvimento, mas já pode ser utilizado 3 Network Simulator 2 (ns-2) Versão ns-2.35 é a mais atual (de Novembro/2011) Simulator baseado em eventos discretos direcionado para a pesquisa em redes Desenvolvimento e distribuição ISI (Information Sciences Institute - www.isi.edu) Financiamento: DARPA e NSF Download www.isi.edu/nsnam/ns/ns-build.html A distribuição do ns é gratuita, inclusive o código fonte, que pode ser alterado para refletir a pesquisa que está sendo desenvolvida 4 Network Simulator (ns) (http://www.isi.edu/nsnam/ns/index.html) 5 Network Simulator (ns) (http://www.isi.edu/nsnam/ns/index.html) 6 Usando o ns Aprendendo o ns Aprendizado é difícil no início Sem interface gráfica e manual de usuário apropriado Documentação Manual do ns Manual de sistema, explicando código e estruturas de dados Livro do ns-2 (ainda não lançado) Plataformas onde roda: FreeBSD (desenvolvimento), Linux, Solaris e Windows, com restrições -- não é muito recomendável! Funcionalidades são oferecidas: Diretamente na distribuição básica do ns Contribuições (patchs) que devem ser instaladas à parte 7 Tutorial de Marc Greis http://www.isi.edu/nsnam/ns/tutorial/index.html 8 NS by Example http://nile.wpi.edu/NS/ 9 Funcionalidades do ns Implementa grande parte da funcionalidade existente na Internet IP, TCP, UDP, FTP, HTTP, RealPlayer Protocolos de roteamento Session, DistanceVector, LinkState, multicast Implementa abordagens para QoS IntServ, DiffServ, MPLS, QoS Routing Vários tipos de filas (roteadores) DropTail, CBQ, SFQ, WFQ, DRR, RED Comunicação sem fio LAN sem fio, comunicação por satélite, GPRS, etc. Outras... 10 Modelo de programação do ns Combinação de C++ e Otcl C++ Núcleo do simulador, ou back-end Maior parte do simulador (mais eficiente) Trata de eventos e pacotes Otcl Interface para criar cenários através de scripts É interpretada (os scripts de simulação não são compilados) Provê flexibilidade Alguns objetos existem nas duas linguagens As duas linguagens tem interfaces entre si: Pode-se chamar funções do C++ no Otcl (mais comum) Pode-se chamar funções do Otcl no C++ 11 Otcl e ++ C Pure OTcl objects Pure C++ objects C++/OTcl split objects C++ OTcl ns 12 Entrada e saída do ns 13 Resultados de simulação O simulador pode ser configurado para gerar arquivos contendo os dados desejados Opcionalmente o arquivo de trace pode ser processado para obter esses resultados Vazão de uma conexão Atraso e variação de atraso de pacotes Perda de pacotes Nas filas: monitor de filas Nos sistemas finais (fim a fim): agente LossMonitor Outros 14 Vantagens do ns Simulador padrão para a comunidade científica e acadêmica Simulador gratuito de código aberto Boa infra-estrutura para desenvolver programas Grande quantidades de protocolos e tecnologias existentes Oportunidade para estudar interações de protocolos em ambiente controlado Lista de discussão (bem freqüentada) para dúvidas e discussões 15 Limitações do ns Limitação para tecnologias e protocolos sub-IP: ATM? Curva de aprendizado: lenta Falta de documentação adequada Requer conhecimento de Otcl para criar cenários de simulação simples Requer conhecimento de C++ para estender o simulador Não é tão robusto em Windows 16 Componentes básicos Nó (node) Sistema final ou roteador Máquina com implementação IP Abstrai características da rede subjacente Enlace (link) Interconectam dois nós O ns só representa a camada IP Enlaces são abstrações da interface física Agente (agent) Entidade de transporte Agentes TCP/UDP Aplicação (application) Não precisa simular a aplicação Necessário apenas gerar tráfego 17 Componentes básicos ftp 2Mbps, 10ms 1,5Mbps, 20ms tcp sink n0 n2 n1 n3 null udp 2Mbps, 10ms cbr 18 O animador de simulação nam Utilizado para compreender o que ocorreu em uma simulação passada Quando ativado, apresenta um console, que pode abrir várias animações Durante a simulação, o ns pode gerar um arquivo de trace para o nam Observações: Arquivo de trace pode ficar muito grande (+100MB) Simulação demora mais gerando o trace 19 O animador de simulação nam Avança rapidamente (25 * “passo” segundos) Pára a animação Executa no sentido contrário Executa a animação Tempo atual de animação Passo do avanço dos quadros de animação Retrocede rapidamente Altera o passo Zoom in Zoom out Área de Edita posição dos nós animação Aumenta tamanho do nó Diminui tamanho do nó Retorna desenho original Move animação para um momento específico no tempo Redesenha Informações para redesenho Área de anotações 20 Editor do nam (limitado) 21 Uso do ns e nam no ensino 22 Roteiro Motivação e objetivos Conceitos básicos Simulação de sistemas Simulando a Internet O simulador de redes ns Exemplos de simulação com o ns Estudo de caso 23 Anatomia de um script do ns 1. Criar instância do simulador 2. Fazer configurações iniciais 3. a) Ajustar opções gerais do ns e do nam b) Configurar arquivo de trace do nam c) Criar função de finalização Criar topologia a) Criar nós b) Criar e configurar enlaces 24 Anatomia de um script do ns 4. 5. Criar agentes e aplicações a) Criar agentes de transporte TCP e UDP b) Criar aplicações geradoras de tráfego c) Anexar agentes a nós e aplicações a agente d) Conectar agentes nos sistemas finais Escalonar eventos a) Iniciar transmissão de dados das aplicações b) Finalizar transmissão de dados das aplicações 6. Executar simulação 7. Visualizar a animação com o nam 8. Analisar arquivos de trace 25 Exemplos de simulações Exemplo básico Topologia Tráfego Exemplo 1 – CBR e FTP Exemplo 2 – Fluxos CBR e fila SFQ Exemplo 3 – Congestionamento TCP Exemplo 4 - Roteamento dinâmico 26 Básico - topologia set ns [new Simulator] set nf [open out.nam w] $ns namtrace-all $nf set n0 [$ns node] set n1 [$ns node] $ns duplex-link $n0 $n1 1Mb 10ms DropTail $ns at 5.0 "finaliza" 27 Básico – topologia proc finaliza {} { global ns nf $ns flush-trace close $nf exec nam out.nam & exit 0 } $ns run 28 Básico – topologia (animação) 29 Básico – topologia (trace) V -t * -v 1.0a5 -a 0 A -t * -n 1 -p 0 -o 255 -c 15 -a 1 A -t * -h 1 -m 127 -s 8 n -t * -a 0 -s 0 -S UP -v circle -c black n -t * -a 1 -s 1 -S UP -v circle -c black l -t * -s 0 -d 1 -S UP -r 1000000 -D 0.01 -c black -o 30 Básico - tráfego Extensão do exemplo 1 Componentes Agente UDP Agente NULL Aplicação CBR Inicia e finaliza as aplicações 31 Básico - tráfego set udp0 [new Agent/UDP] $ns attach-agent $n0 $udp0 set cbr0 [new Application/Traffic/CBR] $cbr0 set packet_size_ 500 $cbr0 set rate_ 800Kb $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" 32 Básico – tráfego (animação) 33 Básico – tráfego (trace) V -t * -v 1.0a5 -a 0 A -t * -n 1 -p 0 -o 255 -c 15 -a 1 A -t * -h 1 -m 127 -s 8 n -t * -a 0 -s 0 -S UP -v circle -c black n -t * -a 1 -s 1 -S UP -v circle -c black l -t * -s 0 -d 1 -S UP -r 1000000 -D 0.01 -c black -o + -t 0.500 -s 0 -d 1 -p cbr -e 500 -c 0 -i 0 -a 0 -x {0.0 1.0 0 ------- null} - -t 0.500 -s 0 -d 1 -p cbr -e 500 -c 0 -i 0 -a 0 -x {0.0 1.0 0 ------- null} h -t 0.500 -s 0 -d 1 -p cbr -e 500 -c 0 -i 0 -a 0 -x {0.0 1.0 -1 ------- null} + -t 0.505 -s 0 -d 1 -p cbr -e 500 -c 0 -i 1 -a 0 -x {0.0 1.0 1 ------- null} - -t 0.505 -s 0 -d 1 -p cbr -e 500 -c 0 -i 1 -a 0 -x {0.0 1.0 1 ------- null} + -t 0.510 -s 0 -d 1 -p cbr -e 500 -c 0 -i 2 -a 0 -x {0.0 1.0 2 ------- null} - -t 0.510 -s 0 -d 1 -p cbr -e 500 -c 0 -i 2 -a 0 -x {0.0 1.0 2 ------- null} h -t 0.510 -s 0 -d 1 -p cbr -e 500 -c 0 -i 2 -a 0 -x {0.0 1.0 -1 ------- null} 34 Exemplo 1 – Fluxos CBR e FTP 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 Exemplo-1 - Adaptado de ns/tcl/ex/simple.tcl (exemplo do ns) set ns [new Simulator] # arquivos de trace set f [open out.tr w] set nf [open out.nam w] $ns trace-all $f $ns namtrace-all $nf # criacao de alguns nós set n0 [$ns node] set n1 [$ns node] set n2 [$ns node] set n3 [$ns node] # Criacao set udp0 set null0 set tcp set sink de alguns agentes [new Agent/UDP] [new Agent/Null] [new Agent/TCP] [new Agent/TCPSink] 35 Exemplo 1 – Fluxos CBR e FTP 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 # Criacao de algumas aplicacoes set cbr0 [new Application/Traffic/CBR] set ftp [new Application/FTP] # Criacao de enlaces $ns duplex-link $n0 $n2 5Mb 2ms DropTail $ns duplex-link $n1 $n2 5Mb 2ms DropTail $ns duplex-link $n2 $n3 1.5Mb 10ms DropTail # anexando agentes $cbr0 attach-agent $udp0 $ns attach-agent $n0 $udp0 $ns attach-agent $n3 $null0 $ns connect $udp0 $null0 $ftp attach-agent $tcp $ns attach-agent $n1 $tcp $ns attach-agent $n3 $sink $ns connect $tcp $sink 36 Exemplo 1 – Fluxos CBR e FTP 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 # Imprimindo algumas variáveis na saída puts [$cbr0 set packetSize_] puts [$cbr0 set interval_] # escalonando algumas tarefas $ns at 0.1 "$cbr0 start" $ns at 0.5 "$ftp start" $ns at 1.35 "$ns detach-agent $n1 $tcp ; $ns detach-agent $n3 $sink" $ns at 3.0 "finaliza" proc finaliza {} { global ns f nf $ns flush-trace close $f close $nf puts "Executando o nam..." exec nam out.nam & exit 0 } # Finalmente, inicia a simulação $ns run 37 Exemplo 1 – Objetos e conexões 38 cbr0 udp0 null0 n0 n2 n3 n1 sink tcp ftp 39 cbr0 udp0 null0 n0 n2 n3 n1 sink tcp ftp 40 cbr0 udp0 null0 n0 n2 n3 n1 sink tcp ftp 41 cbr0 udp0 null0 n0 n2 n3 n1 sink tcp ftp 43 cbr0 udp0 null0 n0 n2 n3 n1 sink tcp ftp 44 Exemplo 1 – Animação Fonte FTP Inicia Fonte CBR Inicia 45 Exemplo 1 – Animação Desanexação FTP Descarte de pacotes 46 Exemplo 2 – Fluxos CBR e SFQ 1 2 3 4 Exemplo-2 - Adaptado de example2.tcl (Tutorial de Marc Greis [15]) set ns [new Simulator] # Define cores para os fluxos de dados 5 $ns color 1 Blue ; $ns color 2 Red 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 # Abre arquivos de trace para o nam set nf [open out.nam w] $ns namtrace-all $nf proc finish {} { global ns nf $ns flush-trace close $nf exec nam out.nam & exit 0 } # Cria quatro nós set n0 [$ns node]; set n1 [$ns node]; set n2 [$ns node]; set n3 [$ns node] 21 47 Exemplo 2 – Fluxos CBR e SFQ 22 # Cria enlaces 23 $ns duplex-link $n0 $n2 1Mb 10ms DropTail 24 $ns duplex-link $n1 $n2 1Mb 10ms DropTail 25 $ns duplex-link $n3 $n2 1Mb 10ms SFQ 26 27 $ns duplex-link-op $n0 $n2 orient right-down 28 $ns duplex-link-op $n1 $n2 orient right-up 29 $ns duplex-link-op $n2 $n3 orient right 30 31 # Monitora a fila no enlace n2-n3 32 $ns duplex-link-op $n2 $n3 queuePos 0.45 33 34 35 36 37 38 39 40 # Cria agentes CBR e anexa aos nós set cbr0 [new Application/Traffic/CBR] set cbr1 [new Application/Traffic/CBR] set udp0 [new Agent/UDP] set udp1 [new Agent/UDP] set null0 [new Agent/Null] set null1 [new Agent/Null] 48 Exemplo 2 – Fluxos CBR e SFQ 41 $cbr0 attach-agent $udp0 42 $cbr1 attach-agent $udp1 43 $ns attach-agent $n0 $udp0 44 $ns attach-agent $n1 $udp1 45 $ns attach-agent $n3 $null0 46 $ns attach-agent $n3 $null1 47 $ns connect $udp0 $null0 48 $ns connect $udp1 $null1 49 50 $cbr0 set packet_size_ 500 51 $cbr0 set rate_ 800Kb 52 $cbr1 set packet_size_ 500 53 $cbr1 set rate_ 800Kb 54 55 $udp0 set fid_ 1 56 $udp1 set fid_ 2 57 49 Exemplo 2 – Fluxos CBR e SFQ 58 # Escalona eventos para os agents CBR 59 $ns at 0.1 "$cbr0 start“; $ns at 0.5 "$cbr1 start" 60 $ns at 1.0 "$cbr1 stop" ; $ns at 1.5 "$cbr0 stop" 61 $ns at 2.0 "finish" 62 63 # Inicia a simulação 64 $ns run 50 Exemplo 2 - Animação Pacotes na fila CBR0 e CBR1 iniciam transmissão 51 Exemplo 2 - Animação Descarte justo fila SFQ Descarte injusto fila DropTail 52 Exemplo 3 – Controle de Congestionamento do TCP 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 # Exemplo-3 - Controle de congestionamento no TCP set ns [new Simulator] ;# Cria o objeto "simulador" set nf [open out.nam w] $ns namtrace-all $nf ;# Abre o arquivo de trace do nam proc finish {} { ;# Define procedimento a ser executado no final global ns nf $ns flush-trace close $nf exec nam out.nam & exit 0 } set n0 [$ns node] ; set n1 [$ns node] ; #Cria 4 nós set n2 [$ns node] ; set n3 [$ns node] $ns duplex-link $n0 $n2 1Mb 10ms DropTail $ns duplex-link $n1 $n2 1Mb 10ms DropTail $ns duplex-link $n2 $n3 1Mb 10ms DropTail ;# Cria links entre os nós 53 Exemplo 3 – Controle de Congestionamento do TCP 21 $ns queue-limit $n2 $n3 10 ;# Limita fila enlace 2-3 (10 pacotes) 22 $ns duplex-link-op $n2 $n3 queuePos 0.5 ;# monitora a fila do enlace 2-3 23 24 # Orientaçoes para o nam 25 $ns duplex-link-op $n1 $n2 orient up 26 $ns duplex-link-op $n0 $n2 orient right 27 $ns duplex-link-op $n2 $n3 orient right 28 Agent/TCP set nam_tracevar_ true ;# Habilita "trace" de var. TCP (nam) 29 30 set tcp0 [new Agent/TCP] ;# Cria agente TCP 31 $ns attach-agent $n0 $tcp0 ;# Anexa agente tcp0 ao nó 0 32 $tcp0 set packet_size_ 1500 ;# Tamanho máximo de pacote em bytes 33 set sink0 [new Agent/TCPSink] ;# Cria agente TCP consumidor 34 $ns attach-agent $n3 $sink0 ;# Anexa agente sink0 ao nó 3 35 $ns connect $tcp0 $sink0 ;# Connect TCP source with TCP sink 36 set ftp0 [$tcp0 attach-source FTP] ;# Cria aplic. FTP e anexa ao tcp0 37 54 Exemplo 3 – Controle de Congestionamento do TCP 38 set tcp1 [new Agent/TCP] ;# Cria agente TCP 39 $ns attach-agent $n1 $tcp1 ;# Anexa agente tcp1 ao nó 1 40 $tcp1 set packet_size_ 1500 ;# Tamanho máximo de pacote em bytes 41 set sink1 [new Agent/TCPSink] ;# Cria agente TCP consumidor 42 $ns attach-agent $n3 $sink1 ;# Anexa agente sink1 ao nó 3 43 $ns connect $tcp1 $sink1 ;# Connect TCP source with TCP sink 44 set ftp1 [$tcp1 attach-source FTP] ;# Cria aplic FTP e anexa ao tcp1 45 46 # Define cores para os fluxos de dados tcp0=azul, tcp1=vermelho 47 $ns color 1 Blue ; $ns color 2 Red 48 $tcp0 set fid_ 1 ; $tcp1 set fid_ 2 49 50 # Adiciona o rastreamento de variáveis 51 $ns add-agent-trace $tcp0 tcp0 ;# label "tcp0" 52 $ns add-agent-trace $tcp1 tcp1 ;# label "tcp1" 53 $ns monitor-agent-trace $tcp0 ;# (nam) monitorar variáveis do tcp0 54 $ns monitor-agent-trace $tcp1 ;# (nam) monitorar variáveis do tcp1 55 $tcp0 tracevar cwnd_ ;# rastreia a variável cwnd_ do tcp0 55 Exemplo 3 – Controle de Congestionamento do TCP 58 # Programa os eventos da simulação 59 $ns at 0.1 "$ftp0 start" 60 $ns at 1.0 "$ftp1 start" 61 $ns at 14.0 "$ftp1 stop" 62 $ns at 14.5 "$ftp0 stop" 63 $ns at 25.0 "finish" 64 65 # Executa a simulação 66 $ns run 56 Controle de Congestionamento do protocolo TCP cwnd 18 16 14 12 congestion avoidance 10 8 s s thre s h = 8 6 slow start 4 2 0 s s thre s h = 6 tempo 57 Exemplo 3 - Animação TCP0 já iniciou TCP1 iniciou 58 Exemplo 3 - Animação Descarte fluxo TCP0 Redução cwnd TCP0 59 Exemplo 3 - Animação Redução cwnd TCP1 60 TCP Tahoe - vazão 61 TCP NewReno - vazão 62 TCP Tahoe vs NewReno 63 TCP Tahoe vs NewReno 64 Exemplo 4 – Roteamento Dinâmico 1 2 Exemplo-4 - Roteamento dinâmico set ns [new Simulator] 3 # Indica para o ns que use "dynamic routing" 4 $ns rtproto DV 5 6 7 8 9 # Cria o trace do nam $ns namtrace-all [open validate.nam w] # Importa arquivo que contém o procedimento "create_topology" 10 source dumbbell.tcl 11 global num_node n 12 13 create_topology 14 15 16 17 18 set cbr [new Application/Traffic/CBR] set udp [new Agent/UDP] set sink [new Agent/Null] $cbr attach-agent $udp 19 $ns attach-agent $n(8) $udp 20 $ns attach-agent $n(5) $sink 21 $ns connect $udp $sink 22 $cbr set packetSize_ 1000 23 $cbr set interval_ 0.005 24 65 Exemplo 4 – Roteamento Dinâmico 25 $ns color 1 Blue ; $udp set fid_ 1 26 27 $ns at 0.0 "$cbr start" 28 $ns rtmodel-at 1 down $n(0) $n(1) 29 $ns rtmodel-at 2 down $n(0) $n(6) 30 $ns rtmodel-at 3 up $n(0) $n(6) 31 $ns rtmodel-at 4 up $n(0) $n(1) 32 $ns at 5 "$cbr stop" 33 $ns at 6 "finish" 34 35 proc finish {} { 36 global ns 37 $ns flush-trace 38 exec nam validate.nam & 39 exit 0 40 } 41 # Inicia a simulação 42 $ns run 66 Exemplo 4 - Animação Rota alternativa Enlace 0-1 sai do ar 67 Exemplo 4 - Animação Rota alternativa Enlace 0-6 sai do ar 68 Exemplo 4 - Animação Enlace 0-1 volta ao ar Enlace 0-6 volta ao ar Rota não muda 69 Agenda Motivação e objetivos Conceitos básicos Simulação de sistemas Simulando a Internet O simulador de redes ns Exemplos de simulação com o ns Estudo de caso 70 Estudo de caso – QoS na Internet Exemplo de pesquisa sobre a Internet através de simulação com o ns Objetivo: Comparar o desempenho de aplicações multimídia na Internet usando o serviço de melhor esforço e as tecnologias IntServ e DiffServ Contexto Qualidade de Serviço (QoS) na Internet Problema A Internet não oferece garantias de QoS 71 Definições para QoS em Redes O desempenho de uma rede relativo às necessidades das aplicações O conjunto de tecnologias que possibilita à rede oferecer garantias de desempenho 72 Serviço de melhor esforço Todos os usuários e aplicações recebem o mesmo tratamento nos roteadores Congestionamento: fila FIFO Capacidade esgotada: descarte Vantagens: Simplicidade, robustez, escalabilidade Uns dos motivos do sucesso da Internet Problema: 73 Métricas de QoS Atraso Tempo do pacote “dentro da rede” Entre transmissor e receptor (fim a fim) Variação do atraso (jitter) Medido entre pacotes consecutivos Várias formas de medir Vazão (largura de banda ) Taxa de transmissão de dados (Mbps) Confiabilidade 74 ISP Latência máxima Jitter Perda máximo máxima (%) Qwest Viterla 50ms -- 2ms 1ms 0.5% -- Axiowave Verio 65ms 55ms 0.5ms 0.5ms (avg) 0% 0.1% Internap 45ms 0.5ms 0.3% http://www.voip-info.org/wiki-QoS 75 Requisitos de QoS São as exigências mínimas de uma aplicação sobre métricas da rede Requisitos de QoS para aplicações VoIP (ITU-T G.114): Atraso máximo < 150ms (one way delay) Perda de pacote máximo 1% (codec G.729) Vazão mínima > 24kbps (codec G.729A) 76 Componentes do Atraso fim-a-fim em VoIP 77 Propostas para QoS na Internet IETF (Internet Engineering Task Force) Responsável por padrões na Internet IntServ (serviços integrados) Reservas de recursos para cada fluxo Procolo RSVP (Resource Reservation Protocol) Problema: falta de escalabilidade DiffServ (serviços diferenciados) Baseado em Classes de Serviços Agregação de fluxos 78 Propostas para QoS na Internet IETF (Internet Engineering Task Force) Responsável por padrões na Internet IntServ (serviços integrados) Reservas de recursos para cada fluxo Procolo RSVP (Resource Reservation Protocol) Problema: falta de escalabilidade DiffServ (serviços diferenciados) Baseado em Classes de Serviços Agregação de fluxos Provisionamento para cada classe (PHB) 79 Topologia de simulação Brasília 10 Mbps 8 ms 12 Mbps 10 Mbps 20 Mbps 5 ms 8 ms Florianópolis 16 Mbps 10 ms 20 ms São Paulo Rio 18 Mbps 5 ms Recife 20 Mbps 5 ms Belo Horizonte 80 Plano de simulação Simplificação da RNP2, incluindo os PoPs: PE, SC, RJ, SP, MG e DF Avaliar tráfego entre Recife e Florianópolis Métricas: vazão e atraso Roteadores Cada PoP representado por um roteador PE ligado somente a RJ e SC ligado somente a SP Enlaces Situação da RNP2 em abril de 2002 Atraso: de acordo com distâncias físicas 81 Plano de simulação Modelo de tráfego Voz: principal CBR a 64 Kbps e pacotes de 100 bytes Motivo: facilidade de acompanhar a vazão 20 fontes entre SC-PE 10 fontes entre: SC-DF, SC-MG, DF-PE, MG-PE, RJ-SP Dados: retaguarda FTP com pacotes de 1500 bytes Quantidade de fontes foi variada (fator) Técnicas de QoS Melhor esforço (BE) IntServ (serviço de carga controlada) DiffServ (PHB EF) 82 Plano de simulação Tempo de simulação Experimentos com duração de 10 segundos Tempos maiores não mostraram diferenças significativas Período generoso para observas as métricas de interesse Fontes CBR e FTP iniciam entre 0 e 1 segundo de simulação Escolha aleatória com distribuição uniforme Replicações 100 replicações para cada experimento Fatores e níveis Carga da rede: número de fontes FTP 0, 5 e 50 Tecnologias de QoS: BE, IS e DS 83 Execução e coleta de resultados Simulador ns, versão 2.1b8a Funcionalidades da distribuição padrão DiffServ: PHB EF com WRR do módulo CBQ Troca do gerador de números aleatórios Park-Miller: período de 231 – 2 Marsenne-Twister: período de 219937 – 1 Coleta de resultados Vazão: componente LossMonitor Amostras a cada 0,5 segundos e média do experimento Atraso: componente PktStats Atraso para cada pacote e média do experimento 84 Execução e coleta de resultados Plataforma de simulação CPU AMD Athlon de 1.3 GHz e 512 MB Sistema operacional Linux 9 conjuntos de de 100 replicações de 10 segundos Tempo de relógio: alguns minutos 85 Apresentação e análise Resultados de 1 fonte CBR entre SC e PE Motivo: representatividade e baixa complexidade Estudo mais detalhado pode medir todas as fontes CBR e extrair estatísticas Resultados se referem à média das médias de cada uma das 100 replicações Intervalo de confiança ao nível de 99,9% 86 Vazão - comparação 70 60 Vazão (Kbps) 50 40 30 melhor esforço 20 DiffServ IntServ 10 0 0 5 50 Carga (número de fontes de retaguarda) 87 Vazão: melhor esforço (série) 100 Vazão (Kbps) 80 60 0 5 40 50 20 0 1 21 41 61 Tempo de simulação (segundos) 88 Estatísticas de vazão na Internet 89 Atraso: comparação 90 melhor esforço 80 DiffServ IntServ Atraso (ms) 70 60 50 40 30 20 0.5 10 1.5 25 2.5 350 Carga (número de fontes de retaguarda) 3.5 90 Atraso: melhor esforço (série) 100 Atraso (ms) 80 0 60 5 50 40 20 0 1 21 41 61 Tempo de simulação (segundos) 91 Comentários finais Internet Diversidade de redes conectadas pelo protocolo IP Simulação pode auxiliar em: Compreender o funcionamento Prever o crescimento futuro Propor novos protocolos e mecanismos Este minicurso como motivador para: Conhecer problemas, dificuldades e desafios Início de prática de simulação 92