Transcript

Universidade Católica de PernambucoCCT – Centro de Ciência e Tecnologia

Curso de Ciência da Computação

Tópicos Avançados em Redes de Computadores

Recife, 13 de Novembro de 2009

NS2Network Simulator 2

Objetivo do Trabalho

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

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

Simulação é a técnica de estudar o comportamento e reações de determinados sistemas através de modelos.

Dificuldades e importância da Simulação de Redes 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.

Terminologia Básica

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

Técnicas de Simulação

Simulação Computacional com NS2

M/M/1M/G/1

M/D/1

NS2

A e B denotam-se principalmente como:• M para distribuições exponencial• D para valores determinísticos• G para caracterizar distribuições em geral.

A / B / cA representa o processo de chegadas.B representa o processo de atendimentoc representa o número de servidores

Modelos de filas

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.

NS-2 Simulador Discreto por Eventos

NS-2 Simulador Discreto por

Eventos

Os atributos dos estados só mudam no tempo discreto.

NS-2 Simulador Discreto por Eventos

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.

NS-2 Simulador Discreto por Eventos

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!

Tipos de Simulação Possíveis

Geração de Cenários 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.

Quando Simular?

A partir de um projeto da Cornell University;

Já recebeu apoio de vários centros de pesquisas;

Histórico do Network Simulator 2

Uma lista de discussão é mantida pelos desenvolvedores;

Network Simulator 3 já está em fases de testes;

Histórico do Network Simulator 2

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)

Estrutura do Network Simulator 2

Estrutura do Network Simulator 2

Exemplo da nossa Simulação

Anatomia de um script do ns

1. Criar instância do simulador2. Fazer configurações iniciaisa) Ajustar opções gerais do ns e do namb) Configurar arquivo de trace do namc) Criar função de finalização3. Criar topologiaa) Criar nósb) Criar e configurar enlaces

4. Criar agentes e aplicaçõesa) Criar agentes de transporte TCP e UDPb) Criar aplicações geradoras de tráfegoc) Anexar agentes a nós e aplicações a agented) Conectar agentes nos sistemas finais5. Escalonar eventosa) Iniciar transmissão de dados das aplicaçõesb) Finalizar transmissão de dados das aplicações6. Executar simulação7. Visualizar a animação com o nam8. Analisar arquivos de trace

Anatomia de um script do ns

# 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

Exemplo do TCL

Modelo de Simulação no NAN

Modelo de Simulação no NAN


Top Related