http:// modelagem da g.798 no omnet++ felipe pedroni favoreto rodrigo stange tessinari
TRANSCRIPT
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Modelagem da G.798 no OMNeT++
Felipe Pedroni FavoretoRodrigo Stange Tessinari
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Sumário• Simulação de Eventos Discretos
• Ferramentas de Simulação
• 3 simuladores - comparação
• OMNeT++
• Caracteristicas – Estrutura Geral – lig NED – Passos de um projeto
• Redes OTN no OMNeT++
• Canal óptico -
• Modelagem da G.798
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
• passos• saltos
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 mais 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, cujos código fonte não é
• OMNeT++– Excelente desempenho: escrito em C++;– Uso de uma linguagem de descrição de topologia própria;– Software Livre com 100% de seu código-fonte disponível.
Ferramentas de Simulação (2)
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
OMNeT++
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
OMNeT++:Principais elementos
• Módulos, parâmetros, gates, conexões• 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)• OMNET e 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, uma placa Ethernet.
• Módulo simples
– Indivisível
– Descrição: linguagem NED (NEtwork Description)
• Parâmetros, Gates
– 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
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 (channel)
• Instância os módulos simples ou compostos: tic/toc = objeto, Txc1=classe
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
Exemplo: Tictoc (1)
• Modelar um sistema formado por dois nós enviando a mesma mensagem que receberam
• Primeiro: Definição do módulo simples no arquivo Tictoc1.ned
• Segundo: Definição do código C++ do módulo simples
Txc1
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Principais funções do código C++
• Initialize() permite a execução de qualquer código antes
de iniciar a simulação. NÃO é o construtor do objeto.
• HandleMessage() é a 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.
• No exemplo, todas mensagens chegam pela porta “in”,
definida no tictoc1.ned, e é automaticamente
retransmitida para a porta “out”.
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Obs.:Orientação a objetos
• Observe que todos os componentes do OMNET++ são
uma classe no código C++. Embora na utilização apenas
se reescreva o código do módulo simples, outros objetos
como gates, o módulo composto, os canais, todos
possuem um código C++ na API do OMNET.
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Arquivo de configuração
• Ultimo Passo: arquivo 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
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.
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
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
Primeiro desafio: O Canal Óptico• Tipos de canais do OMNeT++
• IdealChannel• DelayChannel• DatarateChannel
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
• Suponha que o módulo d1 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 outro lado do canal).
Como acontece uma transmissão?
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
• No exemplo Titoc1, com um delaychannel, esse tempo era de 0,1 ms. O parametro arrivalTime é então modificado para:
sendingTime+delay
• A msg é por fim colocada em uma fila de escalonamento de acordo e o parametro:
isScheduled = true
Como acontece uma transmissã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
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Exemplo de uso dos canais
• No caso do ned. DatarateChannel, é possível especificar– datarate, delay, BER (Bit Error Rate)
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Herança• Na nova versão do OMNeT++ existe o conceito de herança
• É possíve criar módulos e canais apartir de um canal pré-existente
• Exemplo: canal com calculo do atraso com base no tamanho e na (obs.: só altera no NED, e não o código C++ da classe, que está no Kernel do
OMNeT++).elocidade de propagação
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++.
• Implementações de rede ópticas simplificadas ou mal formuladas:• Ex: implementações de um canal WDM formado por um
conjunto de DatarateChannel
• Solução Encontrada: Extender o DatarateChannel
O Canal Óptico
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Requisitos e Implementação do canal óptico• 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 do DatarateChannel -> NÃO seria
possível implementar o envio de vários sinais independentes, pois só é possível enviar uma mensagem, com tamanho diferente de zero, por vez.
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Solução
• Utilizar o código C++ do Kernel do OMNET da classe
DatarateChannel para criar um novo tipo de canal.
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Modelagem de uma fibra WDM• OMNET: mensagem = eventos e transmissões.
• 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: idem módulo simples, porém herda da classe.
• Arquivo .ned;
• Código C++: implementa o código.
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Descrição da classe (OpticalChannel.ned)channel OpticalChannel
{ parameters:
@class(OpticalChannel);
int wavelengths= default(0);
double distance = default(0);
double powerdecrease = default(0);
double datarate @unit(bps)=default(0);
double ber = default(0);
double per = default(0);
bool disabled = default(false);
}
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 executa-se o comando:
Register_Class(OpticalChannel);
Código C++ da classe
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Mensagem ópticapacket OTNMsg{
int wavelength=0;//the first free wavelength in the fiber
bool isOSC=false;//true if this represente a traffic in a supervisor channel
double power=-1; //POTENCIA DO SINAL (inicializar com o valor de saída de um
equipamento)
double SNR=1; //RELACAO SINAL RUIDO
//parametros utilizados internamento no equipamento
int fiber=-1;//identifica a parta de chegada de um sinal
}
• Classe filho de cPacket
– Tamanho > 0 -> 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
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 em que ela será transferida.
• Uma mensagem OTNMsg, por ser filha da classe cPacket, herda o parâmetro tamanho (numero de bits). Com esse parametro é 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. Parametros de potencia, comprimento de onda
Operação
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
OpticalChannel em mais detalhes//New optical parameters -> OpticalChannel.h
double distanceparam;// in meter
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
double *perparamp; // OTN frame error rate per wavelength
bool *disabledparamp;// indicate if the wavelength at position 'i' of the vector
are disabled
// BUT to disable all channels it's 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
MODELAGEM DA RECOMENDAÇÃO ITU-T G.798
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;– Simulação.
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:• D1, D2 e D3 => nós digitais / o1, o2 e o3 => 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
Simulação da Rede
h
ttp
://w
ww
.lab
tel.ele
.ufe
s.b
r
Muito Obrigado