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

91
Avaliação de Desempenho Avaliação de Desempenho Simulação com o ns-2 Simulação com o ns-2 Carlos Alberto Kamienski ([email protected]) UFABC 75 80 85 90 95 100 0 6 20 30 40 50 60

description

Avaliação de Desempenho Simulação com o ns -2. Carlos Alberto Kamienski ( [email protected] ) 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

Page 1: 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

dia

do ín

dic

e d

e ju

stiç

a

Carga (chamadas - x 1000)

20 30 40 50 60

Fases

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

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

Page 3: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 4: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 5: Avaliação de Desempenho  Simulação com o  ns -2

5

Network Simulator (ns) (http://www.isi.edu/nsnam/ns/index.html)

Page 6: Avaliação de Desempenho  Simulação com o  ns -2

6

Network Simulator (ns) (http://www.isi.edu/nsnam/ns/index.html)

Page 7: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 8: Avaliação de Desempenho  Simulação com o  ns -2

8

Tutorial de Marc Greishttp://www.isi.edu/nsnam/ns/tutorial/index.html

Page 9: Avaliação de Desempenho  Simulação com o  ns -2

9

NS by Examplehttp://nile.wpi.edu/NS/

Page 10: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 11: Avaliação de Desempenho  Simulação com o  ns -2

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++

Page 12: Avaliação de Desempenho  Simulação com o  ns -2

12

Otcl e C++

C++ OTcl

Pure C++objects

Pure OTclobjects

C++/OTcl split objects

ns

Page 13: Avaliação de Desempenho  Simulação com o  ns -2

13

Entrada e saída do ns

Page 14: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 15: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 16: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 17: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 18: Avaliação de Desempenho  Simulação com o  ns -2

18

Componentes básicos

tcpsink

nulludp

cbr

ftp

n0

n1

n3n2

2Mbps, 10ms

2Mbps, 10ms

1,5Mbps, 20ms

Page 19: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 20: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 21: Avaliação de Desempenho  Simulação com o  ns -2

21

Editor do nam (limitado)

Page 22: Avaliação de Desempenho  Simulação com o  ns -2

22

Uso do ns e nam no ensino

Page 23: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 24: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 25: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 26: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 27: Avaliação de Desempenho  Simulação com o  ns -2

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"

Page 28: Avaliação de Desempenho  Simulação com o  ns -2

28

Básico – topologiaproc finaliza {} {

global ns nf

$ns flush-trace

close $nf

exec nam out.nam &

exit 0

}

$ns run

Page 29: Avaliação de Desempenho  Simulação com o  ns -2

29

Básico – topologia (animação)

Page 30: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 31: Avaliação de Desempenho  Simulação com o  ns -2

31

Básico - tráfego

Extensão do exemplo 1

Componentes Agente UDP

Agente NULL

Aplicação CBR

Inicia e finaliza as aplicações

Page 32: Avaliação de Desempenho  Simulação com o  ns -2

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"

Page 33: Avaliação de Desempenho  Simulação com o  ns -2

33

Básico – tráfego (animação)

Page 34: Avaliação de Desempenho  Simulação com o  ns -2

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}

Page 35: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 36: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 37: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 38: Avaliação de Desempenho  Simulação com o  ns -2

38

Exemplo 1 – Objetos e conexões

Page 39: Avaliação de Desempenho  Simulação com o  ns -2

39

n0

n2 n3

n1

udp0null0

sinktcp

ftp

cbr0

Page 40: Avaliação de Desempenho  Simulação com o  ns -2

40

n0

n2 n3

n1

udp0null0

sinktcp

ftp

cbr0

Page 41: Avaliação de Desempenho  Simulação com o  ns -2

41

n0

n2 n3

n1

udp0null0

sinktcp

ftp

cbr0

Page 42: Avaliação de Desempenho  Simulação com o  ns -2

43

n0

n2 n3

n1

udp0null0

sinktcp

ftp

cbr0

Page 43: Avaliação de Desempenho  Simulação com o  ns -2

44

n0

n2 n3

n1

udp0null0

sinktcp

ftp

cbr0

Page 44: Avaliação de Desempenho  Simulação com o  ns -2

45

Exemplo 1 – Animação

Fonte CBR Inicia

Fonte FTP Inicia

Page 45: Avaliação de Desempenho  Simulação com o  ns -2

46

Exemplo 1 – Animação

Descarte de pacotes

Desanexação FTP

Page 46: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 47: Avaliação de Desempenho  Simulação com o  ns -2

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]

Page 48: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 49: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 50: Avaliação de Desempenho  Simulação com o  ns -2

51

Exemplo 2 - Animação

CBR0 e CBR1 iniciam

transmissão

Pacotes na fila

Page 51: Avaliação de Desempenho  Simulação com o  ns -2

52

Exemplo 2 - Animação

Descarte injusto fila DropTail

Descarte justo fila SFQ

Page 52: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 53: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 54: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 55: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 56: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 57: Avaliação de Desempenho  Simulação com o  ns -2

58

Exemplo 3 - Animação

TCP0 já iniciou TCP1 iniciou

Page 58: Avaliação de Desempenho  Simulação com o  ns -2

59

Exemplo 3 - Animação

Descarte fluxo TCP0

Redução cwnd TCP0

Page 59: Avaliação de Desempenho  Simulação com o  ns -2

60

Exemplo 3 - Animação

Redução cwnd TCP1

Page 60: Avaliação de Desempenho  Simulação com o  ns -2

61

TCP Tahoe - vazão

Page 61: Avaliação de Desempenho  Simulação com o  ns -2

62

TCP NewReno - vazão

Page 62: Avaliação de Desempenho  Simulação com o  ns -2

63

TCP Tahoe vs NewReno

Page 63: Avaliação de Desempenho  Simulação com o  ns -2

64

TCP Tahoe vs NewReno

Page 64: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 65: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 66: Avaliação de Desempenho  Simulação com o  ns -2

67

Exemplo 4 - Animação

Enlace 0-1 sai do ar

Rota alternativa

Page 67: Avaliação de Desempenho  Simulação com o  ns -2

68

Exemplo 4 - Animação

Enlace 0-6 sai do ar

Rota alternativa

Page 68: Avaliação de Desempenho  Simulação com o  ns -2

69

Exemplo 4 - Animação

Enlace 0-6 volta ao ar

Rota não muda

Enlace 0-1 volta ao ar

Page 69: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 70: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 71: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 72: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 73: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 74: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 75: Avaliação de Desempenho  Simulação com o  ns -2

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)

Page 76: Avaliação de Desempenho  Simulação com o  ns -2

77

Componentes do Atraso fim-a-fim em VoIP

Page 77: Avaliação de Desempenho  Simulação com o  ns -2

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)

Page 78: Avaliação de Desempenho  Simulação com o  ns -2

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)

Page 79: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 80: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 81: Avaliação de Desempenho  Simulação com o  ns -2

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)

Page 82: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 83: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 84: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 85: Avaliação de Desempenho  Simulação com o  ns -2

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%

Page 86: Avaliação de Desempenho  Simulação com o  ns -2

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)

Page 87: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 88: Avaliação de Desempenho  Simulação com o  ns -2

89

Estatísticas de vazão na Internet

Page 89: Avaliação de Desempenho  Simulação com o  ns -2

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)

Page 90: Avaliação de Desempenho  Simulação com o  ns -2

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

Page 91: Avaliação de Desempenho  Simulação com o  ns -2

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