Http:// OMNeT++. Sumário Simulação de Eventos Discretos Ferramentas de Simulação OMNeT++...

Post on 22-Apr-2015

127 views 6 download

Transcript of Http:// OMNeT++. Sumário Simulação de Eventos Discretos Ferramentas de Simulação OMNeT++...

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