Tópicos Avançados em Redes de Computadores
Recife, 13 de Novembro de 2009
O objetivo deste trabalho é
apresentar o resultado de uma
pesquisa sobre a ferramenta de
simulação de redes chamada
NETWORK SIMULATOR 2 (NS2). A
defesa deste trabalho terá um
caráter demonstrativo/ilustrativo
 É um simulador de redes dirigido a eventos
discretos, direcionados para pesquisas em
redes de computadores, que simula vários
tipos de redes.

O NS simula vários tipos de redes utilizando
diversos tipos de protocolos, tanto os
protocolos orientados a conexão como o TCP,
quanto os protocolos não orientados a conexão
como o UDP, multicast e redes com ou sem fio.
 O projeto NS tem como objetivo construir um
simulador de rede que permita o estudo de
protocolos de rede atuais e futuros.
Simular o comportamento global da Internet representa um enorme
desafio devido à sua grande heterogeneidade e constante mudança Devido à
complexidade inerente das redes e respectivos protocolos.
Papeis da simulação:
vital na tentativa de caracterizar tanto o comportamento atual da
Internet, como os possíveis efeitos das modificações propostas no seu
funcionamento.
Vantagens:
As simulações não necessitam de muito equipamento já que é necessária
apenas uma máquina.
Os simuladores permitem examinar um vasto conjunto de cenários num
período de tempo relativamente pequeno.
A simulação oferece também meios para testar os vários protocolos ao
longo de redes.
Os simuladores não estão presos à velocidade física de uma dada rede.
Um sistema é um agrupamento de partes que
operam juntas, visando um objetivo em
comum.
Um modelo pode ser definido como uma
representação das relações dos componentes
de um sistema, sendo considerada como uma
abstração, no sentido em que tende a se
aproximar do verdadeiro comportamento do
sistema.
Simulação não Computacional
– Ex. Protótipo em túnel de vento
– Simulação de Acontecimentos
Simulação Computacional
– Simulação de Sistemas Contínuos
– Simulação de Eventos Discretos
NS2
Modelos de filas
M/M/1
M/G/1
M/D/1
A/B/c
A representa o processo de
chegadas.
B representa o processo de
atendimento
c representa o número de
servidores
A e B denotam-se
principalmente como:
• M para distribuições
exponencial
• D para valores
determinísticos
• G para caracterizar
distribuições
em geral.






Discreto
como
na
matemática
discreta
(sem
continuidade, conjuntos contáveis);
Atividades físicas são transformadas em eventos.
Modela uma rede do mundo real com eventos numa
linha de tempo discreta;
Simulador mantêm uma lista encadeada com eventos;
Cada evento acontece num instante de tempo (virtual!);
Tempo de processamento não conta no tempo virtual.
Os atributos dos estados só mudam no tempo discreto.
Eventos
Os eventos podem ser agendados para um determinado instante no
tempo existindo uma lista dos próximos eventos a ocorrerem,
ordenados por tempo de ocorrência. A ocorrência de um evento afeta o
estado da simulação. Também são atualizados os contadores de
estatísticas que permitem a geração dos relatórios da simulação.
Estado do sistema
Coleção de variáveis de estado necessárias para descrever o
sistema em um determinado momento no tempo. O estado do sistema
pode ser visto como resultante do estado de seus componentes.
Mecanismo de temporização
O avanço de tempo, nos simuladores de tempo simulado, pode ser
definido por:
intervalos fixos de tempo e após o incremento é verificado se existe
um evento agendado para este momento.
Próximo evento: o tempo é incrementado pela ocorrência de um
evento. É mais eficiente que o anterior em termos de atualização de
tempos.







Redes com ou sem fio (satélite, WiMAX, etc.);
Protocolos de roteamento (unicast, multicast,
broadcast!);
Protocolos de transporte (e.g., TCP, UDP);
Protocolos de aplicação (e.g., FTP, TFTP, HTTP,
DNS);
Geração aleatória ou programada de erros em
nos e links;
Geração de traces para análise;
Você pode fazer sua propria implementação em
qualquer camada!
No NS, as configurações de entrada para a execução de uma simulação
são feitas.
Pela definição de cenários de simulação. Alguns dos componentes desses
cenários são:
A topologia de rede: inclui as interconexões físicas entre os nós e as
Características Estatísticas de enlace e nós.
Os modelos de geração de tráfego: definem os padrões de uso da rede
e a localização dos geradores.
A dinâmica da rede: inclui simulação de defeitos em enlaces.
O NS fornece uma grande variedade de modelos de geração de tráfego
que podem ser usados juntamente com protocolos de transporte.


A partir de um projeto da Cornell University;
Já recebeu apoio de vários centros de
pesquisas;


Uma lista de discussão é mantida pelos
desenvolvedores;
Network Simulator 3 já está em fases de
testes;


Escrito em C++ com um interpretador
Otcl (Objectoriented Tool Command
Language)
Por que 2 Linguagens?
- Para essas tarefas a velocidade
(tempo de execução) é o mais
importante. (C++)
- Mudar ou re-executar o modelo
(OTCL)
Exemplo da nossa Simulação
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
Anatomia de um script do ns
4. 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
Exemplo do TCL
# Cria um Objeto Simulador
set ns [new Simulator]
# Define cores para os fluxos de dados
$ns color 1 Blue;
$ns color 2 Red
# Abrir o arquivo de rastreamento nam
set nf [open out.nam w]
$ns namtrace-all $nf
Exemplo do TCL
# Define o Procedimento “finish”
proc finish {} {
global ns nf
$ns flush-trace
#feche o NAM
close $nf
#Execute o NAM
exec nam out.nam &
exit 0
}
Exemplo do TCL
# Cria quatro nós
set n0 [$ns node];
set n1 [$ns node];
set n2 [$ns node];
set n3 [$ns node];
# Cria links entre os Nós
$ns duplex-link $n0 $n2 2Mb 10ms DropTail
$ns duplex-link $n1 $n2 2Mb 10ms DropTail
$ns duplex-link $n2 $n3 1,7Mb 20ms DropTail
Exemplo do TCL
# Configuração de uma conexão CBR sobre os 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]
Exemplo do TCL
# Escalona eventos para os agents CBR
$ns at 0.1 "$cbr0 start“; $ns at 0.5 "$cbr1 start"
$ns at 1.0 "$cbr1 stop" ; $ns at 1.5 "$cbr0 stop"
$ns at 2.0 "finish"
# Inicia a simulação
$ns run
Modelo de Simulação no NAN
Modelo de Simulação no NAN
Download

nosso ppt