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
Download

Simulador ns-2