A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Curso OTN - Simulação.

Apresentações semelhantes


Apresentação em tema: "Curso OTN - Simulação."— Transcrição da apresentação:

1 Curso OTN - Simulação

2 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

3 SIMULAÇÃO DE EVENTOS DISCRETOS

4 Simulação 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.

5 Simulação de Eventos Discretos
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.

6 FERRAMENTAS DE SIMULAÇÃO

7 Ferramentas de Simulação
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.

8 Ferramentas de Simulação
Usado por empresas como: Lucent Bell Labs (análise de protocolos) e Siemens (projetos internos de pesquisa). Fonte: 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.

9 OMNeT++

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

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

12 Módulo Simples Descrição: Linguagem NED.

13 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

14 Canais Tipos de canais do OMNeT++: IdealChannel; DelayChannel;
DatarateChannel;

15 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

16 Exemplo de uso dos canais
No caso do canal cDatarateChannel, é possível especificar, por exemplo: datarate, delay, BER (Bit Error Rate).

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

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

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

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

21 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;

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

23 Exemplo: Tic Toc Segundo Passo: Definição do código C++ do módulo simples Txc1.

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

25 Exemplo: Tic Toc Ú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.

26 Exemplo: Tic Toc

27

28 REDES OTN NO OMNeT++

29 Como acontece uma transmissão?
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).

30 Como acontece uma transmissão?
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

31 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:

32 Canal Óptico – Problemas
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.

33 Canal Óptico – Solução Adotada
Utilizar o código C++ do Kernel do OMNeT++ da classe cDatarateChannel para criar um novo tipo de canal.

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

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

36 Código C++ da classe OpticalChannel
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);

37

38 Descrição da classe (OpticalChannel.ned)

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

40 Canal Óptico – Funcionamento
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

41 Mensagem óptica Classe herdada de cPacket:
packet 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.

42 MODELAGEM DA RECOMENDAÇÃO ITU-T G.798 – Camadas Ópticas

43 Metodologia 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;

44 Modelagem Componentes implementados: Simulação: 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.

45 Blocos Funcionais

46 OTSn_TT_Sk Metodologia

47 OTSn_TT_Sk (2) 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.

48 OTSn_TT_So Metodologia

49 OTSn_OMSn_A_Sk Metodologia

50 OTSn_OMSn_A_So Metodologia

51 OMSn_TT_Sk Metodologia

52 OMSn_TT_So

53 OMSn_OCh_A_Sk

54 OMSn_OCh_A_So Metodologia

55 Mensagens – OTNMsgOH 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.

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

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

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

59 Amplificador de Linha Unidirecional

60 Amplificador de Linha Bidirecional

61 Host OTN com 5 Comprimentos de Onda

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

63 Metodologia 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.

64 Modelagem Componentes implementados: Simulação: 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.

65 Blocos Funcionais

66 OCh_OTUk_A_Sk

67 Mensagens – OTNMsgDigital
Mensagem de payload utilizada pelas camadas digitais; Além do payload, transporta os cabeçalhos das camadas OTUk e ODUk.

68 Módulos Auxiliares host_n_digital.ned; DTH.ned; host_OTN.ned.

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

70 Exemplos


Carregar ppt "Curso OTN - Simulação."

Apresentações semelhantes


Anúncios Google