• Nenhum resultado encontrado

3.3 Dispositivos

3.3.7 Network Manager

O Network Manager é responsável pelo gerenciamento, escalonamento e otimização da rede sem fio. Como parte de suas atribuições o Network Manager inicializa e mantém valores dos parâmetros de comunicação da rede. Ele também é responsável por gerenciar os recursos compartilhados e dedicados de rede.

O Network Manager e o gateway devem ser uma única entidade lógica. A relação entre o Network Manager e o resto da a rede sem fio é mostrada na Figura 3.6. O Network Manager pode ser colocado no mesmo local físico do gateway ou localizado em um local diferenciado.

Embora o Network Manager não necessite de uma conexão de camada física direta, ele pode comunicar pelos pontos de acesso mantidos pelo gateway. O Network Manager deve ter um endereço conhecido e fixo (ID único 0xF980000001 e nickname 0xF980), o

Figura 3.6: Organização do Network Manager na topologia da rede.

qual é utilizado com destino pelos pacotes vindos de dispositivos de campo para o network manager. É possível se ter Network Managers redundantes conectados a uma rede, mas deve haver apenas um único Network Manager ativo por rede. Um Network Manager pode gerenciar duas redes distintas, contudo, os dispositivos de diferentes redes não se enxergam.

O Network Manager se comunica utilizando o protocolo FAL definido na IEC 61158- 6-20. Ele também utiliza o formato de pacote da camada de aplicação para escrever e ler os objetos de gerenciamento da camada. O Network Manager também é responsável por coletar e manter diagnósticos sobre a saúde da rede da rede. Estes diagnósticos estão disponíveis para serem enviados as aplicações. Estes diagnósticos são utilizados também para adaptar a rede a condições variantes da mesma.

Para que o Network Manager cumpra todas as suas funções, ele necessita de infor- mações sobre os dispositivos, informações de como a rede deve ser utilizada, e um feed-

back da rede de como está a performance da mesma. Informações de configuração dos

dispositivos são obtidas dos próprios dispositivos. Recursos de comunicação são requisi- tados pelos dispositivos, aplicações e usuários da planta. O feedback do funcionamento da rede é fornecido pelos dispositivos através de health reports.

O Network Manager e o gateway são responsáveis por estabelecer e manter uma conexão segura entre eles para a transmissão de dados e informações de controle. Con- tudo, não é necessário para o gateway passar pelo processo de join padrão. Depois que o gateway se conecta com o Network Manager, o Network Manager pode configurar o

gateway para transmitir advertises para outros dispositivos.

3.3. DISPOSITIVOS 47

Tabela 3.2: Funções do Network Manager. Função na Rede Requisito

Formação e configu- ração da rede

Proporcionar a própria inicialização e a inicialização da rede.

Gerenciar a topologia, adaptando as mudanças de repor- tadas pelos dispositivos.

Gerenciar a distribuição de chaves de rede fornecidas pelo security manager a todos os dispositivos. Chaves separadas para o Network Manager e o gateway devem ser utilizadas para tráfego unicast e broadcast originários de cada um de- les.

Gerenciar o processo de join. O Network Manager deve validar o dispositivo que tenta se juntar a rede. Após a aut- enticação do dispositivo de rede, o Network Manager deve dar ao dispositivo a chave de rede (Network Key) e qua- tro chaves de sessão (Session Key). O dispositivo deve ter o network_id configurado antes de tentar se juntar a rede, para poder se juntar a rede correta.

Atribuir um nickname de 16 bits único para cada dispositivo de rede. O Network Manager é responsável por garantir que o cada tabela de vizinhos dentro de cada dispositivo esteja atualizada.

Estabelecer a conexão com o gateway. Todas as vezes que o gateway receber uma mensagem destinada ao Network Manager, o gateway encaminha a mesma para o destino. O Network Manager é conectado a rede via o gateway. Configurar pelo menos um ponto de acesso conectado ao

gateway para prover o clock à rede.

Gerenciar a configuração da rede mantendo um mapa com- pleto da configuração da rede, incluindo todas as infor- mações sobre a rede que foram distribuídas aos dispositivos da rede.

Responder a requisições, por exemplo das aplicações, para informações sobre a rede.

Roteamento Criar e gerenciar as rotas de rede.

Gerenciar as tabelas de vizinhos da rede e coletar infor- mações sobre cada dispositivos através de Health Reports periódicos. Esta informação deve ser utilizada para adaptar a rede a mudanças.

Construir tabelas de roteamento para roteamento por grafo. Construir as listas de roteamento de origem.

Alocar recursos de comunicação para os todos os disposi- tivos (incluindo o próprio Network Manager) de modo que todos tenham espaço para se comunicar e que também haja espaço para o gerenciamento da rede.

