Avaliação de Desempenho Simulação com o ns -2

Post on 14-Jan-2016

30 views 2 download

description

Avaliação de Desempenho Simulação com o ns -2. Carlos Alberto Kamienski ( cak@ufabc.edu.br ) UFABC. 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. Network Simulator. - PowerPoint PPT Presentation

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 (cak@ufabc.edu.br)

UFABC

1

2

5

10

75

80

85

90

95

100

0 1 2 3 4 5 6

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.35ns-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 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