Вы находитесь на странице: 1из 88

UNIVERSIDADE DO VALE DO RIO DOS SINOS UNISINOS UNIDADE ACADMICA DE GRADUAO CURSO DE CINCIA DA COMPUTAO NVEL BACHAREL

IURI ANDREAZZA

REDES MESH COGNITIVAS: MANTENDO A QUALIDADE DA TRANSMISSO UTILIZANDO ANLISE E PREDIO DE TRFEGO COM REDES NEURAIS ARTIFICIAIS

SO LEOPOLDO 2012

Iuri Andreazza

REDES MESH COGNITIVAS: MANTENDO A QUALIDADE DA TRANSMISSO UTILIZANDO ANLISE E PREDIO DE TRFEGO COM REDES NEURAIS ARTIFICIAIS

Trabalho de concluso de curso apresentado como requisito parcial para a obteno do ttulo de Bacharel em Cincia da Computao, pelo curso de Cincia da Computao pela Universidade do Vale do Rio dos Sinos UNISINOS Orientador: Prof. MSc. Mateus Raeder

So Leopoldo 2012

Para aqueles que eu amo muito. The whole of science is nothing more than a renement of everyday thinking. A LBERT E INSTEIN

AGRADECIMENTOS Para todos aqueles que partilharam comigo esta jornada, mesmo que este contato tenha sido breve ou que tenha se estendido um pouco mais, alguns caram e perseveraram nessa luta que o processo de formao acadmica. A essas pessoas sou agradecido por fazerem parte na construo do acadmico que sou hoje. minha famlia por todo seu apoio em todos os momentos, sempre incondicional, mesmo escutando bravejos de um estudante estressado sempre estiveram ao meu lado me apoiando e ajudando a sobrepujar os obstculos impostos. Para meus eternos is amigos, Felipe e Dante, sempre que estivemos juntos instauramos a loucura nas cadeiras com planos faranicos para os trabalhos ou mesmo as loucas conversas de bar frente da UNISINOS. Sempre pensando e inventando um dia iremos ainda fazer um trabalho formal sobre infestao zumbi no? Devo mencionar tambm meus grandes amigos Paulo, Wanderson, Roberto e Bryan que, apesar de no sermos colegas de longa data, partilhamos muitas risadas sobre o universo nerd em que vivemos, at mesmo trocando idias sobre projetos ou ajudando uns aos outros no que fosse necessrio! minha me e pai em especial por todo o apoio dado e pela longas jornadas de pesquisa e desenvolvimento intenso e das horas de sono perdidas, no qual ambos caram e me acompanharam durante o desenvolvimento deste trabalho. Devo mencionar tambm ao meu orientador, Mateus Raeder, por suas longas horas de correes e puxes de orelha com o objetivo de manter meu trabalho minucioso, sempre buscando potencializar minhas qualidades e extrair o melhor no desenvolvimento deste. Sem mais delongas, agradeo minha namorada Ceclia por estar presente ao meu lado nessa jornada nal, por ser prestativa, companheira e compreensiva, sempre disposta a me ajudar no que fosse possvel. Para todos vocs um muito obrigado!

RESUMO A necessidade de maior conectividade exige cada vez mais da infraestrutura dos modelos de redes atuais. Considerando o ritmo de crescimento dos dispositivos requisitando dados constantemente da rede, esses modelos logo se tornaro obsoletos, pois no conseguiro prover constante acesso rede sem que o usurio precise congurar seus dispositivos cada vez que quiser acessar a web. O modelo da Rede Mesh surge com o intuito de solucionar essa necessidade de constante conectividade, porm traz diversos problemas, tal como conseguir manter a qualidade dos servios provendo links com velocidade e desempenho desejveis. Este trabalho prope uma nova abordagem em relao ao roteamento no modelo da Rede Mesh, tentando aliar a exibilidade das Redes Neurais Articiais, objetivando manter o desempenho da rede diante da constante mudana de topologia. Palavras-chave: Redes Neurais Articiais. Redes Mesh. Protocolo de Roteamento.

ABSTRACT The need for greater connectivity requires more of the infrastructure of existing network models. Considering the growth rate of the devices on the network requesting data constantly, these models will soon become obsolete because it will not be able to provide constant access to the network without requiring the user to congure their device each time you access the Web. The model comes with the mesh in order to address this need for constant connectivity, but has several problems, as can maintain the quality of services providing links with speed and performance desired. This paper proposes a new approach to routing in the mesh model, trying to combine the exibility of neural networks aiming to maintain network performance in the face of changing topology. Keywords: Neural Networks. Mesh Networks. Routing Protocol.

LISTA DE FIGURAS Figura 1: Figura 2: Figura 3: Figura 4: Figura 5: Figura 6: Figura 7: Figura 8: Representao de uma clula neural humana (HAYKIN, 2001). . . . . . . . Viso clssica da estrutura de uma Rede Neural Articial (BRAGA; CARVALHO; LUDEMIR, 2007). . . . . . . . . . . . . . . . . . . . . . . . . . Estrutura clssica da organizao de uma rede de Hopeld (LOESCH; SARI, 1996). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Estrutura geral de uma Rede Mesh. . . . . . . . . . . . . . . . . . . . . . . Viso da conectividade geral entre client nodes e Mesh Routers. Em verde, a comunicao entre mesh routers e, em amarelo, a ligao entre client nodes. Grcos apresentando resultados de entrega de pacotes dentro de uma Rede Mesh (BAUMANN et al., 2007). . . . . . . . . . . . . . . . . . . . . . . . Organizao da estrutura do NS-3. . . . . . . . . . . . . . . . . . . . . . . 27 28 29 31 32 34 35 43 44 45 46 50 51 51 52 52 53 53 54 54 55 56 57

Representao da topologia da Rede Mesh mostrando o caminho timo dos pacotes entre dois mesh clients. . . . . . . . . . . . . . . . . . . . . . . . . Figura 9: Estrutura do Frame de transmisso do protocolo HWMP-ANN. . . . . . . . Figura 10: Representao Parcial da topologia da rede. . . . . . . . . . . . . . . . . . . Figura 11: Estrutura da RNA utilizada no processo de deciso do roteamento de pacotes. Figura 12: Figura 13: Figura 14: Figura 15: Figura 16: Figura 17: Figura 18: Figura 19: Figura 20: Figura 21: Figura 22: Figura 23: Mdia fracionria de entrega de pacotes. . . . . . . . . . . . . . . . . . . . Comparativo entre alguns algoritmos de roteamento e o HWMP-AN. . . . . Grcos mostrando o comparativo de 25 simulaes proeminentes. . . . . . Total de Pacotes Perdido durante a simulao. . . . . . . . . . . . . . . . . Comparativo entre Total de pacotes entregues sem e com a utilizao das RNAs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Atraso mdio na entrega de pacotes. . . . . . . . . . . . . . . . . . . . . . . Comparativo de 12 simulaes mostrando o atraso mdio utilizando a avaliao pela RNA. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Disperso da mdia de atrasos de todas as simulaes utilizando a RNA. . . Grcos representando o estado (mtricas PDF e Pacotes Perdidos) da rede comprando 25 uxos de informao, com RNAs e Sem RNAs. . . . . . . . Mtricas gerais comprando 12 rodadas de simulaes. . . . . . . . . . . . . Disperso da mdia fracionria em todas as simulaes. . . . . . . . . . . . Grcos representando o desempenho geral da simulao da rede. . . . . . .

LISTA DE TABELAS Tabela 1: Tabela 2: Tabela 3: Tabela 4: Cenrios gerados para simular a rede em diversas condies. . . . . . . . . Modelos de RNA pesquisados e seus requisitos para uso no roteamento de pacotes na rede. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Amostra da Base de dados construda para treinar a RNA sobre os estados dos mesh clients. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Objetivos alcanados nesta pesquisa. . . . . . . . . . . . . . . . . . . . . . 42 46 47 66

LISTA DE ABREVIATURAS RNA APs AODV Redes Neurais Articiais Access Points Ad hoc On-Demand Distance Vector

AODV-CGAAd Hoc On Demand Distance Vector Reactive By Hop Routing AODV-HP Ad Hoc On Demand Distance Vector High Performance FBR FBR-GW GSR GSR-PN HWMP P2P PLM NS-3 API IP PDF Field Based Routing Field Based Routing Enhancement for Scalability Gateway Source Routing Gateway Source Routing Preferred Neighbor Hybrid Wireless Mesh Protocol Peer To Peer Peer Link Management Network Simulator 3 Application Programming Interface Internet Protocol Packet Delivery Fraction

HWMP-AN Hybrid Wireless Mesh Protocol with Artical Networks QoS MRATP STE ETX mETX ENT SMA EWMA Quality of Service Multipah Routing Algorithm based on Trafc Prediction stochastic trafc engineering Expected Transmission Count Modied ETX Effective Number of Transmissions Simple Moving Avarege Exponetially Weighted Moving Avarege

COMNET Cognite Wireless Mesh Networks WLAN RRS RRDD Wireless Area Network Redes Recorrentes Simples Redes Recorrentes Dinmicamente Dirigidas

LISTA DE SIGLAS txPackets rxPackets Total de Pacotes Transmitidos Pacotes Transmitidos com sucesso

lostPackets Numero de Pacotes perdidos rxBitrate txBitrate tx rx pcap bits transmitidos com sucesso total de bits transmitidos Pacotes Transmitidos com sucesso bits transmitidos com sucesso Package Capture (Captura de Pacotes)

LISTA DE SMBOLOS s m Segundos Minutos Somatrio Alpha

exp Exponencial Tn Taxa de Pacotes em um ponto do tempo

Rn Taxa de Bits em um ponto do Tempo Spdf Estado do PDF de um node em um ponto do tempo SdelayEstado do Atraso de um node em um ponto do tempo

SUMRIO 1 INTRODUO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.1 Motivao e Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Estrutura do Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 FUNDAMENTAO TERICA . . . . . . . . . . 2.1 Redes Neurais Articiais . . . . . . . . . . . . 2.1.1 Modelos de RNAs . . . . . . . . . . . . . . . . 2.1.2 Uso temporal no reconhecimento de padres 2.2 Redes Mesh . . . . . . . . . . . . . . . . . . . . 2.2.1 Estrutura da rede . . . . . . . . . . . . . . . . 2.2.2 Mecanismos de Roteamento . . . . . . . . . . 2.3 Simulador NS-3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23 24 25 27 27 28 30 30 32 33 34 37 37 38 38 39 41 41 44 49 49 50 59 59 59 60 60 61 61 61 62 62 65 69

3 MTODO DE PESQUISA . . . . . . . . . . . . . . . . . . . . . . . . . 3.1 Delineamento da pesquisa . . . . . . . . . . . . . . . . . . . . . . . 3.2 Denio do conjunto da unidade anlise e da populao alvo 3.3 Tcnica de coleta de dados . . . . . . . . . . . . . . . . . . . . . . 3.4 Tcnica de anlise de dados . . . . . . . . . . . . . . . . . . . . . .

4 SIMULAES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.1 Cenrios de Execuo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 RNA Aplicada ao Roteamento . . . . . . . . . . . . . . . . . . . . . . . . . . 5 AVALIAO DOS RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . 5.1 Mtricas da simulao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2 Resultados obtidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 TRABALHOS RELACIONADOS . . . . . . . . . . . . . . . . . . . . . . . . . . 6.1 A Multipah Routing Algorithm Based on Trafc Prediction in Wireless Mesh Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Neural network based optimal routing algorithm for communication networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3 Stochastic Trafc Engineering in Multihop Cognitive Wireless Mesh Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.4 High Performance AODV Routing Protocol for Hybrid Wireless Mesh Networks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.5 A high-throughput path metric for multi-hop wireless routing . . . . . . 6.6 Quality-Aware Routing Metric for Time-Varying Wireless Mesh Networks 6.7 Bio-inspired Link Quality Estimation for Wireless Mesh Networks . . . . 6.8 Cognitive Wireless Mesh Networks with Dynamic Spectrum Access . . 6.9 Relao com os trabalhos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 CONSIDERAES FINAIS E TRABALHOS FUTUROS . . . . . . . . . . . . REFERNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

APNDICE A INFORMAES COMPLEMENTARES A.1 NS-3 Mdulos . . . . . . . . . . . . . . . . . . . . . . A.1.1 HWMP Mac Header . . . . . . . . . . . . . . . . . . A.1.2 HWMP Protocol . . . . . . . . . . . . . . . . . . . . A.1.3 HWMP Rtable . . . . . . . . . . . . . . . . . . . . . A.1.4 HwmpRtable::updateNodeStats . . . . . . . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

. . . . . .

71 71 71 71 72 72 73 73

ANEXO A NS-3 SCRIPTS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.1 Cenrio Base das Simulaes . . . . . . . . . . . . . . . . . . . . . . . . . .

23 1 INTRODUO

Nas ltimas dcadas, a evoluo tecnolgica, tanto na rea da informao quanto da comunicao, popularizou a computao mvel e, consequentemente, as redes de computadores sem o. O uso dessas tecnologias est cada vez mais presente nos ambientes acadmicos, industriais e residenciais. A grande quantidade de dispositivos mveis como notebooks, celulares e tables demandam conectividade instantnea com a rede, exigindo infraestrutura para acesso Internet e forando as redes em o ao limite. Concomitantemente, a migrao de servios para a web e o desenvolvimento de novas ferramentas onlines requerem qualidade e ecincia da conexo Internet. A maioria das redes sem o operam de modo centralizado, ou seja, sua estrutura prev que somente um nico ponto de acesso responsvel pela administrao e conexo de todos os clientes. Sua principal desvantagem, obviamente, a dependncia da estrutura em relao a esse ponto de acesso. Se ele falhar, toda a rede car indisponvel. Na tentativa de solucionar esse problema, o padro de malha (do ingls mesh) prope uma abordagem diferenciada para a conexo entre os usurios de uma rede. Nesse padro, os clientes e roteadores se comunicam uns com os outros, utilizando mltiplos saltos para encaminhar mensagens ao destino apropriado. Alm disso, as Redes Mesh possuem capacidades de autorreparao, autocongurao e auto-organizao, permitindo que a rede - com a Internet e entre oustros usurios - continue a funcionar, mesmo que um dos pontos de acesso pare de funcionar (AKYILDIZ; WANG, 2005). Entretanto, as redes mesh atuais, dada a volatilidade dos clientes - ora presentes na rede, ora ausentes -, no priorizam a qualidade de servio, ou seja, a transmisso de dados dentro da malha lenta e, geralmente, ocorrem excessivas retransmisses de dados. Esses fatores dicultam a manuteno de um uxo de dados para clientes dentro da malha. Os padres de redes contemporneos suportam uma grande quantidade de usurios e garantem a manuteno da qualidade, porm no previram a incluso de novos tipos de clientes, como dispositivos gerais do cotidiano (impressoras, celulares, geladeiras e demais eletrodomsticos, centrais de informao, carros e casas). A presena macia de mecanismos computacionais exaure a capacidade das redes, pois todo o ambiente estar interconectado, gerando um constante e intenso uxo de dados (AKYILDIZ; WANG, 2005)(ZHU; MUTKA; NI, 2004) Diante disso, o modelo de redes mesh se mostra cada vez mais atrativo para a implantao em larga escala, pois possibilita a coexistncia de todos esses dispositivos e a gerao de um "ecossistema"computacional natural. Dada as capacidades de autocongurao e autorreparao do modelo mesh, os usurios no precisam nem congurar manualmente seus dispositivos e nem se preocupar com a rede caso algum dos dispositivos pare de funcionar. Porm, nesse ecossistema, um problema se torna evidente. O uxo de dados entre os dispositivos e com a Internet um fator determinante na avaliao qualitativa (por parte do usurio) e quantitativa (mtricas avaliadas pelos mecanismos da rede) da rede. Para qualquer dispositivo

