70
http://www.labtel.ele.ufes.br Curso OTN - Simulação

Http:// Curso OTN - Simulação

Embed Size (px)

Citation preview

Page 1: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

Curso OTN - Simulação

Page 2: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

Sumário• Simulação de Eventos Discretos

• Ferramentas de Simulação

• OMNeT++

• Redes OTN no OMNeT++

• Modelagem da Recomendação ITU-T G.798 – Camadas Ópticas

• Modelagem da Recomendação ITU-T G.798 – Camadas Digitais

• Integração entre as Camadas Ópticas e Digitais

• Exemplos

Page 3: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

SIMULAÇÃO DE EVENTOS DISCRETOS

Page 4: Http:// Curso OTN - Simulação

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

Page 5: Http:// Curso OTN - 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

Page 6: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

FERRAMENTAS DE SIMULAÇÃO

Page 7: Http:// Curso OTN - 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++ 4.0– Melhorias nas linguagem de descrição da rede;– Conceito de herança;– Portabilidade de códigos anteriores a versão 4.0 e INET;– Nova IDE.

Ferramentas de Simulação

Page 8: Http:// Curso OTN - 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

Page 9: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

OMNeT++

Page 10: Http:// Curso OTN - Simulação

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).

Page 11: Http:// Curso OTN - Simulação

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

Page 12: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

Módulo Simples

• Descrição: Linguagem NED.

Page 13: Http:// Curso OTN - Simulação

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

Page 14: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

Canais

• Tipos de canais do OMNeT++:• IdealChannel;

• DelayChannel;

• DatarateChannel;

Page 15: Http:// Curso OTN - Simulação

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 uma rede ou dentro de um módulo composto

Page 16: Http:// Curso OTN - Simulação

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).

Page 17: Http:// Curso OTN - Simulação

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

Page 18: Http:// Curso OTN - Simulação

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.

Page 19: Http:// Curso OTN - Simulação

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.

Page 20: Http:// Curso OTN - Simulação

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.

Page 21: Http:// Curso OTN - Simulação

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;

Page 22: Http:// Curso OTN - Simulação

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.

Page 23: Http:// Curso OTN - Simulação

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.

Page 24: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

Exemplo: Tic Toc• Terceiro Passo: Criação da Rede.

Page 25: Http:// Curso OTN - Simulação

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

Page 26: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

Exemplo: Tic Toc

Page 27: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

Page 28: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

REDES OTN NO OMNeT++

Page 29: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

• Suponha que um módulo deseja enviar uma mensagem.

• Ao executar a linha de código send (msg, “out”);, o módulo simples envia a mensagem para o cGate de nome out, que por sua vez envia para o canal.

• Até esse ponto a mensagem não está escalonada. O Canal calcula então o tempo que a mensagem vai demorar para ser entregue ao módulo de destino (ou seja, no cGate conectado na outra ponta do canal).

Como acontece uma transmissão?

Page 30: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

• Como exemplo, um canal com atraso de 0,1s. O parametro arrivalTime é então modificado para:

• sendingTime+delay

• A mensagem é por fim colocada em uma fila de escalonamento e o parâmetro isScheduled é alterado para true:

• isScheduled = true

Como acontece uma transmissão?

Page 31: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

Herança• No OMNeT++ existe o conceito de herança;

• É possível criar módulos e canais a partir de um canal já existente, isso pode ser feito de duas formas:– Criando-se uma nova classe, herdando a classe pai e

alterando o código C++ ou;

– Criando um novo arquivo componente NED;

• Exemplo: canal com cálculo do atraso com base no tamanho e na velocidade de propagação (obs.: nesse exemplo só é alterado o NED, e não o código C++ da classe, que está no Kernel do OMNeT++).

Fonte: http://omnetpp.org/doc/omnetpp40/manual/usman.html#sec126

Page 32: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

• Não existe canal óptico no OMNeT++;

• Esse fato implica em implementações de rede ópticas simplificadas ou mal formuladas:• Ex: implementações de um canal WDM formado por um

conjunto de cDatarateChannel;

• Problema: Criar um novo canal, um canal óptico WDM.

Canal Óptico – Problemas

Page 33: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

Canal Óptico – Solução Adotada

• Utilizar o código C++ do Kernel do OMNeT++ da classe

cDatarateChannel para criar um novo tipo de canal.

Page 34: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

Canal Óptico – Requisitos e Implementação• Requisito 1: poder enviar diferentes sinais ao mesmo tempo

