avalia o de desempenho simula o com o ns 2 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Avaliação de Desempenho Simulação com o ns -2 PowerPoint Presentation
Download Presentation
Avaliação de Desempenho Simulação com o ns -2

Loading in 2 Seconds...

play fullscreen
1 / 91

Avaliação de Desempenho Simulação com o ns -2 - PowerPoint PPT Presentation


  • 122 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Avaliação de Desempenho Simulação com o ns -2' - aric


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
avalia o de desempenho simula o com o ns 2

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

Carlos Alberto Kamienski (cak@ufabc.edu.br)

UFABC

roteiro
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
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
network simulator 2 ns 2
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
network simulator ns http www isi edu nsnam ns index html
Network Simulator (ns)(http://www.isi.edu/nsnam/ns/index.html)
network simulator ns http www isi edu nsnam ns index html1
Network Simulator (ns)(http://www.isi.edu/nsnam/ns/index.html)
usando o ns
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
tutorial de marc greis http www isi edu nsnam ns tutorial index html
Tutorial de Marc Greishttp://www.isi.edu/nsnam/ns/tutorial/index.html
funcionalidades do ns
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...
modelo de programa o do ns
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++
resultados de simula o
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
vantagens do ns
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
limita es do ns
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
componentes b sicos
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
componentes b sicos1
Componentes básicos

ftp

2Mbps, 10ms

tcp

1,5Mbps, 20ms

sink

n0

n3

n2

n1

null

udp

2Mbps, 10ms

cbr

o animador de simula o nam
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
roteiro1
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
anatomia de um script do ns
Anatomia de um script do ns
  • Criar instância do simulador
  • Fazer configurações iniciais
    • Ajustar opções gerais do ns e do nam
    • Configurar arquivo de trace do nam
    • Criar função de finalização
  • Criar topologia
    • Criar nós
    • Criar e configurar enlaces
anatomia de um script do ns1
Anatomia de um script do ns
  • Criar agentes e aplicações
    • Criar agentes de transporte TCP e UDP
    • Criar aplicações geradoras de tráfego
    • Anexar agentes a nós e aplicações a agente
    • Conectar agentes nos sistemas finais
  • Escalonar eventos
    • Iniciar transmissão de dados das aplicações
    • Finalizar transmissão de dados das aplicações
  • Executar simulação
  • Visualizar a animação com o nam
  • Analisar arquivos de trace
exemplos de simula es
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
b sico topologia
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"

b sico topologia1
Básico – topologia

proc finaliza {} {

global ns nf

$ns flush-trace

close $nf

exec nam out.nam &

exit 0

}

$ns run

b sico topologia trace
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

b sico tr fego
Básico - tráfego
  • Extensão do exemplo 1
  • Componentes
    • Agente UDP
    • Agente NULL
    • Aplicação CBR
  • Inicia e finaliza as aplicações
b sico tr fego1
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"

b sico tr fego trace
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}

exemplo 1 fluxos cbr e ftp
Exemplo 1 – Fluxos CBR e FTP

1 Exemplo-1 - Adaptado de ns/tcl/ex/simple.tcl (exemplo do ns)

2 set ns [new Simulator]

3

4 # arquivos de trace

5 set f [open out.tr w]

6 set nf [open out.nam w]

7

8 $ns trace-all $f

9 $ns namtrace-all $nf

10

11 # criacao de alguns nós

12 set n0 [$ns node]

13 set n1 [$ns node]

14 set n2 [$ns node]

15 set n3 [$ns node]

16

17 # Criacao de alguns agentes

18 set udp0 [new Agent/UDP]

19 set null0 [new Agent/Null]

20 set tcp [new Agent/TCP]

21 set sink [new Agent/TCPSink]

22

exemplo 1 fluxos cbr e ftp1
Exemplo 1 – Fluxos CBR e FTP

23 # Criacao de algumas aplicacoes

24 set cbr0 [new Application/Traffic/CBR]

25 set ftp [new Application/FTP]

26

27 # Criacao de enlaces

28 $ns duplex-link $n0 $n2 5Mb 2ms DropTail

29 $ns duplex-link $n1 $n2 5Mb 2ms DropTail

30 $ns duplex-link $n2 $n3 1.5Mb 10ms DropTail

31

32 # anexando agentes

33 $cbr0 attach-agent $udp0

34 $ns attach-agent $n0 $udp0

35 $ns attach-agent $n3 $null0

36 $ns connect $udp0 $null0

37

38 $ftp attach-agent $tcp

39 $ns attach-agent $n1 $tcp

40 $ns attach-agent $n3 $sink

41 $ns connect $tcp $sink

42

exemplo 1 fluxos cbr e ftp2
Exemplo 1 – Fluxos CBR e FTP

43 # Imprimindo algumas variáveis na saída

44 puts [$cbr0 set packetSize_]

45 puts [$cbr0 set interval_]

46

47 # escalonando algumas tarefas

48 $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"

52

53 proc finaliza {} {

54 global ns f nf

55 $ns flush-trace

56 close $f

57 close $nf

58 puts "Executando o nam..."

59 exec nam out.nam &

60 exit 0

61 }

62 # Finalmente, inicia a simulação

63 $ns run

slide39

cbr0

udp0

null0

n0

n2

n3

n1

sink

tcp

ftp

slide40

cbr0

udp0

null0

n0

n2

n3

n1

sink

tcp

ftp

slide41

cbr0

udp0

null0

n0

n2

n3

n1

sink

tcp

ftp

slide42

cbr0

udp0

null0

n0

n2

n3

n1

sink

tcp

ftp

slide43

cbr0

udp0

null0

n0

n2

n3

n1

sink

tcp

ftp

exemplo 1 anima o
Exemplo 1 – Animação

Fonte FTP Inicia

Fonte CBR Inicia

exemplo 1 anima o1
Exemplo 1 – Animação

Desanexação FTP

Descarte de pacotes

exemplo 2 fluxos cbr e sfq
Exemplo 2 – Fluxos CBR e SFQ

1 Exemplo-2 - Adaptado de example2.tcl (Tutorial de Marc Greis [15])

2 set ns [new Simulator]

3

4 # Define cores para os fluxos de dados

5 $ns color 1 Blue ; $ns color 2 Red

6

7 # Abre arquivos de trace para o nam

8 set nf [open out.nam w]

9 $ns namtrace-all $nf

10

11 proc finish {} {

12 global ns nf

13 $ns flush-trace

14 close $nf

15 exec nam out.nam &

16 exit 0

17 }

18

19 # Cria quatro nós

20 set n0 [$ns node]; set n1 [$ns node]; set n2 [$ns node]; set n3 [$ns node]

21

exemplo 2 fluxos cbr e sfq1
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 # Cria agentes CBR e anexa aos nós

35 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]