24 que realizar a requisio de um stream de informao, a rede ter que ser capaz de manter o uxo, sempre selecionando o melhor caminho, ou seja, o menos sobrecarregado e com menor custo (BARANSEL; DOBOSIEWICZ; GBURZYNSKI, 1995). Considerando essa problemtica, o desenvolvimento de tecnologias que possibilitem ao modelo mesh ter a exibilidade necessria para suportar aplicaes em larga escala deve ser prospectado e avaliado, assim como estudos de como manter a ecincia nas Redes Mesh se fazem necessrios. A ecincia das redes est intrinsecamente ligada capacidade da rede manter o uxo de dados. No transmitir dados de maneira ecaz um fator determinante para a perda da qualidade dos servios da rede. Assim, o roteamento de pacotes tem papel decisivo, devendo ser exvel o suciente para suportar as constantes mudanas topolgicas. As Redes Neurais Articiais (RNAs) podem auxiliar no roteamento de pacotes, pois so capazes de calcular as mtricas dos clientes das redes de forma eciente e com baixo custo de processamento. Esses clculos acabam por inuenciar de forma positiva o roteamento, deixando-o mais emprico e capaz de se ajustar a cenrios de grande mudana. Alm disso, a rede tornase malevel e a previso de eventos que podem causar mudanas adquire proatividade. Todos esses fatores acabam por inuenciar diretamente a qualidade de servio das redes. A ideia principal do roteamento cognitivo em Redes Mesh prover exibilidade aos dispositivos presentes no ecossistema, de modo a utilizar ecientemente os recursos disponveis das redes e manter a qualidade de conexo a um nvel aceitvel. Conforme mencionado anteriormente, a utilizao de Redes Neurais Articiais dentro do roteamento de pacotes importante no ganho de desempenho da rede, pois acabando proporcionando agilidade na distribuio da informao atravs da topologia. O emprego de engenharia de trfego no uxo de informao da rede de extrema importncia, uma vez que a estocasticidade topolgica da rede impe grandes desaos qualidade da conexo dos dispositivos rede. 1.1 Motivao e Objetivos

Com o foco desta pesquisa na manuteno da ecincia da rede, a predio de trfego tornase uma alternativa atraente para ajustar os mecanismos de roteamento, uma vez que o uxo de informaes tende a sofrer com a estocasticidade da topologia. Nesse cenrio, este trabalho prope um ajuste do mecanismo de roteamento que vise manter a conectividade e maximize a qualidade da transmisso, conseguindo se ajustar constante mudana das redes. Essa problemtica inuencia toda a gesto do trfego, criando a necessidade de um protocolo capaz de inuenciar todo o gerenciamento da transmiss de dados dentro da rede e, ao mesmo tempo, robusto e exvel, ajustando-se aos diversos cenrios que os dispositivos computacionais possam residir. Com essa capacidade cognitiva, o protocolo possivelmente ir manter estvel a transmisso com qualidade nominal, aumentando a conectividade da rede. Uma abordagem a se adotar seria unicar os trabalhos que usam Redes Neurais Articiais e propor um

25 algoritmo de roteamento robusto, colocando como premissa de que este tenha a exibilidade suciente para manter a conectividade com o mximo de qualidade possvel. Considerando isso, o desenvolvimento das RNAs precisar de um conjunto de mtricas de deciso, que sero treinadas com o objetivo de serem o mecanismo principal na deciso do roteamento de pacotes. Sendo assim, ser possvel prever mudanas dentro da rede e, a priori, conseguir evitar congestionamentos ou outras situaes caticas. Mantendo a viso do problema sob a gerncia de trfego, a manuteno da qualidade se localiza na predio do trfego interno da rede. Essa predio habilita o protocolo de roteamento a ser exvel perante cenrios de caos, portanto este trabalho buscou como objetivo habilitar cognitivamente o mecanismo de roteamento. Nesse cenrio, este trabalho objetiva propor um novo mecanismo de roteamento para redes mesh que vise manter a conectividade e maximize a qualidade da transmisso, conseguindo se ajustar constante mudana da topologia da rede. O protocolo cognitivo foi desenvolvido para ser utilizado dentro de um ambiente simulado de redes de computadores. Esse ambiente disponibiliza um conjunto de ferramentas para anlise da rede como um todo, possibilitando a construo de uma viso analtica do roteamento das redes e a execuo de uma anlise da efetividade do protocolo. As principais contribuies deste trabalho so listadas abaixo: Flexibilizar o protocolo de roteamento; Aumentar a qualidade da rede em cenrios de caos; Melhorar a qualidade da conexo para dispositivos com alta mobilidade; Demonstrar o uso efetivo de Redes Neurais Articiais juntamente com Redes Mesh. 1.2 Estrutura do Texto

O trabalho est organizado em sete captulos. O Captulo 2 apresenta a fundamentao do problema e os pontos crticos para as Redes Mesh. O Captulo 3 demonstra o mtodo de pesquisa e a denio dos mtodos de anlise dos dados extrados das simulaes. O Captulo 4 introduz o ambiente de simulao. O Captulo 5 expe os resultados obtidos com as modicaes do protocolo de roteamento. O Captulo 6 explana os trabalhos relacionados com o objeto de pesquisa deste trabalho. Por m, o Captulo 7 descreve as consideraes nais deste trabalho e quais caminhos podem ser seguidos a partir desta pesquisa.

26

27 2 FUNDAMENTAO TERICA

Neste captulo sero abordados os temas relacionados proposta do roteamento, visando conceituar e descrever os contedos bsicos para uma melhor compreenso do problema apresentado, como brevemente o simulador utilizado para gerar a rede. 2.1 Redes Neurais Articiais

Redes Neurais Articiais, usualmente denominadas "Redes Neurais"ou RNAs, vm sendo desenvolvidas por causa de um grande motivador, o crebro humano. Nele, o processamento da informao ocorre de forma totalmente diferente de um computador digital. A capacidade humana de processar dados no-linear e com um grande diferencial, todo o processo paralelo. Assim, a mente humana capaz de processar e classicar dados de forma cognitiva com extrema ecincia, mas, para que isso seja possvel, o crebro se organiza e se conecta como uma grande rede atravs dos neurnios (Figura 1).

Figura 1: Representao de uma clula neural humana (HAYKIN, 2001).

semelhana da mente humana, a RNA capaz de organizar a informao e classicla atravs de suas experincias. Tanto que, para as RNAs, necessrio um treinamento com um conjunto base de cenrios e seus respectivos resultados. Essa aprendizagem chamada de treinamento supervisionado e tem como objetivo preparar as estruturas internas (Pesos) da RNA para responderem com valores esperados sempre que encontrarem um padro conhecido. RNAs so construdas como sistemas paralelos distribudos compostos por pequenas e simples unidades de processamento (neurnios articiais), as quais calculam determinadas funes matemticas (normalmente no-lineares). Essas unidades so organizadas em camadas e interligadas por um grande nmero de conexes, na maioria das vezes unidirecionais (Figura 2). Entretanto, existem outros modelos que utilizam conexes de retorno (backpropagation) (HAYKIN, 2001). Dentro da RNA, as conexes esto associadas a pesos, onde armazenado o conhecimento

28

Figura 2: Viso clssica da estrutura de uma Rede Neural Articial (BRAGA; CARVALHO; LUDEMIR, 2007).

adquirido pela rede, servindo para ponderar sobre a entrada recebida por cada neurnio. A soluo de problemas por meio de RNAs bastante atrativa, pois, devido forma com que suas estruturas internas so representadas e ao paralelismo natural inerente sua arquitetura, geram a possibilidade de um desempenho superior aos mtodos tradicionais de deciso (VENKATARAM; GHOSAL; KUMAR, 2002). Nas RNAs, o processamento bsico de uma soluo de problemas passa por uma fase inicial de aprendizagem. Alguns modelos necessitam que o desenvolvedor da rede faa ajustes manuais, ou seja, apresente cenrios de aprendizagem exemplos (treinamento supervisionado). Outros modelos, por sua vez, suportam a aprendizagem dinmica (convergncia), ou seja, automtica, sem a interferncia humana no seu aprendizado. Com base nesse aprendizado, a RNA capaz de extrair as caractersticas bsicas para representar a informao do conhecimento dos problemas apresentados a ela. Mais tarde, essas informaes sero utilizadas para gerar respostas automticas para problemas do mesmo grupo com dados desconhecidos (BRAGA; CARVALHO; LUDEMIR, 2007). 2.1.1 Modelos de RNAs

Um dos modelos mais conhecido dentro das redes autoassociativas a rede de Hopeld (ou Hopeld/Tank) (LOESCH; SARI, 1996). Sua arquitetura apresenta uma camada de processamento singular, com a possibilidade de utilizar sua sada para realimentar a camada de processamento, fazendo com que a rede seja capaz de ponderar sobre o resultado obtido de sua sada. A Figura 3 mostra uma rede de Hopeld recorrente de uma s camada. Eventualmente, pode ser anteposta uma camada de entrada rede com uma funo nica de distribuir os pesos de entrada. Tambm pode ser adicionada uma camada de sada com a funo de normalizar os resultados da rede (LOESCH; SARI, 1996). Dentro da Rede Neural de Hopeld, o neurnio composto de duas funes matemticas

29

Figura 3: Estrutura clssica da organizao de uma rede de Hopeld (LOESCH; SARI, 1996).

nas quais representam o processo de ativao e ponderao dos pesos da entrada dos neurnios da rede. A funo de ativao imita o funcionamento da clula neural biolgica na qual requer certas condies para ativar uma descarga eltrica dentro da clula. Quando a descarga ocorre, ela ir ativar as terminaes do axnio e transmitir informao de um neurnio para outro. Dentro do neurnio, antes de passar pela funo de transio, necessrio ponderar os sinais de entrada (S), denidos pela Equao 2.1. Aps, o resultado passado para a transio. As funes sero representadas pelas Equaes 2.2, 2.3 e 2.4.
n

S=
i=1

W iXi

(2.1)

Abaixo algumas funes de transio comumente usadas: Funo de Limiar (v) = Funo linear por partes 1 (v) = v 0 Funo sigmide (v) = 1 1 + exp(av) (2.4) v +1 2 1 1 +2 > v > -2 v -1 2 1 0 se v 0 se v < 0 (2.2)

(2.3)

As funes acima representam a transio do sinal internamente do neurnio. Sempre que for necessrio trabalhar o desempenho do neurnio ou alterar seu comportamento, ajustes nas funces de transio devero serem feitas.

30 Uma das desvantagens das redes de Hopeld de memria associativa e otimizao o retorno de informaes imprecisas e geralmente com falhas em cenrios de grande quantidade de informao, tornando sua aplicao limitada a casos pequenos ou simples. 2.1.2 Uso temporal no reconhecimento de padres

O tempo constitui parte essencial no processo de aprendizagem de uma RNA. Ele pode ser contnuo ou discreto, representando uma entidade temporal ordenada. Tal processo, bsico para execuo de muitas tarefas cognitivas, tais como: viso, fala, o processamento de sinais e o controle motor. Atravs da incorporao do tempo na operao de uma RNA, podemos capacit-la a seguir variaes estatsticas em processos no estacionrios, como utuaes dos padres de roteamento dos client nodes. O tempo dentro da RNA representado em uma das seguintes formas: Representao implcita: A representao nesta forma feita sobre o processamento anterior. Por exemplo, os sinais de entrada contm uma amostragem uniforme e os pesos sinpticos de cada neurnio conectados a camada de entrada da rede sofrem sequencialmente uma convolao com amostras de entrada diferenciadas. Assim, a estrutura temporal do sinal de entrada inserida na estrutura espacial da rede. Representao explcita: O tempo neste formato tem sua prpria representao, ou seja, neurnios especcos para representar o atraso temporal do sinal de entrada em relao ao tempo transcorrido pela RNA. A forma simples de adicionar a dimenso temporal memria de uma RNA acrescentar atrasos de tempo implementados a nveis sinpticos ou a nvel das entradas da rede. Esses atrasos operam nas entradas sinpticas e habilitam a rede com uma memria de curto prazo temporal, inuenciando diretamente o processamento de informaes e utilizando a dimenso temporal dos dados. 2.2 Redes Mesh

Novos dispositivos computacionais esto cada vez mais presentes no cotidiano das pessoas. Esse aumento signicativo de usurios dentro do ambiente das redes sem o (do ingls wireless) fora a estrutura atual aos limites, muitas vezes causando uma perda signicativa da qualidade do servio oferecido. A evoluo tecnolgica do modelo de rede sem o (Wireless) gera outras abordagens para preencher o vcuo da necessidade na manuteno da qualidade do servio que as redes dispem. Na busca de prover conectividade de qualidade de maneira fcil e ampla, entidades acadmicas e grandes corporaes investem na pesquisa e aprimoramento do modelo mesh. O modelo prov caractersticas nicas facilitando a aplicao em larga escala e sua rpida implantao.

31

Figura 4: Estrutura geral de uma Rede Mesh.

