• Nenhum resultado encontrado

4.4 Proxy MIPv6

5.3.8 Modo de Operação PMIPFlow-LMA

A descrição de implementação apresentada até aqui serve tanto para o OMAG quando para o PMIPFlow-LMA, porém este último necessita além do descrito acima, de um código especial para fazer dele um componente NOX.

O PMIPFlow-LMA é a entidade mais importante do PMIPFlow, nela reside toda a inteligência da arquitetura, tanto para o gerenciamento de mobilidade quanto para o gerenciamento dos switches OpenFlow. O PMIPFLow-LMA foi desenvolvido com base no código switch.cc que vem junto ao NOX/C++, este código implementa um simples switch como componente do NOX. O trecho de código mostrado em 5.1 mostra o cabeçalho da classe PMIPFlow-LMA. Essa classe herda, como todo componente do NOX, da classe Component.

No trecho de código 5.1, são exibidas algumas funções importantes para implemen- tação do componente NOX PMIPFlow-LMA. A seguir a explicação dos aspectos mais importantes do código 5.1. A versão completa do código está descrita no Apêndice B.

namespace p m i p f l o w _ l m a { V l o g _ m o d u l e l g ( " PMIPFlow−lma " ) ; c l a s s PMIPFlow : p u b l i c Component { LMA * lma ; p u b l i c : PMIPFlow ( c o n s t C o m p o n e n t _ c o n t e x t * c ) : Component ( c ) { s e t u p _ f l o w s = t r u e ; } v o i d p m i p f l o w −l m a _ c a l l b a c k ( a u t o& dp , o f p _ m a t c h f l o w ) ; v o i d c o n f i g u r e ( ) ; v o i d i n s t a l l ( ) { } D i s p o s i t i o n h a n d l e _ d a t a p a t h _ j o i n ( c o n s t E v e n t & ) ; D i s p o s i t i o n h a n d l e _ d a t a p a t h _ l e a v e ( c o n s t E v e n t & ) ; D i s p o s i t i o n h a n d l e _ p a c k e t _ i n ( c o n s t E v e n t & ) ;

Exemplo de código 5.1: pmipflow-lma.cc A Seguir a explicação das principais funções apresentadas em 5.1

• handler_packet_in (linha 16): Essa função é chamada toda vez que um pacote entra no switch, nela é executada a função que liga o componente à implementação do lma, chamada pmipflow-lma_connect.

CAPÍTULO 5. ARQUITETURA PMIPFLOW

• handler_datapath_leave (linha 15): Essa função é chamada toda vez que um novo datapath (switch) sai da rede ou deixa o controlador.

• handler_datapath_join (linha 14): Ao contrário da função anterior, esse é chamada quando um datapath (switch) se conecta ao componente.

• pmipflow-lma_callback (linha 11): Esta é uma função callback e é enviada junto com a função pmipflow-lma_connect para callback, ela instala fluxos e grava os MACs dos pacotes que chegam na rede. Esta função faz todo o gerenciamento de mobilidade, atualizando o BC e criando pacotes PBA de resposta.

5.4

Considerações Finais

Nesta seção foi tratada a teoria por trás do PMIPFlow, as entidades que compõem o framework e como elas trocam mensagens durante o processo de conexão e no handover, a implementação da proposta no Linux e as estruturas de dados utilizadas, a detecção de movimento da proposta e os modos de operação. No Capítulo 7, será apresentado mais detalhes sobre a implementação da arquitetura PMIPFlow e como o protótipo da arquitetura foi desenvolvido.

6

Proposta de Antecipação de Handover

"Ao lado de todo grande homem, sempre existe uma grande mulher"

—DESCONHECIDO

As RFCs de protocolos de gerenciamento de mobilidade não padronizam o gatilho de início do procedimento de handover, ou seja, a inteligência desse gatilho fica por conta de alguma proposta a ser implementada junto com a arquitetura, o mesmo vale para o PMIPFlow. Melhorar latência, ou seja, reduzir o tempo do processo de handover é crucial em serviços multimídia de tempo real, pois quebras de conexão e perdas de pacotes podem gerar degradações.

Dessa forma, além da contribuição da arquitetura PMIPFlow, propõe-se, também, uma solução baseada em lógica fuzzy para antecipar o mecanismo de handover da arquitetura PMIPFlow e reduzir de forma proativa o atraso desse processo, fazendo com que ele seja realizado de forma transparente ao usuário e ao serviço corrente, minimizando as perdas de pacotes devido possíveis quebras de conexão. Nesse e em todos os outros Capítulos, "PMIPFlow(Fuzzy)"fará referência à arquitetura PMIPFlow com a proposta de antecipação Fuzzy.

Este capítulo está organizado da seguinte forma. A seção 6.1 apresenta os conceitos por trás da proposta de antecipação de handover para arquitetura PMIPFlow, nesta seção é apresentada a representação esquemática do PMIPFlow(Fuzzy). Em seguida, na seção 6.2, é apresentada as variáveis de entrada do sistema, nessa seção é descrito como cada variável. A formação dos conjuntos fuzzy, os quais servirão como motor de inferência, são apresentado na seção 6.3, para cada variável de entrada existe um conjunto fuzzy e em todo sistema existe uma saída, ao todo são formados vinte e sete regras de inferência.

CAPÍTULO 6. PROPOSTA DE ANTECIPAÇÃO DE HANDOVER

A última seção conclui este Capítulo.

6.1

Sistema PMIPFlow(Fuzzy)

Diferentemente da lógica tradicional, que utiliza valores exatos, a lógica fuzzy é um sistema capaz de trabalhar com informações imprecisas e transformá-las em uma lingua- gem matemática de fácil implementação computacional. Ele é uma ferramenta bastante utilizada em sistemas que precisam de uma tomada de decisão baseado em variáveis imprecisas. A seguir, algumas vantagens da utilização da lógica fuzzy (?).

• É bastante usado para tomadas de decisão; • Reduz o tempo de desenvolvimento;

• Capacidade de operar com dados imprecisos;

• Pode ser utilizado para modelar funções não lineares e complexas.

• Sistemas avançados precisam de menos chips e sensores (menos estruturas de controle);

• Implementável facilmente em microcontroladores, como sistemas de máquinas fotográficas, máquina de lavar roupas, freios ABS, ar condicionado e etc.

• É também usado em seleção de redes sem fio;

Um sistema fuzzy é constituído pela processo de fuzzificação, que traduz as variáveis de entrada em conjuntos fuzzy. Pela inferência, que realiza o raciocínio fuzzy com base em um sistema de regras que relaciona as variáveis de entrada com as de saída. E pela defuzzificação, que é a tradução da saída num valor numérico.

A Figura 6.1 apresenta o esquema da proposta PMIPFlow(Fuzzy), a seguir cada bloco construtor da arquitetura será explicado com mais detalhes.

• Sistema de Monitoramento: Este módulo de software é responsável por executar o monitoramento das variáveis utilizadas como entrada para o sistema fuzzy. Ele lê as variáveis de arquivos de logs e separa as informações necessárias. Essas variáveis fornecem dados numéricos que irão alimentar o sistema. Através desses valores, o sistema irá se basear para tomar as decisões. As entradas utilizadas para proposta PMIPFlow(Fuzzy) são: Vazão, RTT (Round Trip Time) e RSS (Received Signal Strengthou Intensidade do Sinal Recebido).

6.1. SISTEMA PMIPFLOW(FUZZY) Fuzificador Motor de Inferência Defuzzificador Base de Connhecimento Base de Regras Funções de Pertinência Vazão RTT Intensidade do Sinal Saída Sistema de Monitoramento Sistema de Tomada de Decisão Ping6 Iptraf iwconfig Logs

Figura 6.1: Representação do Sistema Fuzzy

• Logs: As variáveis de interesse são colocadas em arquivos de logs para serem lidas pelo Sistema de Monitoramento. Várias ferramentas são utilizadas para recuperar as informações do dispositivo do usuário são elas ping6, iptraf e iwconfig.

• Fuzzificador: Nessa etapa as entradas não fuzzy ou precisas são apresentadas ao sistema por intermédio de medições ou observações de dados, os quais são considerados como sendo o conjunto de dados de entrada do sistema. Deste modo, é necessário efetuar um mapeamento desses dados de entrada para o conjunto fuzzy, de tal forma, que o sistema possa identificar a quais variáveis linguísticas esses dados pertencem e o quanto os mesmos são pertinentes a essas variáveis. Nesta fase também ocorre à ativação das regras fuzzy relevantes para um dado sistema; • Base de Conhecimento: Formada por uma Base de Regras e de Dados (Funções

de Pertinência). As regras podem ser fornecidas por especialistas, com base em seu conhecimento a respeito do processo que se deseja analisar, em forma de sentenças linguísticas, e se constituem em um aspecto fundamental no desempenho de um sistema de inferência fuzzy. Desta forma, o sistema de inferência fuzzy terá um desempenho confiável e satisfatório, somente se, as regras expressarem o comportamento do sistema de forma fiel e consistente. Entretanto, a extração de um conjunto de regras advindas do conhecimento desses especialistas pode não ser uma tarefa fácil, por mais que os mesmos conheçam profundamente o problema que se deseja analisar. Portanto, existem alternativas ao uso do conhecimento dos especialistas para a definição da base de regras, tais como os métodos de extração de regras a partir de dados numéricos. Esses métodos são particularmente úteis em

CAPÍTULO 6. PROPOSTA DE ANTECIPAÇÃO DE HANDOVER

aplicações onde haja disponível um conjunto de dados numéricos que refletem o comportamento entrada/saída do sistema;

• Motor de Inferência: No processo de inferência ocorrem as operações com os conjuntos fuzzy. Um aspecto importante é a definição dos conjuntos fuzzy correspondentes às variáveis de entrada e às de saída, pois o desempenho do sistema de inferência dependerá do número de conjuntos e de sua forma adotada. É possível efetuar uma sintonia manual das funções de pertinências dos conjuntos, mas é mais comum empregarem-se métodos automáticos. A integração entre sistemas de inferências fuzzy e redes neurais artificiais tem se mostrado adequada para a sintonização das funções de pertinências, assim como para a geração automática de regras;

• Defuzzificador: Após o processo de Inferência, tem-se o processo de defuzzifi- cação que, de posse do conjunto fuzzy de saída adquirido através do processo de inferência, é responsável pela interpretação dessa informação para saídas preci- sas (dados não fuzzy). Isto se faz necessário, já que, em aplicações práticas são requeridos valores não fuzzy.

• Sistema de Tomada de Decisão: A saída do sistema fuzzy é usada como entrada para o Sistema de Decisão, esse sistema recebe os valores de saída para decidir se o usuário deve fazer handover ou não. Se o sistema decidir pelo handover, o processo de handover é imediatamente iniciado.

Documentos relacionados