View
117
Download
9
Category
Preview:
Citation preview
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
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
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++ 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
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 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
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
REDES OTN NO OMNeT++
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?
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?
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
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
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.
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.
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.
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
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Descrição da classe (OpticalChannel.ned)
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.
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
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.
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
MODELAGEM DA RECOMENDAÇÃO ITU-T G.798 –
Camadas Ópticas
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
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
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Blocos Funcionais
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
OTSn_TT_Sk
Metodologia
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)
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
OTSn_TT_So
Metodologia
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
OTSn_OMSn_A_Sk
Metodologia
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
OTSn_OMSn_A_So
Metodologia
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
OMSn_TT_Sk
Metodologia
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
OMSn_TT_So
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
OMSn_OCh_A_Sk
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
OMSn_OCh_A_So
Metodologia
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
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.
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.
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.
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Amplificador de Linha Unidirecional
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Amplificador de Linha Bidirecional
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Host OTN com 5 Comprimentos de Onda
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
MODELAGEM DA RECOMENDAÇÃO ITU-T G.798 –
Camadas Digitais
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
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
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Blocos Funcionais
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
OCh_OTUk_A_Sk
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
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Módulos Auxiliares host_n_digital.ned;
DTH.ned;
host_OTN.ned.
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Integração entre as Camadas Digitais e Ópticas
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Exemplos
Recommended