A estrutura de uma Rede Mesh, representada na Figura 4, funciona em camadas. Percebese a separao da camada dos clientes (em amarelo) da camada dos pontos de acesso (Access Points ou APs, ilustrados em verde), conectados s torres de transmisso (AKYILDIZ; WANG, 2005). A rede composta de computadores vistos como ns (nodes) da malha, conectados com nodes vizinhos, formando uma topologia multidimensional chamada de mesh. Os nodes da rede podem ser separados em trs grandes classes: os clientes (mesh clients), os routers (mesh routers) e a infraestrutura (backbones), que so as torres de transmisso. Os mesh routers geralmente formam uma camada nica, interconectando outros routers e eventualmente conectando-se diretamente com torres de transmisso de dados e rede global. Os routers so mais exveis e versteis em comparao aos pontos de acesso normais, pois conseguem atingir esta, seno mais, cobertura com muito menos energia. Isso ocorre pois a estrutura da rede baseada em conexes ponto a ponto, permitindo que ocorram mltiplos saltos durante a comunicao (SONG; ZHANG; FANG, 2010). Os mesh clients contm o aparato necessrio para se comportarem tanto como um client quanto um router. Entretanto, deve ser visto que as funes de ponte (bridge) e gateway no se encontram presentes (AKYILDIZ; WANG, 2005). Apesar dessa pequena desvantagem, os clients podem manter a conectividade com seus vizinhos (ad-hoc) e possuir um hardware mais simples. Consequentemente, o software para eles tendem ser mais simples. Como aspectos positivos da rede, a conectividade promove a auto-organizao, a autocongurao e a autorreparao entre mesh clients e routers. A auto-organizao e autocongurao

32 permitem que, conforme os nodes vo se conectando, formem-se aglomerados de dispositivos gerando uma rede automtica. A autoreparao ocorre quando, caso um client ou um router parar de funcionar, a rede no desaparece, continuando a existir atravs de um caminho alternativo para o roteamento de pacotes (AKYILDIZ; WANG, 2005). Outra vantagem das Redes Mesh a construo de uma infraestrutura de acesso fcil, permitindo que clientes que possuam uma placa de rede sem o conectem-se tanto a um client como a um router. Tambm possvel ter um ambiente hbrido, no qual uma Ethernet esteja ligada a um router que faa parte do ecossistema de nodes da rede. 2.2.1 Estrutura da rede

A organizao das Redes Mesh automtica, ou seja, cada novo membro que se junta ao ecossistema faz com que os outros membros existentes ou reconheam como vizinho (ou um client node distante presente no caminho de um pacote) (AKYILDIZ; WANG, 2005).

Figura 5: Viso da conectividade geral entre client nodes e Mesh Routers. Em verde, a comunicao entre mesh routers e, em amarelo, a ligao entre client nodes.

A organizao da estrutura de ligao vista na Figura 5 automtica, ou seja, os mesh routers tm alcance maior e estabelecem comunicao entre si. Dentro da infraestrutura, eles so distintos e geralmente no tem restries de energia e outras limitaes que os clients geralmente impem. Nesse formato, os mesh routers formam uma ligao entre si e priorizam a retransmisso dos pacotes entre seus links, porm os client nodes tambm podem retransmitir em um raio menor, mas essa retransmisso geralmente tende a ser comprometida e mais lenta do que a dos routers. No so uma constante dentro da rede, j que existem muitos computadores estacionrios que podem funcionar como mesh router.

33 A auto-organizao permite que a rede sempre exista e que haja conexo ativa entre os mesh clients. Caso haja a disponibilidade de uma ligao rede global, essa mesma ligao ser compartilhada entre todos os seus vizinhos prximos. Isso pode ser extendido tambm a todo um segmento da rede, possibilitando assim que os mesmos tenham acesso Internet. Outro detalhe deste aspecto da rede a capacidade de incorporar automaticamente novos mesh clients conforme surge a necessidade, assim tambm como mover os mesmos dentro da infraestrutura, sempre re-estabelecendo as ligaes entre os vizinhos e reposicionando o node que se moveu (AKYILDIZ; WANG, 2005). Caso um ponto da rede que indisponvel, isolando clients ou routers, a infraestrutura conseguir restabelecer um link com outra parte da malha, reabilitando a ligao primria e permitindo que o uxo de dados volte a uir dentro do ecossistema que foi desconectado temporariamente, essa capacidade chamada de autorreparao (AKYILDIZ; WANG, 2005). Caso haja falhas de conectividade, os mesh clients podem experienciar perda de acesso a servios ou baixa na qualidade da conexo, porm este aspecto permite que a rede sempre busque vias alternativas e mantenha de alguma forma a ligao ao ecossistema principal. 2.2.2 Mecanismos de Roteamento

A capacidade de auto-organizao e de autorreparao so as principais caractersticas do modelo mesh, permitindo que a rede seja exvel e quase prova de falhas, porm geram um problema no processo de deciso na retransmisso e roteamento de pacotes. Representando o quo estocstica a topologia da rede, com essa constante mudana topolgica (entrada e sada de client nodes e possveis falhas dos mesh routers), a estrutura da rede no comporta algoritmos que convergem a estados estticos e, depois desta convergncia, no so mais capazes de suportar grandes mudanas. Conforme descrito em Baumann et al. (2007) Zhi-yuan, Ru-chuan e Jun-lei (2009) Song, Zhang e Fang (2010), os algoritmos triviais no so capazes de se ajustarem a tempo de comportar as alteraes da rede. O algoritmo tradicional AODV (Ad Hoc On Demand Distance Vector) (GRANVILLE; CARISSIMI; ROCHOL, 2009) no capaz de prover um roteamento de qualidade para o modelo, por esse motivo, os autores do trabalho Baumann et al. (2007) demonstram uma verso do AODV-CGA (Ad Hoc On Demand Distance Vector Reactive By Hop Routing) como alternativa e comparam com outros protocolos propostos por eles, como o FBR (Field Beacon Routing). O FBR prope uma alternativa pr-ativa ao roteamento, fazendo com que os client nodes busquem o que est ao seu redor e consigam usar o ecossistema a seu favor no roteamento dos pacotes. Aps anlise dos grcos (Figuras 6(a), 6(b) e 6(c)) apresentados por Baumann et al. (2007), possvel notar que, quanto maior a mobilidade dos client nodes, maior a quebra na entrega de pacotes. Com isso, possvel notar que o throughput cai e a entrega de pacotes ca compro-

34

(a) Mdia de entrega de pacotes em um cenrio (b) Mdia de entrega de pacotes em um cenrio contendo pedestres conectados ao ecossistema. contendo carros conectados ao ecossistema.

(c) Mdia de entrega de pacotes em um cenrio contendo carros conectados ao ecossistema.

Figura 6: Grcos apresentando resultados de entrega de pacotes dentro de uma Rede Mesh (BAUMANN et al., 2007).

metida. O usurio nal do ecossistema deve notar uma queda signicativa do desempenho da rede. Com base na Figura 6(c), possvel ver que, em cenrios onde os client nodes presentes no ecossistema so estticos, o roteamento de pacotes tende a funcionar corretamente mesmo com os protocolos clssicos. Porm, nota-se que, em cenrios onde existem client nodes mveis e com comportamentos aleatrios, a entrega de pacotes tende a ser efetivamente menor. Para este trabalho, foi escolhido como protocolo de roteamento o HWMP (do ingls Hybrid Wireless Mesh Protocol) (AKYILDIZ; XUDONG, 2009). O HWMP foi construdo sobre o AODV e ajustado para suportar o roteamento em rvore. O protocolo trabalha tanto com o roteamento de pacotes, quanto com a seleo de caminhos dentro da rede. Sua proatividade destacada por descobrir e manter registros dos mesh clients que esto ao seu alcance, utilizando o gerenciamento de indivduos por ligao (do ingls Peer Link Management). Este protocolo caracterizado hbrido pelo fato de, caso o mesh client estiver conectado a uma rede esttica, ento, para os computadores desta, ele no precisar utilizar a seleo de caminhos na transmisso de pacotes. Porm, se estiver presente em uma rede cuja a infraestrutura funciona como rvores, ele utiliza a seleo de caminhos para direcionar o pacote ao destino. Este trabalho utilizou como base o HWMP e criou uma derivao utilizando RNA no processo de roteamento, no qual foi chamado de HWMP-ANN (Hybrid Wireless Mesh Protocol with

35 Articial Neural Networks). 2.3 Simulador NS-3

O NS-3 um simulador baseado em eventos discretos destinado para a comunidade de pesquisadores e educadores com o objetivo de prover um ambiente para o estudo de redes em escalas micro e macro como, por exemplo, redes locais e a Internet. O simulador tem a nalidade de gerar ambientes controlados, onde possvel realizar anlises minuciosas. Pelo fato do NS-3 ter seus mdulos agrupados em forma de bibliotecas, possvel que os mesmos sejam usados dentro de um programa C++ que dene e rode a simulao da conFigurao de rede montada. Apesar de ser escrito em C++, o NS-3 exporta suas funcionalidades para o ambiente python, permitindo que outros programas possam importar seus mdulos.

Figura 7: Organizao da estrutura do NS-3.

A organizao da biblioteca apresentada na Figura 7 mostra que o simulador est dividido em mdulos. O core contm todos os componentes que so comuns a todos os protocolos, hardware e modelos de ambiente. O simulador contm todo o modelo de execuo das simulaes, sendo usada como base genrica para outros mdulos (no somente aqueles que so baseados na internet). Os mdulos comuns do NS-3 so livres de arquitetura de hardware e de rede. Adicionalmente, os programas escritos para o simulador podem usar a vantagem de criar classes que envolvem as chamadas de baixo nvel da rede dentro do simulador, permitindo ampliar a capacidade do usurio de extrair informaes e acompanhar o estado da rede durante a execuo da simulao. Por ter uma arquitetura modular, o NS-3 se tornou robusto e extensvel. A partir de suas principais caractersticas, apresentadas abaixo, possvel testar novos modelos de redes, estudar melhorias nas redes atuais e fazer o ambiente simulado interagir com mquinas reais. Suporta uma gama enorme de tipos de simulaes, que podem ir de redes de celulares novas arquiteturas de rede.

36 escrito em C++ com uma interface para Python de maneira opcional; Prov integrao com softwares padronizados para entrada e sada de informao, habilitando outras ferramentas a serem utilizadas em conjunto com o simulador; A pesquisa, de maneira geral, validada de duas maneiras: atravs de simulaes e outras implementaes de maneira real. O NS-3 tem uma organizao que lembra as implementaes fsicas, permitindo assim testar de maneira mais el as simulaes; Contm cdigos que permitem integrao com os mdulos do kernel Linux permitindo assim que o simulador opere juntamente com dados reais. Como seu modelo relativamente perto da implementao real, ele suporta drivers de dispositivos assim como APIs IP e Sockets (no Linux); Facilidade de testar da simulao a ambientes reais de teste, assim como experimentos em tempo real; Contm uma rica documentao sobre o funcionamento de suas camadas e classes, informando o que cada parte do cdigo disponvel no simulador faz; Seu novo modelo de gerao de relatrios compatvel com ferramentas externas, como wireshark por exemplo.

37 3 MTODO DE PESQUISA

Este captulo descrever o processo de anlise dos dados obtidos durante as simulaes e como este foi estruturado. 3.1 Delineamento da pesquisa

O formato da pesquisa exploratrio, visando a busca e expanso do conhecimento dos intermdios da Rede Mesh (AKYILDIZ; XUDONG, 2009). Assim como tambm foi explorado o mundo da neurocincia em busca de ferramentas de apoio para otimizao do problema de manuteno da qualidade da rede. Atravs do estudo de trabalhos relacionados com a rea de Inteligncia Articial, foi notado que as Redes Neurais Articiais eram empregadas para seleo e classicao de conjuntos de dados. Este processo cognitivo pode ser usado dentro do mecanismo de roteamento para avaliar o estado de um cliente para a retransmisso de pacotes. Por esta pesquisa ser de natureza exploratria, este projeto vem aprimorar mecanismos no campo de redes de computadores aliando a rea de Redes Neurais Articiais ao processo de deciso. Com isto, a pesquisa exvel e tem relevncia ao objeto de pesquisa (GIL, 2004). Tendo a classicao da natureza da pesquisa como aplicada, houve o desenvolvimento da simulao e dos ajustes ao protocolo de roteamento para suportar a aplicao das Redes Neurais Articiais no processo de deciso (SEVERINO, 2011). Neste caso, o problema especco o mecanismo de roteamento dentro de uma Rede Mesh e quais abordagens devem ser feitas para ampliar a qualidade da conexo para com o usurio, levando em conta que a rede apresenta sempre cenrios de caos. Com base nesta premissa, os dados de roteamento de pacotes serviro de conjunto para anlise e validao dos estados da rede. As mtricas utilizadas sero apresentadas posteriormente. A pesquisa abordada de forma qualitativa, focando na observao das transmisses de pacotes, como tambm de forma analtica, compondo representaes grcas dos estados da rede nos cenrios simulados, projetando um meridional comparativo com o algoritmo padro de roteamento. A pesquisa sobre o problema foi realizada na forma exploratria, conforme supracitado. Foram estudados artigos e trabalhos que visam o aumento da qualidade de servio das Redes Mesh abordando o problema do roteamento dentro da rede. Alguns trabalhos tratam o problema do ponto de vista cognitivo, utilizando tcnicas da natureza, buscando a exibilidade necessria ao protocolo. O foco deste foi aplicar a cognio ao processo de deciso de rotear pacotes, de tal forma a outorgar o empirismo no protocolo. O empirismo aplicado ao protocolo possibilita exibilidade mediante cenrios em que o mesmo j possa ter convergido, ou seja, a rede estabilizou e no houve mais mudanas dos mesh clients. Caso haja mudanas aps a convergncia, os algoritmos tradicionais no conseguiro funcionar de forma eciente. nesse ponto em que o protocolo cognitivo ir se destacar,

38 conseguindo prever mudanas e evitando a estagnao. O ncleo no ponto de deciso da transmisso do pacote foi alterado para utilizar a RNA na avaliao dos estados dos mesh clients. Esta alterao afetou o processo da seguinte forma: antes da transmisso do pacote, a RNA avalia os estados do mesh client e determina se estar em condies de receber dados. Caso o mesmo no esteja, o protocolo seleciona o prximo disponvel, iniciando novamente a busca por um caminho at o endereo de destino. 3.2 Denio do conjunto da unidade anlise e da populao alvo