quando eles estiverem em diferentes comprimentos de onda;

• Requisito 2: Modelar o comportamento para esses canais em termos atraso, taxa de erro, queda de potência do sinal, etc;

• Implementação:– Herdar diretamente da classe cDatarateChannel e modificar

apenas o arquivo .NED com os novos parâmentros:• Novo problema: NÃO é possível implementar o envio de vários

sinais independentes, pois só é possível enviar uma mensagem, com tamanho diferente de zero, por vez.

– Criar uma nova classe, herdando de cDatarateChannel e modificando algumas de suas funções.

Page 35: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

Modelagem do Canal Óptico WDM• Nova classe OpticalChannel:

– Permite envio de mais de uma mensagem ao mesmo tempo (desde que ambas possuam comprimentos de onda distintos).

– Cada mensagem representa a transmissão de um sinal óptico em um determinado comprimento de onda.

– Implementação: herda funções da classe cDatarateChannel com as modificações necessárias:

• Arquivo NED;

• Código C++: implementação de uma nova função no código herdado.

Page 36: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

• Cópia do código de cDatarateChannel.h e cDatarateChannel.cc;

• Objetivo: diz “o que fazer” quando receber uma mensagem de um cGate. A principal mudança é que não bloqueia mensagens simultâneas com comprimentos de onda diferentes;

• É necessário, assim como os módulos simples, dizer para a API do OMNeT++ que aquela classe existe;

• Em OpticalChannel.cc existe a linha de código:

Register_Class(OpticalChannel);

Código C++ da classe OpticalChannel

Page 37: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

Page 38: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

Descrição da classe (OpticalChannel.ned)

Page 39: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

OpticalChannel em mais detalhes//New optical parameters -> OpticalChannel.h

double distanceparam;// distance in meters.

double powerdecreaseparam;// power decrease percentage per meter.

simtime_t *delayparamp;// propagation delay per wavelength (not from .ned or .ini.

it must be calculated based on distance and light speed).

double *datarateparamp;// data rate.

double *berparamp; // bit error rate per wavelength.

bool *disabledparamp;// indicate if the wavelength at position 'i' of the vector

are disabled.

// BUT to disable all channels it is used the flags variable, inherited from

cNamedObject.

int wavelengthsparam;// number of wavelengths in the channel.

Page 40: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

• Apenas mensagens OTNMsg podem trafegar no OpticalChannel.

• Em cada mensagem precisa ser configurado o comprimento de onda que indica o canal no qual essa será transferida.

• Uma mensagem OTNMsg, por ser filha da classe cPacket, herda o parâmetro tamanho (numero de bits). Com esse parâmetro é possível calcular o tempo de transmissão.

• Assim, uma OTNMsg representa um fluxo óptico durante o tempo de transmissão de todo a OTNMsg. Parâmetros de potencia, comprimento de onda

Canal Óptico – Funcionamento

Page 41: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

Mensagem ópticapacket OTNMsg{

int wavelength=0;//o primeiro comprimento de onda livre

bool isOSC=false; //true quando for o sinal do canal de serviço

double power=-1; //potência do sinal (inicializar com o valor de saída de um

equipamento)

double SNR=1; //nível de ruído, utilizado pela fibra para gerar erros

//parâmetros utilizados internamento no equipamento

int fiber=-1;//identifica a parta de chegada de um sinal

}

• Classe herdada de cPacket:

– Tamanho > 0: Utilizado no cálculo do tempo de transmissão;

• Velocidade de propagação: depende do parâmetro datarate do OpticalChannel.

felipe
Diferente de um equipamento normal, que quem define a taxa de transmissão é o laser, aqui é defeinido de acordo com as propriedades do canal. De qualquer forma, o efeito final é o mesmo.idéia futura: incluir um campo de tipo (OTM1, OTM2, OTM3) para que a fibra use a velocidade correta nele. (2.5, 10 ou 40Gbps)
Page 42: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

MODELAGEM DA RECOMENDAÇÃO ITU-T G.798 –

Camadas Ópticas

Page 43: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r • Análise dos blocos funcionais G.798 a serem modelados:– Criação dos Módulos Simples;– Criação das Classes em C++.

• Criação das mensagens necessárias.

• Modelagem dos equipamentos:– Criação de Módulos Compostos.

• Criação da rede OTN:– Definição da topologia;

Metodologia

Page 44: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r • Componentes implementados:– Blocos funcionais:

