Avaliação de Desempenho Simulação com o ns -2
description
Transcript of Avaliação de Desempenho Simulação com o ns -2
Avaliação de Desempenho Avaliação de Desempenho
Simulação com o ns-2Simulação com o ns-2
Carlos Alberto Kamienski ([email protected])
UFABC
1
2
5
10
75
80
85
90
95
100
0 1 2 3 4 5 6
Mé
dia
do ín
dic
e d
e ju
stiç
a
Carga (chamadas - x 1000)
20 30 40 50 60
Fases
2
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
3
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
4
Network Simulator 2 (ns-2)
Versão ns-2.33ns-2.33 é a mais atual (de Março/2008)
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 nsns é gratuita, inclusive o código fonte, que pode ser alterado para refletir a pesquisa que está sendo desenvolvida
5
Network Simulator (ns) (http://www.isi.edu/nsnam/ns/index.html)
6
Network Simulator (ns) (http://www.isi.edu/nsnam/ns/index.html)
7
Usando o ns
Aprendendo o nsns Aprendizado é difícil no início Sem interface gráfica e manual de usuário apropriado
Documentação Manual do nsns
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!não é muito recomendável!
Funcionalidades são oferecidas: Diretamente na distribuição básica do nsns Contribuições (patchs) que devem ser instaladas à parte
8
Tutorial de Marc Greishttp://www.isi.edu/nsnam/ns/tutorial/index.html
9
NS by Examplehttp://nile.wpi.edu/NS/
10
Funcionalidades do nsImplementa 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...
11
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++
12
Otcl e C++
C++ OTcl
Pure C++objects
Pure OTclobjects
C++/OTcl split objects
ns
13
Entrada e saída do ns
14
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
15
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
16
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
17
Componentes básicosNó (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
18
Componentes básicos
tcpsink
nulludp
cbr
ftp
n0
n1
n3n2
2Mbps, 10ms
2Mbps, 10ms
1,5Mbps, 20ms
19
O animador de simulação nam
Utilizado para compreender o que ocorreu em uma simulação passadapassada
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
20
O animador de simulação nam
Redesenha
Pára a animação
Executa no
sentido contrárioExecuta a animação
Tempo atual de animação
Avança rapidamente
(25 * “passo” segundos)
Retrocede
rapidamente
Retorna desenho
original
Passo do avanço dos quadros de
animação
Altera o
passoZoom in
Zoom out
Edita posição dos nós
Aumenta tamanho
do nó
Diminui tamanho do nó
Move animação para um momento
específico no tempo
Informações para redesenho
Área de
animação
Área de
anotações
21
Editor do nam (limitado)
22
Uso do ns e nam no ensino
23
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
24
Anatomia de um script do ns
1. Criar instância do simulador
2. Fazer configurações iniciais
a) Ajustar opções gerais do ns e do nam
b) Configurar arquivo de trace do nam
c) Criar função de finalização
3. Criar topologia
a) Criar nós
b) Criar e configurar enlaces
25
Anatomia de um script do ns4. 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
5. 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
26
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
27
Básico - topologiaset 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"
28
Básico – topologiaproc finaliza {} {
global ns nf
$ns flush-trace
close $nf
exec nam out.nam &
exit 0
}
$ns run
29
Básico – topologia (animação)
30
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
31
Básico - tráfego
Extensão do exemplo 1
Componentes Agente UDP
Agente NULL
Aplicação CBR
Inicia e finaliza as aplicações
32
Básico - tráfegoset 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"
33
Básico – tráfego (animação)
34
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}
r -t 0.514 -s 0 -d 1 -p cbr -e 500 -c 0 -i 0 -a 0 -x {0.0 1.0 0 ------- null}
35
Exemplo 1 – Fluxos CBR e FTP1 Exemplo-1 - Adaptado de ns/tcl/ex/simple.tcl (exemplo do ns)2 set ns [new Simulator]34 # arquivos de trace 5 set f [open out.tr w]6 set nf [open out.nam w]78 $ns trace-all $f9 $ns namtrace-all $nf1011 # criacao de alguns nós12 set n0 [$ns node]13 set n1 [$ns node]14 set n2 [$ns node]15 set n3 [$ns node]1617 # Criacao de alguns agentes18 set udp0 [new Agent/UDP] 19 set null0 [new Agent/Null] 20 set tcp [new Agent/TCP]21 set sink [new Agent/TCPSink]22
36
Exemplo 1 – Fluxos CBR e FTP23 # Criacao de algumas aplicacoes 24 set cbr0 [new Application/Traffic/CBR]25 set ftp [new Application/FTP]2627 # Criacao de enlaces28 $ns duplex-link $n0 $n2 5Mb 2ms DropTail29 $ns duplex-link $n1 $n2 5Mb 2ms DropTail30 $ns duplex-link $n2 $n3 1.5Mb 10ms DropTail3132 # anexando agentes33 $cbr0 attach-agent $udp0 34 $ns attach-agent $n0 $udp0 35 $ns attach-agent $n3 $null0 36 $ns connect $udp0 $null03738 $ftp attach-agent $tcp39 $ns attach-agent $n1 $tcp40 $ns attach-agent $n3 $sink41 $ns connect $tcp $sink42
37
Exemplo 1 – Fluxos CBR e FTP43 # Imprimindo algumas variáveis na saída44 puts [$cbr0 set packetSize_]45 puts [$cbr0 set interval_]4647 # escalonando algumas tarefas48 $ns at 0.1 "$cbr0 start"49 $ns at 0.5 "$ftp start"50 $ns at 1.35 "$ns detach-agent $n1 $tcp ; $ns detach-agent $n3 $sink"51 $ns at 3.0 "finaliza"5253 proc finaliza {} {54 global ns f nf55 $ns flush-trace56 close $f57 close $nf58 puts "Executando o nam..."59 exec nam out.nam &60 exit 061 }62 # Finalmente, inicia a simulação63 $ns run
38
Exemplo 1 – Objetos e conexões
39
n0
n2 n3
n1
udp0null0
sinktcp
ftp
cbr0
40
n0
n2 n3
n1
udp0null0
sinktcp
ftp
cbr0
41
n0
n2 n3
n1
udp0null0
sinktcp
ftp
cbr0
43
n0
n2 n3
n1
udp0null0
sinktcp
ftp
cbr0
44
n0
n2 n3
n1
udp0null0
sinktcp
ftp
cbr0
45
Exemplo 1 – Animação
Fonte CBR Inicia
Fonte FTP Inicia
46
Exemplo 1 – Animação
Descarte de pacotes
Desanexação FTP
47
Exemplo 2 – Fluxos CBR e SFQ1 Exemplo-2 - Adaptado de example2.tcl (Tutorial de Marc Greis [15])2 set ns [new Simulator]34 # Define cores para os fluxos de dados5 $ns color 1 Blue ; $ns color 2 Red67 # Abre arquivos de trace para o nam8 set nf [open out.nam w]9 $ns namtrace-all $nf1011 proc finish {} {12 global ns nf13 $ns flush-trace14 close $nf15 exec nam out.nam &16 exit 017 }1819 # Cria quatro nós20 set n0 [$ns node]; set n1 [$ns node]; set n2 [$ns node]; set n3 [$ns
node]21
48
Exemplo 2 – Fluxos CBR e SFQ22 # Cria enlaces23 $ns duplex-link $n0 $n2 1Mb 10ms DropTail24 $ns duplex-link $n1 $n2 1Mb 10ms DropTail25 $ns duplex-link $n3 $n2 1Mb 10ms SFQ2627 $ns duplex-link-op $n0 $n2 orient right-down28 $ns duplex-link-op $n1 $n2 orient right-up29 $ns duplex-link-op $n2 $n3 orient right3031 # Monitora a fila no enlace n2-n332 $ns duplex-link-op $n2 $n3 queuePos 0.453334 # Cria agentes CBR e anexa aos nós35 set cbr0 [new Application/Traffic/CBR]36 set cbr1 [new Application/Traffic/CBR]37 set udp0 [new Agent/UDP]38 set udp1 [new Agent/UDP]39 set null0 [new Agent/Null]40 set null1 [new Agent/Null]
49
Exemplo 2 – Fluxos CBR e SFQ41 $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
50
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
51
Exemplo 2 - Animação
CBR0 e CBR1 iniciam
transmissão
Pacotes na fila
52
Exemplo 2 - Animação
Descarte injusto fila DropTail
Descarte justo fila SFQ
53
Exemplo 3 – Controle de Congestionamento do TCP1 # Exemplo-3 - Controle de congestionamento no TCP2 set ns [new Simulator] ;# Cria o objeto "simulador" 34 set nf [open out.nam w] ;# Abre o arquivo de trace do nam 5 $ns namtrace-all $nf67 proc finish {} { ;# Define procedimento a ser executado no final8 global ns nf 9 $ns flush-trace10 close $nf11 exec nam out.nam &12 exit 013 }14 set n0 [$ns node] ; set n1 [$ns node] ; #Cria 4 nós15 set n2 [$ns node] ; set n3 [$ns node]1617 $ns duplex-link $n0 $n2 1Mb 10ms DropTail ;# Cria links entre os nós 18 $ns duplex-link $n1 $n2 1Mb 10ms DropTail19 $ns duplex-link $n2 $n3 1Mb 10ms DropTail20
54
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
Exemplo 3 – Controle de Congestionamento do TCP
55
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
56 $tcp1 tracevar cwnd_ ;# rastreia a variável cwnd_ do tcp1
57
Exemplo 3 – Controle de Congestionamento do TCP
56
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
Exemplo 3 – Controle de Exemplo 3 – Controle de Congestionamento do TCPCongestionamento do TCP
57
Controle de Congestionamento do protocolo TCP
0
2
46
8
10
1214
16
18cwnd
tempo
slow start
congestion avoidance
ss thre sh = 8
ss thre sh = 6
58
Exemplo 3 - Animação
TCP0 já iniciou TCP1 iniciou
59
Exemplo 3 - Animação
Descarte fluxo TCP0
Redução cwnd TCP0
60
Exemplo 3 - Animação
Redução cwnd TCP1
61
TCP Tahoe - vazão
62
TCP NewReno - vazão
63
TCP Tahoe vs NewReno
64
TCP Tahoe vs NewReno
65
Exemplo 4 – Roteamento Dinâmico
1 Exemplo-4 - Roteamento dinâmico2 set ns [new Simulator]3 # Indica para o ns que use "dynamic routing"4 $ns rtproto DV56 # Cria o trace do nam7 $ns namtrace-all [open validate.nam w]89 # Importa arquivo que contém o procedimento "create_topology"10 source dumbbell.tcl11 global num_node n1213 create_topology1415 set cbr [new Application/Traffic/CBR]16 set udp [new Agent/UDP]17 set sink [new Agent/Null]18 $cbr attach-agent $udp19 $ns attach-agent $n(8) $udp20 $ns attach-agent $n(5) $sink21 $ns connect $udp $sink22 $cbr set packetSize_ 100023 $cbr set interval_ 0.00524
66
Exemplo 4 – Roteamento Dinâmico25 $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
67
Exemplo 4 - Animação
Enlace 0-1 sai do ar
Rota alternativa
68
Exemplo 4 - Animação
Enlace 0-6 sai do ar
Rota alternativa
69
Exemplo 4 - Animação
Enlace 0-6 volta ao ar
Rota não muda
Enlace 0-1 volta ao ar
70
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
71
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
72
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
73
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: Não permite aplicações que precisam de garantias
74
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 Perda de pacotes
75
ISP Latência máxima
Jitter máximo
Perda máxima (%)
Qwest 50ms 2ms 0.5%
Viterla -- 1ms --
Axiowave 65ms 0.5ms 0%
Verio 55ms 0.5ms (avg)
0.1%
Internap 45ms 0.5ms 0.3%
http://www.voip-info.org/wiki-QoS
76
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)
77
Componentes do Atraso fim-a-fim em VoIP
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
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)
80
Topologia de simulação
18 Mbps5 ms
São Paulo Rio
Belo Horizonte
Brasília
Florianópolis
20 Mbps5 ms
10 Mbps8 ms
16 Mbps10 ms
20 Mbps5 ms
12 Mbps
8 msRecife
10 Mbps
20 ms
81
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
82
Plano de simulaçãoModelo 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 (fatorfator)
Técnicas de QoS Melhor esforço (BE) IntServ (serviço de carga controlada) DiffServ (PHB EF)
83
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
84
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
85
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
86
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%
87
Vazão - comparação
0
10
20
30
40
50
60
70
0 5 50
melhor esforço
DiffServ
IntServ
Carga (número de fontes de retaguarda)
Vaz
ão (
Kbp
s)
0
10
20
30
40
50
60
70
0 5 50
melhor esforço
DiffServ
IntServ
Carga (número de fontes de retaguarda)
Vaz
ão (
Kbp
s)
88
Vazão: melhor esforço (série)
0
20
40
60
80
100
1 21 41 61
Tempo de simulação (segundos)
Vaz
ão (
Kbp
s)
0
5
50
89
Estatísticas de vazão na Internet
90
Atraso: comparação
20
30
40
50
60
70
80
90
0.5 1 1.5 2 2.5 3 3.5
melhor esforço
DiffServ
IntServ
0 5 50
Carga (número de fontes de retaguarda)
Atr
aso
(ms)
20
30
40
50
60
70
80
90
0.5 1 1.5 2 2.5 3 3.5
melhor esforço
DiffServ
IntServ
0 5 50
Carga (número de fontes de retaguarda)
Atr
aso
(ms)
91
Atraso: melhor esforço (série)
0
20
40
60
80
100
1 21 41 61
Tempo de simulação (segundos)
Atr
aso
(ms) 0
5
50
92
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