O conjunto de anlise formado por coleta de dados estatsticos de redes simuladas. Este conjunto composto por dados extrados dos mesh clients no momento de rotear pacotes na rede. Os dados sero produzidos para posterior anlise e busca da validao do estado do roteamento para um mesh clients especco. Estes dados representaro as estatsticas do roteamento e os estados da RNA utilizados para validar os pacotes. A produo dos dados para anlise ocorre dentro do simulador, conforme os cenrios so rodados no ambiente. Os conjuntos de dados foram produzidos com estatsticas extradas do simulador e compiladas em um banco de dados, permitindo a anlise dos dados e avaliao do protocolo. 3.3 Tcnica de coleta de dados Este trabalho utiliza as seguintes tcnicas de coleta de dados: Pesquisa bibliogrca: principal fonte de contedo a ser tomada como base da pesquisa, atravs de livros e artigos cientcos relacionados com a rea. O contedo foi crucial para ampliao da base de conhecimento e para o aumento da segurana do contedo cientco necessrio usado no desenvolvimento da pesquisa. Com isso, foi possvel escolher o ambiente de simulao que suportaria a utilizao de ambas reas em unssono, como tambm extrair as mtricas do roteamento da rede e anlise dos dados coletados (MARCONI; EVA MARIA, 2011); Pesquisa Documental: foram realizadas pesquisas com os problemas relacionados ao roteamento. Tambm foram consultados textos sobre anlise e uxo de dados em redes e, em momentos, foi necessrio buscar material sobre a utilizao de Redes Neurais na resoluo de problemas relativos a decises e processos cognitivos em mecanismos de deciso; Observao Sistemtica: A observao sistemtica (registro das ocorrncias em arquivos de texto) gerou dados estatsticos sobre o funcionamento do roteamento entre client nodes. Esses registros foram gerados conforme o andamento das transmisses de dados e marcados para identicao posterior do uxo de cada client node passando por aquele

39 ponto especco. Com estes registros foi possvel gerar um conjunto de grcos que representam o estado da rede (GIL, 2004); 3.4 Tcnica de anlise de dados

Foi realizado um exame exaustivo dos dados gerados e tambm sua tabulao. Os registros compem tabelas de uxos de dados e tabelas comparativas de estados da rede aps a simulao. Essa tabela contm os dados do roteamento de pacotes dentro da rede, tais informaes representam o estado da rede decorrente da simulao e como ocorreu o roteamento de pacotes. Cada tabela de dados composta por: Taxa de Transmisso de pacotes (txPackets); Taxa de Transmisso de pacotes entregues (rxPackets); Pacotes Perdidos (lostPackets); Pacotes Abandonados (droppedPackets); Mdia de Entrega de Pacotes (PDF - Average Packet Delivery Fraction); Atraso Mdio na entrega de pacotes (delay); Mdia na transmisso de bits (rxBitrate); Taxa de transmisso de bits (txBitrate). A tabela de dados da RNA representa o uxo de sada da rede e a taxa de convergncia em relao aos dados de entrada (mtricas de estado dos nodes que esto sendo encaminhados os pacotes). A tabela composta por: Entrada 1 (PDF); Entrada 2 (Delay); Sada. Os dados de sada da RNA representam a convergncia do resultado da rede na previso dos estados dos mesh clients. Esta convergncia dene se o protocolo deve ou no enviar o pacote. A partir de seu treinamento supervisionado e conforme os dados passam pela RNA, os dados so agrupados de forma a alinhar os resultados para determinao dos estados.

40

41 4 SIMULAES

Neste captulo sero apresentados os cenrios em que as simulaes ocorreram e a estrutura montada da topologia da rede, suas conguraes e parmetros. 4.1 Cenrios de Execuo

O cenrio base foi criado para ser congurvel, permitindo a alterao de seus parmetros e consequentemente, a partir da mesma construo, gerar resultados alternativos para uma base comparativa. Seus parmetros base so: x-size: Tamanho em X do grid, padro 6; y-size: Tamanho em Y do grid, padro 6; step: Espao da borda no grid, padro 100m; step: Tempo de aleatoriedade para incio da transmisso de pacotes (0.1 segundo); time: Tempo da simulao, padro 100 segundos; packet-interval: Intervalo de transmisso dos pacotes, padro 0.001 segundo; packet-size: Tamanho do pacote, padro 1024bytes; interfaces: Nmero de interfaces de transmisso (antenas) que o um client node possuir, padro 1; channels: Nmero de canais de transmisso de um client node, padro 1; pcap: Habilita PCAP para gerao de arquivos de trace, padro sim; stack: Modelo da pilha de rede utilizada, padro ns3::Dot11sStack; root: Endereo MAC do node base do grid. Os cenrios da rede foram criados com a nalidade de propiciar meios de gerar resultados aleatrios e de testar diversas conguraes de rede. Com esses testes, possvel estressar os mecanismos da rede, assim como a capacidade de adaptao da rede neural. O cdigo do cenrio base apresentado no anexo A.1. As simulaes foram rodadas com valores diferentes para alguns parmetros, tais como tamanho do grid, quantidade de nodes presentes na rede, tempo da simulao e aleatoriedade da transmisso de pacotes. Os cenrios executados com a nalidade de extrao de dados so apresentados na Tabela 1. Nestes cenrios, a variao entre eles foi o tamanho do grid (quantidade total de mesh clients),

42 Cenrio Cenrio 1 Cenrio 2 Cenrio 3 Cenrio 4 Cenrio 6 Cenrio 7 Cenrio 8 Tamanho X 5 5 5 50 50 50 50 Tamanho Y 5 5 5 50 50 50 50 Tempo Total (s) 240 240 240 1240 1240 1240 1240 Modelos de Mobilidade ConstantPositionMobilityModel RandomWalk2dMobilityModel Random2dMobilityModel ConstantPositionMobilityModel RandomWalk2dMobilityModel RandomCar2dMobilityModel Random2dMobilityModel

Tabela 1: Cenrios gerados para simular a rede em diversas condies.

vistos na tabela como Tamanho em X e Y. Tambm foi variado o tempo de simulao, com a nalidade de avaliar se, com um tempo maior, o algoritmo de roteamento continuaria convergindo corretamente. Outra varivel de simulao do cenrio utilizada foi o modelo de mobilidade dos nodes inuenciando diretamente a rede. Esses modelos foram os fatores principais de estresse da rede, forando sempre os limites da simulao e gerando resultados expressivos durante os testes do algoritmo. A topologia apresentada (Figura 8) representa de forma simplicada a organizao dos nodes durante o perodo da simulao. So gerados com espaos iguais entre si e posteriormente a rede rearranjada de forma aleatria com a nalidade de gerar estruturas com maior nvel de complexidade e estocasticidade, estressando ao mximo o algoritmo de roteamento. Alm disto, o cenrio permite o ajuste no padro de movimentao dos mesh clients, sendo possvel indicar a organizao e tambm sua movimentao de forma aleatria. O protocolo de roteamento escolhido foi o HWMP. O HWMP possui propriedades reativas e pr-ativas, consoantes com os objetivos da RNA dentro do roteamento. O algoritmo identica o melhor caminho a ser percorrido pelo pacote, visto na Figura 8, sempre buscando validar qual caminho o mesmo est decorrendo. Assim, o caminho ser sempre o timo se baseando nas mtricas dos padres do HWMP, porm, como visto anteriormente, este caminho pode sofrer utuaes caso os mesh clients carem indisponveis ou sobrecarregados. Como o protocolo funciona com manuteno por link (formato P2P1 ), periodicamente ocorre uma comunicao entre os mesh clients vizinhos para atualizao da tabela de roteamento. Quando ocorre esta comunicao, os mesh clients transmitem pacotes de controle, atualizando o estado para seus vizinhos. O pacote administrativo composto por ags (controles de transmisso base). A estrutura do pacote administrativo foi alterada para suportar o envio e o recebimento dos dados que so usados para compor as mtricas avaliadas pela RNA. Os parmetros so total de pacotes transmitidos, nmero de pacotes que foram transmitidos com sucesso e a taxa de atraso mdio no encaminhamento dos pacotes.
1

Descrio em http://en.wikipedia.org/wiki/Peer-to-peer , acessado em 10 abril de 2012

43

Figura 8: Representao da topologia da Rede Mesh mostrando o caminho timo dos pacotes entre dois mesh clients.

Com a nalidade de transmitir os dados dos seus estados, o protocolo utiliza as mensagens de controle. Para isto foi alterado o pacote de gerenciamento e adicionado ao cabealho 25 bits que guardam o tx, o rx e o delay. Os parmetros so mantidos atualizados, possibilitando com que a RNA avalie o estado do mesh client. A Figura 9 mostra a estrutura do frame e a localizao das informaes de estado do node. Inicialmente, a avaliao no ativa. A rede deve convergir de forma natural para posteriormente ocorrer o preenchimento das tabelas de roteamento. Aps essas etapas, o processo de avaliao comea. Uma vez que os pacotes de controle atualizam diversas informaes relativas ao estados dos nodes, foi decidido utiliz-los para transportar os dados de controle da RNA dos nodes. Em ordem de habilitar a RNA e conseguir avaliar o mesh client de destino, durante a troca de pacotes de administrao, o protocolo foi ajustado para informar os parmetros adicionais ao node do qual est recebendo as informaes de estado, sendo eles Taxa de Transmisso, Taxa de Entrega de Pacotes com Sucesso e Atraso Mdio. A Figura 10 representa como o HWMP-ANN funcionaria em seu estado perfeito, fazendo com que os nodes problemticos sejam evitados.

44

Figura 9: Estrutura do Frame de transmisso do protocolo HWMP-ANN.

Sendo assim, o caminho principal ca recortado e o pacote viaja paralelamente, sempre evitando reas e nodes congestionados. A Figura 10 representa um modelo topolgico da Rede Mesh. possvel notar que os nodes que cam constantemente conectados so indicados por linhas pontilhadas com setas em ambos os lados simbolizando o link entre seus vizinhos. Com o link estabelecido, conforme a necessidade, o node retransmite dados e atualiza seu status. Pode-se separar este processo de roteamento de um pacote nas seguintes etapas: 1) requisitar um caminho, a partir disto a rede converge a retornar um caminho at o node destino; 2) avaliar este caminho, aps isto o pacote transmitido para os endereos contidos na sequncia de pulos. 4.2 RNA Aplicada ao Roteamento

Durante a fase de pesquisa, o modelo de rede neural escolhido foi o Rede Recorrente Dinamicamente Dirigida (RRDD). Esse modelo tem propriedades de convergncia automtica dentro do protocolo da rede, ou seja, no necessita de interferncia do usurio em relao a ajustes dos seus pesos e na criao de cenrios de treinamento. Assim, a rede aprende sozinha, convergindo de forma natural s mtricas apresentadas durante o intervalo que o mesh client estiver ativo. Foi escolhido este modelo de rede neural por sua capacidade de aprender sozinha com um supervisor automtico, por sua memria matricial com atraso temporal e por sua capacidade de adaptao contnua. O aprendizado supervisionado automatizado ocorre durante a execuo da RRDD, ajustando os pesos internos da rede com base em sua sada. O supervisor opera na convergncia do resultado com a nalidade de manter a rede sempre dentro dos parmetros especicados durante seu projeto. Memria matricial com atraso temporal tem a capacidade de avaliar em um futuro (no somente breve mas tambm longnquo) os estados dos nodes que o pacote deve viajar. A capacidade da adaptao contnua deixa com que a deciso do pacote de ir em frente ao caminho previamente selecionado continue exvel, porm, mesmo depois da convergncia da RNA ou algum evento de reorganizao da rede acabe por ocorrer, o processo de deciso continuar ocorrendo. A Tabela 2 apresenta os modelos clssicos das RNAs e seus objetivos. Nessa tabela as

45

Figura 10: Representao Parcial da topologia da rede.

colunas representadas como Req. 1, Req. 2 e Req. 3 so os requisitos relacionados com Aprendizagem No Supervisionada, Capacidade de Representao Temporal e Suporte a Retro Propagao. Os estados dos client nodes podem ser mapeados como sries (Equaes 4.1 4.2), onde possvel mapear a variao das mesmas para a RNA. Considerando esta variao, a rede consegue convergir e tratar os estados dos mesh clients em um futuro e decidir se o pacote deve ou no ser transmitido. Caso seja decidido por no transmitir o pacote, o protocolo foi ajustado para envi-lo para o prximo mesh client que esteja disponvel.
n

Spdf =
i=1 n

(Tn /Rn )

(4.1)

Sdelay =
i=1

(Tn T1+n )

(4.2)

46 Modelo de RNA Req. 1 Req. 2 Feedforward Perceptron Hopeld/Tank Hopeld com Retropropagao X RRDD X X Req. 3 X X

Tabela 2: Modelos de RNA pesquisados e seus requisitos para uso no roteamento de pacotes na rede.

Durante a construo dos cenrios, foram aplicados ajustes ao algoritmo de roteamento dentro da camada de retransmisso e construo de caminhos pra os pacotes. Foi utilizada a RRDD para a avaliao dos estados dos mesh clients. Porm no foi possvel simular os nodes pois a simulao consumiu muitos recursos de hardware. Assim como qualquer outra RNA, a RRDD demanda enorme recursos computacionais. Esse problema evidenciado no trabalho de Venkataram, Ghosal e Kumar (2002) no qual demonstra os resultados apresentando o que a sobrecarga da RNA faz com a simulao e prope uma implementao a nvel de hardware. A simulao de todo o protocolo HWMP-ANN (Hybrid Wireless Mesh Protocol with Articial Networks) teve que ser feita utilizando uma verso mais simplista de RNA e otimizada para funcionar na simulao.

Figura 11: Estrutura da RNA utilizada no processo de deciso do roteamento de pacotes.

A utilizao da RRDD dentro de cada node simulado demandou um grande consumo de recursos da mquina, fazendo com que a simulao utilizasse mais de 4 Gigabytes de memria RAM e ocupando os 8 ncleos do processador. Para simular um ambiente com mais de 100 nodes seria necessrio rodar em uma grade de processamento ou mesmo utilizar algum cloud computing. Com esta barreira impossibilitando a simulao de ser executada, foi decidido que a RNA a ser utilizada seria uma rede de Hopeld com retro-propagao (Figura 11). A rede foi construda para funcionar de forma assncrona ao ambiente, tendo seus cenrios de treinamento criados a parte da simulao e tendo sua instncia nica para todos os mesh clients, diminuindo a necessidade de hardware. O conjunto de treinamento foi feito precedente simulao e a convergncia da RNA foi salva para uso posterior. A base de dados dos cenrios de treinamento foi criada a partir da

47 PDF 0.942602 0.950339 0.577982 0.51567 0.884 0.818182 0.533813 0.919325 0.578144 0.489744 0.501792 0.938449 0.362369 0.876988 0.388235 0.954128 0.366667 Atraso 0.0157996 0.043428 0.0777419 0.0668167 0.0158224 0.0185725 0.281112 0.0104014 0.152738 0.0588817 0.0469955 0.264351 1.00000 0.0533023 0.00797154 0.0112579 0.153154 Sada esperada 1 1 0 0 1 1 0 1 0 0 0 1 0 1 0 1 0