• OTSn_TT_Sk, OTSn_TT_So;• OTSn_OMSn_A_Sk, OTSn_OMSn_A_So; • OMSn_TT_Sk, OMSn_TT_So;• OMSn_OCh_A_Sk, OMSn_OCh_A_So.

– Módulo auxiliar:• Host_OCh.

– Mensagens:• OTNMsg, OTNMsgOH, SIGNALMsg.

– Equipamentos:• Amplificadores de linha (unidirecional e bidirecional);• Host OTN com cinco comprimentos de onda.

• Simulação:– Rede com 2 hosts e um amplificador bidirecional.

Modelagem

Page 45: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

Blocos Funcionais

Page 46: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

OTSn_TT_Sk

Metodologia

Page 47: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r • Terminação Digital X terminação Óptica:• ND1, ND2 e ND3 => nós digitais / NO1, NO2 e NO3 => nós

ópticos.• t1 => tempo de propagação / t2 => tempo de transmissão.

• Em um nó óptico não há armazenamento do sinal sendo transmitido, portanto não é necessário esperar pela transmissão de toda a mensagem OTN.

OTSn_TT_Sk (2)

Page 48: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

OTSn_TT_So

Metodologia

Page 49: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

OTSn_OMSn_A_Sk

Metodologia

Page 50: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

OTSn_OMSn_A_So

Metodologia

Page 51: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

OMSn_TT_Sk

Metodologia

Page 52: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

OMSn_TT_So

Page 53: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

OMSn_OCh_A_Sk

Page 54: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

OMSn_OCh_A_So

Metodologia

Page 55: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

• Mensagem utilizada pelo canal de serviço;

• Herda todos os parâmentros da classe OTNMsg;

• Transporta as informações relativas aos alarmes das camadas OTS, OMS e OCh.

Mensagens – OTNMsgOH

Page 56: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

Mensagens – SIGNALMsg

• Mensagem utilizada na comunicação dos alarmes entre blocos funcionais.

• Contém apenas um valor booleano, indicando o valor do alarme em questão.

Page 57: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

Mensagens – SIGNALMsg (2)• Exemplo de uso: Entre as funções de terminação de trilha

e funções de adaptação no lado sink da camada OMS.

Page 58: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

Módulo Auxiliar – Host_OCh

• Módulo Simples responsável por gerar mensagens OTN.

• Gera mensagens de payload coloridas (não moduladas) e mensagens de cabeçalho (elétrico).

• Simula um cliente da rede.

Page 59: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

Amplificador de Linha Unidirecional

Page 60: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

Amplificador de Linha Bidirecional

Page 61: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

Host OTN com 5 Comprimentos de Onda

Page 62: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

MODELAGEM DA RECOMENDAÇÃO ITU-T G.798 –

Camadas Digitais

Page 63: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r • Metodologia semelhante a adotada dos blocos funcionais G.798 relativos as camadas ópticas:– Criação dos Módulos Simples;– Criação das Classes em C++;– Criação da Mensagem de Payload Digital.

• Modelagem do equipamento:– Criação de Módulos Compostos.

• Criação da rede OTN:– Definição da topologia;– Simulação.

Metodologia

Page 64: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r • Componentes implementados:– Blocos funcionais:

• OCh_TT_Sk, OCh_TT_So;

• OCh_OTUk_A_Sk, OCh_OTUk_A_So;

• OTUk_TT_Sk, OTUk_TT_So;

• OTUk_ODUk_A_Sk, OTUk_ODUk_A_So;

• ODUkP_TT_Sk, ODUkP_TT_So.

– Módulo auxiliar:• DTH.ned;

• host_n_digital.ned;

• host_OTN.ned.

– Mensagem:• OTNMsgDigital.

• Simulação:– Rede com 2 hosts e um amplificador bidirecional.

Modelagem

Page 65: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

Blocos Funcionais

Page 66: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

OCh_OTUk_A_Sk

Page 67: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

• Mensagem de payload utilizada pelas camadas digitais;

• Além do payload, transporta os cabeçalhos das camadas OTUk e ODUk.

Mensagens – OTNMsgDigital

Page 68: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

Módulos Auxiliares host_n_digital.ned;

DTH.ned;

host_OTN.ned.

Page 69: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

Integração entre as Camadas Digitais e Ópticas

Page 70: Http:// Curso OTN - Simulação

h

ttp

://w

ww

.lab

tel.ele

.ufe

s.b

r

Exemplos