Upload
internet
View
127
Download
6
Embed Size (px)
Citation preview
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
OMNeT++
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Sumário
• Simulação de Eventos Discretos
• Ferramentas de Simulação
• OMNeT++
• Tutorial de Instalação
• Exemplos
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
SIMULAÇÃO DE EVENTOS DISCRETOS
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
• Em computação, simulação consiste em empregar técnicas matemáticas em computadores com o propósito de imitar um processo ou operação do mundo real.
• Quando usar simulação?– Para descrever ou validar o comportamento de um sistema:
→ como funciona x como pensam que funciona.
– Quando experimentar é dispendioso.
• Modelagem Analítica x Simulação– Complexidade do sistema em análise;
– Qualidade das análises ↔ qualidade do modelo.
Simulação
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
• Simulação Discreta: Implica na mudança de estado em tempos discretos.
• Conceitos Básicos:– Entidades ou Objetos;– Parâmetros e estados do objeto;– Tempo Simulado;– Lista de Eventos.
Simulação de Eventos Discretos
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
FERRAMENTAS DE SIMULAÇÃO
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
• Ferramentas livres muito utilizadas atualmente:– OMNeT++;– NS2 (NS3);– GLASS/SSFNet.
• Ferramentas pagas:– OPNET.
• OMNeT++– Melhorias nas linguagem de descrição da rede;– Conceito de herança;– Portabilidade de códigos anteriores e INET;– Nova IDE.
Ferramentas de Simulação
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
• Usado por empresas como: Lucent Bell Labs (análise de protocolos) e Siemens (projetos internos de pesquisa).– Fonte:http://www.omnetpp.org/index.php?topic=Companies.
• Porque não utilizar o NS2/NS3/OPNET?– NS3 não é compatível com código fonte do NS2;– Poucas bibliotecas de rede foram convertidas para o NS3;– OPNET é um simulador pago, cujo código fonte não é aberto.
• OMNeT++– Excelente desempenho: escrito em C++;– Uso de linguagem de descrição de topologia própria (NED);– Software Livre com 100% de seu código-fonte disponível;– Gratuito para uso acadêmico e/ou não comercial.
Ferramentas de Simulação
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
OMNeT++
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Principais Elementos
• Módulos, parâmetros, gates e canais;
• Canal de transmissão;
• Mensagens e Eventos;
• NED (NEtwork Descriptor) → conexão entre os objetos;
• Executável gerado/ Bibliotecas;
• Modos de execução (gráfico ou não-gráfico);
• Pacotes desenvolvidos pela comunidade (ex.: INET).
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Módulos
• Um módulo é o principal componente de uma simulação,
representa uma entidade a ser simulada, por exemplo, um
roteador ou uma placa Ethernet.
• Módulo simples:– Indivisível;
– Descrição: linguagem NED (NEtwork Description):• Parâmetros, Gates e Topologia.
– Comportamento: Código C++.
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Módulo Simples
• Descrição: Linguagem NED.
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Módulo Composto
• Composto internamente por um ou mais módulos Simples
ou outros módulos compostos.
– Não possui código C++ para descrever o comportamento
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Canais
• Tipos de canais do OMNeT++:• IdealChannel;
• DelayChannel;
• DatarateChannel;
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Exemplo de uso dos canais
• Sem nenhum parâmetro, o OMNeT++ interpreta como um IdealChannel, a mensagem chegará instantaneamente ao outro módulo. Isso vale tanto ao ligar módulos dentro de uma rede ou dentro de um módulo composto
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Exemplo de uso dos canais
• No caso do canal cDatarateChannel, é possível especificar, por exemplo:– datarate, delay, BER (Bit Error Rate).
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Criando uma Rede• Uma Network é um composta de módulos simples ou compostos,
conectados entre si através da ligação de seus gates por um canal.
• São criadas instâncias dos módulos simples e/ou compostos: – tic/toc = objeto, Txc1=classe c++.
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Mensagens
• Todos os eventos do OMNET++ são baseados em mensagens
e no seu escalonamento;
• As mensagens são usualmente trocadas entre as portas de
input e output dos módulos simples e compostos;
• Quando a porta está conectada a um canal, a mensagem pode
sofrer atrasos, caso o canal não seja ideal como no exemplo
anterior.
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Código C++
• Principais Funções:
– Initialize(): permite a execução de qualquer código antes de
iniciar a simulação. Não é o construtor do objeto;
– HandleMessage(): função responsável por realizar o tratamento
de qualquer mensagem que chega ao módulo simples,
independente de qual seja a porta de entrada.
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Código C++
• Obs.: Cada um dos componentes do OMNeT++ são uma
classe no código C++.
• Embora na utilização apenas se reescreva o código dos
módulos simples, outros objetos como gates, módulos
compostos, canais, todos possuem um código C++ na API do
OMNeT++.
• Caso seja necessário, esses códigos podem ser modificados.
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Arquivo de configuração• Arquivo de configuração omnet.ini.
– Possui as opções de execução da simulação;
– Pode ser usado apenas um para o projeto inteiro, independente de quantas redes estão sendo simuladas;
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Tutorial de Instalação
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Exemplos
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Exemplo: Tic Toc
• Objetivo: Modelagem um sistema formado por dois nós enviando a mesma mensagem que receberam.
• Primeiro Passo: Definição do módulo simples no arquivo Tictoc1.ned.
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Exemplo: Tic Toc• Segundo Passo: Definição do código C++ do módulo simples
Txc1.
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Exemplo: Tic Toc• Terceiro Passo: Criação da Rede.
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
• Último Passo: Compilação e Execução.
– Para compilar, basta clicar em cima do projeto com o botão direito e selecionar Build Project.
– Para executar, basta deixar o arquivo de configuração aberto na IDE e clicar em “run”, que uma configuração de execução será automaticamente criada para aquela pasta.
– A IDE então chama a interface gráfica do OMNET.
Exemplo: Tic Toc
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Exemplo: Tic Toc
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
OMNeT++