Tabela 3: Amostra da Base de dados construda para treinar a RNA sobre os estados dos mesh clients.

extrao das mtricas de roteamento do ambiente simulado e compilado nos treinamentos supervisionados. As mtricas foram extradas com a nalidade de avaliar os mesh clients virtuais. Pelo fato de serem simuladas, as mtricas reais poderiam representar dados imprecisos para a base de dados avaliativa. Ento as mtricas dos nodes virtuais foram extradas com a nalidade de possibilitar com que os testes avaliativos executados pela RNA dos mesh clients fossem coerentes com os estados em que se apresentariam. Tais conjuntos foram normalizados entre o intervalo 0 e 1, fazendo com que a convergncia da RNA demonstrasse o estado futuro do mesh client e que sua sada indicasse se o node estar sobrecarregado. A base de dados compilada demonstrada (parcialmente) na Tabela 3. Com esses dados, a sada da RNA sempre estar no intervalo de 0 a 1 e os nodes com sadas maiores que 0.5 indicam que esto estveis para encaminhamento dos pacotes. Tais atributos variam durante o tempo de execuo, sempre tendendo para menos, conforme a quantidade de pacotes para ser encaminhados aumenta. Por m, a RNA cou com a estrutura de duas entradas, trs neurnios na camada oculta e um na sada. O layout cou com o padro de 3 camadas, como visto na Figura 11. A utilizao simples e direta da estrutura foi efetiva e de maneira geral conseguiu representar os estados dos mesh clients durante toda a execuo das simulaes e, com o uso da retropropagao, os pesos acabaram se ajustando para suportar as alteraes dos estados dos nodes fazendo com que a RNA conseguisse convergir e identicar um mesh client com mtricas ruins.

48

49 5 AVALIAO DOS RESULTADOS

Neste captulo, sero descritos os resultados das simulaes da Rede Mesh com a utilizao da RNA. Conforme apresentado no captulo 4, as simulaes foram desenvolvidas para serem totalmente aleatrias, produzindo cenrios caticos. Os parmetros gerais da rede e os resultados de um total de 250 simulaes foram armazenados em um banco de dados. O objetivo desta avaliao vericar se o uso de caminhos alternativos determinados de forma emprica pela RNA eciente e aplicvel ao problema. As pesquisas de Venkataram, Ghosal e Kumar (2002) e Zhi-yuan, Ru-chuan e Jun-lei (2009) buscam evitar a sobrecarga do caminho principal e determinar caminhos alternativos. J o objetivo deste trabalho vem a habilitar a resoluo de caminhos alternativos de forma cognitiva. Cabe RNA a deciso de qual o caminho o pacote deve seguir. 5.1 Mtricas da simulao

Os parmetros extrados possibilitaram a anlise minunciosa do funcionamento da rede, assim como a efetividade do protocolo de roteamento modicado. As mtricas para avaliao foram selecionadas a partir de trabalhos que sero apresentados no captulo 6. O conjunto de mtricas constitudo por: Throughput; A mdia fracionria de entrega de pacotes, do ingls Average Packet Delivery Fraction (PDF), vista na equao 5.1, aonde Rx signica a quantidade de pacotes transmitidos com sucesso e Tx signica a quantidade total de pacotes que foram enviados; Taxa de Transmisso de Pacotes; Mdia de delay entre o pacote sendo enviado e seu tempo de chegada ao destino; Pacotes que chegaram ao destino; As avalies foram construdas utilizando como base os autores Venkataram, Ghosal e Kumar (2002) Zhi-yuan, Ru-chuan e Jun-lei (2009) Song, Zhang e Fang (2010) Baumann et al. (2007) e Paul et al. (2010). As informaes sobre a transmisso foram extradas utilizando o mecanismo de rastreamento fornecido pelo NS-3 e por modicaes internas para o simulador suportar a sada da RNA. P DF = (Rx/T x) (5.1)

A simulao gerou arquivos contndo informaes relevantes sobre os estados que um mesh client assumiu durante o perodo da execuo da simulao. A partir de tais informaes, foram

50 produzidos grcos traando um comparativo entre as mtricas da simulao utilizando RNAs e as que no utilizam. As mtricas bsicas levantadas at o presente momento foram apresentadas no incio deste captulo. 5.2 Resultados obtidos

Com a nalidade de criar uma base comparativa, a rede foi simulada cerca de 250 vezes utilizando o padro HWMP. Tais simulaes geraram o conjunto base de mtricas de roteamento. Essas mtricas foram usadas para delimitar as anlises dos resultados posteriores e criar um parmetro comparativo do protocolo alterado com as execues sem a utilizao das RNAs. Os grcos apresentados nas Figuras 12, 14(a), 14(b) e 15 demonstram a qualidade da rede e seus padres de entrega de pacotes. Estes grcos foram gerados com uma amostra de 25 uxos da rede, contendo entre os mais e menos efetivos casos no processo de roteamento.

Figura 12: Mdia fracionria de entrega de pacotes.

O grco da Figura 12 representa a frao de pacotes que chegaram com sucesso ao seu destino, isto demonstra de maneira efetiva como o protocolo de roteamento est funcionando e se os caminhos selecionados so estveis e conveis. Porm, como toda a Rede Mesh sujeita a alteraes, possvel notar que, em alguns casos, esta mdia ca abaixo da linha dos sessenta por cento de entrega. Tal limiar foi traado com a nalidade de identicar mesh clients que tem residem em ambiente mais estocsticos. Foi traado um comparativo de alguns algoritmos de roteamento propostos nos trabalhos relacionados. Esse foi feito com o propsito de demonstrar o resultado geral da efetividade do roteamento na rede. Os dados de roteamento dos trabalhos foram extrados e compilados em 3 cenrios. Estes cenrios foram baseados no trabalho de Baumann et al. (2007) e o HWMP-AN foi simulado com parmetros de mobilidade para ser includo no comparativo. O grco na Figura 13 apresenta alguns algoritmos e projeta um comparativo do HWMP-

51

Figura 13: Comparativo entre alguns algoritmos de roteamento e o HWMP-AN.

AN demonstrando sua efetividade em 3 cenrios distintos. possvel notar que conforme a mobilidade aumenta (representado pelos pedestres e carros no grco) a tendncia da efetividade dos protocolos abaixa. possvel notar que apesar da mobilidade aumentar alguns deles mantm sua efetividade porm levemente diminuta. O HWMP-AN apresentou vantagens em cenrios caticos. Nos cenrios apresentados, onde foi buscada a exibilidade, e, apesar do algoritmo no ser totalmente otimizado, o HWMP-AN desempenhou formidavelmente seu papel, mantendo a conectividade da rede.

(a) Taxa de Transmisso de Pacotes.

(b) Total de pacotes entregues com sucesso.

Figura 14: Grcos mostrando o comparativo de 25 simulaes proeminentes.

Nota-se na (Figura 14(a)) que a taxa de transmisso de pacotes tende a variar tambm conforme o mesh client selecionado para rotear pacotes. Os nodes mais exteriores tendem a no serem selecionados para a retransmisso por ter mtricas ruins. Porm, traando um paralelo comparativo entre a Figura 12, possvel notar que mesmo estes nodes podem ter taxas de

52 entrega aceitveis. Os mesh clients com mtricas ruins podem ter pontos positivos no processo de roteamento, funcionando como pontos temporrios de apoio em relao aos mesh clients estticos. No grco da Figura 14(b), comparando com o da Figura 12, assim como o da Figura 15, possvel notar que mesmo aqueles mesh clients no so selecionados possuem grandes taxas de entrega.

Figura 15: Total de Pacotes Perdido durante a simulao.

Porm, a tendncia dos pacotes sempre trafegarem por caminhos estveis. Em face a congestionamentos ou mesmo uma mudana brusca na topologia, os caminhos alternativos se tornam viveis curto prazo, com a nalidade de dispersar o uxo de informao e manter a conectividade da rede, assim o uxo sustentado mesmo em cenrios de caos. Foi selecionada uma amostra de 25 uxos de dados do conjunto de avaliao e apresentado no grco da Figura 16. O grco apresenta a mdia de entrega de pacotes comparando uma execuo da verso do protocolo sem a RNA e outras com a utilizao da RNA. visto que, em comparao ao roteamento trivial, a RNA consegue aumentar as taxas de entrega e diminuir os atrasos em alguns nodes. Conforme os usurios presentes dentro da rede requisitam mais dados, nota-se que os mesh clients estticos tendem a se sobrecarregar, aumentando signicativamente o atraso na entrega de pacotes. Isto tambm inuenciado diretamente pela distncia do caminho selecionado para os pacotes. Porm, utilizando a disperso dos uxos de dados conforme a RNA avalia os saltos futuros, o atraso tende a diminuir consideravelmente. Foi apresentado nos grcos das guras 17, 18 e 19 que o atraso mdio geral utilizando RNA tende a ser menor, j que a mesma consegue de maneira efetiva prever os estados dos nodes e conseguir evitar a sobrecarga eminente. A disperso mdia dos atrasos das entregas de pacotes tende a car baixa (Figura 19). A disperso do uxo tem impactos positivos em toda a infraestrutura, alm de evitar que caminhos estveis se congestionem. A preempo dos estados evita que pacotes avancem por lugares onde iro se tornar instveis ou gerar atrasos em sua entrega.

53

Figura 16: Comparativo entre Total de pacotes entregues sem e com a utilizao das RNAs.

Figura 17: Atraso mdio na entrega de pacotes.

Figura 18: Comparativo de 12 simulaes mostrando o atraso mdio utilizando a avaliao pela RNA.

Durante as simulaes, foi possvel notar que houve um aumento nas taxas de entrega de pacotes utilizando as RNAs, Figura 20(a). Em muitos casos a rede consegue garantir que o

54

Figura 19: Disperso da mdia de atrasos de todas as simulaes utilizando a RNA.

pacote trafegue por vias alternativas com estabilidade suciente para chegar ao seu destino.

(a) Mdia fracionria de entrega de pacotes utilizando RNA.

(b) Comparativo de pacotes perdidos.

Figura 20: Grcos representando o estado (mtricas PDF e Pacotes Perdidos) da rede comprando 25 uxos de informao, com RNAs e Sem RNAs.

No entanto, esta rede somente avalia um salto a frente, deixando abertura para que o pacote entre em um caminho onde no conseguir atingir seu destino. Conforme apresentado no grco da Figura 20(b), a perda de pacotes apresenta uma pequena elevao em alguns uxos. Porm, essa porcentagem baixa quando a rede seleciona um caminho alternativo perto do timo. O throughput da rede representa quantos pacotes foram entregues passando pelo caminho principal, isto demonstra o uso eciente da banda de transmisso. O throughput terico condiz com a entrega mdia de pacotes com sucesso sobre um canal de transmisso. Porm, no trabalho desenvolvido, esta mtrica apresenta distores. Estas distores so citadas por Venkataram, Ghosal e Kumar (2002), uma vez que a rede neural tende a forar os limites das simulaes. Foi montada uma amostra de doze itens a partir das 250 simulaes. Este comparativo faz a indicao de que o throughput da rede se mantm estvel com a utilizao das RNA. Nesta anlise foi identicado que o throughput da rede nunca conseguir exibir a total efetividade do

55

(a) Mdia fracionria de entrega de pacotes utilizando RNA comparando as simulaes.

(b) Delay mdio na entrega de pacotes das simulaes.

(c) Comparativo do throughput da rede.

Figura 21: Mtricas gerais comprando 12 rodadas de simulaes.

protocolo modicado, pois onera, a nvel de software, o custo da execuo das RNAs, fazendo com que a simulao roteie pacotes de maneira menos efetiva. Fazendo o comparativo entre os grcos nas guras 21(c), 21(a) e 21(b), os delays so baixos e o PDF alto. Isto demonstra que a rede est funcionando, porm o clculo do throughput considera o tempo e o caminho que o pacote levou. Nisto, o throughput do protocolo modicado no representa efetivamente a ecincia da rede, j que os pacotes no necessariamente fazem o mesmo caminho at seu destino. J na disperso do PDF (Figura 22) possvel notar que, durante todas as simulaes, mesmo com a aleatoriedade dos mesh clients, as taxas de entrega de pacotes se mantm estveis e perto dos 80%. Durante o perodo de simulao, algumas sadas se mantiveram perto do 0%. Estas sadas foram consideradas como pontos de anomalias, uma vez que estavam relativamente afastados de outros mesh clients, tendo perda considervel de pacotes, nveis de PDF muito baixo e com sinal de conexo muito fraco, ou seja, este mesh client estava presente em uma parte do ecossistema distante dos outros.

56

Figura 22: Disperso da mdia fracionria em todas as simulaes.

Para representao geral dos resultados foram geradas dez mdias ponderadas com as trs mtricas mais proeminentes: o atraso mdia na entrega de pacotes (Figura 23(a)), a mdia de pacotes perdidos (Figura 23(b)) e o PDF(Figura 23(c)). Foi possvel notar que as simulaes no atingiram todo seu potencial devido a sobrecarga da prpria simulao. Tambm podemos vericar na Figura 23(c) que o PDF utilizando as redes neurais cou com uma mdia aceitvel. Podemos identicar que o delay mdio de todas as simulaes cou abaixo do 0.035 milissegundos, nunca ultrapassando este limite. Isto demonstra que a rede sempre converge e que as entregas de pacotes so sempre bem sucedidas. A mdia de perda de pacotes cou extremamente baixa (Figura 23(b)), considerando que durante as simulaes trafegaram mais de dois mil e quinhentos pacotes. Em face aos problemas j elencados da sobrecarga da simulao de vrios nodes, todo o hardware de rede e tambm os meios de transmisso, os resultados transparecem, em muitos dos casos que a RNA representou um fator determinante no contorno do caos imposto rede.

57

(a) Delay Mdio de todas as simulaes.

(b) Mdia de pacotes perdidos em todas as simulaes.

(c) PDF Mdiano de todas as simulaes utilizando RNA.

Figura 23: Grcos representando o desempenho geral da simulao da rede.

58

59 6 TRABALHOS RELACIONADOS

Neste captulo sero descritos alguns trabalhos que possuem caractersticas comuns ou semelhantes a este trabalho. 6.1 A Multipah Routing Algorithm Based on Trafc Prediction in Wireless Mesh Networks