Escalonamento da rede Criar Superframes.

Atribuir Links aos superframes

Criar tabelas de Links. Cada link inclui um único slot as- sociado a um superframe, o seu tipo (normal, advertise ou descoberta), sua opção (transmissão, recepção ou compar- tilhado), informação sobre o vizinho, offset de canal e o dis- positivo conectado a este link.

Ativar e desativar superframes em resposta as demandas de aplicação.

Gerenciamento de Canal

Acompanhar os canais que estão na blacklist (Lista Negra). Adicionar canais a blacklist é um trabalho manual realizado pelo administrador da rede.

Prover o offfset de canal. O offset de canal é utilizaddo para calcular o número do canal quando é realizado o salto de canais, assumindo um valor de 0 até o número de canais deduzidos o número de canais na blacklist.

Diagnóstico na rede Manter as informações de diagnóstico da rede sem fio. Caso um dispositivo da rede não tenha recebido um pacote den- tro do intervalo de tempo Keep_alive_time, o dispositivo deve mandar uma notificação de queda de passagem para o Network Manager indicando que aquela passagem está indiponível.

Manter registro de condições (Health information) sobre cada dispositivo.

Alocar recursos de comunicação requisitados pelos disposi- tivos .

Otimizar rotas e o escalonamento com o objetivo de melhor o funcionamento da rede e otimizar o consumo de energia.

Capítulo 4

Módulo de Simulação para o NS-3

Uma das dificuldades encontrada para a criação e a otimização de protocolos de redes é a análise de tais protocolos em diferentes ambientes. A montagem de uma infraestrutura para testes dos diferentes ambientes com máquinas reais se mostraria custoso (embora com resultados mais precisos) com o aumento do número de estações tanto do ponto de vista financeiro quanto do ponto de vista do tempo de desenvolvimento.

Com base nesses fatos, uma solução com custos reduzidos e que atenda a flexibilidade necessária para os testes é a simulação computacional. Com a simulação pode-se obter resultados a partir de diferentes topologias e número de estações com o gasto de tempo relativo apenas a configuração dos parâmetros de simulação.

4.1

Network Simulator 3

O padrão atual para as simulações de redes e o simulador Network Simulator 2 (NS- 2) segundo [Weingartner & Wehrle 2009]. O NS é um simulador de eventos discretos para pesquisas em redes, provendo recursos para simulação de TCP, roteamento e proto- colos multicast em redes sem fios ou cabeadas, locais ou via satélites [Coutinho 2003]. O NS é programando em duas linguagens: C++ e a linguagem interpretada OTCL (Object-

oriented Tool Command Language). A linguagem OTCL é utilizada para a configuração

dos parâmetros da simulação, enquanto o C++, devido a sua robustez, maior disponibil- idade de pacotes, velocidade de execução dos códigos compilados e facilidade de lidar com bytes, é a escolha para que sejam programados os protocolos a serem utilizados [Coutinho 2003]. O OTCL utiliza objetos compilados em C++ a partir de um processo de ligação (linkage) via TclCl (Tcl with Classes) relacionando-os [Demarch 2007].

O NS começou como uma modificação do REAL Network Simulator em 1989. Em 1995 o desenvolvimento do NS foi mantido pela DARPA (Defence Advanced Research

Projects Agency) através do projeto VINT que inclui empresas como a LBL, Xerox

PARC, UCB e USC/ISI. Atualmente o desenvolvimento do NS é mantido de maneira colaborativa por diversas instituções e pesquisadores como, por exemplo, pela americana DARPA (The Defense Advanced Research Projects Agency). O desenvolvimento também é auxiliado por, outros grupos como, por exemplo, a Sun Microsystems.

Entretanto o NS-2 se mostra com grandes problemas com relação à escalabilidade na utilização de memória e tempo de simulação [Weingartner & Wehrle 2009]. O simulador

também apresenta grandes abstrações nas camadas de rede e camadas mais baixas, o que traz dificuldades quanto à integração da simulação com dispositivos reais, além de que a documentação existente do NS-2 é ultrapassada ou inexistente [The ns-3 network simula-

tor website 2010]. Para sanar tais dificuldades, os desenvolvedores do NS-2 começaram

o projeto do Network Simulator 3 (NS-3) [The ns-3 network simulator website 2010]. Apesar de existirem outros o simuladores como o SimPy, o OMNeT++ e o JiST, o es- tudo conduzido em [Weingartner & Wehrle 2009] apontou o NS-3 como tendo a melhor desempenho no geral. Entretanto o NS-3 ainda apresenta poucos módulos implementa- dos, o que nos motiva ao desenvolvimento de um módulo WirelessHART para o simula- dor. Outro fator que contribui em favor do NS-3 é o de que este é um projeto de software livre, não requerendo licenças para a sua utilização.