exemplo 2 fluxos cbr e sfq2
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

exemplo 2 fluxos cbr e sfq3
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

exemplo 2 anima o
Exemplo 2 - Animação

Pacotes na fila

CBR0 e CBR1 iniciam transmissão

exemplo 2 anima o1
Exemplo 2 - Animação

Descarte justo

fila SFQ

Descarte injusto

fila DropTail

exemplo 3 controle de congestionamento do tcp
Exemplo 3 – Controle de Congestionamento do TCP

1 # Exemplo-3 - Controle de congestionamento no TCP

2 set ns [new Simulator] ;# Cria o objeto "simulador"

3

4 set nf [open out.nam w] ;# Abre o arquivo de trace do nam

5 $ns namtrace-all $nf

6

7 proc finish {} { ;# Define procedimento a ser executado no final

8 global ns nf

9 $ns flush-trace

10 close $nf

11 exec nam out.nam &

12 exit 0

13 }

14 set n0 [$ns node] ; set n1 [$ns node] ; #Cria 4 nós

15 set n2 [$ns node] ; set n3 [$ns node]

16

17 $ns duplex-link $n0 $n2 1Mb 10ms DropTail ;# Cria links entre os nós

18 $ns duplex-link $n1 $n2 1Mb 10ms DropTail

19 $ns duplex-link $n2 $n3 1Mb 10ms DropTail

20

exemplo 3 controle de congestionamento do tcp1
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

exemplo 3 controle de congestionamento do tcp2
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

56 $tcp1 tracevar cwnd_ ;# rastreia a variável cwnd_ do tcp1

57

slide55

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

exemplo 3 anima o
Exemplo 3 - Animação

TCP0 já iniciou

TCP1 iniciou

exemplo 3 anima o1
Exemplo 3 - Animação

Descarte fluxo TCP0

Redução cwnd TCP0

exemplo 3 anima o2
Exemplo 3 - Animação

Redução cwnd TCP1

exemplo 4 roteamento din mico
Exemplo 4 – Roteamento Dinâmico

1 Exemplo-4 - Roteamento dinâmico

2 set ns [new Simulator]

3 # Indica para o ns que use "dynamic routing"

4 $ns rtproto DV

5

6 # Cria o trace do nam

7 $ns namtrace-all [open validate.nam w]

8

9 # Importa arquivo que contém o procedimento "create_topology"

10 source dumbbell.tcl

11 global num_node n

12

13 create_topology

14

15 set cbr [new Application/Traffic/CBR]

16 set udp [new Agent/UDP]

17 set sink [new Agent/Null]

18 $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

exemplo 4 roteamento din mico1
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

exemplo 4 anima o
Exemplo 4 - Animação

Rota alternativa

Enlace 0-1 sai do ar

exemplo 4 anima o1
Exemplo 4 - Animação

Rota alternativa

Enlace 0-6 sai do ar

exemplo 4 anima o2
Exemplo 4 - Animação

Enlace 0-1 volta ao ar

Enlace 0-6 volta ao ar

Rota não muda

agenda
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
estudo de caso qos na internet
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
defini es para qos em redes
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
servi o de melhor esfor o
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
m tricas de qos
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
requisitos de qos
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)
propostas para qos na internet
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)
propostas para qos na internet1
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)
plano de simula o
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
plano de simula o1
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)
plano de simula o2
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
execu o e coleta de resultados
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
execu o e coleta de resultados1
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
apresenta o e an lise
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%
coment rios finais
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