A predio de trfego a base do trabalho de Zhi-yuan, Ru-chuan e Jun-lei (2009). Os autores colocam como destaque a predio de trfego na manuteno da qualidade do servio (QoS, quality of service). A proposta do trabalho inclui a construo de sries temporais, mtodos de regresso e redes neurais, considerando-os parte importante na resoluo da tarefa de predizer o trfego. As Redes Mesh tendem a ser caticas e com modelos matemticos diminutos. Por causa disso, os mtodos de predio tradicionais no so efetivos, de maneira que mtodos no lineares so baseados na capacidade da rede neural de conseguir organizar os dados do trfego da rede. Tal modelagem ocorre com a anlise minuniosa da rede observando as caractersticas do trfego de pacotes. O MRATP foi construdo com a nalidade de trabalhar na predio de trfego para aumentar a qualidade do servio no processo de entrega de pacotes. Essa abordagem uma nova tentativa de prover exibilidade no roteamento de pacotes para redes mesh, aumentando a qualidade. Esse mtodo usa primariamente caminhos alternativos ao principal para transmitir dados mais leves que no necessitam de desempenho na entrega, deixando assim os caminhos principais para os uxos mais custosos como stream de vdeo ou protocolos TCP, que necessitam de conabilidade na transmisso de pacotes. Os parmetros de avaliao dos caminhos alternativos so a distncia XOR entre nodes, espao de banda para transmisso e energia residual dos nodes. Conforme as transmisses ocorrem, a rede, avalia em tempo real constantemente se ocorrer congestionamento. Caso necessrio utilizar os caminhos alternativos para rotear os pacotes. 6.2 Neural network based optimal routing algorithm for communication networks

O trabalho Venkataram, Ghosal e Kumar (2002) seleciona como fator impactante o roteamento de pacotes dentro da infraestrutura de rede, tendo como foco principal a descoberta de caminhos ecientes para transmisso de dados. Esse caminho timo deve ser descoberto com o desperdcio mnimo de tempo, satisfazendo as demandas do usurio. Em termos de denio de rede para o melhor desempenho, ou seja, ter o throughput alto ou atraso mdio de entrega de pacotes baixo preciso que tal processamento seja feito em tempo real. Isto faz com que a RNA seja uma perfeita candidata para tal objetivo. A utilizao da RNA indicada por ter uma grande capacidade de processamento paralelo

60 e assim aumentar o ganho de tempo no perodo de processamento de pacotes. Os algoritmos de roteamento usados atualmente utilizam de alguma foram os clculos de menor caminho. Porm, o trabalho busca fazer estes clculos em tempo real, eliminando a sobrecarga necessria dentro da camada de rede. Assim, os autores demonstram a utilizao de RNAs na busca de caminhos dentro da rede, achando a melhor via entre dois mesh clients. O modelo de RNA selecionado foi o de rede recorrente de hopeld. Foi tambm descrito como implement-lo a nvel de hardware. O trabalho apresenta resultados promissores na resoluo da busca do melhor caminho, porm utiliza uma topologia esttica da rede, no tendo exibilidade suciente para uma rede estocstica. 6.3 Stochastic Trafc Engineering in Multihop Cognitive Wireless Mesh Networks

O trabalho de Song, Zhang e Fang (2010) focado em uma rea pouco explorada em Redes Mesh cognitivas, nomeada de engenharia estocstica de trfego, do ingls stochastic trafc engineering (STE). O objeto de pesquisa foi o funcionamento do trfego dentro da rede, os comportamentos dos usurios e como estes afetam os seus vizinhos. A partir da anlise dos usurios presentes na rede, o trabalho apresenta mecanismos possveis para aumentar a qualidade. O trabalho faz a anlise de frequncias utilizadas para transmisso dos dados buscando aumentar consideravelmente a utilizao eciente das mesmas. No desenvolvimento tecnolgico prope tcnicas avanadas para trabalhar na camada fsica da rede, removendo os limites de frequncia das transmisses e permitindo com que os nodes transmitam nas bandas restritas (bandas especiais, de uso restrito ao governo e licenciadas). Sem esta restrio, o trabalho apresenta a possibilidade de aumentar a ecincia da rede ao conseguir transmitir mais pacotes em um ambiente com ndices menores de coliso. Como resultado nal, alm da proposta de alterao de frequncias de transmisso, o trabalho indica que os mecanismos de roteamento se tornem proativos e consigam evitar reas que se tornem ruins para trfego da rede, enviando os pacotes por caminhos que sejam estveis e que sofram menos interferncias dos usurios, como movimentao, nodes que tendem a ser desligados. Por m acabam por unir o modelo matemtico da engenharia de trfego ao algoritmo de roteamento, evitando de forma efetiva as reas de transmisso problemticas. 6.4 High Performance AODV Routing Protocol for Hybrid Wireless Mesh Networks

O trabalho apresenta uma nova abordagem ao roteamento das redes mesh hbridas utilizando o AODV. Os autores demonstraram uma nova mtrica no protocolo na tentativa de solucionar o problema de rotear pacotes com mesh clients altamente mveis. Foram exploradas as capacidades do AODV e criada uma extenso chamada de AODV-HP (PIRZADA; PORTMANN, 2007). A mtrica desenvolvida para o AODV-HP foi a de sempre priorizar os mesh routers durante o

61 processo de transmisso dos pacotes. Com isso, o protocolo conseguiu aperfeioar o roteamento em cenrios de grande mobilidade. 6.5 A high-throughput path metric for multi-hop wireless routing

A soluo proposta em De Couto et al. (2005) trabalhar na mtrica ETX, ou seja, contagem de transmisses esperada (do ingls expected transmission count). O ETX encontra caminhos com o mnimo de saltos possveis (incluindo as retransmisses). Essa mtrica calcula quantos saltos o pacote dar para chegar ao destino e usa as taxas de perdas e o uso da banda de transmisso nos nodes, assim como as taxas de envio e recebimento dos nodes. Como principal objetivo o ETX acha caminhos com grandes taxas de throughput e minimiza o valor de perda de pacotes. O ETX trabalha bem com caminhos que tenham dois ou mais saltos. Entretanto, seu desempenho tende a variar quando enfrenta cenrios de caos, onde as aes dos usurios afetam diretamente os links de transmisses. O trabalho apresenta modicaes dentro do DSDV e DSR em ordem a suportar o ETX ajustado e demonstra que h um aumento signicativo na transmisso de pacotes. Por m, explica o ganho de desempenho que a rede tem ao utilizar as mtricas modicadas. 6.6 Quality-Aware Routing Metric for Time-Varying Wireless Mesh Networks

No trabalho Koksal e Balakrishnan (2006) foi desenvolvido tambm uma verso modicada do ETX, chamado mETX (Modied ETX). A pesquisa teve como objeto a busca pelo melhor caminho de roteamento, atravs das camadas superiores da rede, sempre utilizando baixas taxas de perdas de pacotes. Com isso o trabalho desenvolveu outra mtrica chamada ENT (Effective Number of Transmissions) que mantm o mETX sob controle, impedindo que a primeira mtrica envie pacotes por caminhos que apresentem ndices signicativos de perca de pacotes. Ambos mETX e ENT capturam as caractersticas temporais dos canais com o objetivo de traduzir o estado fsico para as camadas superioras da rede e determinar como enviar dados de maneira eciente. Com o tempo, se somente for utilizada uma das mtricas propostas no trabalho, o roteamento tende a no manter todos os parmetros em vista. Logo, se ambos forem usados, ento a tendncia demonstrada que a banda da transmisso seja usada ecientemente. Com essa avaliao fsica, o impacto do desempenho nvel da rede visvel. Os autores indicaram que com esse mtodo possvel atingir 50% de reduo da perda de pacotes. 6.7 Bio-inspired Link Quality Estimation for Wireless Mesh Networks

O trabalho de Calef e Paura (2009) traz como foco da pesquisa a busca por melhores avaliaes das mtricas, como ETX, SMA (Simple Moving Avarege) e EWMA (Exponetially Weigh-

62 ted Moving Avarege). Essas mtricas podem ser encaixadas como sries temporais, habilitando com que a RNA proposta consiga derivar em um futuro breve seus possveis valores. O paradigma de estimativa biolgica, ou seja, emprica, demonstrada durante a pesquisa dos autores. A efetividade do uso do RNA na construo de mtricas de mtricas ecintes se d pelo fato que as RNAs possurem, em muitos casos, a habilidade de aprender atravs da aprendizagem no supervisionada. A implementao em dispositivos de baixa memria ca no mesmo nvel dos algoritmos tradicionais. Em ambas implementaes, por estarem presentes em ambientes diversicados, o algoritmo de estimativa igualmente eciente. O trabalho apresenta uma comparao numrica com duas estimativas normais e representa a efetividade da estimativa utilizando RNA para ambientes mesh e ad hocs. 6.8 Cognitive Wireless Mesh Networks with Dynamic Spectrum Access

O trabalho dos autores Chowdhury e Akyildiz (2008) apresenta uma abordagem, com a nalidade de reduzir colises de transmisso, nova em cenrios de grande quantidade de mesh clients presentes. A abordagem repousa sobre o uso de antenas congurveis presentes em dispositivos conectados a malha. Essas antenas podem ajustar o espectro de transmisso do dispositivo, assim deixando com que consiga enviar dados atravs de bandas prioritrias, para seus vizinhos, e bandas licenciadas para transmisses de longa distncia. Todo o estudo foi conduzido sob o preceito de evitar o congestionamento do meio de transmisso, logo o trabalho apresenta resultados indicando que com o aumento de dispositivos presentes nas redes, acabam interferindo no meio causando colises das ondas de rdio. Outros fatores so considerados, como a presenta de micro-ondas, dispositivos bluetooth1 entre outras fontes de intefrencia. Nisso os autores buscam a reduo signicativa da aplicao em larga escala do modelo da rede, exibilizando a rede a conseguir pr-ativamente evitar os congestionamentos dos canais usados. A proposa do trabalho COMNET(COgnitive wireless Mesh NETwork) foi feita com base na criao da sensibilidade cognitiva da leitura do espectro de transmisso. Nisso foi desenvolvido tcnicas de compartilhamento de banda, assim como sero os primeiros passos para extrao dos benecios do uso de transmisso cognitiva na rea da Redes Mesh (CHOWDHURY; AKYILDIZ, 2008). 6.9 Relao com os trabalhos

A descrio e aplicao do trabalho de Zhi-yuan, Ru-chuan e Jun-lei (2009) so semelhantes as deste trabalho. A pesquisa supracitada trabalha com caminhos previamente selecionados de maneira pr-ativa. Ambos trabalhos utilizam a ideia de avaliar os caminhos, porm esta pesquisa utiliza uma abordagem mais emprica da rede, deixando totalmente rede a deciso
1

Descrio em http://en.wikipedia.org/wiki/Bluetooth, acessado em 10/06/2012

63 de para qual node o pacote deve ir, ao invs de selecionar caminhos inteiros como alternativos. O trabalho de Venkataram, Ghosal e Kumar (2002) traz a implementao de uma RNA dentro do roteamento de pacotes, e por isso, est diretamente relacionado com este trabalho. Assim como os autores, foi possvel notar que a falta de uma RNA em tempo real implementada a nvel de hardware inuencia diretamente no desempenho da rede, porm a diferena entre os estudos est que este trabalho emprega a RNA na deciso de encaminhar o pacote e o mesmo busca achar o melhor caminho. Como resultado seria possvel unicar ambos os trabalhos e gerar um algoritmo de roteamento utilizando RNA de maneira extensiva. J o trabalho de Song, Zhang e Fang (2010) trabalha o modelo de engenharia de trfego para possibilitar a busca de nodes com decincias tcnicas e evitar que o trfego circule pela rea em que o mesmo se encontra, assim habilitando que o objeto de pesquisa deste trabalho busque com ecincia encontrar nodes que venham a apresentar. Considerando que na pesquisa de De Couto et al. (2005) demonstrado que, mesmo com grandes perdas, os nodes podem transmitir com efetividade os pacotes, entretanto o mesmo no suporta cenrios muitos caticos. Neste quesito, esta pesquisa difere, pois sempre procura sempre exibilizao do roteamento nos piores cenrios. O objeto utilizado do trabalho Pirzada e Portmann (2007) foi a priorizao dos nodes com estabilidade. A pesquisa realizada em Koksal e Balakrishnan (2006) concentrou-se no roteamento de pacotes, porm ca focado no uso eciente da banda de transmisso, assim provendo ao roteamento boas mtricas representando o estado real do lado fsico da rede. A pesquisa inuenciou diretamente na avaliao das mtricas e no levantamento dos parmetros de entrega de pacotes. O trabalho de Calef e Paura (2009) inunciou esta pesquisa com a ideia de estimar as mtricas dos nodes utilizando RNA, tratando-as como sries temporais. Essa capacidade representativa trouxe benefcios na estimativa futura dos estados da rede. Com isso possvel trabalhar o roteamento sempre prevendo as condies em que os estados possam assumir.

64

65 7 CONSIDERAES FINAIS E TRABALHOS FUTUROS

Este trabalho apresentou uma nova abordagem do mecanismo de deciso no roteamento de pacotes dentro das Redes Mesh utilizando o protocolo HWMP. O uso da capacidade cognitiva no protocolo habilitou o processo de um nvel emprico necessrio para exibilizar os caminhos em que o pacote deve percorrer, assim como o uxo de carros nas cidades congestionadas, busca sempre formas alternativas de chegar ao destino evitando vias sobrecarregadas e lentas. A exibilizao torna-se o foco principal quando buscado o aumento signicativo da qualidade da rede. Mesmo em casos que os dispositivos tenham alta mobilidade a rede dever conseguir fornecer uma conexo de qualidade e evitar sobrecargas nas vias principais de comunicao, aumentando signicativamente a qualidade da experincia do usurio no uso da rede. Essa abordagem foi fruto de uma pesquisa sobre neurocincia, utilizando RNAs e conhecimentos sobre o modelo de Rede Mesh. Essa pesquisa rendeu uma primeira aplicao da RNA dentro do processo de deciso e criou o norte para trabalhos futuros utilizando a capacidade cognitiva para aumentar a qualidade das Redes Mesh. A pesquisa foi avalidada atravs de dados extrados dos ajustes feitos ao mecanismo de roteamento. Foram analisados todos os dados gerados e construdos grcos representando os resultados, apresentados no Captulo 5. Esses resultados apresentaram nmeros interessantes sobre o roteamento cognitivo. A simulao foi feita utilizando o NS-3, apresentado no Captulo 2. Durante as simulaes, observou-se que os uxos de informao, ao sobrecarregarem os mesh clients envolvidos acabavam afetando diretamente as mtricas de avaliao do desempenho da rede. Assim, os resultados nais da rede podem ser observados nos grcos da Figura 23(c), Figura 23(a) e Figura 23(b), representando efetivamente o aumento signicativo da qualidade em cenrios de constante alterao. O aumento da qualidade dentro da rede uma projeo da capacidade da RNA de identicar e dispersar os pacotes de suas rotas principais, evitando possveis congestionamentos e dirigindo o uxo por caminhos alternativos. Esses caminhos servem como pontes de apoio aos caminhos principais dos uxos, tentando evitar que congestionem ou inibindo a transmisso para um possvel mesh client que deixou de existir na rede. Este resultado demonstra que as decises da RNA ajudam, em muitos casos, a rede a manter a coeso e as taxas de entregas, diminuindo consideravelmente o tempo de espera na entrega de pacotes (Figura 23(a)) e a quantidade de pacotes perdidos (Figura 23(b)). O resultado global da rede, demonstrado no grco da Figura 23(c), de que possvel utilizar as RNAs dentro do roteamento de pacotes ampliando o desempenho. Como visto anteriormente, os resultados do roteamento de pacotes utilizando RNAs como mecanismo de deciso foram positivos. Os objetivos deste trabalho, representados na Tabela 4, foram atingidos parcialmente.