O Network Simulator 3 é um simulador de eventos discretos desenvolvido em um projeto de código aberto sobre uma licença GNU GPLv2 iniciado em 2006 e organizado em torno da comunidade de pesquisa que o mantém, desenvolve e realiza a manutenção do mesmo. O NS-3 tem por objetivo permitir que pesquisadores estudem protocolos em sistemas em larga escala e em ambientes controlados, além de poder ser usado para fins de educacionais [The ns-3 network simulator website 2010]. É importante salientar que o NS-3 não é compatível com o NS-2, sendo um projeto diferenciado de seu antecessor.

O NS-3 é implementado na linguagem de programação C++, bem como os seus scripts de simulação, que também são classes C++. A linguagem Phyton pode ser opcionalmente utilizado pelo usuários. O simulador utiliza uma arquitetura modularizada e orientada a objeto, o que facilita o entendimento do código e a reutilização do mesmo.

Nas próximas seções serão descritas algumas estruturas básicas do NS-3. Essa revisão se faz necessária devido ao fato de que alguns jargões de redes de computadores têm um significado específico no NS-3. Todas as informações a seguir foram retiradas de [ns- 3 project ns-3 project 2010].

4.1.1

Node

O node representa o dispositivo que se conecta à rede. Tal termo mais genérico é utilizado a partir da Teoria de Grafos de modo a expressar que o nó é algo mais genérico que não se relaciona diretamente com a Internet e seus protocolos (ao contrário do termo

host, por exemplo). Logo o node será o abstração dispositivo computacional no NS-3,

de modo que a classe Node, implementada em C++ fornece os métodos necessários para a representação dos dispositivos, como, por exemplo, a instalação de uma placa de rede. Assim o Node é como um computador ao qual o usuário adiciona funcionalidades como diferentes aplicações, protocolos e periféricos.

4.1.2

Aplicações

O NS-3 não há um conceito real de sistema operacional, chamadas de sistema ou pri- vilégio de usuários. Logo as aplicações, que no mundo real desempenham uma tarefa no sistema, servem para gerar e direcionar as atividade na rede simulada. Esse papel é de- sempenhado pela classe Application, que provê métodos para manter as representações de

4.1. NETWORK SIMULATOR 3 51

aplicações em nível de usuário. Os desenvolvedores devem herdar da classe Application para o provimento de novas aplicações.

4.1.3

Canais

Geralmente se chama de canal no mundo real o meio pelo qual os dados são trans- mitidos. Por exemplo, podemos citar o ar como canal em uma transmissão sem fios ou o cabo pelo qual um computador se conecta em uma rede Ethernet convencional. No mundo simulado do NS-3 o usuário deve conectar os Nodes a objetos que representam os canais. A abstração do canal real é realizada pela classe Channel, logo implemen- tando as características de cada meio, recebendo novas conexões de Nodes e gerenciando as comunicações entre os que estão integrados ao canal. Novos canais devem herdar de

Channel, e podem modelar desde ambientes simples como fios até ambientes complexos

em 3 dimensões, com obstáculos e modelos de propagação distintos.

4.1.4

Dispositivo de Rede

Para que uma máquina se conecte a uma rede no mundo real se faz necessário a exis- tência de um periférico (embutido ou anexado ao hardware) que realize as funções de rede, chamados Placas de Interface de Rede (em inglês, Network Interface Cards – NICs). A NIC juntamente com o driver (programa que controla a peça de hardware) fornecem as funcionalidades de rede ao sistema no qual foram instaladas. No NS-3, as abstrações que representam a NIC e o driver são implementadas na classe Net Device. Os objetos da classe Net Device são “instalados” nos Nodes, de modo que podem se comunicar por um canal. Um único Node pode possuir diferentes Net Devices e comunicar-se por diferentes canais, o que se equivale a um notebook que se conecta via cabo e por redes sem-fio. Logo, para se desenvolvar um novo dispositvo, o desenvolvedor deve herdar da classe

Net Device, que provê métodos para a comunicação das classes superiores com as classes Node e Channel.

4.1.5

Topology Helpers

A criação de uma rede de dispositivos consiste em uma série de comandos em C++ para instanciar, inicializar e ligar as diversas classes Node, Channel e Net Device, por exemplo. De modo que as classes chamadas de Helpers tem por função automatizar tais comandos de modo que esta atividade se torne o mais simples possível para o usuário, podendo ser repetida, reconfigurada e ter sua escala aumentada de maneira fácil. Outros exemplos de utilizações de classes Helpers são para funções de distribuição de estações no espaço e para e de endereços de rede.

4.2

Arquitetura Implementada do Módulo WirelessHART

Documentos relacionados