66 Objetivo Atendido Estruturar Algoritmo de Roteamento X Denir RNA X Gerar Cenrios NS3 X Implantar RNA dentro do NS3 X Testar RRDD na simulao X Utilizar RNA RRDD dentro do NS3 Utilizar RNA Hopeld dentro do NS3 X Simular rede mesh X Gerar sadas das mtricas de roteamento X Avaliar resultados X

Tabela 4: Objetivos alcanados nesta pesquisa.

Com o resultado do processo de avaliao da simulao do protocolo modicado foi possvel vislumbrar um ganho de qualidade signicativo para a conectividade da rede. Foi notvel que o processo cognitivo de deciso pode auxiliar o roteamento, habilitando todo o mecanismo a ser exvel o suciente para suportar alteraes bruscas e constantes dentro da topologia da rede. Flexibilidade esta tornada emprica j que as decises so tomadas sem ter todo o conhecimento do estado da rede. A partir deste trabalho, possvel desenvolver outros estudos que acabem por complementar ou mesmo estend-lo, tais como: Habilitar a RNA a avaliar no somente um salto do pacote, mas sim habilitar os seis graus de separao e deixar com que a rede seja capaz de avaliar os seis saltos. Tal avaliao pode dar uma noo mais ampla do estado do caminho em que o pacote ir tomar; Alterar a RNA para no ter treinamento supervisionado e construir seu conhecimento a partir dos dados que trafegam no mesh client; Substituir a tabela de roteamento do protocolo HWMP por um estudo em que a RNA possa efetivamente funcionar como memria matricial, assim funcionando como a tabela de roteamento, aonde se apresenta o endereo de destino e a rede responde com os dados para encaminhar o pacote; Estudar a viabilidade de testar o roteamento em um ambiente real, buscando avaliar com usurios a qualidade da rede, com isto ser melhor avaliado a aplicao em escala real da RNA dentro de uma Rede Mesh; Propor uma implementao a nvel de hardware da RNA para aumentar consideravelmente o desempenho da execuo da rede neural, tal implementao serve para retirar a sobrecarga que ocorre ao executar a rede em nvel de software, assim deixando o roteamento ainda mais rpido;

67 Avaliar outras mtricas que possam ser usadas como entradas da rede neural, assim como tambm o estado do espectro de transmisso, o tamanho do pacote a ser retransmitido, a quantidade de saltos que o mesmo precisa dar para chegar ao destino; Habilitar a RNA para avaliar tambm o nvel de utilizao do espectro de transmisso, com a nalidade de ampliar a viso da rede neural do ambiente em que o mesh client est presente; Determinar a sobrecarga que a simulao causa, como tambm a execuo da RNA com a rede. Vericar o impacto direto que ocorre e quanto difere a simulao de uma implementao real.

68

69 REFERNCIAS

AKYILDIZ, I. F.; XUDONG, W. Wireless Mesh Networks. 2th. ed. [S.l.]: Willey, 2009. AKYILDIZ, I.; WANG, X. A survey on wireless mesh networks. Communications Magazine, IEEE, [S.l.], v. 43, n. 9, p. S23 S30, sept. 2005. BARANSEL, C.; DOBOSIEWICZ, W.; GBURZYNSKI, P. Routing in multihop packet switching networks: gb/s challenge. Network, IEEE, [S.l.], v. 9, n. 3, p. 38 61, may/jun 1995. BAUMANN, R.; HEIMLICHER, S.; LENDERS, V.; MAY, M. Routing Packets into Wireless Mesh Networks. In: WIRELESS AND MOBILE COMPUTING, NETWORKING AND COMMUNICATIONS, 2007. WIMOB 2007. THIRD IEEE INTERNATIONAL CONFERENCE ON, 2007, White Plains, NY, USA. Anais. . . [S.l.: s.n.], 2007. p. 38. (WIMOB 07). BRAGA, A.; CARVALHO, A.; LUDEMIR, T. Redes Neurais Articiais - Teorias e Aplicaes. 1th. ed. [S.l.]: LTC, 2007. CALEFFI, M.; PAURA, L. Bio-inspired link quality estimation for wireless mesh networks. In: WOWMOM, 2009. Anais. . . IEEE, 2009. p. 16. CHOWDHURY, K.; AKYILDIZ, I. Cognitive Wireless Mesh Networks with Dynamic Spectrum Access. Selected Areas in Communications, IEEE Journal on, Edmonton, AB, Canad, v. 26, n. 1, p. 168 181, jan. 2008. DE COUTO, D. S. J.; AGUAYO, D.; BICKET, J.; MORRIS, R. A high-throughput path metric for multi-hop wireless routing. Wirel. Netw., Hingham, MA, USA, v. 11, n. 4, p. 419434, July 2005. GIL, A. C. Como elaborar projetos de pesquisa. 3th. ed. [S.l.]: ATLAS, 2004. GRANVILLE, L. Z.; CARISSIMI, A. D. S.; ROCHOL, J. Redes de Computadores. 20th. ed. [S.l.]: BOOKMAN COMPANHIA ED, 2009. HAYKIN, S. Redes Neurais - Princpios e Prtica. 2th. ed. [S.l.]: Bookman, 2001. KOKSAL, C. E.; BALAKRISHNAN, H. Quality-aware routing metrics for time-varying wireless mesh networks. IEEE JSAC, [S.l.], v. 24, p. 19841994, 2006. LOESCH, C.; SARI, S. T. Redes Neurais Articiais - Fundamentos e Modelos. 1th. ed. [S.l.]: FURB, 1996. MARCONI, M. d. A.; EVA MARIA, L. Metodologia do Trabalho Cientco. 7th. ed. [S.l.]: ATLAS, 2011. PAUL, A.; KONWAR, S.; GOGOI, U.; CHAKRABORTY, A.; YESHMIN, N.; NANDI, S. Implementation and performance evaluation of AODV in Wireless Mesh Networks using NS-3. In: EDUCATION TECHNOLOGY AND COMPUTER (ICETC), 2010 2ND INTERNATIONAL CONFERENCE ON, 2010. Anais. . . [S.l.: s.n.], 2010. v. 5, p. V5298 V5303.

70 PIRZADA, A. A.; PORTMANN, M. High Performance AODV Routing Protocol for Hybrid Wireless Mesh Networks. In: FOURTH ANNUAL INTERNATIONAL CONFERENCE ON MOBILE AND UBIQUITOUS SYSTEMS: NETWORKING&SERVICES (MOBIQUITOUS), 2007., 2007, Washington, DC, USA. Proceedings. . . IEEE Computer Society, 2007. p. 15. (MOBIQUITOUS 07). SEVERINO, A. J. Metodologia do Trabalho Cientco. 23th. ed. [S.l.]: Cortez Editora, 2011. SONG, Y.; ZHANG, C.; FANG, Y. Stochastic Trafc Engineering in Multihop Cognitive Wireless Mesh Networks. Mobile Computing, IEEE Transactions on, [S.l.], v. 9, n. 3, p. 305 316, march 2010. VENKATARAM, P.; GHOSAL, S.; KUMAR, B. P. V. Neural network based optimal routing algorithm for communication networks. Neural Netw., Oxford, UK, UK, v. 15, p. 12891298, December 2002. ZHI-YUAN, L.; RU-CHUAN, W.; JUN-LEI, B. A Multipath Routing Algorithm Based on Trafc Prediction in Wireless Mesh Networks. In: NATURAL COMPUTATION, 2009. ICNC 09. FIFTH INTERNATIONAL CONFERENCE ON, 2009. Anais. . . [S.l.: s.n.], 2009. v. 6, p. 115 119. ZHU, F.; MUTKA, M.; NI, L. PrudentExposure: a private and user-centric service discovery protocol. In: PERVASIVE COMPUTING AND COMMUNICATIONS, 2004. PERCOM 2004. PROCEEDINGS OF THE SECOND IEEE ANNUAL CONFERENCE ON, 2004. Anais. . . [S.l.: s.n.], 2004. p. 329 338.

71 APNDICE A A.1 INFORMAES COMPLEMENTARES

NS-3 Mdulos

Os mdulos abaixo apresentados foram utilizados em ordem para desenvolver e avaliar a aplicao da RNA no roteamento de pacotes. A.1.1 A.1.1.1 HWMP Mac Header MeshHeader::Serialize

Esta funo serializa os dados de transmisso do frame da rede mesh. Foram adicionados os parmetros de estado do mesh client. Retorno: void Parmetro: Buffer::Iterator start A.1.1.2 MeshHeader::Deserialize

L a partir do dos dados transmitidos e codicados no cabealho do pacote. Retorno: uint32_t Parmetro: Buffer::Iterator start A.1.2 A.1.2.1 HWMP Protocol HwmpProtocol::fann_vld_dst

Este mtodo foi desenvolvido com a nalidade de rodar a RNA e avaliar o estado do node. Retorno: bool Parmetro: Mac48Address node Cdigo: // Caso a RNA apresentar resultados incoerents ao //destino deve selecionar outro destio HwmpRtable::LookupResult adr = m_rtable->GetResult(node); //m_stats.totalQueued; //Durante a primeira transmisso nao validar os nodes pois //os mesmos no trocaram informaes if(adr.PDF == 0 && adr.TxDelay == 0){ return true; }else{

72 fann_type addr_data[2]; addr_data[0] = adr.PDF; addr_data[1] = adr.TxDelay; fann_type *result = fann_run(ann, addr_data); fann_abs(result[0] - addr_data[0])); return (result[0] >= 0.5); //Sainda da RNA, se caso maior // que 0.5 deixa enviar para o mesmo. A.1.2.2 HwmpProtocol::RequestRoute

Este mtodo possui a chamada para avaliar o node. Quando o mesmo requer uma rota para transmitir o pacote, ela avalia cada um deles para saber se o mesmo est apto a encaminhar com segurana. Caso o mesh client no seja vlido, o algoritmo continua a procurar alternativas. Retorno: bool Parmetros: uint32_t sourceIface, const Mac48Address source, const Mac48Address destination, Ptr<const Packet> constPacket, uint16_t protocolType, MeshL2RoutingProtocol::RouteReplyCallback routeReply A.1.3 A.1.3.1 HWMP Rtable HwmpRtable::GetResult

Esta funo retorna a busca por uma entrada especca, conforme o parmetro a partir do MacAddress. Retorno: HwmpRtable::LookupResult Parmetro: Mac48Address addr A.1.4 HwmpRtable::updateNodeStats

Este mtodo executado cada vez que o mesh client se comunica com seus vizinhos. O estado de cada vizinho atualizado. Retorno: void Parmetros: Mac48Address adr, uint16_t tx, uint16_t rx, uint8_t delay

73 ANEXO A A.1 NS-3 SCRIPTS

Cenrio Base das Simulaes

//#include "ns3/simulator-module.h" //#include "ns3/node-module.h" //#include "ns3/helper-module.h" //#include "ns3/global-routing-module.h" #include "ns3/wifi-module.h" #include "ns3/mesh-module.h" #include "ns3/mobility-module.h" #include "ns3/mesh-helper.h" #include "ns3/mesh-module.h" #include "ns3/wifi-phy.h" #include "ns3/flow-monitor.h" #include "ns3/flow-monitor-helper.h" #include "ns3/ipv4-flow-classifier.h" #include "ns3/random-variable.h" #include <iostream> #include <sstream> #include <fstream> #include <vector> #include #include #include #include #include #include #include #include "ns3/core-module.h" "ns3/internet-module.h" "ns3/network-module.h" "ns3/applications-module.h" "ns3/wifi-module.h" "ns3/mesh-module.h" "ns3/mobility-module.h" "ns3/mesh-helper.h"

#include "tcc_cenario_simples.h" #include #include #include #include <iostream> <sstream> <fstream> <vector>

74 using namespace ns3; class MeshTest { public: // Init test MeshTest (); // Configure test from command line arguments void Configure (int argc, char ** argv); // Run test int Run (); private: int m_xSize; //x size of the grid int m_ySize; //y size of the grid double m_step; //separation between nodes double m_randomStart; double m_totalTime; uint16_t m_packetSize; uint32_t m_nIfaces; bool m_chan; bool m_pcap; std::string m_stack; std::string m_txrate; //to calculate the lenght of the simulation float m_timeTotal, m_timeStart, m_timeEnd; // List of network nodes NodeContainer nodes; // List of all mesh point devices NetDeviceContainer meshDevices; // Addresses of interfaces: Ipv4InterfaceContainer interfaces; // MeshHelper. Report is not static methods MeshHelper mesh; private: // Create nodes and setup their mobility void CreateNodes (); // Install internet m_stack on nodes void InstallInternetStack (); // Install applications randomly void InstallApplicationRandom ();

75 // Print mesh devices diagnostics void Report (); }; MeshTest::MeshTest () : m_xSize (5), m_ySize (5), m_step (170), //m_randomStart (0.1), m_randomStart (100), m_totalTime (240), m_packetSize (1024), m_nIfaces (1), m_chan (false), m_pcap (false), m_stack ("ns3::Dot11sStack"), m_txrate ("200kbps") { } void MeshTest::Configure (int argc, char *argv[]) { CommandLine cmd; cmd.AddValue ("m_xSize", "m_xSize", m_xSize); cmd.AddValue ("m_ySize", "m_ySize", m_ySize); cmd.AddValue ("m_txrate", "m_txrate", m_txrate); cmd.Parse (argc, argv); } void MeshTest::CreateNodes () { int i, j; double m_txpower = 18.0; // dbm // Calculate m_ySize*m_xSize stations grid topology double position_x = 0; double position_y = 0; ListPositionAllocator myListPositionAllocator; for (i = 1; i <= m_xSize; i++){ for (j = 1; j <= m_ySize; j++){ std::cout << "Node at x = " << position_x << ", y = " << position_y << "\n";

76 Vector3D n_pos (position_x, position_y, 0.0); myListPositionAllocator.Add(n_pos); position_y += m_step; } position_y = 0; position_x += m_step; } // Create the nodes nodes.Create (m_xSize*m_ySize); // Configure YansWifiChannel YansWifiPhyHelper WifiPhy = YansWifiPhyHelper::Default (); WifiPhy.Set ("EnergyDetectionThreshold", DoubleValue (-89.0) ); WifiPhy.Set ("CcaMode1Threshold", DoubleValue (-62.0) ); WifiPhy.Set ("TxGain", DoubleValue (1.0) ); WifiPhy.Set ("RxGain", DoubleValue (1.0) ); WifiPhy.Set ("TxPowerLevels", UintegerValue (1) ); WifiPhy.Set ("TxPowerEnd", DoubleValue (m_txpower) ); WifiPhy.Set ("TxPowerStart", DoubleValue (m_txpower) ); WifiPhy.Set ("RxNoiseFigure", DoubleValue (7.0) ); YansWifiChannelHelper WifiChannel; WifiChannel.SetPropagationDelay ("ns3::ConstantSpeedPropagationDelayModel"); WifiChannel.AddPropagationLoss ("ns3::LogDistancePropagationLossModel","Exponent", StringValue ("2.7")); WifiPhy.SetChannel (WifiChannel.Create ()); // Configure the parameters of the Peer Link Config::SetDefault ("ns3::dot11s::PeerLink::MaxBeaconLoss", UintegerValue (20)); Config::SetDefault ("ns3::dot11s::PeerLink::MaxRetries", UintegerValue (4)); Config::SetDefault ("ns3::dot11s::PeerLink::MaxPacketFailure", UintegerValue (5)); // Configure the parameters of the Peer Management Protocol //Config::SetDefault ("ns3::dot11s::PeerManagementProtocol:: EnableBeaconCollision-Avoidance",BooleanValue (false)); Config::SetDefault ("ns3::dot11s::PeerManagementProtocol:: EnableBeaconCollisionAvoidance",BooleanValue (false));

77

// Configure the parameters of the HWMP Config::SetDefault ("ns3::dot11s::HwmpProtocol:: Dot11MeshHWMPactivePathTimeout", TimeValue (Seconds (100))); Config::SetDefault ("ns3::dot11s::HwmpProtocol:: Dot11MeshHWMPactiveRootTimeout", TimeValue (Seconds (100))); Config::SetDefault ("ns3::dot11s::HwmpProtocol:: Dot11MeshHWMPmaxPREQretries", UintegerValue (5)); Config::SetDefault ("ns3::dot11s::HwmpProtocol:: UnicastPreqThreshold", UintegerValue (10)); Config::SetDefault ("ns3::dot11s::HwmpProtocol:: UnicastDataThreshold", UintegerValue (5)); Config::SetDefault("ns3::dot11s::HwmpProtocol::DoFlag", BooleanValue (true)); Config::SetDefault ("ns3::dot11s::HwmpProtocol::RfFlag", BooleanValue (false)); // Stack installer creates all protocols and install them to mesh po mesh = MeshHelper::Default (); mesh.SetStandard (WIFI_PHY_STANDARD_80211a); mesh.SetMacType ("RandomStart", TimeValue (Seconds(m_randomStart))); mesh.SetRemoteStationManager("ns3::ConstantRateWifiManager", "DataMode", StringValue ("OfdmRate6Mbps"), "RtsCtsThreshold", UintegerValue (2500)); // Set number of interfaces - default is //single-interface mesh point mesh.SetNumberOfInterfaces (m_nIfaces); mesh.SetStackInstaller (m_stack); //If multiple channels is activated if (m_chan) { mesh.SetSpreadInterfaceChannels (MeshHelper::SPREAD_CHANNELS); } else { mesh.SetSpreadInterfaceChannels

78 (MeshHelper::ZERO_CHANNEL); } // Install protocols and return container if MeshPointDevices meshDevices = mesh.Install (WifiPhy, nodes); // Place the protocols in the positions calculated before MobilityHelper mobility; mobility.SetPositionAllocator(&myListPositionAllocator); mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel"); mobility.Install (nodes); } void MeshTest::InstallInternetStack () { //Install the internet protocol stack on all nodes InternetStackHelper internetStack; internetStack.Install (nodes); //Assign IP addresses to the devices interfaces Ipv4AddressHelper address; address.SetBase ("192.168.1.0", "255.255.255.0"); interfaces = address.Assign (meshDevices); } void MeshTest::InstallApplicationRandom () { // Create as many connections as nodes has the grid int m_nconn = m_xSize * m_ySize; int i=0;

int m_source, m_dest, m_dest_port; char num [2]; char onoff [7]; char sink [6]; double start_time, stop_time, duration; // Set the parameters of the onoff application Config::SetDefault ("ns3::OnOffApplication::PacketSize", UintegerValue (m_packetSize));

79 Config::SetDefault ("ns3::OnOffApplication::DataRate", StringValue (m_txrate)); ApplicationContainer apps [m_nconn]; UniformVariable rand_nodes (0,m_ySize*m_xSize-1); UniformVariable rand_port (49000,49100); // 50 seconds for transitori are left at the beginning. UniformVariable a(50,m_totalTime-15); for (i = 0; i < m_nconn; i++){ start_time = a.GetValue(); ExponentialVariable b(30); duration = b.GetValue()+1; // If the exponential variable gives us a value //that added to the start time // is greater than the maximum permitted, this //is changed for the maximum // 10 seconds are left at the end to calculate //well the statistics of each flow if ( (start_time + duration) > (m_totalTime - 10)){ stop_time = m_totalTime-10; }else{ stop_time = start_time + duration; } // Create different names for the connections // (we can not use vectors for OnOffHelper) strcpy(onoff,"onoff"); strcpy(sink,"sink"); sprintf(num,"%d",i); strcat(onoff,num); strcat(sink,num); // Set random variables of the destination //(server) and destination port. m_dest = rand_nodes.GetInteger (0,m_ySize*m_xSize-1); m_dest_port = rand_port.GetInteger (49000,49100);

// Set random variables of the source (client) m_source = rand_nodes.GetInteger (0,m_ySize*m_xSize-1); // Client and server can not be the same node.

80 while (m_source == m_dest){ m_source = rand_nodes.GetInteger (0,m_ySize*m_xSize-1); } // Plot the connection values std::cout << "\n\t Node "<< m_source << " to " << m_dest; std::cout << "\n Start_time: " << start_time << "s"; std::cout << "\n Stop_time: " << stop_time << "s\n"; // Define UDP traffic for the onoff application OnOffHelper onoff ("ns3::UdpSocketFactory", Address (InetSocketAddress (interfaces.GetAddress (m_dest), m_dest_port))); onoff.SetAttribute ("OnTime", RandomVariableValue (ConstantVariable (1))); onoff.SetAttribute ("OffTime", RandomVariableValue (ConstantVariable (0))); apps[i] = onoff.Install (nodes.Get(m_source)); apps[i].Start (Seconds (start_time)); apps[i].Stop (Seconds (stop_time)); // Create a packet sink to receive the packets PacketSinkHelper sink ("ns3::UdpSocketFactory", InetSocketAddress (interfaces.GetAddress (m_dest), 49001)); apps[i] = sink.Install (nodes.Get (m_dest)); apps[i].Start (Seconds (1.0)); } } int MeshTest::Run () { CreateNodes (); InstallInternetStack (); InstallApplicationRandom (); // Install FlowMonitor on all nodes FlowMonitorHelper flowmon; Ptr<FlowMonitor> monitor = flowmon.InstallAll(); m_timeStart=clock(); Simulator::Schedule (Seconds(m_totalTime), & MeshTest::Report, this); Simulator::Stop (Seconds (m_totalTime));

81 Simulator::Run (); // Define variables to calculate the metrics int k=0; int totaltxPackets = 0; int totalrxPackets = 0; double totaltxbytes = 0; double totalrxbytes = 0; double totaldelay = 0; double totalrxbitrate = 0; double difftx, diffrx; double pdf_value, rxbitrate_value, txbitrate_value, delay_value; double pdf_total, rxbitrate_total, delay_total; //Print per flow statistics monitor->CheckForLostPackets (); Ptr<Ipv4FlowClassifier> classifier = DynamicCast<Ipv4FlowClassifier> (flowmon.GetClassifier ()); std::map<FlowId, FlowMonitor::FlowStats> stats = monitor->GetFlowStats (); std::ostringstream osFlow; osFlow << "TCC_FLOW_TABLE.txt"; std::ofstream ofFlow (osFlow.str().c_str(), ios::out | ios::app); ofFlow ofFlow ofFlow ofFlow ofFlow ofFlow ofFlow ofFlow ofFlow ofFlow << << << << << << << << << << "IPs;"; "FLOW;"; "txPackets;"; "rxPackets;"; "lostPackets;"; "DropedPackets;"; "PDF;"; "Delay;"; "rxBitrate;"; "txBitrate;\n";

82

for (std::map<FlowId, FlowMonitor::FlowStats>::const_iterator i = stats. i != stats.end (); ++i) { Ipv4FlowClassifier::FiveTuple t = classifier->FindFlow (i->first); difftx = i->second.timeLastTxPacket.GetSeconds() i->second.timeFirstTxPacket.GetSeconds(); diffrx = i->second.timeLastRxPacket.GetSeconds() i->second.timeFirstRxPacket.GetSeconds(); pdf_value = (double) i->second.rxPackets / (double) i->second.txPackets * 100; txbitrate_value = (double) i->second.txBytes * 8 / 1024 / difftx; if (i->second.rxPackets != 0){ rxbitrate_value = (double)i->second.rxPackets * m_packetSize * 8 / 1024 / diffrx; delay_value = (double) i->second.delaySum.GetSeconds() / (double) i->second.rxPackets; } else{ rxbitrate_value = 0; delay_value = 0; } // We are only interested in the metrics of the data flows if ((!t.destinationAddress. IsSubnetDirectedBroadcast("255.255.255.0"))) { k++; ofFlow << t.sourceAddress << " -> " << t.destinationAddress << ";"; ofFlow << k << ";"; ofFlow << i->second.txPackets << ";"; ofFlow << i->second.rxPackets << ";"; ofFlow << i->second.lostPackets << ";"; ofFlow << i->second.packetsDropped.size() << ";"; ofFlow << pdf_value << ";"; ofFlow << delay_value << ";"; ofFlow << rxbitrate_value << ";"; ofFlow << txbitrate_value << ";\n";

83 // Plot the statistics for each data flow std::cout << "\nFlow " << k << " (" << t.sourceAddress << " -> " << t.destinationAddress << ")\n"; // /*std::cout << "tx Preq Packets: " << i->second.txPreq << "\n"; std::cout << "rx Preq Packets: " << i->second.rxPreq << "\n"; std::cout << "tx Mgt Packets: " < < i->second.txMgt << "\n"; std::cout << "tx Mgt Bytes Packets: " << i->second.txMgtBytes << "\n"; std::cout << "rx Mgt Packets: " << i->second.rxMgt << "\n"; std::cout << "rx Mgt Bytes Packets: " << i->second.rxMgtBytes << "\n";*/ std::cout << "Tx Packets: " << i->second.txPackets << "\n"; std::cout << "Rx Packets: " << i->second.rxPackets << "\n"; std::cout << "Lost Packets: " << i->second.lostPackets << "\n"; std::cout << "Dropped Packets: " << i->second.packetsDropped.size() << "\n"; std::cout << "PDF: " << pdf_value << " %\n"; std::cout << "Average delay: " << delay_value << "s\n"; std::cout << "Rx bitrate: " << rxbitrate_value << " kbps\n"; std::cout << "Tx bitrate: " << txbitrate_value << " kbps\n\n";

84 // Acumulate for average statistics totaltxPackets += i->second.txPackets; totaltxbytes += i->second.txBytes; totalrxPackets += i->second.rxPackets; totaldelay += i->second.delaySum.GetSeconds(); totalrxbitrate += rxbitrate_value; totalrxbytes += i->second.rxBytes; } } // Average all nodes statistics if (totaltxPackets != 0){ pdf_total = (double) totalrxPackets / (double) totaltxPackets * 100; } else{ pdf_total = 0; } if (totalrxPackets != 0){ rxbitrate_total = totalrxbitrate; delay_total = (double) totaldelay / (double) totalrxPackets; } else{ rxbitrate_total = 0; delay_total = 0; } //print all nodes statistics ofFlow << "\nTotal PDF: " << pdf_total << " %\n"; ofFlow << "Total Rx bitrate: " << rxbitrate_total << " kbps\n"; ofFlow << "Total Delay: " << delay_total << " s\n"; ofFlow << "\nTotal PDF: " << pdf_total << " %\n"; ofFlow << "Total Rx bitrate: " << rxbitrate_total << " kbps\n"; ofFlow << "Total Delay: " << delay_total << " s\n";

85 ofFlow.close (); //print all nodes statistics in files

std::ostringstream os; os << "1_HWMP_PDF.txt"; std::ofstream of (os.str().c_str(), ios::out | ios::app); of << pdf_total << "\n"; of.close (); std::ostringstream os2; os2 << "1_HWMP_Delay.txt"; std::ofstream of2 (os2.str().c_str(), ios::out | ios::app); of2 << delay_total << "\n"; of2.close (); std::ostringstream os3; os3 << "1_HWMP_Throu.txt"; std::ofstream of3 (os3.str().c_str(), ios::out | ios::app); of3 << rxbitrate_total << "\n"; of3.close (); Simulator::Destroy (); m_timeEnd=clock(); m_timeTotal=(m_timeEnd - m_timeStart) /(double) CLOCKS_PER_SEC; std::cout << "\n*** Simulation time: " << m_timeTotal << "s\n\n";

return 0; } void MeshTest::Report () { // Using this function we print detailed

86 //statistics of each mesh point device // These statistics are used later with //an AWK files to extract routing metrics unsigned n (0); for (NetDeviceContainer::Iterator i = meshDevices.Begin (); i != meshDevices.End (); ++i, ++n) { std::ostringstream os; //os << "mp-report1-" << n << ".xml"; os << "mp-report.xml"; std::ofstream of; of.open (os.str().c_str(), ios::out | ios::app); if (! of.is_open ()) { std::cerr << "Error: Cant open file " << os.str() << "\n"; return; } mesh.Report (*i, of);

of.close (); } n = 0; } int main (int argc, char *argv[]) { MeshTest t; t.Configure (argc, argv); return t.Run(); }

Вам также может понравиться