Provisionamento de Qualidade de Serviço em Redes MPLS utilizando Algoritmos Bio-inspirados em um Ambiente de Tráfego Auto-Similar

Tamanho: px
Começar a partir da página:

Download "Provisionamento de Qualidade de Serviço em Redes MPLS utilizando Algoritmos Bio-inspirados em um Ambiente de Tráfego Auto-Similar"

Transcrição

1 Universidade Federal de Minas Gerais Programa de Pós-graduação em Engenharia Elétrica Provisionamento de Qualidade de Serviço em Redes MPLS utilizando Algoritmos Bio-inspirados em um Ambiente de Tráfego Auto-Similar Alessandro Vivas Andrade Orientador: Professor Luciano de Errico Tese apresentada à Comissão Examinadora, designada pelo Colegiado do Programa de Pós-Graduação em Engenharia Elétrica da Universidade Federal de Minas Gerais, como parte dos requisitos para obtenção do título de Doutor em Engenharia Elétrica PPGEE- UFMG Novembro de 2008

2 Dedico este trabalho a Deus pelo seu imenso amor e compreensão.

3 Agradecimentos A gradeço a Deus, que misericordiamente permitiu a conclusão dessa jornada. Agradeço ao meu orientador, Prof. Luciano de Errico, pela paciência, pelas conversas, pela motivação e por me orientar durante estes longos anos. Ao Prof. Hani pelo suporte filosófico, criativo, por todas as conversas e conselhos durante a jornada. Ao Prof. Murilo que me acompanha desde a defesa do meu primeiro projeto orientado. A todos os professores do curso de Engenharia Elétrica da UFMG pela minha formação e pelos valores que aprendi nesta universidade. Agradeço a todos os funcionários da UFMG em especial a Anete pela ajuda durante todo o período do doutorado. Aos professores Dalton Soares Arantes, Linnyer Beatriz Ruiz, Leandro Nunes de Castro Silva e Walmir Matos Caminhas pelas importantes contribuições na defesa do meu projeto de qualificação. Aos colegas da Tim/Maxitel que me abrigaram durante o período de final do mestrado e início do doutorado: Adriano, Guilherme, Mi, Calazans, Show, Hebert, Japa, Adriana e Sérgio. Aos colegas da UFMG, Adriano, Cristiano, Arlindo, Carlos, Gustavo, Damares, Leonardo Almeida e Leonardo, e a todos os membros do Cefala que me ajudaram durante o decorrer do trabalho. Ao UNIBH que possibilitou o começo da jornada tornando meu horário flexível para cursar as disciplinas obrigatórias. Agradeço a família que me amparou como filho, Sr. Luciano, Dona Fátima e Fia. Ao cunhado Leandro pelas conversas e pela companhia. Aos amigos Paulo, Elaine e Marina pelos agradáveis momentos. Minha mãe e minha irmã. Lilica, você é minha querida irmã e te amo de todo o meu coração. Amo por gostar de você da forma que você é e pelo que representa em minha vida. Minha mãe pela acolhida nesta jornada que ainda sigo. Eu te amo Dona i

4 Terezinha. Agradeço aos amigos da UFVJM, Reginaldo, Fábio Vitta, Patrícia Pitta, Claudia, Marcio, Antônio, Virgínea e o amigo ex-vegetariano Toninho. Aos amigos do UNIBH, Magali, Cibele, Rose, Afonso e Bráulio. Sinto muita falta de vocês. Luciana, minha vida e minha razão de viver. Você é tudo, o início e o fim, é o caminho e dedico todo meu amor a você. Luísa que chegou a pouco tempo, meu amor incondicional, minha filha querida tão aguardada. Meu duplo presente e agradeço a Deus pela sorte de tê-la como filha. ii

5 Resumo O presente trabalho detalha o núcleo de um sistema de Engenharia de Tráfego, capaz de operar sobre uma rede IP com MPLS com as dimensões e características de um Autonomous System (AS) da Internet. Obedecendo a um conjunto de restrições estabelecidas pelos clientes e pelo provedor de serviço, e contabilizando os efeitos de auto-similaridade e da agregação de fontes de tráfego, esse núcleo é capaz de estabelecer rotas otimizadas que atendam às diferentes demandas impostas à rede. Fontes com característica auto-similar apresentam rajadas em múltiplas escalas e demandam maior largura de faixa e maior volume de buffers nos roteadores, os quais, se não atendidos, levam a um grande percentual de perda de pacotes. A agregação de fontes com características de auto-similaridade é outro fator relevante, pois pode levar a super estimação do tráfego necessário causando desperdício de largura de faixa. O sistema funciona a partir da leitura das características da topologia de rede, de um conjunto de requisições, de restrições impostas pelo usuário e pelo provedor de serviço e da seleção do tipo de algoritmo de otimização a ser utilizado. Cada enlace possui características de atraso, perda de pacotes, flutuação, capacidade total e capacidade residual. Como diversas rotas podem ser alocadas em um determinado enlace, cálculos de agregação de fluxos devem ser feitos para que a estimação da capacidade solicitada seja próxima da utilizada. Outra funcionalidade do sistema é o balanceamento de carga da rede, conseguido através de uma função de custo que é uma aproximação da curva de utilização de um enlace. O trabalho foca no uso de heurísticas bio-inspiradas, em especial Algoritmos Genéticos e Sistemas Imunológicos Artificiais. Adicionalmente, foi aplicado um conjunto de heurísticas até então não utilizadas no problema de roteamento em redes MPLS, tais como BCA, Opt-ainet e Copt-ainet. Entre as contribuições, destacam-se as modificações introduzidas no algoritmo Opt-ainet, a proposta de um Algoritmo Genético iii

6 Híbrido com busca local Grasp e a aplicação do algoritmo Copt-ainet com busca local Grasp. Outra contribuição, de cunho prático, foi o desenvolvimento de uma ferramenta que realiza a otimização da rede MPLS, gerando automaticamente scripts que podem ser executados no simulador ns2, o uso imediato dos resultados produzidos pelo processo de otimização. iv

7 Abstract T he traffic profile of current networks comprises not only data (files, , webpages) but multimedia communication as well (voice, audio, video). Traffic Engineering allows the network management, trying to assure that enough resources will be available to attend the different traffic needs within the structure. The main objective is to offer and maintain the Quality of Service (QoS) levels requested by each application in the network. This work details the core of a Traffic Engineering system, capable of operation over an IP/MPLS network with the size and characteristics of an Internet Autonomous System (AS). Following a set of restrictions, defined by the clients and the Internet Service Provider (ISP), and taking into account the effects of self-similarity and route agregation of traffic sources, this core can define optimized routes that attend to the different demands impose to the network. Self-similar sources present bursts in multiple scales and require larger bandwidth and greater buffer space in routers, which, if not satisfied, will lead to higher packet loss rates. Aggregation of self-simillar sources is another relevant issue, as it may lead to a over-estimation of the traffic, causing of waste of bandwidth. The system starts by receiving the network topology, the set of requests, the restrictions defined by clients and ISP, and the selection of the optimizing algorithm to be used. Each link is characterized by its delay, packet loss, jitter, full capacity and residual capacity. As different routes can be allocated to a specific link, flow aggregation must be computed in order to have an estimated requested capacity close to the actual one. Another system feature is the network load balancing, achieved by a cost function that is close to the utilization curve of the link. The work relies on the use of bio-inspired heuristics, in sepcial Genetic Algorithms and Artificial Immunologic Systems. In addition, the system applies a set of heuristics not used before in some classes of problems such as BCA, Opt-ainet e Copt-ainet. Among the contributions, we propose a modified v

8 Opt-ainet algorithm, a Hybrid Genetic Algorithm with Grasp local search, and the use of the Copt-ainet algorithm with Grasp local search. Another contribution, of practical relevance, is a tool that optimizes the MPLS network and automatically generates scripts for the ns2 simulator, allowing a faster evaluation of the results produced by the optimization process. vi

9 Sumário Sumário Lista de Figuras Lista de Tabelas ix xi xiii 1 Introdução 1 2 Qualidade de Serviço em Redes IP Introdução Aplicações Multimídia Técnicas para Obtenção de Qualidade de Serviço Multiprotocol Label Switching (MPLS) Introdução Protocolos de Roteamento versus MPLS Descrição do Rótulo Forward Equivalence Class (FEC) Distribuição de Rótulos Comparativo entre Roteamento IP e MPLS Topologia Wei-sun Topologia Mesh Topologia Dez Nós Aplicações Mal Comportadas Engenharia de Tráfego com MPLS Tipos de Engenharia de Tráfego Algoritmos e Heurísticas de Otimização Conclusões vii

10 Sumário 4 Modelagem de Tráfego para Qualidade de Serviço Introdução Processos Auto-similares Atratores Auto-Similaridade no Tráfego Definição de Auto-similaridade Movimento Browniano Fracionário Ruído Gaussiano Fracionário Modelo de Tráfego Proposto por Norros Processos Envelopes Processo Envelope para Tráfego Auto-Similar Modelo para Agregação de Fontes Algoritmos Bio-inspirados Algoritmos Genéticos Algoritmo Genético Simples Função Objetivo Representação do Problema Parâmetros de Ajuste Cruzamento Algoritmo de Seleção Convergência Prematura Cuidados na Construção da Função Objetivo Algoritmo Genético Simples Sistemas Imunológicos Artificiais Imunologia e Sistema Imunológico Algoritmos Imunológicos Artificiais Artificial Immune Network - Ainet Opt-ainet Algoritmo B-Cell Algoritmo Cop-ainet Experimentos e Resultados Ferramentas Utilizadas Sistema Desenvolvido Restrição de Capacidade Algoritmos Genéticos Algoritmo Opt-ainet viii

11 Sumário Algoritmo B-Cell Algoritmo Copt-ainet Comparação dos Resultados Simulação no ns Modelo para Tráfego Auto-Similar Conclusões Resultados Obtidos Dificuldades Encontradas Trabalhos Futuros Referências 148 ix

12 Lista de Figuras 2.1 Modelo Geral de QoS Domínio MPLS Rótulo MPLS Topologia Wei-sun Topologia Mesh Topologia Dez Nós Atrator do Mapa de Hénon Curva de Von Koch Limite Inferior da Largura de Faixa Fila Movimentro Browniano em 2 dimensões Ruído Gaussiano Fracionário Agregação de 2, 4 e 8 fontes de tráfego Agregação de 16, 32 e 64 fontes de tráfego Agregação de 128, 256, e 512 fontes de tráfego Processo Envelope para o Traço BC-pAug89.TL Validação o Modelo de Capacidade Equivalente Processo de Cruzamento em um Ponto Cruzamento em Dois Pontos Cruzamento Uniforme Função de Teste Atuação do Sistema Imunológico x

13 Lista de Figuras 6.1 Topologia Mesh Arquivo da Topologia Mesh Sistema Desenvolvido Arquivo de Requisições Mesh Exemplos de topologias Custo médio para 50 LSPs para um AG Percentual de células adicionadas Tempo de convergência Opt-ainet Número de iterações e número de células adicionadas Convergência em função do número de clones Tempo de convergência em função do número de clones Iterações para Convergência Simulação com 50 LSPs e Opt-ainet Simulação com 100 LSPs e Opt-ainet Simulação com 500 LSPs e Opt-ainet Tempo de convergência para 500 LSPs Avaliação da Taxa de Mutação Custo para 50 LSPs Custo para 100 LSPs Custo para 500 LSPs Copt-ainet (BT): custo para 50 LSPs Copt-ainet (BT): custo para 100 LSPs Copt-ainet (BT): custo para 500 LSPs Copt-ainet (Grasp): custo para 50 LSPs Copt-ainet (Grasp): custo para 100 LSPs Copt-ainet (Grasp): custo para 500 LSPs Simulação Topologia Mesh Simulação com Tráfego Auto-similar Tráfego Injetado na Rede xi

14 Lista de Tabelas 3.1 Topologia Wei-sun: Perda de Pacotes Topologia Wei-sun - Atraso [ms] Topologia Wei-sun - Análise da Flutuação [µs] Topologia Wei-sun - Análise da Vazão [Mbps] Topologia Mesh - Perda de Pacotes Topologia Mesh - Atraso Topologia Mesh - Flutuação Topologia Mesh - Vazão Topologia Dez Nós - Perda de Pacotes Topologia Dez Nós - Análise do Atraso [ms] Topologia Dez Nós - Análise da Flutuação [ms] Topologia Dez Nós - Análise da Vazão [Mbps] Padrão de Envio de Pacotes da Fonte UDP Vazão Atraso Flutuação Perda de Pacotes Avaliação das Séries fgn Traços de Tráfego do Bellcore Geração de Tráfego Auto-similar Traços de Tráfego do Bellcore Relação entre os Códigos Gray e Binário Vetor Ortogonal L 4 (2 3 ) para três fatores com dois níveis Vetor Ortogonal L 9 (3 4 ) para quatro fatores com três níveis xii

15 Lista de Tabelas 5.4 Representação dos Cromossomos Custo Médio das Instâncias Aplicando Diferentes Algoritmos Comparativo dos Resultados para 10 LSPs na Topologia Mesh Simulação com Tráfego Auto-similar xiii

16 CAPÍTULO 1 Introdução A s primeiras aplicações que surgiram com o nascimento da Internet foram a transferência de arquivos, e acesso remoto. Todo o transporte de informações na rede era e continua sendo feito através do Internet Protocol (IP) que, por sua vez, não oferece nenhuma garantia de entrega e nem de taxa mínima de transmissão. Este mecanismo ficou conhecido como best effort, isto é, fazer o máximo para a transmissão das informações, mas sem garantia alguma. A garantia de entrega ficou a cargo do protocolo Transmission Control Protocol (TCP), que possui mecanismos de retransmissão e controle de congestionamento. A partir de 1994, um novo cenário surgiu, com a possibilidade de comunicação de voz na Internet, quando a Vocaltec Inc., introduziu seu software Internet Phone (Consortium 2007). Os aplicativos, como telefones IP e transferências de vídeo, dependem de moderada taxa de transmissão e de pequenos valores de atraso e de variação do atraso. Apesar deste novo cenário de compartilhamento, o protocolo de rede da Internet não faz distinção alguma sobre o tipo de informação transportada. Desta forma, não existe uma política na camada de rede para oferecer condições mínimas para o transporte de dados em tempo real. A complexidade é alta, pois para cada tipo de mídia os critérios que asseguram o sucesso da transmissão são diferentes. Define-se Qualidade de Serviço (QoS) como o conjunto de necessidades das aplicações, como atraso, variação do atraso, taxa de transmissão e percentual de erros. Para garantir a Qualidade de Serviço, foram desenvolvidas uma série de soluções, dentre elas: Serviços Integrados/RSVP, Serviços Diferenciados, Multiprotocol Label 1

17 Switching (MPLS), Roteamento baseado em QoS e Engenharia de Tráfego (TE). O Multiprotocol Label Switching (MPLS) surge como uma alternativa para o suporte à criação de políticas de QoS em redes de computadores. Ele tem como principal objetivo reduzir a complexidade do encaminhamento dos pacotes IP e dar suporte à Engenharia de Tráfego (TE). A Engenharia de Tráfego (TE) é uma técnica de gerenciamento de rede que permite que o tráfego seja enviado para enlaces onde existem recursos suficientes para as aplicações. Engenharia de Tráfego trabalha com diferentes objetivos, como maximização da utilização de largura de faixa de uma rede e re-roteamento devido a congestionamento ou falhas. Para aplicar qualquer técnica de TE é necessário o conhecimento do perfil de tráfego que a rede transporta e o processo de caracterização do perfil de tráfego é chamado de modelagem do tráfego. As técnicas e as teorias de modelagem de tráfego em redes de computadores foram herdadas do sistema telefônico que utilizavam modelos como o de Poisson para cálculos de demandas e congestionamento. A partir de 1994, diversas medidas de tráfego foram realizadas e provaram que os modelos probabilísticos tradicionais, aplicados em Engenharia de Tráfego, não poderiam ser aplicados para o perfil de tráfego atual e o modelo auto-similar era o mais adequado. Estas medidas comprovaram a presença de rajadas em todas as escalas de tempo e sua influência direta no congestionamento e no aumento da perda de pacotes. A aplicação de qualquer técnica de Engenharia de Tráfego envolve a definição de uma função objetivo e da escolha de algoritmos de otimização. A função objetivo é escolhida a partir da modelagem matemática do problema em conjunto com os objetivos a serem maximizados ou minimizados e a partir de um conjunto de restrições. Por se tratar de um problema NP completo, deve-se fazer uso de heurísticas para encontrar uma solução viável em tempo computacional adequado. Dentre as diversas classes de heurísticas optou-se por trabalhar com os algoritmos bio-inspirados. A utilização de algoritmos inspirados em sistemas biológicos é pertinente, pois os mesmos têm sucesso ao lidar com casos semelhantes de complexidade, dinamismo, heterogeneidade e incerteza. Além disso, apresentam características como adaptabilidade, tolerância à falhas e robustez às variações ambientais. Este trabalho teve como objetivo principal o desenvolvimento de um sistema de TE que, a partir de um conjunto de requisições com diversas restrições de QoS e impondo um perfil auto-similar para o tráfego, fosse capaz de estabelecer as melhores rotas na rede, atendendo às necessidades das aplicações dos clientes. Esta solução buscou simultaneamente a minimização do custo operacional, o atendimento às restrições de capacidade da rede e o balanceamento de carga na rede. 2

18 Outro objetivo foi a aplicação de diferentes algoritmos bio-inspirados para a solução deste problema de otimização e a realização de um estudo comparativo entre estas diversas técnicas. Modificações realizadas nestes algoritmos permitiram sua adaptação para problemas com codificação binária e a aplicação de técnicas de busca local nos mesmos. De um ponto de vista prático, buscou-se desenvolver um sistema que permitisse a interação entre o algoritmo de otimização e o gestor da rede, facilitando o uso do sistema em situações reais do dia a dia. Facilidades adicionais compreenderam a interação entre o sistema de otimização e o simulador de rede ns2, de forma que os resultados do sistema de otimização pudessem ser executados diretamente no simulador e a análise dos logs gerados nas simulações fosse automatizada, facilitando a visualização dos resultados obtidos. Este trabalho está dividido em 8 capítulos. No Capítulo 2 são apresentados os conceitos básicos sobre Qualidade de Serviço (QoS) em redes de computadores. No Capítulo 3 é detalhada a tecnologia MPLS, feito um estudo comparativo entre redes com MPLS e redes com roteamento IP e introduzidos os conceitos de Engenharia de Tráfego com o uso de MPLS. O Capítulo 4 discute a modelagem do tráfego IP sob a abordagem da auto-similaridade. O Capítulo 5 introduz o referencial teórico sobre otimização e algoritmos bio-inspirados. Nele são discutidos os conceitos de Redes Neurais Artificiais, Algoritmos Genéticos e Sistemas Imunológicos Artificiais. No Capítulo 6 são apresentados o sistema de otimização desenvolvido e os resultados obtidos. O Capítulo 7 traz as conclusões obtidas com o desenvolvimento deste trabalho. 3

19 CAPÍTULO 2 Qualidade de Serviço em Redes IP 2.1 Introdução A Internet pode ser vista como uma coleção de sistemas autônomos (SA) interconectados através de backbones. Cada SA é um nó ou uma subrede independente, que define suas próprias regras tais como protocolo de roteamento, estrutura interna, fabricante de equipamentos e tecnologia de acesso. Para permitir que todos os SA troquem informações entre si é necessário um protocolo de comunicação com um sistema de endereçamento válido em toda a Internet. Este protocolo de comunicação é o Internet Protocol (IP) (Postel 1981a) e é através dele que é possível a troca de informações entre os diversos sistemas autônomos. O IP é um protocolo da camada de rede e tem como principal objetivo o transporte de um datagrama da fonte ao destino. Ele provê o serviço de melhor esforço (best effort), isto é, realiza o transporte dos datagramas sem qualquer tipo de garantia. Assim, não existe garantia da entrega, da ordem dos pacotes, da taxa de transmissão, do atraso máximo ou dos limites relativos à variação do atraso. Na Internet ou nas redes locais o principal objetivo é que a informação chegue sem erros com a maior taxa de transmissão possível. Problemas relativos à variação desta taxa de comunicação ou do aumento do atraso não invalidam a comunicação de dados. O IP foi desenvolvido neste contexto, onde existia a necessidade de um protocolo que pudesse oferecer uma taxa de erro zero para os dados enviados e recebidos (Aras, Kurose, Reeves, & Schulzrinne 1994). 4

20 2.1 Introdução Com o crescimento das aplicações de multimídia (áudio e vídeo) e o aumento da capacidade das redes, aplicações como música, vídeo e animação tornaram-se bastante populares. O transporte de multimídia não é uma tarefa trivial e apresenta dificuldades maiores do que as encontradas pelas aplicações de dados. Além da largura de faixa, existem restrições relacionadas ao atraso máximo, máxima variação do atraso e percentual de perda de pacotes. As aplicações que possuem estas restrições são chamadas de aplicações em tempo real. No cenário atual, as redes de computadores transportam tanto informações de multimídia como de dados. Apesar de possuírem diferentes necessidades, o protocolo IP não trata de forma diferenciada nenhuma aplicação, restringindo o uso de aplicações em tempo real. Para o sucesso de uma rede multimídia devem ser criadas novas técnicas que possibilitem um tratamento diferenciado destas aplicações. As aplicações em tempo real não necessitam apenas de grandes larguras de faixa, mas também de limites relacionados ao atraso e à variação do mesmo, que não são oferecidas pelas redes atuais. Com a crescente integração das aplicações multimídia e serviços tradicionais de dados, o projeto e instalação de novas redes deve levar em conta esta nova realidade. Existem diferenças significativas entre aplicações orientadas a dados daquelas que possuem restrições relacionadas ao tempo. Em aplicações em tempo real, o desempenho está baseado na quantidade de vezes que as mensagens chegam em seu destino no tempo correto. Este tempo de entrega depende do tipo de dado a ser transportado e, assim, são especificados limites para cada mensagem. Se a mensagem chega fora dos limites especificados, esta informação tem pouco ou nenhum valor para comunicação e em alguns casos pode até ser descartada (Aras, Kurose, Reeves, & Schulzrinne 1994). A principal característica de aplicações em tempo real é sua sensibilidade ao atraso, isto é, dependendo da magnitude do atraso, um pacote pode ser considerado perdido (Ramjee, Kurose, Towsley, & Schulzrinne 1994) e não será cabível retransmití-lo (Dempsey, Strayer, & Weaver 1992). As aplicações em tempo real são comumente classificadas como hard ou soft realtime (Aras, Kurose, Reeves, & Schulzrinne 1994). As aplicações hard real-time são aquelas que não toleram erros, enquanto a soft real-time toleram uma determinada percentagem de erros, sem afetar significativamente a qualidade da comunicação. Esta perda pode ser decorrente do overflow do buffer no receptor ou na própria rede. A taxa de perdas depende do tipo de aplicação. Como exemplo, pode-se citar perdas de 5% para a transmissão de voz e de 10% para música (Nagabuchi, Takahashi, & Kitawaki 1992). O transporte de informações médicas pertence a classe de hard real-time e o envio de voz e vídeo são soft real-time. Neste trabalho serão abordadas 5

21 2.1 Introdução aspectos relativos à transmissão de aplicações soft real-time, isto é, transmissão de multimídia. 2.2 Aplicações Multimídia Grande parte das aplicações de multimídia são conhecidas como aplicações de mídia de taxa constante, entretanto existe uma outra classe onde os codificadores trabalham com taxa variável de envio (codificadores de vídeo). Diversas classes de aplicações multimídia dividem os recursos de uma rede entre si e com as aplicações de dados. Atualmente, existem aplicações de fluxo contínuo de áudio e vídeo (tempo real ou armazenados), como rádios na Internet, palestras gravadas em servidores, aplicações interativas como telefonia IP e videoconferência. Assim, classes de aplicações multimídia têm requisitos diferenciados e devem ser atendidas de forma particular, isto é, de acordo com suas necessidades. Cada fonte enviará um fluxo de pacotes para um determinado destino, podendo-se definir um fluxo de pacotes como sendo uma seqüência de pacotes desde uma origem até um destino. As necessidades de cada fluxo podem ser caracterizadas por quatro parâmetros: confiabilidade, atraso, flutuação (variação do atraso) e largura de faixa (Tanenbaum 2002). Esses quatro parâmetros definem a Qualidade de Serviço (Quality of Service - QoS) que cada fluxo exige. A confiabilidade pode ser definida como o percentual de pacotes perdidos que uma aplicação pode tolerar. Para obter pequenas taxas de erros, as aplicações de dados utilizam o Transmisson Control Protocol (TCP) (?). O protocolo TCP provê um serviço confiável de fluxo de bytes fim a fim, em uma inter-rede não confiável. Uma solução para transportar multimídia com confiabilidade seria utilizar o protocolo TCP, pois este protocolo tem associado a ele mecanismos de retransmissão de pacotes, controle de fluxo e controle de congestionamento. Entretanto, a utilização do protocolo TCP apresenta dois problemas fundamentais: aumento do atraso e taxa de transmissão variável de acordo com as condições da rede. O aumento do atraso acontece pelos mecanismos de retransmissão e isto pode invalidar a comunicação para aplicações interativas. Como o TCP possui um mecanismo de controle de congestionamento, sua taxa pode variar em função da atuação deste algoritmo quando a rede torna-se congestionada. Para o transporte de informações em tempo real, deve-se garantir limites mínimos de taxa de transmissão e isto não pode ser feito pelo protocolo TCP. A transmissão de dados multimídia é então realizada através do User Datagram Protocol (UDP) (Postel 1980). O UDP provê um serviço de datagrama não confiável, isto é, não reorganiza os pacotes, não tem controle de fluxo e nem controle de con- 6

22 2.2 Aplicações Multimídia gestionamento. Entretanto, as aplicações multimídia suportam perdas de 1 até 20 por cento, o que implica na não utilização de rigorosos mecanismos de retransmissão. Pode-se lançar mão, para compensar a perda de pacotes, de técnicas de inserção de redundâncias na transmissão que permitem a recuperação da informação, caso sejam perdidos um ou mais pacotes (Kurose & Ross 2006). O atraso, ou retardo, é definido como o tempo que um pacote leva para chegar ao seu destino. O atraso é conseqüência da formação de filas nos roteadores, tempos de propagação e de processamento nos sistemas finais ao longo do trajeto da fonte ao destino. A variação do atraso (delay jitter), ou flutuação, pode ser definido como a diferença dos tempos de chegada entre pacotes sucessivos. A largura de faixa, ou vazão, é a quantidade de informação enviada/recebida por segundo. A definição de QoS através dos parâmetros de atraso, variação do atraso, vazão e perda de pacotes não é a única forma possível. Apesar de ser bastante utilizada existem outras abordagens das entidades International Telecommunications Union (ITU), European Telecommunications Standards Institute (ETSI) e Internet Engineering Task Force (IETF). De acordo com o ITU-T, um serviço é algo provido por um plano de serviço para um usuário final (um host, sistema final ou um elemento de rede) e que utiliza capacitações de transferência e funções de controle e gerenciamento associadas, para entregar a informação do usuário especificada de acordo com o nível de serviço (Gozdecki, Jajszczyk, & Stankiewicz 2003) (Union 2001). Existem três noções de QoS definidas: intrínseca, a percebida e a avaliada, que constituem o modelo geral (Gozdecki, Jajszczyk, & Stankiewicz 2003) (Hardy 2001). A Figura 2.1 apresenta o modelo geral de QoS (Hardy 2001). Figura 2.1: Modelo Geral de QoS 7

23 2.2 Aplicações Multimídia A QoS intrínseca é determinada pelo projeto da rede de transporte e dos mecanismos de provisionamento das redes de acesso, terminações e conexões (Hardy 2001). Ela é obtida pela comparação das características de desempenho medida e esperada. Outro aspecto que deve ser ressaltado é que a QoS intrínseca não é influenciada pela percepção do usuário. A QoS percebida reflete a experiência do usuário em relação ao uso de um determinado serviço. Esta medida é subjetiva e irá refletir a relação entre expectativas e a experiência do mesmo. A QoS avaliada começa a ser analisada quando o cliente decide se irá continuar a usar serviço. Fatores como preço do serviço, qualidade percebida e forma com que o cliente é atendido quando em dificuldade influenciam a decisão do cliente. A determinação do nível de QoS global deve ser avaliada em todas as dimensões (intrínseca, avaliada e percebida) separadamente. Deve-se separar as responsabilidades de cada entidade no processo de obtenção de QoS. Na próxima seção serão abordadas as principais técnicas para obtenção de QoS intrínseca. 2.3 Técnicas para Obtenção de Qualidade de Serviço Diferentes técnicas podem ser utilizadas para adequação das redes atuais para suportarem aplicações multimídia. Estas técnicas podem ser utilizadas em conjunto e algumas envolvem aspectos estruturais, enquanto outras envolvem a modelagem do tráfego e o tratamento diferenciado dos dados. Uma solução simples é superdimensionar todos os elementos de rede (roteadores, enlaces e elementos de rede), assim problemas relativos a atraso, variação do atraso e perda de pacotes serão minimizados e a largura de faixa será aumentada. Esta técnica, apesar de simples, aumenta o custo e não garante que outras aplicações não consumirão toda a largura de faixa excedente. Outra abordagem é o aumento da área de armazenamento nos buffers dos roteadores e nos sistemas finais. Esta atitude resolve o problema da variação do atraso, mas aumenta o atraso. Tanto o superdimensionamento quanto o aumento de buffers não resolve o problema de Qualidade de Serviço e servem apenas como métodos para melhoria de projeto. A modelagem do tráfego ocorre pelo ajuste do tráfego médio de saída através de um acordo realizado entre o cliente e a concessionária, chamado de nível de serviço. A modelagem do tráfego ajuda a controlar o congestionamento, pois sabe-se a priori a quantidade de tráfego que pode circular em cada ponto da rede. Para que os cli- 8

24 2.3 Técnicas para Obtenção de Qualidade de Serviço entes obedeçam o contrato, são impostas multas contratuais e a concessionária faz o monitoramento do tráfego (policiamento de tráfego). Duas técnicas podem ser utilizadas para realizar o policiamento do tráfego: balde furado (Turner 1986) e balde de símbolos. O algoritmo do balde furado trabalha para gerar a taxa de transmissão de saída constante, independente do fluxo de entrada. Ele funciona como um balde de água furado, onde o fluxo de saída será constante, independente da rajada de entrada no balde. Este padrão rígido de saída não é desejável, pois em muitos casos é melhor permitir que a saída aumente um pouco sua velocidade quando chegarem rajadas maiores ao invés de descartar pacotes. O algoritmo de balde de símbolos trabalha com permissões de transmissão através da utilização de fichas. O algoritmo é composto por um gerador de permissões de envio e um buffer de armazenamento de pacotes com uma capacidade máxima de armazenamento de fichas. A cada unidade de tempo são geradas permissões de envio, fichas, e quando um fluxo de pacotes entra no sistema, é liberado uma quantidade de pacotes igual ao número de símbolos que ele possui no balde. Se a rajada de entrada for maior do que o número de fichas, os pacotes são enfileirados. Assim, neste tipo de abordagem é possível a modelagem do tráfego e permitir rajadas controladas na rede. Estas técnicas são eficazes como mecanismos de controle de fluxo, mas não resolvem o problema do tratamento distinto das aplicações de dados e multimídia. Para isto são utilizadas técnicas conhecidas como disciplinas de enfileiramento. A função da camada de rede é transferir os pacotes da fonte ao destino independentemente do tipo de serviço de rede utilizado, tarefa que é realizada através de um dispositivo denominado roteador. Um roteador é composto por dois processos principais: roteamento e encaminhamento. Roteamento é o processo de decisão de qual rota a ser usada e envolve o preenchimento e atualização das tabelas de roteamento (algoritmos de roteamento). Encaminhamento é o processo que faz a manipulação do pacote quando o mesmo chega, e depois faz o direcionamento do pacote para a linha de saída de acordo com a tabela de roteamento. Um algoritmo de roteamento é a parte do software da camada de rede responsável pela decisão de qual linha de saída será usada para a transmissão de um pacote que acabou de chegar. Se for utilizada uma sub-rede de datagramas a decisão de roteamento é feita para cada pacote. Se for utilizada uma sub-rede de circuito virtual, a decisão de roteamento é feita no estabelecimento do circuito virtual. Algumas vezes isto é chamado de roteamento por sessão, pois uma rota permanece em vigor durante a sessão de usuário (Tanenbaum 2002). O roteador possui uma fila de entrada (buffer de entrada) e filas nas saídas (buffers 9

25 2.3 Técnicas para Obtenção de Qualidade de Serviço de saída). O algoritmo de enfileiramento pode ser visto como uma alocação tanto de largura de banda (quais pacotes serão transmitidos) quanto no buffer (quais pacotes serão descartados). Ele também afeta diretamente a latência experimentada por um pacote, pois determina quanto tempo um pacote deve esperar para ser transmitido. A combinação destes dois fatores pode ser utilizado como forma de obtenção de QoS. Uma fila é definida basicamente por três parâmetros: uma política de enfileiramento, um algoritmo de escalonamento e a política de descarte. A política de enfileiramento diz respeito a como os pacotes serão armazenados. A política de escalonamento determina a ordem na qual os pacotes são transmitidos. Já a política de descarte determina quais são os pacotes que devem ser descartados. Quando o buffer encher, esta política determina qual ou quais pacotes serão descartados. Dois outros conceitos muito importantes dizem respeito à justiça e priorização de pacote. A justiça está relacionada com a permissão de transmissão, na qual o algoritmo garante que todas as fontes serão prontamente atendidas. A priorização de pacotes trabalha com a transmissão de mais pacotes de uma fila em detrimento das demais. Existem algoritmos justos de filas, mas sem priorização, e algoritmos com prioridade e sem justiça. Estas idéias devem sempre andar juntas para o provimento de QoS nas filas dos roteadores. As principais disciplinas de enfileiramento são FIFO, FIFO com prioridade, Enfileiramento Justo e Enfileiramento Justo Ponderado. FIFO A idéia do enfileiramento First-In-First-Out (FIFO) também chamado de First-Come- First-Served (FCFS) é intuitiva. O primeiro pacote que chega em um roteador é o primeiro pacote a ser transmitido. Quando a fila estiver cheia o roteador começa a fazer o descarte dos pacotes. A política de descarte geralmente utilizada é a tail drop, isto é, os pacotes que estão no fim da fila são descartados. Este mecanismo é encontrado na maioria dos roteadores, mas não fornece mecanismo de priorização de pacotes. FIFO com Prioridade FIFO com prioridade é uma evolução deste sistema e é a primeira alternativa de priorização de pacotes. A utilização deste mecanismo envolve a criação de prioridades para as diversas classes de aplicações. Pode-se então marcar pacotes multimídia com prioridade acima dos pacotes de dados e criar filas separadas para cada tipo de aplicativo. Os roteadores então implementam múltiplas filas FIFO, uma para cada classe de prioridade e enquanto existir pacotes na fila de maior prioridade, eles serão transmitidos. 10

26 2.3 Técnicas para Obtenção de Qualidade de Serviço A prioridade de cada pacote é marcada no cabeçalho IP do pacote, no campo ToS (Type Of Service). Os pacotes não classificados são marcados como normais e as filas com prioridades mais altas dispõem de maior garantia de QoS. O principal problema deste mecanismo de enfileiramento é que aplicações prioritárias podem impedir outras de transmitir pacotes. Enquanto existir pelo menos um pacote em uma fila de alta prioridade, as filas de prioridade mais baixa não são servidas. Isto pode ser resolvido fazendo um contrato com os clientes e penalizando financeiramente os que enviam acima da taxa acordada. Os pacotes de baixa prioridade deveriam ter um preço mais baixo do que os de alta prioridade. Estes mecanismos tornam-se inviáveis quando implementados em um ambiente descentralizado como a Internet devido a sua complexidade. Para resolver este problema de justiça foi desenvolvido um mecanismo chamado de Enfileiramento Justo. Enfileiramento Justo Outra forma é desenvolver um mecanismo justo, mas sem prioridade. Este mecanismo tem o objetivo de criar uma fila separada para cada fluxo em um roteador. Este método é conhecido como enfileiramento justo (fair queuing -FQ). O escalonamento é feito através do algoritmo de round-robin (filas são atendidas em seqüência, cada fila recebendo o mesmo tipo de atendimento, sem prioridades). Quando uma fonte aumentar seu tráfego acima da velocidade de atendimento do algoritmo de escalonamento, os pacotes adicionais deste fluxo serão descartados. Apesar de interessante este mecanismo não resolve o problema relativo aos sistemas multimídia, pois não existe um mecanismo de priorização. Assim, é necessário a criação de um mecanismo de escalonamento justo e ponderado. Este mecanismo deve permitir que todas as aplicações consigam transmitir e que pacotes multimídia tenham prioridade em relações aos demais. Enfileiramento Justo Ponderado O Enfileiramento Justo Ponderado (Weighted Fair Queuing - WFQ) permite que um peso seja atribuído a cada fluxo (fila). Isto garante que todas as filas serão atendidas e pode-se priorizar algumas em detrimento de outras. A prioridade indica quantos bits serão transmitidos a cada vez que o mecanismo de escalonamento atender a fila. Indiretamente controla-se a latência e a largura de faixa de cada aplicação. Os mecanismos de enfileiramento atuam de forma limitada e não garantem o QoS de uma rede. Existem mecanismos mais elaborados, como os Serviços Integrados e Serviços Diferenciados, que possibilitam um controle maior pelos administradores. 11

27 2.3 Técnicas para Obtenção de Qualidade de Serviço Gerenciador de Qualidade de Serviço O gerenciador de Qualidade de Serviço possibilita o gerenciamento e a alocação de recursos (Coulouris, Dollimore, & Kindberg 2001). Ele tem duas responsabilidades básicas: controle de admissão e negociação. A aplicação envia para o gerenciador as necessidades de QoS e ele, por sua vez, procura em uma base de dados se a quantidade de recursos disponíveis é suficiente para atender a demanda solicitada. Se existirem suficientes recursos para atender a demanda, a solicitação é encaminhada para o controle de admissão. Se a resposta for negativa, a aplicação pode ser configurada para reduzir seus recursos e o processo é repetido (Coulouris, Dollimore, & Kindberg 2001). O controle de admissão disciplina o acesso aos recursos para prevenir a sobrecarga da rede e não aceita requisições que violem as garantias de QoS. Se a resposta for positiva, o controle de admissão faz a reserva de recursos e é feito um contrato de reserva com a aplicação. Este contrato lista todos os recursos disponíveis para aquela aplicação e a validade dos mesmos. Qualquer alteração desejada deve ser informada ao gerenciador de QoS e o processo se repete. Especificação de Fluxo O conjunto de parâmetros que especificam a Qualidade de Serviço é conhecido como especificação de fluxo (flow spec) (Coulouris, Dollimore, & Kindberg 2001). O Request for Comment (RFC) 1363 (Partridge 1992) utiliza 11 bits para especificar um fluxo e agrupa os parâmetros em largura de faixa (máxima taxa de transmissão, unidade máxima de transmissão e tamanho do balde de símbolos), atraso (atraso mínimo e máximo jitter) e perda (sensibilidade a perdas, sensibilidade a perdas em rajadas e intervalo das perdas). A largura de faixa é especificada por quatro atributos. A unidade máxima e a taxa máxima de transmissão determinam a máxima largura de faixa utilizada pelo fluxo. O tamanho do balde de fichas determina a taxa e o tamanho das rajadas do fluxo. O atraso é especificado pelo seu valor mínimo de atraso suportado (isto evita problemas de super otimização para pequenos atrasos) (Coulouris, Dollimore, & Kindberg 2001) e a máxima flutuação aceita. As perdas são especificadas através dos parâmetros que indicam o número total de perdas aceitáveis em um determinado intervalo e o número máximo de perdas consecutivas. 12

28 2.3 Técnicas para Obtenção de Qualidade de Serviço Serviços Integrados A Intserv é uma estrutura desenvolvida pela IETF para fornecer garantias de Qualidade de Serviço individualizadas às sessões de aplicações individuais (Braden, Clark, & Shenker 1994; Kurose & Ross 2006). Serviços Integrados trabalham com a reserva de recursos e estabelecimento de sessão. Para a reserva de recursos, o roteador precisa saber a quantidade de recursos que estão sendo utilizados na rede e isto pode ser obtido pelo processo de estabelecimento de sessão. Antes de se iniciar uma nova sessão é necessário que a aplicação envie uma solicitação para a rede e assim os recursos são alocados em cada nó da rede. Existem duas classes de serviços: Qualidade de Serviço garantida e serviço de rede de carga controlada. Na Qualidade de Serviço garantida são estabelecidos limites rígidos para os atrasos de fila que um pacote sofrerá no roteador. Na classe de serviço de rede de carga controlada, a sessão receberá uma Qualidade de Serviço não tão rígida. O principal protocolo da IETF para a arquitetura de serviços integrados é o Re- Source reservation Protocol (RSVP) (Braden, Zhang, & Berson 1997). Este protocolo é utilizado para realizar a reserva de recursos e utiliza roteamento por multicast com spanning tree, onde cada grupo recebe um endereço de grupo. Para transmitir dados a um grupo, um transmissor coloca o endereço desse grupo em seus pacotes. Em seguida, o algoritmo de roteamento por multicast padrão constrói uma spanning tree que cobre todos os membros (Tanenbaum 2002). O principal problema desta abordagem é a reserva de recursos antes do envio dos pacotes. Isto leva a problemas de escalabilidade e excessiva complexidade dos elementos de roteamento. Para sanar este problema desenvolveu-se uma outra abordagem, chamada de Serviços Diferenciados. Serviços Diferenciados Na arquitetura de serviços diferenciados (Blake, Black, Carlson, Davies, Wang, & Weiss 1998) não existe a necessidade de configuração antecipada e são criadas várias classes de serviços. Para cada classe de serviço é determinado um tipo de encaminhamento. O encaminhamento expedido possui dois tipos de serviços: regular e expedido. A maior parte dos pacotes é classificada como regular e uma minoria é expedida. Os pacotes expedidos devem ser capazes de transitar pela sub-rede como se nenhum outro pacote estivesse presente. Nesta classe são inseridos os pacotes multimídia. Os pacotes regulares estão sujeitos a atrasos e tem menor prioridade. Um modo de implementar essa estratégia é programar os roteadores para terem duas 13

29 2.3 Técnicas para Obtenção de Qualidade de Serviço filas de saída correspondentes a cada linha de saída, uma para pacotes expedidos e outra para pacotes regulares. O encaminhamento garantido especifica quatro classes de prioridade e cada classe terá seus próprios recursos. Além disso ele define três probabilidades de descarte de pacotes que estejam sofrendo congestionamento: baixo, médio e alto. O algoritmo envolve três etapas: a etapa 1 realiza a classificação dos pacotes, na etapa 2 os pacotes são marcados de acordo com sua classe e na etapa 3 os pacotes passam por um filtro modelador/regulador. Este filtro pode retardar ou descartar alguns deles para modelar os quatro fluxos em formas aceitáveis. As técnicas para obtenção de QoS permitem uma melhora significativa, mas ainda dependem dos algoritmos de roteamento tradicionais das redes IP. Como o algoritmo de roteamento IP não fornece garantias, não é possível dar garantias para as aplicações multimídia invalidando assim qualquer estratégia de Engenharia de Tráfego. Para garantir QoS em redes IP é necessária a utilização de mecanismos que permitam um maior controle sobre os recursos da rede. Com este objetivo foi desenvolvido o Multiprotocol Label Switching (MPLS), que será estudado no próximo capítulo. 14

30 CAPÍTULO 3 Multiprotocol Label Switching (MPLS) 3.1 Introdução A s técnicas para garantia de QoS permitem uma melhora significativa, mas ainda dependem dos algoritmos de roteamento das redes IP. Multiprotocol Label Switching (MPLS) é um framework da Internet Engineering Task Force (IETF) que provê o encaminhamento de fluxos de tráfego através de uma rede (Trillium 2005) (Rosen, Viswanathan, & Callon 2001). Pode ser definida como uma técnica de encaminhamento onde os pacotes são marcados com rótulos, sendo que estes rótulos identificam o tratamento que os pacotes irão receber na rede (Awduche, Malcolm, Agogbua, O Dell, & McManus 1999). MPLS tem como principal objetivo reduzir a complexidade do encaminhamento dos pacotes IP e possibilitar a utilização de Engenharia de Tráfego em redes de datagrama. No roteamento em redes IP, para cada datagrama o roteador busca em sua tabela de roteamento o prefixo de rede que se adapte ao endereço do mesmo, com o objetivo de se determinar o enlace de saída. Como o prefixo de rede tem diferentes tamanhos, o tempo de busca varia. A idéia básica do MPLS é aumentar a velocidade de processamento dos datagramas IP, encaminhando os pacotes baseados em rótulos curtos e de tamanho fixo. O processo de encaminhamento baseado no rótulo aumenta a velocidade de processamento, possibilitando um melhor desempenho. Uma rede MPLS pode oferecer garantias de Qualidade de Serviço sem a necessidade de enlaces dedicados. O MPLS foi desenvolvido para converter backbones IP (best effort) em meios 15

31 3.1 Introdução de transporte por classes de negócio, capazes de manipular dados em tempo real (Porwal, Yadav, & V.Charhate 2008). O encaminhamento de pacotes através do rótulo é somente realizado dentro de um domínio MPLS. Um domínio MPLS pode ser definido como um conjunto de roteadores que possuem a capacidade de entender pacotes MPLS. É composto de três entidades básicas, sendo que duas entidades ficam localizados na fronteira do domínio, onde um roteador tem como função inserir o rótulo no pacote e outro da retirada do mesmo. O roteador responsável por inserir o rótulo no pacote é chamado de Ingress Label Edge Router (ingress LER) e o responsável pela retirada do rótulo é chamado de Egress Label Edge Router (egress LER). A terceira entidade é a responsável pelo roteamento dentro do domínio, sendo estes roteadores chamados de Label Switching Router (LSR). Assim, ao entrar em um domínio MPLS, todo o processamento sai da camada 3 (camada de rede) e vai para camada MPLS, e ao sair ele retorna novamente para a camada 3. Quando um pacote entra em um domínio MPLS ele recebe um rótulo, inserido entre a camada de enlace e a camada de rede, e a partir daí todo o processo de encaminhamento será realizado pelo rótulo. Alguns autores classificam que os rótulos são inseridos na camada 2,5. Ao sair deste domínio o rótulo é retirado e o processo de encaminhamento do pacote será realizado pela rede IP. Para realizar o roteamento, os LSR trocam o rótulo que chega com o pacote por um outro rótulo, que informa ao próximo LSR como encaminhar este pacote. Ao chegar ao nó de saída, um egress LER, este retira o rótulo e o cabeçalho MPLS, copia a informação de TTL do rótulo para o cabeçalho do protocolo IP, recalcula o checksum e encaminha o pacote de acordo com as informações presentes no cabeçalho do protocolo IP. A Figura 3.1 ilustra o conceito de domínio MPLS. Figura 3.1: Domínio MPLS 16

32 3.1 Introdução Protocolos de Roteamento versus MPLS Os protocolos de roteamento, como vetor de distância e estado de enlace, sempre buscam o menor caminho entre os nós. Em topologias onde existem caminhos alternativos, a escolha do menor caminho não otimiza a utilização dos recursos da rede. A tecnologia MPLS possui suporte ao roteamento explícito, isto é, podem ser criados caminhos dedicados (circuitos virtuais) em uma rede de datagrama. Cada caminho é chamado de label switch path (LSP). Múltiplos caminhos podem ser usados simultaneamente para aumentar o desempenho de uma dada fonte a um dado destino (Sun, Bhaniramka, & Jain 2000). Assim, é possível realizar o balanceamento de carga utilizando diversas rotas para o escoamento do tráfego. O MPLS dá suporte à Engenharia de Tráfego (TE), que tem como objetivo tornar as operações de rede mais simples e eficientes e, ao mesmo tempo, otimizar a utilização dos recursos de rede (Sun, Bhaniramka, & Jain 2000). MPLS realiza as seguintes funções (Trillium 2005): especifica mecanismos para gerenciar fluxos de tráfego de várias granularidades; é independente dos protocolos das camadas 2 e 3; realiza o mapeamento de endereços IP para rótulos de tamanho fixo; faz a interface com os protocolos de roteamento existentes Descrição do Rótulo O protocolo MPLS possui um cabeçalho, chamado de shim header, que é inserido entre o cabeçalho IP e o cabeçalho da Ethernet. Existe a possibilidade de um pacote transportar mais do que um shim header e o conjunto destes cabeçalhos é chamado de MPLS stack (Rosen, Tappan, Fedorkow, Rekhter, Farinacci, Li, & Conta 2001). Para facilitar o encaminhamento, o rótulo tem tamanho fixo e curto. O formato do label stack é apresentado na Figura 3.2. Figura 3.2: Rótulo MPLS O campo label (20 bits) possui o valor do rótulo e possui as informações necessárias para realizar o encaminhamento dos pacotes. Exp (Class of Service (CoS)) (3 bits) 17

33 3.1 Introdução afeta os algoritmos de escalonamento e algoritmos de descarte. BS (Bottom of a Stack) é um bit que é 1 na última entrada na pilha de rótulos (Rosen, Tappan, Fedorkow, Rekhter, Farinacci, Li, & Conta 2001). O campo TTL possui 8 bits e indica o número de nós pelos quais o pacote irá passar em um domínio MPLS. Empilhamento de Rótulos Um pacote MPLS pode ter mais de um rótulo e este processo de empilhamento é realizado pelos roteadores LSR e LER. Estrutura de Dados MPLS Cada roteador LSR possui uma base de dados que guarda as informações sobre rótulos e instruções para o encaminhamento de pacotes. Existem dois planos. O data plane que se preocupa com o encaminhamento dos dados, e o control-plane, que controla a forma de encaminhamento. Os roteadores MPLS trabalham com os rótulos de acordo com a tabela de encaminhamento Forwarding Information Base (FIB) (Trotter 2001). Esta tabela possui três atributos. Next Hop Label Forwarding Entry (NHLFE) traz informações suficientes para realizar o encaminhamento do pacote. NHLFE tem dois campos, o endereço do próximo salto e se o cabeçalho MPLS deve ser trocado, retirado ou colocado. O Incoming Label Map (ILM) contém o mapeamento dos pacotes que entram e a tabela NHLFE. FEC-to-NHLFE (FTN) contém mapeamento entre os pacotes que chegam (FEC) e entradas NHLFE. A principal estrutura de dados do LSR é chamada de (Next Hop Label Forwarding Entry (NHLFE)) e esta tabela contém informações sobre o encaminhamento de pacotes. Sua primeira estrutura de dados é utilizada para interpretar os rótulos de entrada (Incomming Label Map (ILM)). Outra estrutura serve para inserir rótulos de saída em LSRs ou LERs de ingresso (Next Hop Label Forwarding Entry (NHLFE)). Uma terceira estrutura auxilia os LERs de ingresso a descobrir qual rótulo deve ser adicionado ao pacote (FEC-to-NHLFE(FTN)) Forward Equivalence Class (FEC) Como alguns grupos de pacotes possuem os mesmos requisitos de Qualidade de Serviço, o protocolo MPLS permite que fluxos de pacotes possam ser inseridos em classes de encaminhamento (Forward Equivalence Classes (FECs)). Assim, grupos de datagramas IP podem ser classificados no mesmo FEC e serão encaminhados da mesma forma, isto é, seguirão o mesmo caminho na rede MPLS. O campo rótulo (label) 18

34 3.1 Introdução possui 20 bits e um identificador ID usado para representar uma determinada FEC (Davie, Lawrence, McCloghrie, Rosen, Swallow, Rekhter, & Doolan 2001). O rótulo tem significado local e é utilizado para identificar uma FEC. Existem várias formas de se construir uma classe de equivalência de encaminhamento. A primeira forma é fazer o mapeamento direto entre um determinado prefixo IP de destino a um determinado FEC. Uma outra forma é associar os egress LER a determinados FECs, isto é, os pacotes que foram encaminhados para um mesmo egress LER recebem o mesmo FEC. A terceira forma é associar a cada fluxo um determinado FEC. Este método tem como diferencial permitir o controle máximo do tráfego em uma rede. Quando dois fluxos possuem o mesmo destino e seguem caminhos diferentes é uma indicação da utilização da tecnologia MPLS para o balanceamento de carga Distribuição de Rótulos O protocolo MPLS necessita de um sistema de distribuição de rótulos entre os roteadores LERs e LSRs e isto é realizado pelos protocolos de distribuição de rótulos, chamados de Label Distribution Protocol (LDP). Um LDP define um conjunto de procedimentos e mensagens que os LSRs trocam entre si para informar os mapeamentos de rótulos. Tabela de Rótulos Cada LSR possui uma tabela de rótulos denominada Label Information Base (LIB). Antes de encaminhar os pacotes, os roteadores consultam esta tabela para determinar o próximo salto do pacote (Thomas & Gray 2001). Um LDP associa uma classe de equivalência (FEC) com cada rótulo que distribui. Dois LSRs que usam LDP para trocar associações entre rótulo e FECs são conhecidos como LDP peers, e o LDP possui mecanismos de discovery, isto é, descobrimento de pares LDP. Quando um LDP descobre seu par, ele estabelece uma sessão LDP. Nesta fase ele negocia alguns parâmetros, como o método de distribuição de rótulos. Existem dois métodos de distribuição de rótulos, o primeiro trabalha com envio de associações de FEC-rótulo para seus pares quando ele está pronto para encaminhar pacotes do FEC por meio do MPLS. O outro método trabalha informando as associações sob demanda, isto é, quando alguma entidade faz a solicitação. 19

35 3.1 Introdução Mensagens MPLS Os LSR precisam comunicar-se com seus pares para determinarem qual rótulo os roteadores necessitam. Os protocolos mais utilizados para isso são: Constraint-based Routed-Label Distribution Protocol (CR-LDP), Resource Reservation Protocol (RSVP) e Border Gateway Protocol BGP. As principais mensagens que circulam na rede são: Discovery messages: para anúncio e manutenção da presença de LSRs em uma rede; Session messages: estabelecem, mantêm e terminam sessões entre pares LDP; Advertisement messages: estabelecem, criam, mudam e apagam o mapeamento de rótulos para FECs; Notification messages: para avisos e erros. 3.2 Comparativo entre Roteamento IP e MPLS Através do estudo teórico pode-se concluir que a tecnologia MPLS é adequada para o desenvolvimento de técnicas de QoS em redes IP. Achou-se necessário, entretanto, realizar um estudo comparativo mais aprofundado entre o roteamento IP e a tecnologia MPLS, antes de escolher definitivamente este protocolo como base do estudo desta tese Topologia Wei-sun A primeira topologia a ser utilizada neste estudo foi a proposta por Wei Sun (Sun, Bhaniramka, & Jain 2000), no primeiro trabalho em que realizou um estudo comparativo por simulações no ns2 (Simulator 2005) entre MPLS e roteamento IP. Esta topologia, apesar de simples, é ideal para estudar o desempenho das tecnologias em relação ao balanceamento de carga. A Figura 3.3 apresenta a topologia de simulação (Sun, Bhaniramka, & Jain 2000), com 6 nós, 3 fontes e 3 sorvedouros de tráfego. O primeiro gerador envia pacotes UDP de tamanho de 210 bytes, o segundo envia pacotes TCP com tamanho de 512 bytes e o terceiro envia pacotes TCP com tamanho de 1024 bytes. Todos os enlaces possuem atraso de 5ms, o enlace E1 apresenta capacidade de 60 Mbps, o E2 e E3 de 45 Mbps, E4 e E5 de 15 Mbps e E6 de 65 Mbps. 20

36 3.2 Comparativo entre Roteamento IP e MPLS Figura 3.3: Topologia Wei-sun A fonte UDP envia pacotes a uma taxa de 45 Mbps e as fontes TCP utilizam o algoritmo de controle de congestionamento Tahoe (Postel 1981b). As simulações tiveram duração de 30 segundos e a análise foi feita através de scripts desenvolvidos na linguagem awk. Nas simulações foram coletados os dados de atraso, flutuação, vazão e perda de pacotes. Realizou-se 10 simulações para cada uma das formas de roteamento (sem MPLS e com MPLS). A Tabela 3.1 apresenta os resultados da análise da perda de pacotes para as três fontes. As perdas com a utilização da tecnologia MPLS foram inferiores a 1% e a perda média foi de 0, 1%, enquanto que no roteamento IP as perdas foram superiores a 2, 5% e a perda média foi de 2, 9%. Tabela 3.1: Topologia Wei-sun: Perda de Pacotes Fonte Roteamento Pacotes Enviados Perdidos Percentual UDP MPLS ,11 % UDP IP ,80 % TCP 512 bytes MPLS ,21 % TCP 512 bytes IP ,23 % TCP 1024 bytes MPLS ,08 % TCP 1024 bytes IP ,63% A Tabela 3.2 apresenta os resultados do atraso sofrido pelos pacotes nas simulações. O atraso foi menor ao utilizar-se a tecnologia MPLS, pois houve redução de 1, 31% para fonte UDP, de 3, 80% para fonte TCP 512 bytes e 5, 08% para fonte TCP 1024 bytes. É interessante observar que, apesar de uma maior utilização da rede na tecnologia MPLS, ocorreu uma redução no atraso médio dos pacotes. A Tabela 3.3 apresenta os resultados da flutuação sofrida pelos pacotes nas simu- 21

37 3.2 Comparativo entre Roteamento IP e MPLS Tabela 3.2: Topologia Wei-sun - Atraso [ms] Fonte Roteamento Médio [ms] Máximo [ms] Mínimo [ms] Desvio [ms] UDP IP 27,16 30,82 25,16 0,19 UDP MPLS 26,81 26,94 25,16 0,13 TCP 512 bytes IP 27,56 29,02 25,03 0,25 TCP 512 bytes MPLS 26,55 28,19 25,06 0,27 TCP 1024 bytes IP 27,93 31,05 25,04 0,36 TCP 1024 bytes MPLS 26,58 32,65 25,08 0,20 lações. A flutuação foi menor ao utilizar-se a tecnologia MPLS, uma vez que houve redução significativas para as fontes TCP e um pequeno aumento para a fonte UDP. O aumento na fonte UDP é insignificante, pois dado seu pequeno valor não influencia o QoS. Tabela 3.3: Topologia Wei-sun - Análise da Flutuação [µs] Fonte Roteamento Média Máxima Mínima Desvio UDP IP 3,15 456,00 0,00 20,26 UDP MPLS 5,21 231,00 0,00 16,10 TCP 512 bytes IP 119, ,2 0,00 136,37 TCP 512 bytes MPLS 1, ,00 0,00 35,10 TCP 1024 bytes IP 229, ,00 0,00 241,25 TCP 1024 bytes MPLS 2, ,00 0,00 74,87 A Tabela 3.4 apresenta os resultados da vazão das simulações. Com a tecnologia MPLS ocorreu o aumento da vazão da fonte UDP de 2, 79%, para a fonte TCP de 512 bytes de 355% e para a fonte TCP de 1024 bytes de 337%. Tabela 3.4: Topologia Wei-sun - Análise da Vazão [Mbps] Fonte Roteamento Média Máxima Mínima Desvio UDP IP 43,72 45,53 0,00 2,74 UDP MPLS 44,94 45,70 0,00 1,69 TCP 512 bytes IP 0,40 8,83 0,00 1,11 TCP 512 bytes MPLS 1,42 8,83 0,00 2,84 TCP 1024 bytes IP 0,81 14,47 0,00 2,03 TCP 1024 bytes MPLS 2,73 15,32 0,00 4,62 Através dos resultados apresentados nas Tabelas 3.1, 3.2, 3.3 e 3.4 pode-se concluir que a tecnologia MPLS apresentou resultados superiores ao roteamento IP aumentando a ocupação da rede, reduzindo o atraso e variação do atraso e aumentando a vazão da rede. 22

38 3.2 Comparativo entre Roteamento IP e MPLS Topologia Mesh A Figura 3.4 apresenta a topologia de simulação Mesh. Esta topologia possui 6 nós, 3 geradores de tráfego e três destinos. O primeiro gerador envia pacotes UDP de tamanho de 210 bytes, o segundo envia pacotes TCP com tamanho de 512 bytes e o terceiro envia pacotes TCP com tamanho de 1024 bytes. Figura 3.4: Topologia Mesh A fonte UDP envia pacotes a uma taxa de 45 Mbps e as fontes TCP utilizam o algoritmo de controle de congestionamento Tahoe (Postel 1981b). Ambas as fontes iniciam no primeiro segundo e terminam no décimo. Todos os enlaces possuem atraso de 5 ms e capacidade de 45 Mbps. A Tabela 3.5 apresenta os resultados da perda de pacotes. Não ocorreram perdas nas simulações com MPLS e as perdas ocorridas na simulação sem MPLS foram bem significativas (35, 38% e 58, 06% para fontes TCP). Com MPLS a taxa de utilização da rede de 2, 91% superior (22590 pacotes a mais em 29 segundos de simulação). Tabela 3.5: Topologia Mesh - Perda de Pacotes Fonte Roteamento Enviados Recebidos Perdidos (%) UDP IP ,015 UDP MPLS ,000 TCP 512 bytes IP ,38 TCP 512 bytes MPLS ,00 TCP 1024 bytes IP ,06 TCP 1024 bytes MPLS ,00 A Tabela 3.6 apresenta os resultados do atraso sofrido pelos pacotes nas simulações. O atraso foi menor ao utilizar-se a tecnologia MPLS, houve redução de 10, 52% para fonte UDP, de 8, 75% para fonte TCP 512 bytes e 7, 12% para fonte TCP 1024 bytes. A Tabela 3.7 apresenta os resultados da flutuação sofrida pelos pacotes nas si- 23

39 3.2 Comparativo entre Roteamento IP e MPLS Tabela 3.6: Topologia Mesh - Atraso Fonte Roteamento Média [ms] Máxima [ms] Mínima [ms] Desvio [ms] UDP IP 22,259 23,102 20,140 0,103 UDP MPLS 20,140 20,140 20,140 0,000 TCP 512 bytes IP 22,188 23,003 20,027 0,714 TCP 512 bytes MPLS 20,402 21,153 20,027 0,083 TCP 1024 bytes IP 22,197 23,217 20,034 0,952 TCP 1024 bytes MPLS 20,721 22,367 20,034 0,053 mulações. Houve redução significativa da flutuação ao utilizar-se a tecnologia MPLS, devido à competição de recursos impostas pelo roteamento IP. Como exemplo, pode-se citar a fonte TCP 1024 bytes, onde ocorreu uma redução de 110 vezes com o uso do MPLS. Tabela 3.7: Topologia Mesh - Flutuação Fonte Roteamento Média [µs] Máxima [µs] Mínima [µs] Desvio [µs] UDP IP 0, ,000 0,000 1,234 UDP MPLS 0,000 0,000 0,000 0,000 TCP 512 bytes IP 179, ,000 0, ,463 TCP 512 bytes MPLS 5, ,000 0,000 30,170 TCP 1024 bytes IP 322, ,000 0, ,412 TCP 1024 bytes MPLS 2, ,000 0,000 23,890 A Tabela 3.8 apresenta os resultados da vazão das simulações. Com a utilização da tecnologia MPLS ocorreu o aumento na vazão de todas as fontes. Para a fonte TCP 512 bytes ocorreu um aumento de 346, 8 vezes e, para a TCP 1024 bytes, um aumento de 1106, 67 vezes em relação à vazão sem a tecnologia MPLS. Tabela 3.8: Topologia Mesh - Vazão Fonte Roteamento Média [Mbps] Máxima [Mbps] Mínima [Mbps] Desvio [Mbps] UDP IP 43,490 45,020 0,00 8,05 UDP MPLS 43,500 45,024 0,000 8,058 TCP 512 bytes IP 0,006 3,091 0,000 0,100 TCP 512 bytes MPLS 1,683 8, ,903 TCP 1024 bytes IP 0,003 3,405 0,000 0,084 TCP 1024 bytes MPLS 3,215 17,024 0,000 0, Topologia Dez Nós A Figura 3.5 apresenta a topologia de simulação para uma rede com 10 nós, 10 geradores de tráfego e 10 destinos. Existem 5 geradores UDP que enviam pacotes de 24

40 3.2 Comparativo entre Roteamento IP e MPLS 210 bytes, 3 geradores TCP de 512 bytes e 2 geradores TCP de 1024 bytes. As fontes UDP enviam pacotes a uma taxa de 8 Mbps e as fontes TCP utilizam o algoritmo de controle de congestionamento Tahoe. Ambas as fontes iniciam no primeiro segundo de simulação e terminam no trigésimo. Todas as fontes são conectadas na rede ao nó 1 e tem como destino o nó 10 da topologia. Os caminhos MPLS das fontes UDP foram [1, 2, 10], [1, 3, 10], [1, 4, 10], [1, 5, 10] e [1, 6, 10]. Para as fontes TCP 512 bytes foram [1, 7, 10], [1, 8, 10] e [1, 9, 10]. Para as fontes TCP 1024 bytes foram [1, 10] e [1, 10], isto é, agregou-se as duas fontes no mesmo enlace. Figura 3.5: Topologia Dez Nós Esta topologia possui 90 enlaces E1 até E90 e todos eles possuem capacidade de 10Mbps e atraso de 2 ms. A Tabela 3.9 apresenta os resultados da perda de pacotes. A redução das perdas foram significativas nas fontes UDP, com exceção da primeira, e para todas as fontes TCP. Na simulações MPLS ocorreu um maior aproveitamento da rede como pode ser percebido na relação entre pacotes enviados. Os valores das fontes TCP devem ser analisados com cautela, pois apresentam um pequeno número de pacotes quando simulados utilizando o roteamento IP. A Tabela 3.10 apresenta os resultados do atraso sofrido pelos pacotes nas simulações. Ao se simular com a tecnologia MPLS, houve redução do atraso para todas as fontes e, em grande parte dos casos, próximo a 50%. A Tabela 3.11 apresenta os resultados da flutuação sofrida pelos pacotes nas simulações. Para as fontes UDP não houve flutuação para a tecnologia MPLS e com roteamento IP tradicional a flutuação foi de 0,064 [ms], 0,003 [ms], 0,630 [ms], 0,630 [ms] e 0,630 [ms] respectivamente. Para as fontes TCP também ocorreram reduções bem significativas. A Tabela 3.12 apresenta os resultados da vazão das simulações. Ao utilizar-se 25

41 3.2 Comparativo entre Roteamento IP e MPLS Tabela 3.9: Topologia Dez Nós - Perda de Pacotes Fonte Roteamento Enviados Recebidos Perdidos (%) UDP IP ,307 UDP MPLS ,030 UDP IP ,124 UDP MPLS ,030 UDP IP ,990 UDP MPLS ,003 UDP IP ,990 UDP MPLS ,003 UDP IP ,990 UDP MPLS ,003 TCP 512 bytes IP ,380 TCP 512 bytes MPLS ,0018 TCP 512 bytes IP ,000 TCP 512 bytes MPLS ,0018 TCP 512 bytes IP ,210 TCP 512 bytes MPLS ,018 TCP 1024 bytes IP ,130 TCP 1024 bytes MPLS ,070 TCP 1024 bytes IP ,890 TCP 1024 bytes MPLS ,120 Tabela 3.10: Topologia Dez Nós - Análise do Atraso [ms] Fonte Roteamento Média Máxima Mínima Desvio UDP IP 12,33 15,37 4,33 0,14 UDP MPLS 6,36 6,36 6,36 0,00 UDP IP 12,43 15,41 4,50 0,15 UDP MPLS 6,36 6,36 6,36 0,00 UDP IP 8,45 12,23 4,67 2,36 UDP MPLS 6,36 6,36 6,36 0,00 UDP IP 8,61 12,40 4,84 2,36 UDP MPLS 6,36 6,36 6,36 0,00 UDP IP 8,47 11,94 5,01 2,18 UDP MPLS 6,36 6,36 6,36 0,00 TCP 512 bytes IP 12,19 12,95 4,03 2,03 TCP 512 bytes MPLS 6,96 10,49 6,01 0,06 TCP 512 bytes IP 12,01 13,09 4,01 2,40 TCP 512 bytes MPLS 6,96 10,49 6,01 0,06 TCP 512 bytes IP 12,53 13,37 4,10 1,12 TCP 512 bytes MPLS 6,96 10,49 6,01 0,06 TCP 1024 bytes IP 13,40 15,65 4,13 1,92 TCP 1024 bytes MPLS 25,83 25,86 4,04 0,77 TCP 1024 bytes IP 13,14 14,30 4,17 1,62 TCP 1024 bytes MPLS 25,83 25,86 4,01 0,66 26

42 3.2 Comparativo entre Roteamento IP e MPLS Tabela 3.11: Topologia Dez Nós - Análise da Flutuação [ms] Fonte Roteamento Média Máxima Mínima Desvio UDP IP 0,064 1,451 0,000 0,042 UDP MPLS 0,000 0,000 0,000 0,000 UDP IP 0,004 1,386 0,000 0,051 UDP MPLS 0,000 0,000 0,000 0,000 UDP IP 0,630 0,630 0,000 0,000 UDP MPLS 0,000 0,000 0,000 0,000 UDP IP 0,630 0,630 0,000 0,000 UDP MPLS 0,000 0,000 0,000 0,000 UDP IP 0,630 0,630 0,000 0,000 UDP MPLS 0,000 0,000 0,000 0,000 TCP 512 bytes IP 0,607 8,645 0,000 2,015 TCP 512 bytes MPLS 0,001 3,533 0,000 0,003 TCP 512 bytes IP 0,888 9,023 0,000 2,463 TCP 512 bytes MPLS 0,001 3,533 0,000 0,003 TCP 512 bytes IP 0,197 9,023 0,000 1,113 TCP 512 bytes MPLS 0,001 3,553 0,000 0,025 TCP 1024 bytes IP 0,807 9,745 0,000 1,770 TCP 1024 bytes MPLS 0,006 4,665 0,000 0,072 TCP 1024 bytes IP 0,678 8,957 0,000 1,510 TCP 1024 bytes MPLS 0,006 3,410 0,000 0,006 a tecnologia MPLS ocorreu aumento em todas as fontes UDP de 0, 28% para fonte 1, 402, 00% para fonte 2, para as fontes 3, 4 e 5 praticamente não houve transmissão com o protocolo IP. Para fontes TCP foram bem significativas e com um maior aproveitamento da rede. Através dos resultados obtidos nas seções 3.2.1, 3.2.2, pode-se concluir que a tecnologia MPLS é superior ao roteamento IP em relação aos parâmetros analisados (atraso, flutuação, perda de pacotes e vazão). Estes parâmetros definem a QoS de um aplicativo e é fundamental para o sucesso de aplicações (transmissão de multimídia) que utilizam a Internet como meio de transmissão. Na próxima seção será estudado o comportamento das duas tecnologias quando submetidas a aplicações que aumentam indiscriminadamente a taxa de transmissão. 3.3 Aplicações Mal Comportadas Além de garantir QoS para aplicações multimídia é necessário garantir acesso à rede para aplicações que enviam dados. Esta seção tem como objetivo o estudo de situações onde aplicações aumentam indiscriminadamente a taxa de transmissão. Isto pode acontecer em redes sem controle de admissão, isto é, sem contrato previamente estabelecido entre a operadora e o cliente. Aplicações que utilizam o protocolo UDP 27

43 3.3 Aplicações Mal Comportadas Tabela 3.12: Topologia Dez Nós - Análise da Vazão [Mbps] Fonte Roteamento Média Máxima Mínima Desvio UDP IP 7,973 8,232 0,000 0,266 UDP MPLS 7,995 8,064 0,000 0,201 UDP IP 1,989 2,184 0,000 0,083 UDP MPLS 7,995 8,064 0,000 0,210 UDP IP 0,001 1,512 0,000 0,031 UDP MPLS 7,995 8,064 0,000 0,210 UDP IP 0,001 1,512 0,000 0,031 UDP MPLS 7,995 8,064 0,000 0,210 UDP IP 0,001 1,344 0,000 0,028 UDP MPLS 7,995 8,064 0,000 0,210 TCP 512 bytes IP 0,002 1,766 0,000 0,047 TCP 512 bytes MPLS 5,846 8,832 0,000 1,750 TCP 512 bytes IP 0,002 1,325 0,000 0,038 TCP 512 bytes MPLS 5,846 8,832 0,000 1,750 TCP 512 bytes IP 0,009 1,766 0,000 0,101 TCP 512 bytes MPLS 5,846 8,832 0,000 1,748 TCP 1024 bytes IP 0,007 3,405 0,000 0,128 TCP 1024 bytes MPLS 4,993 10,214 0,000 2,486 TCP 1024 bytes IP 0,009 4,256 0,000 0,159 TCP 1024 bytes MPLS 4,992 10,214 0,000 2,488 podem aumentar o tráfego e prejudicar aplicações que utilizam o protocolo TCP. A associação do protocolo MPLS com técnicas de Engenharia de Tráfego contorna este problema, fazendo a alocação dos caminhos mediante a capacidade dos enlaces. A Figura 3.3 apresenta a topologia de simulação (Sun, Bhaniramka, & Jain 2000), com 6 nós, 3 geradores de tráfego e 3 destinos. O primeiro gerador envia pacotes UDP de tamanho de 210 bytes, o segundo envia pacotes TCP com tamanho de 512 bytes e o terceiro envia pacotes TCP com tamanho de 1024 bytes. As fontes TCP enviam pacotes a partir do primeiro segundo de simulação. A fonte UDP envia pacotes a uma taxa definida na Tabela Como nos dez primeiros segundos da simulação a fonte UDP trabalha apenas com uma pequena taxa de transmissão, os resultados numéricos devem ser observados com cautela. Com o auxílio da tecnologia MPLS, criando uma rota alternativa para o tráfego de dados (fontes TCP), as taxas médias de todas as fontes foram superiores (Tabelas 3.14). A fonte UDP teve melhora de 2, 3%, a fonte TCP 512 bytes apresentou melhora de 144, 2% e a fonte TCP 1024 bytes mostrou melhora de 146, 11%. A Tabela 3.15 apresenta os resultados do cálculo do atraso para cada fonte. Fica evidente a piora do atraso quando a fonte UDP aumenta a sua taxa de envio de pacotes. Os valores médios servem apenas de referência, pois apenas a partir do 28

44 3.3 Aplicações Mal Comportadas Tabela 3.13: Padrão de Envio de Pacotes da Fonte UDP Tempo [s] Tráfego [Mbps] Tabela 3.14: Vazão Fonte Roteamento Média [Mbps] Máxima [Mbps] Mínima [Mbps] Desvio [Mbps] UDP IP 24,65 44,82 0,00 19,58 UDP Com MPLS 25,20 45,07 0,00 20,11 TCP 512 IP 0,95 1,77 0,00 0,62 TCP 512 Com MPLS 1,37 1,77 0,00 0,48 TCP 1024 IP 1,80 3,40 0,00 1,22 TCP 1024 Com MPLS 2,63 3,40 0,00 0,89 décimo segundo as condições de tráfego pioram. Tabela 3.15: Atraso Fonte Roteamento Médio [ms] Máximo [ms] Mínimo [ms] Desvio [us] UDP IP 31,77 33,86 30,19 789,80 UDP Com MPLS 30,36 30,53 30,19 96,25 TCP 512 IP 30,51 33,41 30,04 0,76 TCP 512 Com MPLS 30,83 33,24 30,04 0,82 TCP 1024 IP 30,71 34,13 30,04 0,88 TCP 1024 Com MPLS 30,88 37,78 30,00 0,86 A Tabela 3.16 apresenta os resultados do cálculo da flutuação. Mais uma vez é fácil perceber que a tecnologia MPLS foi um fator determinante para a diminuição da variação do atraso para todas as fontes. A Tabela 3.17 apresenta os resultados das perdas obtidas com as simulações. Apesar de ocorrer um pequeno percentual de perdas, na tecnologia MPLS praticamente não ocorreram perdas. Através dos resultados obtidos através das simulações, é possível constatar que a tecnologia MPLS permite um maior controle das aplicações em relação à tecnologia 29

45 3.3 Aplicações Mal Comportadas Tabela 3.16: Flutuação Fonte Roteamento Médio [us] Máximo [ms] Mínimo [ms] Desvio [us] UDP IP 6,76 1,20 0,00 31,16 UDP Com MPLS 6,50 0,19 0,00 19,13 TCP 512 bytes IP 114, ,00 0,46 TCP 512 bytes Com MPLS 81,09 3,20 0,00 0,35 TCP 1024 bytes IP 157,94 4,10 0,00 0,56 TCP 1024 bytes Com MPLS 86,79 7,74 0,00 0,37 Tabela 3.17: Perda de Pacotes Fontes UDP TCP 512 bytes TCP 1024 bytes IP 1,86% 0,007% 0,006% MPLS 0% 0% 0% de roteamento IP. Isto é ideal quando se pretende utilizar técnicas de Engenharia de Tráfego (TE) para garantia de Qualidade de Serviço (QoS). Apesar do aumento indiscriminado da taxa de transmissão da fonte UDP, foi mantido o direito de envio para as fontes TCP quando utilizou-se a tecnologia MPLS. Quando utilizou-se o roteamento IP, a fonte UDP inviabilizou a transmissão realizada pelas outras fontes, não mantendo a eqüidade para todas as fontes. 3.4 Engenharia de Tráfego com MPLS Através dos resultados obtidos pelas simulações nas Seções 3.2 e 3.3 pode-se visualizar o maior controle em relação a criação de caminhos em uma rede IP. Este maior controle é ideal quando se deseja trabalhar com Engenharia de Tráfego. A Engenharia de Tráfego (TE) é uma técnica de gerenciamento de rede que permite que o tráfego seja enviado para enlaces onde existam recursos suficientes para as aplicações. Ela engloba a aplicação de princípios tecnológicos e científicos para medir, modelar, caracterizar e controlar o tráfego na rede (Awduche, Chiu, Elwalid, Widjaja, & Xiao 2002). A Engenharia de Tráfego trabalha com diferentes objetivos, como a maximização da utilização de largura de faixa de uma rede e o re-roteamento devido a congestionamento ou falhas. Em geral, a Engenharia de Tráfego (TE) trabalha para a resolução de um problema de otimização (Swallow 1999). A função objetivo deve representar o objetivo dos administradores de rede e os algoritmos devem ser criados com o intuito de atender estes objetivos, baseados em restrições impostas pelo problema. Algumas perguntas são pertinentes quando se fala em TE. A primeira diz respeito 30

46 3.4 Engenharia de Tráfego com MPLS ao método que faz o uso mais efetivo da largura de faixa disponível e a segunda questiona como os fluxos devem ser inseridos na rede para que as informações sejam entregues sem atrasos excessivos (Swallow 1999). O protocolo MPLS pode ser utilizado como base para implementação de TE, pois podem ser criados túneis, isto é rotas explícitas, entre um destino e uma fonte. Como os parâmetros da rede podem mudar a cada instante de tempo, esquemas de roteamento e re-roteamento devem ser criados para manter o contrato entre o provedor de acesso e os usuários. A Engenharia de Tráfego com MPLS utiliza sistemas de medições acoplados a algoritmos de roteamento e trabalha para a determinação de LSPs. O processo de seleção de LSPs deve ser tal que evite o re-roteamento, pois o mesmo envolve custos de operações de gerenciamento de rede (Blanchy, Melon, & Leduc 2003). Este processo pode ser preventivo, onde a alocação de caminhos na rede previne o congestionamento, ou pode ser reativo, que começa a atuar quando um problema ocorre. Grande parte dos algoritmos de TE propostos para redes MPLS são preventivos (estáticos). Os algoritmos estáticos utilizam as informações da rede para a determinação das rotas e, após o cálculo, estas rotas não são alteradas. Como as condições de rede se alteram com os diferentes padrões de tráfego impostos pelos usuários, é desejável que os algoritmos de roteamento alterem suas rotas com a variação das condições de rede. Os algoritmos dinâmicos de roteamento usam o estado e a carga da rede em conjunto com as probabilidades de bloqueio para a determinação da tabela de rotas. O procedimento de determinação dos LSPs pode ser realizado on-line ou off-line, de forma centralizada ou descentralizada. O procedimento off-line envolve o conhecimento de todos os LSPs de uma rede e é calculada a melhor organização para todos eles ao mesmo tempo (Blanchy, Melon, & Leduc 2003). No procedimento on-line o conhecimento é parcial. Estes métodos podem ser organizados de forma centralizada (o cálculo é feito em algum nó da rede - servidor) ou descentralizada (o cálculo é feito nos roteadores da rede). O procedimento off-line é realizado geralmente de forma centralizada e o on-line é desejável que seja descentralizado. Os algoritmos de roteamento para QoS são divididos em duas classes: caminho mínimo para minimização do custo ou seleção do caminho com maior capacidade disponível para realizar balanceamento de carga (L.Marzo, Calle, Scoglio, & Anjah 2003). Outros mecanismos foram desenvolvidos, mas são variações destes modelos. Os mecanismos preventivos podem ser divididos em Constraint-Based Routing (CBR) e balanceamento de tráfego (traffic splitting). O primeiro mecanismo calcula o caminho baseado em uma série de restrições como largura de faixa, atraso e variação do atraso. O segundo método trabalha com o balanceamento de carga com objetivo de encontrar 31

47 3.4 Engenharia de Tráfego com MPLS o particionamento ótimo de tráfego para uma determinada topologia. Os mecanismos reativos trabalham para que enlaces congestionados sejam redirecionados para outros enlaces com capacidade excedente Tipos de Engenharia de Tráfego Diversos métodos foram desenvolvidos para determinação dos LSPs para obtenção de QoS através da tecnologia MPLS. A criação destes caminhos pode ser realizada utilizando informações provenientes dos algoritmos de roteamento, com a tecnologia MPLS e combinando algoritmos de roteamento e MPLS. MPLS Traffic Engineering (MPLS-TE) (Awduche & Jabbari 2002) utiliza diferentes algoritmos para a determinação de LSPs que suportem QoS. Dentre os algoritmos mais usados, pode-se citar Constraint Shortest Path First (CSPF), Least Path Interference Algorithm (LPIA), Dynamic Online Routing Algorithm (DORA), Minimum Interference Routing Algorithm (MIRA). Algumas técnicas reativas também são importantes, tais como Path-based recovery, Segment-based recovery e Mixed Path-based recovery. O MPLS-TE pode ser utilizado para dar suporte a serviços diferenciados (Diffserv), o que é conhecido como MPLS support for Differenciated Services (MPLS-DS). Outra técnica de TE é a utilização dos protocolos de roteamento (Interior Gateway Protocol (IGP-TE)) com métodos de otimização como Programação Linear, Algoritmos Genéticos e Colônia de Formigas Algoritmos e Heurísticas de Otimização A seguir serão apresentados vários algoritmos e heurísticas para otimização aplicados ao problema de estabelecimento de rotas em redes de computadores. Otimização e Engenharia de Tráfego Em (Cuihong 1997) foi desenvolvido um algoritmo genético para resolução do problema de atribuição de rotas com restrições de capacidade e foram considerados os custos de capacidade e de enfileiramento. A grande novidade deste artigo foi a utilização do cruzamento ortogonal para o problema de atribuição de rotas em redes de computadores. Foi utilizada a codificação binária e testada nas topologias ARPA, OCT, USA e RING com 300 indivíduos, 150 gerações, mutação de 100% e taxa de cruzamento de 30%. Neste artigo é também citado que o problema de atribuição de rotas é NP-difícil. Em (Chatzaki, Sartzetakis, & Courcoubetis 1999) foi desenvolvido um sistema para seleção de rotas e controle de admissão com reserva de recursos para 32

48 3.4 Engenharia de Tráfego com MPLS diversas classes de serviços. Em (Juttner, Szviatovski, Szentesi, Orinesay, & Harmatos 2000) foi proposto um método para seleção ótima de novos LSPs. Quando não existe capacidade na rede para configurar um novo LSP, tenta-se liberar alguma capacidade de enlaces com gargalos pelo re-roteamento de LSPs estabelecidos. O algoritmo de otimização utilizado foi inspirado em programação linear inteira. Este método aumenta a probabilidade de sucesso da configuração de novos LSPs, estendendo o método de Constrained Shortest Path First (CSPF). Em (Oliveira, Scoglio, Akyildiz, & Uhl 2002; Peyravian & Kshemkalyani 1997), trabalha-se com a seleção de LSPs para re-roteamento de um enlace, uma vez que a quantidade de largura de faixa para preempção é conhecida. O algoritmo apresentado em (Oliveira, Scoglio, Akyildiz, & Uhl 2002) possui um custo muito alto para realizar uma tarefa muito simples (Blanchy, Melon, & Leduc 2003). Em (Banerjee & Sidhu 2002) foram desenvolvidas duas heurísticas para trabalhar com três objetivos da engenharia de tráfego: aumentar o fluxo da rede, limitar os custos da rede e realizar a distribuição de carga. (Tamura, Kawahara, & Oie 2004) trabalhou com um esquema de gerenciamento de caminhos de duas fases como ferramenta de engenharia de tráfego em redes MPLS. Quando um fluxo chega em um caminho, ele é encaminhado para seu caminho primário ou um caminho alternativo entre o LSR de ingresso e egresso. A seleção depende de um limiar de utilização do caminho e este mecanismo torna-se efetivo quando a utilização da rede aumenta. Em (Tamura, Yuasa, Kawahara, & Oie 2005) são propostos dois outros métodos de seleção de caminhos, fixed detour path selection e least-loaded detour path. Kuribayashi (Kuribayashi & Tsumura 2007) propõe um método de seleção ótimo para redes MPLS, supondo que os LSPs usados para download e upload são estabelecidos como pares e múltiplos pares são estabelecidos entre os mesmos pares de nós. Mostrou-se por simulações que o método proposto pode reduzir a quantidade total de largura de faixa requerida em 15% comparado com os métodos de seleção convencionais. MPLS e VPN Em (Hachimi, Breton, & Bennani 2008) é apresentado um esquema de configuração de QoS para serviços VPN em redes MPLS. O objetivo deste esquema é dar aos consumidores a possibilidade de exceder seu contrato de largura de faixa disponível em seu enlace ou se outros VPNs não usarem sua largura de faixa contratada. Se aceito o excesso de tráfego é garantido e não é cobrado. Em (Fajardo, Pico, & Munoz 2008) é descrito os procedimentos que permitem um nó de rede, com o sistema operacional Linux, tornar-se um roteador em arquitetura de roteamento VPN com BGP/MPLS. Os procedimentos permitem que o kernel do 33

49 3.4 Engenharia de Tráfego com MPLS linux tenha funcionalidades necessárias para realizar este tipo de roteamento. Redução do Número de Rótulos Outros trabalhos pesquisam técnicas para a redução do número de rótulos em redes MPLS. Uma técnica simples é reduzir o tamanho do espaço ocupado utilizando o mesmo rótulo para dois fluxos que seguem do mesmo nó de ingresso ao mesmo nó de egresso. Em (Saito, Miyao, & Yoshida 2000) foi proposto um esquema de engenharia de tráfego usando multiponto para ponto LSPs, que reduz o número de LSPs e o número de rótulos utilizados através de programação inteira. Este problema também é discutido em (Applegate & Thorup 2003), onde é apresentado um algoritmo que reduz o número de rótulos para M + N, sem aumentar a carga do enlace. Bhatnagar et al. (Bhatnagar, Ganguly, & Nath 2005) desenvolveram uma heurística simples que trabalha com a criação de árvores LSPs multiponto para ponto (multipoint-to-point) a partir de LSPs ponto a ponto ((point-to-point). Em (Solano, Fabregat, & Marzo 2008) é proposto um algoritmo denominado Full Label Merging, que resolve o problema de união de rótulos em tempo polinomial. Algoritmos de Interferência Mínima Os algoritmos de interferência mínima são utilizados para escolha de um caminho de tráfego entre um par de origem-destino. Ele tem como objetivo minimizar a probabilidade de bloqueios das (futuras) requisições para o estabelecimento de caminhos (Figueiredo, da Fonseca, & Monteiro 2004). No trabalho (Kar, Kodialam, & Laksman 2000) foi apresentado um algoritmo para roteamento dinâmico de túneis com garantia de largura de faixa, aonde as requisições de túneis chegam uma a uma e não existe conhecimento a priori de requisições futuras. Neste trabalho o autor discute os principais requisitos para os algoritmos de roteamento em redes MPLS e propõe um novo algoritmo, Minimum Interference Routing Algorithm (MIRA). Em (Figueiredo, da Fonseca, & Monteiro 2004) foi desenvolvida uma nova heurística para resolver o problema de roteamento de interferência mínima, chamado Light Minimum Interference Routing (LMIR), que otimiza a utilização dos recursos de rede. Sua principal vantagem em relação às soluções anteriores é a baixa complexidade computacional, possibilitando uma maior escalabilidade (Figueiredo, da Fonseca, & Monteiro 2004). Em (de Andrade Oliveira 2005) foi desenvolvido um método de roteamento adaptativo para redes MPLS com os objetivos de balanceamento de carga, minimização do atraso médio dos pacotes e minimização de perdas. Outra contribuição deste artigo foi a utilização de cartas de controle para monitorar as condições de rede. O problema de dimensionamento de redes é formulado como 34

50 3.4 Engenharia de Tráfego com MPLS a determinação de rotas de todos os LSPs para conseguir o menor custo para rede física. (Borges, de Sousa, & Valadas 2001) assume que todo os tráfegos são conhecidos baseados na expectativa de demanda do fluxo de tráfego e requisitos de QoS. O problema consiste na determinação de uma rede física com capacidade de transmissão suficiente entre roteadores para acomodar todo o tráfego de todos os serviços em sua maior largura de faixa. Outros trabalhos concentram-se em encontrar soluções para realizar o balanceamento de carga e assim reduzir o congestionamento, aumentar a utilização da rede e reduzir a perda de pacotes. Em (Dinan, Awduche, & Jabbari 2000) foi desenvolvido um framework estocástico para divisão de tráfego em redes MPLS. (Elwalid, Jin, Low, & Widjaja 2001) propôs o Multipath Adaptative Traffic Engineering (MATE) que tem como objetivo evitar o congestionamento da rede, balanceando adaptativamente o tráfego em vários caminhos a partir de medidas e análises de congestionamento. Em (Salvadori & Battiti 2003) foi criado um método para balanceamento de carga utilizando um algoritmo de busca local, cujo objetivo era de minimizar o congestionamento da rede realizando modificações locais. Em cada tentativa, o enlace mais congestionado é encontrado e um dos LPSs que o atravessam é roteado para outra rota. Re-roteamento Em (Blanchy, Melon, & Leduc 2003) é proposto um mecanismo de preempção que seleciona o mais interessante LSP para realizar o re-roteamento para um determinado enlace. Segundo os autores, até o momento pouco tinha se feito no estudo da relação entre procedimentos de roteamento e preempção e o impacto disto no desempenho como um todo. Além do mecanismo de preempção, é necessário a integração da preempção em um esquema de roteamento genérico de LSPs. Segundo (Blanchy, Melon, & Leduc 2003) um algoritmo de roteamento on-line de LSPs pode ser dividido em três categorias: uma função de custo (quantifica as qualidades das rotas), uma restrição (que diz se um enlace pode ser usado para transportar um LSP) e um algoritmo de computação. Neste trabalho ele faz a integração do mecanismo de preempção com um esquema de roteamento genérico de LSP desenvolvido em (Blanchy, Mlon, & Leduc 2003). MPLS e Diffservice Em (Barakovic, Bajric, & Husic 2007) foi proposta a integração entre Diffservice e MPLS para o transporte de multimídia. Foram realizadas simulações comparando redes IP com a associação entre Diffservice e redes MPLS. Segundo o autor, em redes com roteamento IP existe uma correlação negativa entre os parâmetros de QoS 35

51 3.4 Engenharia de Tráfego com MPLS (throughput, atraso, variação do atraso e perdas) quando o tráfego de vídeo aumenta. Houve melhorias significativas ao se utilizar MPLS e Diffservice, mesmo com aumento do tráfego de vídeo. Em (Zhang & Ionescu 2007) é avaliada a implementação de MPLS Diffservice em relação à TE, através de resultados experimentais. Nos experimentos realizados concluise que para a transmissão de voz a alocação de largura de faixa é simples. Para os problemas de tráfego de vídeo (VBR), ocorrem problemas com perdas de pacotes e fica difícil garantir parâmetros como o atraso. Devem ser tomadas ações para alocar a quantidade adequada de largura de faixa para se ter sucesso na transmissão. MPLS e Protocolos de Sinalização Em (Apostolopoulos 2007) foi proposta uma extensão para o protocolo LDP, que permite criar planos de encaminhamento com LDPs sinalizados que exibe proteção de tráfego local, engenharia de tráfego e estabilidade durante a convergência IGP. Em (Rahman, Kabir, Lutfullah, M.Z., & Amin 2008) é realizado um estudo comparativo entre MPLS e redes IP tratando dos protocolos de sinalização. Baseado no estudo comparativo dos protocolos de sinalização, conclui-se que o RSVP tem problemas quanto à escalabilidade e a melhor escolha é o uso do CR-LDP. Em Chul (Kim & Chung 2007) é realizado um estudo sobre os protocolos de sinalização para engenharia de tráfego, ilustrando as vantagens do MPLS em relação os protocolos de roteamento IP. É feito também uma comparação entre CR-LDP, RSVP e RSVP-TE sobre os aspectos de confiabilidade e adaptabilidade através de simulações. 3.5 Conclusões Este capítulo apresentou os conceitos teóricos sobre a tecnologia MPLS e, através de um estudo comparativo, observou-se a superioridade desta tecnologia em relação ao roteamento IP. Apresentou também uma revisão bibliográfica sobre Engenharia de Tráfego e MPLS para a transmissão de multimídia. Antes do desenvolvimento de qualquer técnica de TE é necessário o estudo das características das fontes de tráfego que estão presentes nas redes de computadores. O próximo capítulo tem como objetivo apresentar uma modelagem matemática sobre o tráfego, para que seja possível o desenvolvimento de mecanismos de otimização mais próximos da realidade. 36

52 CAPÍTULO 4 Modelagem de Tráfego para Qualidade de Serviço 4.1 Introdução P ara utilizar qualquer técnica de obtenção de QoS é necessário o conhecimento dos padrões de tráfego presentes em uma rede. A modelagem de tráfego é essencial para o planejamento e dimensionamento de redes, análise de desempenho, estudo do congestionamento, análise de perda de pacotes e estudo do comportamento dos usuários (Campos, Silva, & Cunha 2001). Sally Floyd (Floyd & Paxson 2001) ressalta que, devido à heterogeneidade e ao rápido crescimento da Internet, não existem cenários suficientes para demonstrar que um sistema ou protocolo irá trabalhar bem. Ao invés disso, simulações têm uma participação mais restrita para examinar aspectos particulares de mudanças propostas ou do comportamento da Internet, permitindo o aumento do nosso conhecimento em relação a esta dinâmica. Dentre as principais dificuldades de se modelar a Internet encontram-se a diversidade de arquiteturas e topologias, tamanho da rede e mudanças drásticas com o tempo (número de computadores e tamanho dos frames em relação aos aplicativos). Outro fator relevante é a quantidade de computadores presentes na rede, pois se apenas uma pequena parte dos mesmos apresentar um comportamento atípico, isto não pode ser negligenciado. A este pequeno percentual corresponderão milhares de 37

53 4.1 Introdução computadores e isto poderá influenciar toda a rede. Além do tamanho, a Internet sofre devido a mudanças drásticas em curtos espaços de tempo. Pode-se citar o exemplo das aplicações peer-to-peer que, em pouco tempo, tornaram-se populares. Antes destas aplicações existia um desbalanceamento claro entre as taxas de upload e download, mas com o surgimento das mesmas este desbalanceamento está diminuindo e em alguns casos a taxa de upload supera a de download. A heterogeneidade manifesta-se em diversos aspectos, como diferentes topologias, diferença entre protocolos e diversos padrões de fontes de tráfego. As topologias de rede variam para cada Provedor de Serviço (Internet Provider Service ISP), estão em constante mudança e nem sempre se consegue informações sobre as mesmas para a realização de estudos e simulações. Outro fator relevante está relacionado à implementação dos protocolos de rede. Apesar de um protocolo possuir um conjunto bem definido de regras, um mesmo protocolo pode ser implementado de formas distintas por desenvolvedores ou empresas. A geração de tráfego é uma outra dificuldade no desenvolvimento de modelos de simulação, devido à grande variedade de tipos de fontes. Uma propriedade importante do tráfego na Internet é o uso de protocolos que trabalham com algoritmos de congestionamento adaptativos. O transmissor detecta se a rede está sob congestionamento e diminui a taxa de envio de pacotes. Assim, todas as medidas realizadas são moldadas, isto é, sofrem influência dos algoritmos de congestionamento. Outro aspecto é a evolução tecnológica. Atualmente celulares e assistentes pessoais conseguem acessar a Internet e, devido à difusão de tecnologias sem fio, muitos computadores conectam-se à rede utilizando roteadores sem fio. Em um ambiente tão heterogêneo é importante escolher invariantes, questões comuns a toda Internet, para o desenvolvimento de novas técnicas e estudos. Sally Floyd (Floyd & Paxson 2001) destaca que os principais invariantes são: a maior parte de atividade ocorre no período diurno; a auto-similaridade no tráfego; o início de sessões é descrita pela distribuição de Poisson; a distribuição dos tamanhos de conexões é log-normal; as distribuições associadas à atividade da rede são de cauda pesada; a distribuição invariante para geração de pacotes telnet; e características invariantes da topologia global. Para o desenvolvimento de um modelo de otimização, deve-se caracterizar o tráfego e utilizar invariantes relacionados a estes modelos. Auto-similaridade é um invariante global e encontrado tanto em redes locais quanto na Internet. Por isso foi escolhida como fator fundamental para a geração e modelagem do tráfego. Deve-se então realizar um estudo aprofundado e caracterizar o fenômeno de auto-similaridade. Isso será 38

54 4.1 Introdução realizado nas próximas seções do trabalho. 4.2 Processos Auto-similares Os matemáticos caracterizam os elementos geométricos pela sua dimensão topológica. Através deste conceito pode se dizer que o ponto tem dimensão zero, a reta tem dimensão um, o plano tem dimensão dois e o espaço tem dimensão três. Em sistemas dinâmicos, dimensão pode ser definida como o número de variáveis de estado necessárias para descrever o comportamento de um sistema. A dimensão nestes sistemas não é inteira e é chamada de dimensão fractal. A Figura 4.1 apresenta o atrator do mapa de Hénon com dimensão de correlação de 1, x x 10 Figura 4.1: Atrator do Mapa de Hénon A importância do conceito de fractal é que eles podem ser gerados através do comportamento assintótico de um sistema dinâmico. Ou seja, fractais podem ser atratores de sistemas dinâmicos e a dimensão pode caracterizá-los (Fiedler-Ferrara & Prado 1994). Segundo Mandelbrot (Fiedler-Ferrara & Prado 1994), um fractal é por definição um conjunto no qual a dimensão de Hausdorff-Besicovitch excede estritamente a dimensão topológica. Uma figura com característica fractal pode ser construída através da repetição de estrutura simples. Uma estrutura geométrica, como um triângulo, quando repetida múltiplas vezes, pode gerar uma figura com dimensão fractal. Esta propriedade é chamada de auto-similaridade e é uma característica essencial na geração de fractais. A Curva de Von Koch, Figura 4.2, é gerada através de divisões 39

55 4.2 Processos Auto-similares sucessivas dos segmentos iniciais em três segmentos iguais. Esta curva ilustra a propriedade de auto-similaridade, onde a figura final é formada através de unidades básicas bem simples. (a) 1 iteração (b) 2 iterações (c) 3 iterações (d) 4 iterações Figura 4.2: Curva de Von Koch Atratores Um sistema físico pode ser definido a partir de sua função energia E(x i ) e por um conjunto de N coordenadas (x i ) (Menezes 1998). O sistema evolui de acordo com a trajetória (espaço de estados) obtida por esta função e seu estado pode ser representado como um ponto nessa trajetória. Um sistema que altera seu estado em função do tempo é definido como sistema dinâmico. Segundo (Fiedler-Ferrara & Prado 1994), um atrator pode ser definido como um conjunto invariante para o qual órbitas próximas convergem depois de um tempo suficientemente longo. Segundo (Monteiro 2002), em sistemas dissipativos, as trajetórias podem convergir para uma região limitada do espaço de fases, chamada atrator. A convergência de um estado qualquer a um ponto fixo ocasiona uma estabilidade que está relacionada com a forma de coordenação entre partes individuais do sistema. Ao adquirir a estabilidade a saída não deve crescer, em certos casos até mesmo 40

56 4.2 Processos Auto-similares permanecer constante, como resultado de uma entrada. Um conjunto fechado de pontos A, no espaço de fases de um sistema dinâmico, é definido como atrator se (Monteiro 2002): A é um conjunto invariante, ou seja, qualquer trajetória x(t) que começa em A, permanece em A por todo o tempo; A atrai um conjunto aberto de condições iniciais, isto é, há um hiper volume esférico B, que contém A, tal que para qualquer condição inicial x(0) pertence a B, então a distância entre a trajetória x(t) e A tende a zero, quando t - o maior conjunto de condições iniciais que satisfaz essa propriedade é chamado bacia de atração de A; A é mínimo, ou seja, não há subconjunto de A que satisfaça as duas condições anteriores. Num sistema dinâmico de tempo contínuo, autônomo e bidimensional, o teorema de Poincaré-Bendixson garante que o atrator pode ser de dois tipos, a saber (Monteiro 2002): o ponto de equilíbrio, que corresponde a uma solução cujo comportamento dinâmico é independente do tempo; o ciclo-limite, que descreve um comportamento periódico no tempo, com amplitude e período determinados pela forma das equações e pelos valores de seus parâmetros. Num sistema tridimensional, existem mais duas figuras atratoras, que são: a superfície toroidal, que representa um regime periódico ou quasi-periódico, com 2 freqüências fundamentais independentes; o atrator estranho, que apresenta dependência sensível às condições iniciais. Um sistema dinâmico, que apresenta comportamento caótico possui um atrator estranho no seu espaço de fases. Ele é estranho porque apresenta detalhes em escalas infinitesimalmente pequenas e tal figura é chamada de fractal (Monteiro 2002) Auto-Similaridade no Tráfego A descoberta de auto-similaridade no tráfego começa com o artigo relatando medições realizadas entre agosto de 1989 a fevereiro de 1991 por (Leland & Wilson 1991). 41

57 4.2 Processos Auto-similares Neste trabalho foram gravados centenas de milhões de pacotes, sem perdas, com os respectivos tempos (timestamps) para uma precisão de 100µs. O artigo apresenta com detalhes as configurações de rede utilizadas bem como os métodos de medição. partir dos dados coletados, os autores apresentaram uma análise preliminar e comentaram sobre a presença de rajadas (burstness) em várias escalas de tempo. Em (Heyman, Tabatabai, & Lakshman 1992) foi comprovada a existência de tráfego autosimilar em redes ATM. Em 1994, foi publicado o primeiro trabalho cujo objetivo era estabelecer formalmente a caracterização de auto-similaridade em uma rede de padrão Ethernet. Este comportamento auto-similar ou fractal do tráfego da rede local Ethernet é muito diferente dos modelos convencionais de tráfego telefônico e dos modelos formais para tráfego de pacotes (Leland, Taqqu, Willinger, & Wilson 1994). Nesta época, os modelos utilizados em redes de dados eram os mesmos utilizados pelo sistema telefônico (modelo de Poisson). Em 1995, Sally Floyd e Vern Paxson concluíram que este modelo não era válido para tráfego em redes WAN (Floyd & Paxson 1995). A presença de auto-similaridade ficou comprovada na World Wide Web (Crovella & Bestavros 1997), em traços de vídeo Variable Bit Rate que por sua vez apresentavam dependência de longo prazo (Heyman & Lakshman 1996) e em aplicações multimídia (Sahinoglu & Tekinay 1999). Alguns outros trabalhos preocuparam-se em gerar perfis de tráfego auto-similar como traços de vídeo VBR (Garrett & Willinger 1994). A tentativa de se descobrir as causas da auto-similaridade foi tratada por Crovella e Bestavros, onde tentaram relacionar o tamanho de arquivos, protocolos de transporte e auto-similaridade (Park, Kim, & Crovella 1996). A influência do tráfego autosimilar no desempenho em redes de computadores foi relatada por Crovella (Park, Kim, & Crovella 1997); questões sobre o impacto no atraso foram tratadas por Shu em 1998 (Shu, Xue, Jin, & Yan 1998); um estudo do algoritmo de controle de congestionamento do TCP com tráfego auto-similar foi realizado por Tuan e Park (Tuan & Park 1999); e o atraso relacionado diretamente ao protocolo TCP foi estudado por He (He, Gao, Hou, & Park 2002). Os efeitos de auto-similaridade em redes com filas podem ser encontrados em (Norros 1994; Norros 1995; Duffield & O Connell 1995; Massoulie & Simonian 1999). Norros derivou uma equação que relaciona a taxa de ocupação de uma fila (q) em função da utilização média (ρ) e do expoente de Hurst (H): q = ρ1/(2(1 H)) (1 ρ) H/(1 H) (4.1) A 42

58 4.2 Processos Auto-similares Norros (Norros 1995) derivou o limite inferior da taxa de serviço em função do expoente de Hurst e do tamanho do buffer. Para buffers de grande capacidade, o limite inferior da taxa de serviço é maior ou igual a média do tráfego e é relacionada ao tamanho do buffer e ao expoente de Hurst. Em (Yunhua, Xuecheng, & Weizhong 2004) foi traçado o gráfico em função dos seguintes valores: taxa de 2279kbps, desvio de 262.8kbps e perda de A Figura 4.3 apresenta os resultados. Como pode ser visto na Figura 4.3, quanto maior o expoente de Hurst, menor será a largura de faixa para manter a taxa de serviço. Isso indica que o expoente de Hurst afeta negativamente a taxa de serviço e para manter um limite aceitável deve-se aumentar o tamanho do buffer. Limite Inferior da Lagura de Faixa (kbps) x 105 Limite Inferior de Largura de Faixa Limite Inferior do Buffer (kbytes) Expoente de Hurst Figura 4.3: Limite Inferior da Largura de Faixa A Figura 4.4 apresenta o gráfico que relaciona as variáveis tamanho da fila, expoente de Hurst e taxa de utilização de uma fila M/M/1. Pode-se concluir que quanto maior o expoente de Hurst maior será a fila necessária para acomodar o tráfego. Outra contribuição de Norros foi a derivação da capacidade efetiva. Segundo (Patel & Williamson 1997), estimar a largura de faixa efetiva é útil nos processos de controle de admissão e dimensionamento de rede. No controle de admissão isto é importante pois pode-se estimar a largura de faixa efetiva da conexão. Quando existe a agregação de fontes em um mesmo enlace, deve-se tomar cuidado com o superdimensionamento dos enlaces e como isso influencia no dimensionamento das redes. Este modelo parte de duas suposições básicas (Patel & Williamson 1997): a fór- 43

59 4.2 Processos Auto-similares Tamanho do Buffer (bytes) Tamanho do Buffer em Função da Utilização e de Hurst Taxa de Utilização (%) Figura 4.4: Fila mula depende do tráfego ser suficientemente Gaussiano, o que ocorre quando o tráfego é um agregado de um grande número de fontes. Para obter esta fórmula, foi utilizada a distribuição de Weibull para aproximar a distribuição do tamanho da cauda da fila. Em (Patel & Williamson 1997) foram realizadas simulações comparando a estimativa teórica com os resultados simulados. Segundo este trabalho, o modelo de Norros provê uma estimativa segura e razoavelmente precisa da largura de faixa efetiva para as condições de estabelecidas pelo mesmo. A fórmula não possui desempenho razoável nas condições de buffer pequeno e poucas fontes de tráfego agregado e ela possui sensibilidade acentuada ao coeficiente de variância do tráfego. Em (Erramilli, Narayan, & Willinger 1996) é realizado um estudo da influência do tráfego com dependência de longo prazo em filas. No mesmo ano, em (Heyman & Lakshman 1996), foi mostrado que para fontes com valores altos de Hurst, as cadeias de Markov estimam bem os valores dos buffers quando os mesmos não são tão grandes, mas estes modelos não estimam de forma adequada a perda de células e o tamanho de ocupação média de forma precisa para grandes buffers. Em (Park, Kim, & Crovella 1997) Crovella mostrou que o atraso em uma fila exibe dependência superlinear pela auto-similaridade, quando a capacidade de um buffer é alta. Em (Lelarge, Liu, & Xia 2004) foi mostrado que, em uma rede de filas com tráfego auto-similar de entrada modelado como Movimento Browniano Fracionário (fbm), o 44

60 4.2 Processos Auto-similares atraso é dominado pela fila que tem o maior expoente de Hurst. Quando a rede de filas está sujeita ao tráfego com o mesmo expoente, a fila dominante será aquela que obter o maior resultado para a seguinte fórmula: (1 ρ) H onde ρ é a taxa de ocupação da fila e σ é o coeficiente de variação da fila. σ No ano de 2000 foi publicado o primeiro livro que tratava exclusivamente de autosimilaridade no tráfego em redes de computadores (Park & Willinger 2000). Nestes 17 anos, desde a descoberta de auto-similaridade, muitos outros trabalhos foram publicados consolidando este tema de pesquisa e tornando-se essencial ao se modelar tráfego em redes de computadores Definição de Auto-similaridade Auto-similaridade é uma propriedade estatística fundamental que está presente em medidas de tráfego gerado em redes de computadores de abrangência local ou global. O conceito de auto-similaridade está relacionado com a reprodutibilidade de padrões em diferentes níveis das propriedades estatísticas de uma série temporal. Seja X = (X t : t = 0, 1, 2,...) um processo estocástico de covariância estacionária com média µ, variância σ 2 e função de autocorrelação r(k), k 0. Em particular, assume-se que X possui uma função de autocorrelação dada pela Equação 4.2: r(k) k β, k (4.2) onde 0 < β < 1 (Leland & Wilson 1991; Leland, Taqqu, Willinger, & Wilson 1994). Para cada m = 1, 2, 3,..., seja X m = (X (m) t : t = 1, 2, 3,...) uma nova série temporal de covariância estacionária obtida pela média da série original X em blocos sem sobreposição de tamanho m, i.e., definida na Equação 4.3. X (m) t = 1 m (X tm m X tm ), t 1 (4.3) O processo X é chamado (exatamente) de auto-similar de segunda ordem se para todo m = 1, 2, 3..., se a variância var(x m ) = σ 2 m β e a função de correlação do processo agregado é definida pela Equação 4.4 r (m) (k) r(k), k 0 (4.4) O processo X é chamado (assintoticamente) auto-similar de segunda ordem se para todo k grande o suficiente, tem se a Equação

61 4.2 Processos Auto-similares r (m) (k) r(k), m (4.5) O expoente de Hurst é um indicador de dependência de longo prazo e isso ocorre quando um processo auto-similar possui 1 2 < H < 1. A covariância dos processos auto-similares não muda após a agregação em blocos e mudanças de escalas. O expoente de Hurst é relacionado ao parâmetro β pela Equação 4.6. H = 1 β 2 (4.6) A principal conseqüência de dependência de longo prazo é o decaimento hiperbólico da função de auto-correlação e k r(k) = r β =. Outra conseqüência importante é a presença de rajadas em múltiplas escalas de tempo e a invariabilidade das propriedades estatísticas. Os processos de dependência de longo prazo diferem dos de curto prazo (processos de Poisson), pois nos de curto prazo ocorre o decaimento rápido da função de autocorrelação e o somatório da função de auto-correlação não é infinito ( k r(k) < ). Pode-se então resumir as principais conseqüências de auto-similaridade: existência do efeito Hurst (onde o ajuste reescalonado da escala estatística é caracterizado por uma lei de potência), decaimento lento da variância e dependência de longo prazo (Rose 1996). Para se fazer a modelagem de fontes com características de auto-similaridade é necessário introduzir alguns conceitos essenciais como: movimento Browniano Fracionário, ruído gaussiano fracionário e processo envelope Movimento Browniano Fracionário Um caminho aleatório (random walk) é uma trajetória ao qual um objeto se move com a mesma probabilidade em qualquer direção. Um Movimento Browniano (MB) é um movimento aleatório em função do tempo de algum elemento qualquer do qual não podemos descrever matematicamente sua posição. O caminho percorrido é irregular e também altamente imprevisível, o que torna a localização de uma partícula neste movimento extremamente difícil e às vezes impossível. Existe uma relação entre MB e caminho aleatório, um Movimento Browniano é o limite de escala de um movimento aleatório em uma dimensão. O limite de escala acontece quando o espaçamento em um modelo reticulado tende a zero. Movimento Browniano pode ser definido como uma função B(t), em intervalos de tempo igualmente espaçados, tal que todos os incrementos B(t) são independentes, isotrópicos e aleatórios. O incremento corrente não afeta o valor do próximo (indepen- 46

62 4.2 Processos Auto-similares dentes), podem ocorrer em qualquer direção (isotrópicos) e não podem ser previstos (aleatórios) (Feder 2007). A Figura 4.5 apresenta uma simulação de um Movimento Browniano em duas dimensões. 16 Movimento Browniano em 2 Dimensões Figura 4.5: Movimentro Browniano em 2 dimensões Existem caminhos aleatórios nos quais um objeto não se move com igual probabilidade em qualquer direção e que são chamados de caminhos aleatórios guiados. O Movimento Browniano fracionário apresenta incrementos que são estacionariamente distribuídos, mas não são independentes. Seja H, 0 < H < 1, em um intervalo de tempo 0 < s < t, o valor do processo B(t) B(s) N(0, (t s) H ), onde t s é a escala de observação (Pedroso 2006). Este modelo é um processo auto-similar com dependência de longo prazo e pode ser definido na Equação 4.7, onde β é uma variável aleatória com distribuição normal, média zero e variância igual a 1, H é o parâmetro de Hurst. B H = β.t H (4.7) Mais informações sobre o fbm podem ser obtidas em (Samorodnitsky & Taqqu 1994) e o seu uso para modelagem de tráfego em (Park & Willinger 2000) Ruído Gaussiano Fracionário Um processo estocástico Z(t) é gaussiano quando Z(t) possui uma função de densidade de probabilidade gaussiana (normal), isto é, f(x) = 1 σ 2π 47 (x µ) 2 e 2σ 2, onde σ repre-

63 4.2 Processos Auto-similares senta o desvio padrão e µ representa a média da distribuição. A média está localizada no centro da distribuição e o desvio padrão controla o grau de dispersão em relação à média. O processo de incremento do Movimento Browniano Fracionário (fbm) é conhecido como Ruído Gaussiano Fracionário (fgn), definido como X(t) = B H (t) B H (s), tal que t,s ɛ Z (Pedroso 2006). Esse processo tem propriedade de dependência de longo prazo e variância com decaimento lento ou alta variabilidade, quando 1 2 < H < 1. A Figura 4.6 ilustra um processo fgn com expoente de Hurst de 0,8 e com 2 23 amostras. 6 Ruído Gaussiano Fracionário Amostras x 10 6 Figura 4.6: Ruído Gaussiano Fracionário Para avaliar se séries temporais de ruído gaussiano fracionário são processos autosimilares, foram geradas séries com expoente de Hurst variando de 0, 1 a 0, 9. Para cada série foram aplicados vários estimadores do coeficiente de Hurst e a Tabela 4.1 apresenta o resultado desta avaliação. Os métodos de agregação da variância (AV), análise R/S (R/S), peridiograma (PER), Higuchi, peridiograma modificado (PM), residuals of regression method (RRM), método do momento absoluto (MMA), estimador de Whittle podem ser encontrados em (Taqqu, Teverovsky, & Willinger 1995). O método de difference variance (DiffVar) pode ser encontrado em (Grimaldi 2004), DFA é Detrended Fluctuation Analysis e pode ser encontrado em (Peng, Havlin, Stanley, & Goldberger 1995). Pode-se concluir com os resultados obtidos, Tabela 4.1, que os processos fgn podem ser utilizados como modelos de geração de séries auto-similar. O modelo fgn é 48

64 4.2 Processos Auto-similares Tabela 4.1: Avaliação das Séries fgn Hurst Gerado AV PM Diffvar MMA RRM PER R/S DFA 0, ,137 0,136 0,134 0,130 0,099 0,169 0,137 0, ,227 0,219 0,218 0,219 0,200 0,244 0,219 0, ,321 0,308 0,301 0,301 0,301 0,311 0,310 0, ,419 0,405 0,405 0,397 0,406 0,410 0,408 0,50 0,495 0,498 0,492 0,494 0,492 0,499 0,489 0,487 0,60 0, ,604 0,602 0,601 0,600 0,609 0,607 0,70 0,707 0,683 0,683 0,707 0,715 0,701 0,712 0,710 0,80 0,781 0,769 0,798 0,782 0,798 0,799 0,769 0,779 0,90 0,876 0,857 0,895 0,878 0,903 0,896 0,885 0,906 então útil ao se trabalhar com simulações envolvendo auto-similaridade. É necessário então estimar traços de tráfego reais e avaliar seu comportamento e o expoente de Hurst de cada traço. Na próxima seção serão avaliados os traços de tráfego do Laboratório Bellcore. Estimando Traços de Tráfego Reais Os traços de tráfego coletados no Bellcore Morristown Reaserch and Engineering Center contém quatro traços de tráfego com propriedade auto-similar. Dois traços de tráfego são na maior parte de tráfego de uma rede local (BC-pAgu89.TL e BCpOct89.TL) e outros dois traços são de tráfego WAN (BC-Oct89Ex4.TL e BC-Oct89Ext). O arquivo BC-pAug89 foi coletado a partir das 11:25 horas do dia 29 de agosto de 1989 até que 1 milhão de pacotes fossem coletados. O arquivo BC-pOct89 foi coletado a partir das 11 horas do dia 5 de outubro de 1989 e o processo de captura de pacotes durou 1759,62 segundos. A coleta do arquivo BC-Oct89Ext foi iniciada às 23:46 horas do dia 03 de outubro de 1989 e foram coletados 1 milhão de pacotes. O arquivo BC-Oct89Ex4 foi coletado a partir das 14:37 horas do dia 10 de outubro de 1989 com duração de 75948,08 segundos. A Tabela 4.2 apresenta os dados dos traços de tráfego. Antes de analisar os traces é necessário dividir cada série temporal em x segundos e em cada sub-intervalo calcular a média dos pacotes. Os intervalos não devem ser muito pequenos para não aparecer períodos sem nenhum pacote e não pode ser muito grandes para não mascarar os resultados. Os intervalos variam de centenas de segundos a centenas de milissegundos. 49

65 4.2 Processos Auto-similares Tabela 4.2: Traços de Tráfego do Bellcore Arquivo Pacotes Pacote Médio(bytes) Duração(s) Tráfego (kbps) Hurst BC-pAug , ,48 0,80 BC-pOct , ,97 0,84 BC-Oct89Ext , ,14 0,88 BC-Oct89Ext , ,20 1,00 Geração de Tráfego Auto-Similar Para validar o modelo de tráfego auto-similar foi desenvolvida uma simulação cujo objetivo é a geração de tráfego com perfil auto-similar no network simulator 2. A forma mais conhecida e simples de se gerar tráfego auto-similar foi proposta por Mandelbrot. Este método baseia-se na superposição de muitas fontes alternadas, independentes e identicamente distribuídas, cada uma das quais exibe o Efeito Noé (Noah Effect) (Mandelbrot 1969). Este efeito é sinônimo de variância infinita e pode ser modelado com a agregação de fontes com distribuição de Pareto. A distribuição de Pareto é uma curva com apenas dois parâmetros, o parâmetro forma está relacionado ao parâmetro de Hurst e o parâmetro β que representa o menor valor para a variável aleatória da distribuição. A função de distribuição cumulativa é expressa na Equação 4.8, a função de densidade de probabilidade é apresentada nas Equações 4.9 e F (x) = 1 ( β x )α (4.8) Para x > β e α > 0 tem-se Para x β tem-se f(x) = α( β x )α+1 β (4.9) f(x) = F (X) = 0 (4.10) O parâmetro α determina a média e a variância (Ulanovs & Petersons 2002): para α 1 a distribuição tem média infinita para 1 α 2 a distribuição tem média finita e variância infinita para α > 2 a distribuição tem variância infinita O parâmetro α da distribuição de Pareto está relacionado com o parâmetro Hurst pela Equação

66 4.2 Processos Auto-similares H = (3 α)/2 (4.11) As topologias implementadas consistem na agregação de múltiplos nós geradores de tráfego com distribuição de Pareto. A Figura 4.7 ilustra a topologia com 2, 4 e 8 nós geradores de tráfego. A Figura 4.8 ilustra a topologia com 16, 32 e 64 nós geradores de tráfego. A Figura 4.9 ilustra a topologia com 128, 256 e 512 nós geradores de tráfego. Figura 4.7: Agregação de 2, 4 e 8 fontes de tráfego Figura 4.8: Agregação de 16, 32 e 64 fontes de tráfego Figura 4.9: Agregação de 128, 256, e 512 fontes de tráfego Na simulação variou-se o número de fontes e foi calculado o coeficiente de autosimilaridade através do método DFA. O método DFA foi utilizado devido a sua velocidade ao se lidar com séries temporais muito grandes. Esta simulação foi realizada com os seguintes parâmetros 51

67 4.2 Processos Auto-similares tempo de simulação - constante e igual a shape - 1.2, 1.4, 1.6, 1.8 número de fontes - 1, 2, 4, 8, 16, 32, 64, 128, 256 e 512 tempo ON/OFF - constante e igual a 500ms taxa - 3kbits/s tamanho do pacote bytes A Tabela 4.3 apresenta os resultados encontrados através da variação do número de fontes. Através deste resultados pode-se concluir que a partir da agregação de 32 fontes consegue-se bons resultados em função do parâmetro de Hurst estimado. Tabela 4.3: Geração de Tráfego Auto-similar Relação entre shape e Hurst Hurst 0,9 0,8 0,7 0,6 α 1,2 1,4 1,6 1,8 Número de Fontes Hurst Obtido 2 0,89 0,82 0,76 0,69 4 0,91 0,83 0,76 0,70 8 0,92 0,84 0,77 0, ,93 0,86 0,79 0, ,90 0,84 0,78 0, ,90 0,83 0,76 0, ,89 0,83 0,77 0, ,89 0,82 0,78 0, ,91 0,83 0,79 0,74 Através da simulações realizadas pode-se concluir que é possível gerar tráfego auto-similar utilizando o ns2. Cuidados devem ser tomados em relação ao tempo ON/OFF, tempo de simulação e parâmetro shape utilizado. Os melhores resultados encontrados foram para o parâmetro shape 1.2, tempos de simulação superiores a 1000 (tempo de amostragem de 0,1) e tempo ON/OFF de 500 ms ou 1000 ms Modelo de Tráfego Proposto por Norros Mandelbrot e Van Ness desenvolveram o Movimento Browniano Fracionário (fbm) e o ruído gaussiano fracionário (fgn) como generalizações do Movimento Browniano e do ruído gaussiano ordinário (Nascimento & Monteiro 2000). 52

68 4.2 Processos Auto-similares Os modelos fbm e fgm foram utilizados por Norros para propor um modelo de tráfego (Norros 1992). Seja A(t) um processo de entrada cumulativo no intervalo (0, t], m a taxa média do fluxo, a é o coeficiente de variância e H o parâmetro de Hurst, apresentado na Equação A(t) = mt + X(t), (4.12) onde X(t) é um processo auto-similar com incrementos estacionários. A(t) possui as seguintes propriedades: O processo Média - E[A(t)] = mt Variância - var[a(t)] = t 2H Convariância - C A (t, s) = 1 2 [s2h + t 2H (s t) 2H ], 0 < t < s O processo X(t) é definido como X(t) = amz(t), onde Z(t) é um Movimento Browniano Fracionário normalizado com as seguintes propriedades: Z(t) possui incrementos estacionários Z(0) = 0 e E[Z(t)] = 0, para todo t variância de Z(t) - E[Z(t)] 2 = t 2H Z(t) é um processo gaussiano Em (Norros 1994) foi proposto um modelo de armazenamento com tráfego de entrada auto-similar. O modelo de armazenamento estacionário com entrada fracionária Browniano é um processo estocástico V (t), onde V (t) = sup s t (Z(t) Z(s) C(t s)), t ɛ (, ) (4.13) onde Z(t) = at + σt H. O sistema tem quatro parâmetros a, σ 2, H e C, a > 0 é a taxa média de entrada, σ 2 > 0 é a variância, Hɛ[ 1 2, 1) é o parâmetro de auto-similaridade de Z(t), e C > a é a taxa de serviço. A Equação 4.13 é a quantidade de trabalho em sistema de filas com taxa de serviço C e processo de trabalho cumulativo A(t). O limite inferior pode ser definido pela Equação m)(1 H) max t 0 P (A(t) > t + x) exp ( [ ((1 ) 2H ]x 2(1 H) ) (4.14) 2am(1 H) 2 H 53

69 4.2 Processos Auto-similares Para este modelo de tráfego Norros definiu a equação para estimação da banda efetiva, isto é, a banda necessária para transportar uma determinada quantidade de tráfego: C = a + (k(h) 2 ln(p {X > b})) 1/H σ 1/2H b (1 H)/H a 1/2H (4.15) onde K(H) = H H (1 H) 1 H, b é o tamanho do buffer,p {X > b} é a probabilidade de perda, a é a taxa média e σ 2 é o coeficiente de variância. 4.3 Processos Envelopes Um processo envelope é um modelo de tráfego que estabelece uma função limitante para o volume de tráfego em um fluxo. Um processo envelope para um conjunto S e uma função determinística f(t) é qualquer função ˆf(t) tal que t ɛ S ˆf(t) f(t). Isto é útil quando se quer aproximar uma função que é difícil de se obter analiticamente. Para processos estocásticos é mais usual definir processos envelopes que permitem violações com uma determinada probabilidade. Estes modelos, chamados de probabilísticos, definem uma probabilidade de violação que permite um modelo mais adequado para as condições de tráfego reais. Seja um processo estocástico Z(t), um processo envelope Ẑ(t) e P a probabilidade de violação de Z(t) em relação a Ẑ(t). Assim, pode-se definir um processo envelope tal que P (Z(t) > Ẑ(t)) > ɛ. Um processo envelope permite que o processo estocástico seja trocado por uma função determinística e considerar o limite superior ao invés da distribuição. A maior parte dos resultados não dependem da forma exata do processo para o qual a função envelope foi encontrada. De outra forma, um processo envelope pode ser encontrado para qualquer processo para o qual a função de distribuição cumulativa é conhecida ou no mínimo computável. Entretanto, a análise envelope permite obter resultados gerais e extendê-los a novos processos. Os modelos determinísticos definem limitantes absolutos para as métricas de tráfego. A Equação 4.16 apresenta ao fluxo máximo Z(t) no intervalo de tempo t seja limitado superiormente. Este modelo tem como vantagens poucos parâmetros e como desvantagem uma utilização conservadora de recursos. Ẑ(t) = sup s 0 Z[s, t + t] (4.16) Os modelos probabilísticos utilizam as propriedades estocásticas de um fluxo de tráfego e tem como principais vantagens a utilização dos recursos mais próxima do real e como desvantagem a necessidade de mais informações sobre o fluxo de tráfego. 54

70 4.3 Processos Envelopes Processo Envelope para Tráfego Auto-Similar Seja um processo envelope Ẑ(t) definido pela Equação 4.17, onde a representa a função de entrada, t o tempo, σ 2 a variância e k está relacionada ao percentual de violação (k = 2 ln ɛ). Ẑ(t) = at + k σ 2 t (4.17) A probabilidade que o processo de entrada Z(t) viola a função envelope Ẑ(t) pode ser calculada pela Equação P (Z(t) > Ẑ(t)) ɛ (4.18) O processo envelope para um processo auto-similar é definido pela Equação O processo envoltória fbm é um caso especial quando H = 1 2. Z H (t) = at + kσt H (4.19) Para avaliar o processo envelope probabilístico aplicou-se o procedimento ao traço de tráfego BC-pAug89.TL. A Figura 4.10 apresenta o processo envelope com expoente de Hurst de 0,8 e percentual de violação de 1%, pode-se concluir que o processo envelope é o limite superior para o tráfego de entrada em uma rede. Este procedimento pode ser aplicado em um sistema de controle de admissão em redes de computadores para redes com este perfil de tráfego. Em (Fonseca, Mayor, & Neto 2000) é definida uma heurística para se determinar o processo envelope probabilístico para tráfego auto-similar. Seja um sistema de filas com taxa de serviço c onde o processo cumulativo de chegadas é dado por Z H (t)(z H (0)) = 0. Define-se o processo envelope probabilístico ẐH(t) de um processo estocástico Z H (t), com uma probabilidade de violação inferior a ɛ, dada por P (Z H (t) > ẐH(t)) ɛ. Seja q(t) um sistema de enfileiramento com taxa de serviço c submetido ao processo de entrada estocástico Z H (t), o número de elementos no sistema de enfileiramento será o número de pacotes que entra na mesma menos a quantidade de pacotes servidos, isto é, q(t) = Z H (t) ct 0. Pode-se definir o processo envelope ˆq(t) de forma similar ao processo Ẑ(t), isto é, ˆq(t) = ẐH(t) ct 0. Pode-se observar das Equações?? e?? que P (Z H (t) > ẐH(t)) = P (q H (t) > ˆq H (t)) ɛ (4.20) 55

71 4.3 Processos Envelopes 3.5 x 106 Processo Envelope para o Traço BC paug89.tl 3 Processo Envelope Traço Bellcore Tráfego Agregado Slots de Tempo de 0,5s Figura 4.10: Processo Envelope para o Traço BC-pAug89.TL O atraso máximo é obtido quando q(t) possui o maior tamanho, isto é, maior quantidade de elementos na fila. Apenas quando o processo de chegada excede o processo envelope, o número máximo de células no sistema excederá seu valor estimado. Seja um processo estocástico mbm Ẑ(t) = at + kσth como entrada no sistema de filas. Assim, ˆq(t) = āt + kσt H ct (4.21) Para encontrar o máximo de ocupação máxima dˆq(t)/dt = 0 é necessário encontrar o tempo ao qual a condição é satisfeita, assim t max pode ser encontrado na Equação 4.22 (Mayor & Silvester 1997). t max = [ ] 1 kσh H 1 (c ā) (4.22) A expressão do tamanho máximo de uma fila na escala de tempo máxima é apresentada na Equação 4.23 (Fonseca, Mayor, & Neto 2000). q max = (c a) H H 1 (kσ) 1 1 H H H 1 H (1 H) (4.23) Pode-se obter o ĉ, que representa a capacidade do enlace que um buffer de tamanho K sofrerá overflow com probabilidade ɛ (Fonseca, Mayor, & Neto 2000). Pode-se 56

72 4.3 Processos Envelopes obter estes mesmos resultados pelo modelo proposto por Norros que será apresentado a seguir. ĉ = a + K H 1 H (kσ) 1/H H(1 H) H 1 H (4.24) Para validar o modelo de tráfego foi realizada uma simulação no network simulator 2 com a topologia apresentada na Figura Foi injetado no nó 0 o traço de tráfego BC-pAug89.TL que possui taxa média de tráfego de 1.1 Mbps e desvio padrão de 519 kbps, 1% de violação do envelope probabilístico e com expoente de Hurst de O enlace entre o nó 0 e 1 tem 10Mbps e entre o nó 1 e 2 teve sua capacidade variada para avaliar a precisão da capacidade equivalente. Foi calculado a capacidade equivalente através da Equação 4.24 onde obteve-se 2, 88M bps para as condições acima relacionadas. Se o enlace fosse da mesma capacidade que a fonte, a ocupação da fila seria de próximo de 100% o que poderia levar a perdas de pacotes. Por isso o enlace deve ser superior à fonte e deve-se levar em conta a taxa de ocupação da fila. Para uma ocupação de 80% o enlace deveria ser de 3, 5Mbps, mas pode-se observar que para a taxa de 3,3 Mbps que corresponde a 87% de ocupação os resultados foram suficientes para garantir violação de até 1% de perda de pacotes. Figura 4.11: Validação o Modelo de Capacidade Equivalente O atraso de um nó passa a ser calculado pela Equação 4.25 (Ng, Tang, & Zhang 57

73 4.3 Processos Envelopes Tabela 4.4: Traços de Tráfego do Bellcore Capacidade Perda de Pacotes Atraso Médio 3, 5 Mbps 0, 70% 8, 45 ms 3, 3 Mbps 0, 97% 9, 96 ms 3, 0 Mps 1, 56% 12, 67 ms 2, 9 Mbps 1, 82% 13, 72 ms 2, 7 Mbps 2, 45% 16, 20 ms 2, 6 Mbps 2, 81% 17, 16 ms 2, 5 Mbps 3, 26% 19, 16 ms 2, 4 Mbps 3, 76% 20, 87 ms 2, 0 Mbps 6, 51% 30, 07 ms 1, 8 Mbps 8, 56% 36, 50 ms 1, 5 Mbps 12, 80% 49, 50 ms 2002). d = q max c (4.25) A probabilidade de perda de pacotes levando-se em conta o t max e a taxa de ocupação máxima é apresentada na Equação 4.26 (Barreto 2007). P max = ÂH(t max ) Ct max B f  H (t max ) (4.26) 4.4 Modelo para Agregação de Fontes Em um sistema de alocação de LSPs, diversas fontes com características distintas podem ser direcionadas para um mesmo enlace. Seja um conjunto de fontes de tráfego auto-similar de incrementos estacionários em uma rede MPLS. Estas fontes podem ser aproximadas por uma fonte de tráfego fbm com taxa média de a, variância σ 2 e parâmetro de Hurst H. Em (Orenstein, Kim, & Lau 2001) estudou-se um esquema de alocação de largura de faixa para tráfego auto-similar com múltiplas classes de tráfego com características distintas e estimou-se os parâmetros de Hurst e da variância em função da agregação. Foram propostos dois métodos para se estimar o parâmetro de Hurst e a variância. Estes métodos foram validados em (Barreto 2007) e o segundo método mostrado a seguir apresentou maior precisão. Seja o tráfego agregado A ag (t) = s A g(t), onde A g é uma fonte de tráfego autosimilar. A taxa média é calculada pela média de tráfego de todas as fontes e as expressões para o expoente de Hurst (Equação 4.27) e variância (Equação 4.28) são 58

74 4.4 Modelo para Agregação de Fontes obtidas como no trabalho de Orestein (Orenstein, Kim, & Lau 2001). H ag = s H s σ 2 s/ s σ 2 s (4.27) σ ag = s σ 2 (4.28) A partir deste modelo será desenvolvido um sistema de otimização para fontes com tráfego de perfil auto-similar. Como o problema de atribuição de rotas é NP completo, é necessário o estudo de métodos heurísticos para a otimização da rede em estudo. No próximo capítulo serão estudadas heurísticas bio-inspiradas que serão utilizadas para otimização de redes MPLS com o perfil de tráfego auto-similar. 59

75 CAPÍTULO 5 Algoritmos Bio-inspirados D entre os sistemas computacionais inspirados em sistemas biológicos, podese destacar Redes Neurais Artificiais (RNA), Algoritmos Genéticos (AG), Colônia de Formigas e Sistemas Imunológicos Artificiais (SIA). Estas abordagens são úteis para problemas de otimização que não possuem solução exata em tempo computacional razoável. As RNAs (Braga, Carvalho, & Ludemir 2000) são algoritmos inspirados no funcionamento dos neurônios do cérebro humano e conseguem desenvolver mecanismos que são similares aos de aprendizagem. Os Algoritmos Genéticos são inspirados na teoria da evolução de Charles Robert Darwin e são muito aplicados na área de otimização. Os Sistemas Imunológicos Artificiais são inspirados no sistema imunológico humano e tentam imitar o comportamento do mesmo para a resolução de problemas complexos de reconhecimento de padrões, segurança computacional, otimização e navegação de robôs. Apesar dos algoritmos imunológicos serem algoritmos evolucionários, eles foram inspirados no sistema imunológico e não na teoria neo-darwinista (de Castro Silva & Timmis 2003). Os algoritmos de colônia de formigas (Dorigo & Di Caro 1999) são inspirados no comportamento de formigas e são utilizados para resolução de problemas de logística e roteamento em redes de computadores. Entre os sistemas citados acima, três destacam-se na literatura para a resolução de problemas de otimização: Sistemas Imunológicos Artificiais e Algoritmos Genéticos. 60

76 5.1 Algoritmos Genéticos 5.1 Algoritmos Genéticos Algoritmos genéticos são métodos de busca e otimização combinatória que usam como princípio a teoria da seleção natural das espécies desenvolvida por Charles Robert Darwin. A teoria da seleção natural das espécies é baseada na evolução dos seres vivos, onde as gerações mais adaptadas continuam existindo enquanto as menos adaptadas desaparecem. Os Algoritmos Genéticos são algoritmos evolucionários que partem de uma população inicial e evoluem através de operadores genéticos de seleção, cruzamento e mutação. Um Algoritmo Genético pode ser definido como uma técnica de busca aleatória direcionada, desenvolvida por (Holland 1975), capaz de obter a solução ótima global num espaço de busca complexo multi-dimensional (de Almeida Konzen, Furtado, Carvalho, Ferro, Molz, Bassani, & Hening 2003). Uma das vantagens dos Algoritmos Genéticos é que trabalham com uma população de pontos simultaneamente, selecionando entre eles os melhores, podendo assim formar subpopulações que se distribuem em várias regiões do espaço de busca, aumentando assim a probabilidade de incluirem a solução ótima global. A evolução de uma determinada população ocorre quando são aplicados os operadores de seleção, cruzamento e mutação em diversas gerações. Estes métodos influem diretamente no sucesso de um Algoritmo Genético e isto pode variar dependendo da natureza do problema (Vasconcelos, Ramirez, Takahashi, & Saldanha 2001). Fatores como taxa de cruzamento e mutação, tamanho da população e técnicas de elitismo devem ser avaliadas ao se aplicar um Algoritmo Genético em um determinado problema. Através do cruzamento é possível explorar novos pontos no espaço de busca, através da troca de material genético entre os indivíduos. Este operador é aplicado segundo um índice denominado de probabilidade de cruzamento (p c ), que pode variar na faixa de 0.5 p c 1.0. Existem diversas formas de realizar cruzamentos e dentre elas destacam-se o cruzamento por um ponto, o cruzamento em dois pontos, o ponto por variável, o cruzamento uniforme e o cruzamento ortogonal (Reeves & Wright 1999). Os AGs têm sido utilizados na solução de problemas de diferentes domínios, como programação automática, ecologia e pesquisa operacional. Apesar de não garantirem otimalidade, possuem como principal vantagem melhor desempenho computacional, em relação aos métodos concorrentes, além de ser um procedimento de relativa simplicidade (Garcia, Garcia, & Friedmann 2000). 61

77 5.1 Algoritmos Genéticos Algoritmo Genético Simples Um AG parte de uma população inicial onde são aplicados operadores de seleção, cruzamento e mutação. Este processo se repete geração após geração, até que uma solução adequada seja encontrada ou que o processo atinja o número de iterações previamente determinado. Existem três formas de introduzir novos indivíduos a cada nova geração: no AG simples (Simple Genetic Algorithm - SGA), a cada nova geração todos os indivíduos da geração anterior são substituídos pelos selecionados através da aplicação dos operadores citados; no Algoritmo de Reposição (Replacement Genetic Algorithm - RGA) apenas um par de indivíduos é substituído; e no AG de Estado Estável (Steady State Genetic Algorithm - SSGA), seleciona-se um percentual de indivíduos para a próxima geração (Silva 2006). O Algoritmo 1 apresenta um AG simples. Algoritmo 1: Algoritmo Genético Simples Definir uma população inicial de possíveis soluções para o problema ; Calcular a aptidão (fitness) de cada indivíduo da população; enquanto o critério de parada não é encontrado faça Selecionar os melhores indivíduos; Realizar o cruzamento; Calcular a aptidão (fitness) dos filhos; Selecionar os indivíduos mais aptos; Realizar a mutação; fim Em diversas fases do AG é preciso calcular a aptidão do mesmo e para isso é necessário definir a função objetivo do problema a ser solucionado. A aptidão será o valor da função objetivo em função das variáveis do problema Função Objetivo A função objetivo deve ser capaz de estabelecer uma relação entre o problema a ser resolvido e uma equação matemática que o caracterize. Uma função objetivo que gere valores negativos pode invalidar alguns algoritmos de seleção, pois os mesmos não trabalham com valores negativos. Em problemas de minimização é necessário um mapeamento da função objetivo do problema. Uma maneira simples é a inversão da função objetivo, mas este procedimento pode gerar valores muito próximos e isso torna o processo de seleção tipicamente aleatório. Outra solução é definir a função objetivo como F obj = C fobj, onde C é uma constante suficientemente grande que assegure que o resultado seja sempre 62

78 5.1 Algoritmos Genéticos um valor positivo. Alguns trabalhos utilizam o mapeamento linear (Whitley 1989; Baker 1987), onde a aptidão é medida de acordo com a ordenação do vetor de indivíduos. Nestes métodos, o primeiro passo é ordenar o vetor de aptidão de forma decrescente, onde a relação entre os valores Max e Min definem a pressão de seleção. A Equação 5.1 apresenta a função de ordenação onde i representa o indivíduo i e N o número total de elementos. f i = Min + (Max Min) N i N 1 (5.1) Para problemas com restrições, uma abordagem eficaz é a utilização de penalidades na função objetivo. Os métodos de penalidade podem ser divididos em penalidade externa e interna (Baptista & Costa 1999). O método de penalidade externa aplica em uma penalidade na função objetivo quando uma ou mais restrições são violadas. O método de penalidade interior evita que as restrições sejam violadas adicionando penalidades no custo da função Representação do Problema Existem diversas maneiras de codificar um indivíduo (binária, Gray ou real) e a escolha do tipo de codificação depende do problema a ser resolvido. Não existe na literatura a indicação de um método melhor, mas estudos apontam que para determinadas classes de problemas um determinado tipo de codificação se sobressai em relação aos demais. Ao optar por códigos binários deve-se preocupar com um problema denominado Hamming cliffs, que são diferenças significativas entre dois números próximos (Goldberg 1989). Como exemplo, suponha que as soluções para um determinado problema estejam entre 0 y 7. Pode-se então codificar o problema de acordo com o código binário ou Gray da Tabela 5.1. Nota-se que uma pequena perturbação ajuda na convergência final do AG, enquanto no código binário poderia ampliar a região de exploração (Avila 2002). Quando não existe um código adequado para representar um problema, a única saída é a criação de um novo código. Existem dois princípios básicos para a criação de um novo código: significado dos building blocks e dos alfabetos mínimos. O primeiro princípio sugere a utilização de esquemas curtos e de baixa ordem e o segundo princípio indica que deve-se utilizar o menor alfabeto que permita a exploração natural do problema. Mais detalhes sobre esta discussão podem ser encontrados em (Soares 1997). 63

79 5.1 Algoritmos Genéticos Tabela 5.1: Relação entre os Códigos Gray e Binário Real Binário Gray Parâmetros de Ajuste Um AG é sensível a diversos parâmetros e estes influenciam diretamente no sucesso da aplicação do mesmo em um determinado problema. Os principais parâmetros são: tamanho do cromossomo, número de indivíduos, taxa de mutação e cruzamento e critério de parada. O tamanho de um cromossomo depende do problema a ser solucionado e influencia na precisão da solução do mesmo. A quantidade de indivíduos de uma população depende da complexidade do problema a ser resolvido. Quanto maior o número de indivíduos mais rápida será a exploração do espaço de busca e também maior será o tempo computacional. A relação da complexidade do problema e o tempo computacional gasto define o número de indivíduos de uma determinada população. A taxa de cruzamento controla a quantidade de vezes que o operador de cruzamento será utilizado. Quanto maior a taxa de cruzamento maior será a velocidade de convergência e maior probabilidade de convergência prematura. Um baixo índice significa que as trocas de material genético serão pequenas e haverá um aumento do tempo de convergência. A taxa de mutação é a probabilidade que o operador de mutação será utilizado. Este operador tem como objetivo aumentar a variabilidade de população e pressionar novos indivíduos a explorarem novas regiões no espaço de soluções. O critério de parada pode ser pelo número de gerações, pelo número de gerações sem melhoria do resultado ou pode também ser realizado por tempo de simulação. Cada critério de parada aplica-se a uma determinada classe de problemas e deve ser realizado um estudo para determinar qual o melhor mecanismo deve ser utilizado. 64

80 5.1 Algoritmos Genéticos Cruzamento Existem diversas formas de realizar cruzamento. Dentre elas destacam-se: cruzamento por um ponto (1PT), cruzamento em dois pontos (2PT), ponto por variável (PTV), cruzamento uniforme (UN) e cruzamento ortogonal (OCX). Cruzamento em Um Ponto O cruzamento é feito combinando os valores binários dos dois pais. Sejam os pais apresentados na Figura 5.1(a): os pais 1 e 2 são divididos em duas partes, pai 1 em a e b e o pai 2 em c e d. O cruzamento é feito pegando a primeira porção do pai 1 (parte a) e a segunda porção do pai 2 (parte d). O segundo filho é produzido pela porção c do pai 2 e pela porção b do pai 1. O ponto de cruzamento é determinado de forma aleatória. Na Figura 5.1(b) o pai 1 é apresentado pela cor preta e o pai 2 é apresentado pela cor cinza. Dado o ponto de cruzamento, os filhos são apresentados através da combinação do material genético dos dois pais. (a) Exemplo 1 (b) Exemplo 2 Figura 5.1: Processo de Cruzamento em um Ponto Cruzamento em Dois Pontos No cruzamento em dois pontos são escolhidos aleatoriamente dois pontos de cruzamento (ponto de corte 1 e ponto de corte 2). A Figura 5.2 apresenta o cruzamento em dois pontos onde o pai 1 tem a cor preta e o pai 2 tem a cor cinza. Cruzamento Uniforme Neste tipo de cruzamento é gerado um vetor de bits aleatórios do mesmo tamanho do cromossomo. Na Figura 5.3 é gerada uma máscara aleatória (100010) e os pais (1 : e 2 : ). Para gerar qualquer filho basta selecionar bit a bit a máscara, se o bit for zero é selecionado o pai corrente e se for 1 é selecionado o outro pai. Quando gera-se o filho 1, zero na máscara copia-se o bit do pai 1 e um na máscara 65

81 5.1 Algoritmos Genéticos Figura 5.2: Cruzamento em Dois Pontos copia-se o bit do pai 2. Já no filho 2, zero na máscara copia-se o bit do pai 2 e um na máscara copia-se o bit do pai 1. Figura 5.3: Cruzamento Uniforme Um Ponto por Variável Uma outra variação é a utilização de um ponto por variável do problema. Assim, a troca de material genético ocorrerá apenas entre as mesmas variáveis. Este método possibilita que a troca de material genético ocorra apenas entre genes com o mesmo locus entre indivíduos diferentes. Crossover Ortogonal Este método foi inspirado nos conceitos de projeto de experimento. Estes conceitos visam determinar a menor quantidade de experimentos para a representação de um amplo espectro de possibilidades. Suponha que um experimento dependa de 3 fatores, A, B e C, e que cada fator tem três possíveis valores. Quando tem-se um experimento com k fatores e n possibilidades, tem-se n k possíveis experimentos. Em muitos casos é impossível testar todas as possibilidades e o Projeto Experimental 66

82 5.1 Algoritmos Genéticos (Montgomery 2000) permite selecionar apenas uma pequena parte de testes que seja representativa do experimento. Isso é conseguido através da utilização de vetores ortogonais. Este conceito pode ser aplicado ao cruzamento de Algoritmos Genéticos e foi aplicado em alguns problemas de roteamento (Cuihong 1997; Zhang, Ribeiro, Moon, & Diot 2003). Em (Zhang, Ribeiro, Moon, & Diot 2003) é apresentado uma descrição detalhada do algoritmo de crossover ortogonal. O vetor ortogonal L (23 ) 4, Tabela 5.2, é utilizado para amostrar os genes de dois pais para o cruzamento. O vetor L (23 ) 4 implica que são usados três fatores, então cada pai é dividido em três partes. Os dois pais são amostrados baseados nas combinações produzindo quatro filhos. L (nk ) m Em geral, para com k fatores e m combinações de fatores de níveis, cada parente é dividido em k partes, são amostradas estas partes de n pais baseados nas m combinações em L (nk ) m para produzir m filhos, e então seleciona-se j para serem filhos. A Tabela 5.3 apresenta o vetor ortogonal para L (34 ) 9. Tabela 5.2: Vetor Ortogonal L 4 (2 3 ) para três fatores com dois níveis Combinação Fator 1 Fator 2 Fator Tabela 5.3: Vetor Ortogonal L 9 (3 4 ) para quatro fatores com três níveis Combinação Fator 1 Fator 2 Fator 3 Fator

83 5.1 Algoritmos Genéticos A Listagem 2 descreve o algoritmo de cruzamento ortogonal. Algoritmo 2: Cruzamento Ortogonal Entrada: n pais x i = (x i1, x i2,..., x il ) para 1 i n ; Saída: j filhos o i = (o i1, o i2,..., o il ) para 1 i n ; Gere n números aleatórios independentes p(i) ɛ 1, 2, 3,..., k para todo 1 i n; Baseado na i th combinação dos fatores (a 1 (i), a 2 (i),..., a k (i)) no vetor ortogonal L m (n k ), produza uma string binária o i = (x ap(1) (i), 1, x ap(2) (i), 2,..., x ap(l) (i), l) para todo 1 i m; Cada o i poderá sofrer mutação que depende da probabilidade p m. Para realizar a mutação altere cada bit com uma pequena probabilidade p f ; Execute a operação check-and-repair em o i para todo 1 i m; Calcule a aptidão dos vetores o i = (o 1, o 2,..., o m ) e então selecione j para ser o filho; Como este método foi aplicado em um problema de definição de rotas multicast podem existir caminhos que não pertencem a árvore gerada. Assim, a operação checkand-repair elimina estes caminhos inválidos. No problema tratado neste trabalho não é necessário este passo, pois não são gerados caminhos inválidos. Este método de cruzamento pode ser utilizado como método de cruzamento e seleção. Os testes foram realizados escolhendo três indivíduos e gerando nove filhos. A cada nove filhos são escolhidos os três melhores para a próxima geração Algoritmo de Seleção Um algoritmo de seleção tem como objetivo definir quais indivíduos irão compor a próxima geração e para isso ele necessita de uma regra que permita definir os indivíduos que continuarão e quais serão removidos. Este processo envolve um fator de aleatoriedade, pois se apenas os mais aptos fossem selecionados ocorreria uma tendência de convergência para máximos ou mínimos locais e aconteceria uma convergência prematura. Existem diversos algoritmos de seleção e neste texto serão abordados os métodos da roleta, torneio, amostragem determinística e stochastic remainder sampling (SRS). Roleta Cada indivíduo possui um valor de aptidão que é calculado pela aplicação da função objetivo ao cromossomo do mesmo. O primeiro passo é calcular a aptidão acumulada de toda a população e isso é feito através do somatório das aptidões de todos os indivíduos. Após isto é calculado a probabilidade de seleção de cada indivíduo 68

84 5.1 Algoritmos Genéticos psel(i) = ap(i) apt otal (aptidão do indivíduo i dividido pela aptidão total) e é construído um vetor com a probabilidade acumulada dos indivíduos. São gerados n números aleatórios entre (0 apt otal) e para cada número aleatório é verificado qual elemento do vetor acumulado é superior a ele. Assim, os indivíduos são selecionados de acordo com sua probabilidade de seleção e os números aleatórios garantem a diversidade da população. Seja N a quantidade de indivíduos de uma população, ap(i) a aptidão de cada indivíduo i, fobj() a função objetivo do problema, psel i a probabilidade de seleção de cada indivíduo, ind(i) é o indivíduo i da população. algoritmo de seleção roleta. Algoritmo 3: Algoritmo da Roleta 1 calcule a aptidão de todos os indivíduos; 2 para i=1 até N faça 3 ap(i) = fobj(ind(i)) 4 fim 5 calcule a aptidão de todos os indivíduos; apt otal = 6 N i=1 ap(i); 7 calcule a probabilidade de seleção de cada indivíduo ; 8 para x=1 até N faça psel(i) = ap(i) apt otal A Listagem 3 apresenta o fim ordene os indivíduos em um vetor de soma de aptidões; gere números aleatórios de 0 < x < apt otal e selecione o indivíduo no vetor; Torneio Existem diversas abordagens para este método de seleção e para este texto utilizouse o método apresentado a seguir. É definido um valor limiar (0 < limiar < 1) que determina a pressão de seleção e para cada par de indivíduos selecionados é gerado um número aleatório entre 0 e 1. Se o número aleatório for menor do que o limiar então o indivíduo 1 é selecionado, senão é então escolhido o indivíduo 2. Amostragem Determinística Neste método calcula-se a aptidão média da população ap med e divide-se a aptidão de cada indivíduo pela a aptidão média e armazene a parte inteira da desta operação (int( ap i ap med )). Se o valor for maior ou igual a 1, este indivíduo é copiado para a próxima geração. As vagas ociosas na nova população serão preenchidas pelos indivíduos com 69

85 5.1 Algoritmos Genéticos a maior parte fracionária. Stochastic Remainder Sampling (SRS) Utiliza-se os mesmos conceitos da Amostragem Determinística e a população deve ser formada com a parte inteira do cálculo da expressão int( ap i vagas ociosas foram preenchidas utilizando o método da roleta. ap med ). Neste caso as Convergência Prematura Quando um Algoritmo Genético converge prematuramente para um mínimo ou máximo local é necessário valer-se de técnicas para evitar este tipo de problema. As principais causas para convergência prematura são: excessivo número de filhos de um mesmo indivíduo, baixa diversidade, pequena população que pode causar o desaparecimento de genes na população e alta pressão de seleção. Populações pequenas podem originar um espaço de soluções pequenos e correr o risco de esconder soluções ótimas. Populações grandes podem prevenir a convergência prematura, mas necessitam de mais recursos computacionais e podem provocar erros de cálculo. Alguns autores sugerem que o tamanho de uma cadeia binária cresce exponencialmente com a distância entre posições definidas de uma cadeia de tamanho n. Alander sugere que o tamanho de uma população encontra-se entre n e 2n (n é o número de elementos do cromossomo). Outros autores sugerem que em muitos problemas o tamanho ótimo de uma população deva ser inferior a 30 indivíduos (Soares 1997). Variação Dinâmica dos Parâmetros de Crossover e Mutação Dois problemas ocorrem em relação a variabilidade dos indivíduos: quando a variabilidade da população é pequena, pode-se levar a uma convergência prematura, e quando elevada, impede a convergência do algoritmo. Pode-se controlar a variabilidade da população variando-se os parâmetros de cruzamento e mutação. Quando a variabilidade for pequena reduz-se a taxa de cruzamento e eleva-se a taxa de mutação. Com este procedimento aumenta-se a variabilidade da população e reduz-se a possibilidade de convergência para um mínimo global. Quando a variabilidade for muito alta reduz-se a taxa de mutação e aumenta a taxa de cruzamento. Com isso mais trocas de material genético ocorre tentando guiar a população para uma possível convergência. A adaptação pode ser feita pelo indivíduo ou pelo comportamento médio da população. Na adaptação dinâmica por indivíduo as probabilidades de cruzamento e 70

86 5.1 Algoritmos Genéticos mutação para cada indivíduo variam de acordo com o seu desempenho e com os valores de desempenho médio e máximo encontrados. Na adaptação segundo o comportamento médio da população as probabilidades de cruzamento e mutação para todos os indivíduos variam de acordo com os valores médio e máximo de desempenho (Vasconcelos, Ramirez, Takahashi, & Saldanha 2001). Os valores das probabilidades de cruzamento e mutação são modificados observando a medida da diversidade genética m dg da população, onde m dg = ff med ff max, onde ff med é o desempenho médio da população e ff max é o melhor resultado da população. Quando m dg 0 significa que existe pouca diversidade, é definido então uma faixa onde os valores de diversidade são aceitáveis. Os valores entre Vdg min e Vdg max são aceitáveis em relação à diversidade (Pinheiro 1998). Algoritmo 4: Variação Dinâmica de Probabilidades se m dg > Vdg max então p m = k m p m ; fim p c = p c /k c ; se m dg < Vdg min então p m = p m /k m ; fim p c = k c p c ; Cuidados na Construção da Função Objetivo Em alguns problemas faz-se necessário definir a aptidão de um indivíduo de forma diferenciada. Em problemas de minimização a simples inversão da função objetivo pode-se levar a sérios problemas de resolução impossibilitando a diferenciação entre indivíduos com aptidões relativamente próximas. Existem diversas maneiras para contornar este problema. Uma solução simples para transformar um problema de minimização em maximização é multiplicar a função de custo por 1. Uma limitação deste método é que este tipo de transformação não garante que a função seja negativa em todas as instâncias Uma outra maneira é transformar é subtrair a função objetivo de uma constante suficientemente grande. Assim, a nova função objetivo é f nova = C f antiga, a constante C deve ser suficientemente grande para garantir que não existam valores negativos no domínio do problema. Existem outros métodos para contornar este problema como o ranking linear, escalonamento linear, dentre outros. 71

87 5.1 Algoritmos Genéticos Ranking Linear Os indivíduos são ordenados de acordo com a sua aptidão e a cada posição i é calculado um valor baseado na posição. Este valor é determinado através da equação f i = Min + (Max Min) N i N 1. Através do ajuste de Max e Min controla-se a pressão de seleção, onde 1 Max 2 e Max + Min = 2. Os valores recomendados são de 1,2 a 1,5 para Max. Escalonamento Linear É definido uma função linear f = ag + b e através da mesma controla-se o número de filhos por indivíduos. Deseja-se que quando g for g max a equação da aptidão seja C g med. Seja a função f = a g + b, os valores médio, mínimo e máximo desta função são encontrados quando f med = a g med + b,f max = a g max + b, f max = C g med respectivamente. Deseja-se calcular os valores de a (Equação 5.2) e b (Equação 5.3) que torne estas hipóteses verdadeiras. a = (C 1) g med g max g med (5.2) b = g med g min g med g min (5.3) Para uma função de minimização utiliza-se a Equação 5.4. a = (C 1) g med g min g med (5.4) Algoritmo Genético Simples Esta seção tem como objetivo desenvolver um Algoritmo Genético simples e avaliar seu desempenho em função de teste conhecida. Seja então a função f(x) = x avaliada no domínio x = [0, 7], este problema simples é ideal para ilustrar todos os passos necessários no desenvolvimento de um AG. A representação é o primeiro passo para o desenvolvimento de um AG, nesta fase determina-se a estrutura do cromossomo e quais serão os genes que irão fazer parte do mesmo. O cromossomo deve ser criado de tal forma que seja uma boa representação para o espaço de soluções do problema. A representação binária será utilizada para representar os cromossomos e cada indivíduo irá ser representado por 3 bits (cada uma das combinações representará uma possível solução). A Tabela 5.4 ilustra a representação do cromossomo e quanto maior o número de bits maior será o espaço de busca utilizado. 72

88 5.1 Algoritmos Genéticos Tabela 5.4: Representação dos Cromossomos Cromossomo Resultado Para um problema de mais variáveis, por exemplo g(x, y) = x sin(4 π x) y sin(4 π y + π) + 1, o conjunto de parâmetros (variáveis x e y) são os genes e o cromossomo será o conjunto destes valores. Se cada variável for representada por três variáveis, o cromossomo será constituído por genes de 3 bits e terá um total de 6 bits. Um fator importante é a definição do número de indivíduos que irão compor o Algoritmo Genético. Esta escolha implicará no custo computacional e no sucesso do mesmo. Os indivíduos são gerados aleatoriamente dentro do espaço de busca, isto é, devem ser criados dentro do domínio do problema. A função objetivo indica como os indivíduos serão avaliados e o processo de avaliação é realizada durante a evolução da população. O problema aqui descrito é a maximização da função f(x) = x, então a função objetivo será f(x) = x. A seleção dos pares é feita de forma aleatória, para uma população com N indivíduos são feitos N/2 pares. Esta fase, cruzamento, é feita através da combinação entre os valores binários dos dois pais. A mutação consiste na alteração de um determinado bit em um indivíduo selecionado aleatoriamente. Se um indivíduo codificado com a seqüencia binária e se a mutação for realizada no segundo bit, o novo valor será Para avaliar o desempenho do algoritmo foi desenvolvido uma simulação com a função g(x, y) = x sin(4 π x) y sin(4 π y + π) + 1, Figura 5.4, a mesma utilizada no artigo (de Castro Silva & Timmis 2002). O algoritmo conseguiu descobrir os melhores valores se x (1, 6289) e y ( 1, 629) para atingir o máximo da função objetivo (4, 254). 5.2 Sistemas Imunológicos Artificiais O sistema imunológico humano tem como principal objetivo impor resistência aos diversos invasores presentes no meio ambiente. Estes sistemas apresentam duas 73

89 5.2 Sistemas Imunológicos Artificiais Figura 5.4: Função de Teste características importantes: memória e aprendizagem. A memória contra reinfecções é o efeito vacina, no qual o corpo reage mais rapidamente na presença de invasores já conhecidos. A aprendizagem é a capacidade praticamente ilimitada de encontrar soluções adaptativas para mudanças imprevisíveis do ambiente. Basta observar que, independente do corpo humano possuir uma quantidade limitada de material genético e existir uma variedade quase infinita de possíveis patógenos, o sistema imunológico é capaz de reagir de forma rápida e eficiente aos antígenos novos e aos previamente encontrados. As características de memória e aprendizagem são obtidas pelos complexos mecanismos de interação entre as diversas células que compõe o sistema imunológico. Os principais componentes do sistema imunológico humano são os anticorpos que são gerados pelos linfócitos e a presença deles em um indivíduo reflete as infecções as quais o mesmo já foi exposto. Os linfócitos são capazes de desenvolver uma memória imunológica, ou seja, reconhecer o mesmo estímulo antigênico caso ele entre novamente em contato com o organismo, evitando assim o restabelecimento da doença. Portanto, os mecanismos de aprendizagem e memória dão ao sistema imunológico a capacidade de extrair informações dos agentes infecciosos e disponibilizá-las para uso futuro em casos de novas infecções pelos mesmos agentes ou similares. Os Sistemas Imunológicos Artificiais visam reproduzir em um computador algumas de suas principais características e habilidades biológicas, como capacidade de 74

90 5.2 Sistemas Imunológicos Artificiais reconhecimento de padrões e de processamento de informações, adaptação, aprendizado, memória, auto-organização e cognição dentre outras. Os Sistemas Imunológicos Artificiais podem ser aplicados para resolução de problemas de logística, planejamento e operação de linhas industriais e para acelerar o desempenho de computadores Imunologia e Sistema Imunológico A definição mais recorrente é que a imunologia é um ramo da biologia que estuda o sistema imunológico. O sistema imunológico é essencial para vida de todos os seres humanos e animais, pois ele tem a função de proteger e defender o organismo de invasores que causam doenças. Ele pode ser definido como um conjunto complexo de células, moléculas e órgãos com o papel primordial de limitar os danos causados pelos patógenos (antígenos), a partir de uma resposta imunológica (de Castro Silva & Zuben 2000). Patógeno pode ser definido como todo e qualquer agente causador de doença e abrange uma grande quantidade de microrganismos que causam danos ao corpo, como bactérias, parasitas, vírus e fungos. Uma das características mais marcantes produzidas pelo sistema imunológico é a resistência a uma determinada doença. Quando um ser humano tem resistência a uma determinada doença é dito que o mesmo tem imunidade em relação ao agente causador. Assim, imunidade são todos os mecanismos fisiológicos que permitem que um animal tenha capacidade de reconhecer certos materiais como estranhos a ele e neutralizar, eliminar ou metabolizar estes materiais com ou sem lesão dos seus próprios tecidos (Bellanti 1980). A imunidade está relacionada diretamente ao conceito de memória onde a resposta é mais rápida aos patógenos conhecidos, isto é, que previamente já entraram em contato com o organismo. As respostas imunológicas de um organismo são todos os mecanismos de defesa e possuem três funções principais: defesa, homeostasia e vigilância. A defesa é a resistência do organismo à infecção por microrganismos, a homeostasia diz respeito à remoção de componentes próprios enfraquecidos e a vigilância à percepção e destruição de células não próprias. Muito mais do que um sistema reativo, que apenas responde às invasões, os animais vertebrados desenvolveram um sistema de defesa com a característica principal de ser preventivo, ou seja, o sistema imune é capaz de se prevenir contra qualquer tipo de invasor que possa ser encontrado ou sintetizado. A primeira tarefa do sistema imunológico é detectar os patógenos e uma vez detectados são necessárias ações para eliminá-los de alguma maneira. As células responsáveis pela destruição dos invasores são conhecidas como células efetoras. O 75

91 5.2 Sistemas Imunológicos Artificiais processo de detecção é muito mais de que um simples processo de reconhecimento. As células devem ser capazes de diferenciar o que pertence ao organismo e o que não pertence ao mesmo, para que não ataquem componentes do próprio organismo. O problema de eliminação do sistema imunológico é escolher a célula efetora para o tipo de patógeno a ser eliminado (Hofmeyr 2000). Além dos anticorpos, tanto o sistema circulatório quanto o sistema linfático participam ativamente do sistema imunológico. No sangue circulam os glóbulos vermelhos, glóbulos brancos e plaquetas. Os glóbulos vermelhos são responsáveis pelo transporte de oxigênio dos pulmões para todas as partes do corpo e trazer o gás carbônico de volta. Os glóbulos brancos ou leucócitos são responsáveis pelo combate às infecções. As plaquetas são produzidas na medula óssea e são responsáveis pela coagulação. O sistema linfático é um conjunto de órgãos que estão distribuídos por todo o corpo como as amígdalas, baço, linfonodos (nódulos linfáticos) e timo. Os linfonodos são os órgãos linfáticos mais numerosos do organismo e têm como função filtrar a linfa (rica em linfócitos) e eliminar corpos estranhos (vírus e bactérias) (Vilela 2006). Células do Sistema Imune Existem vários tipos de leucócitos (glóbulos vermelhos) presentes no sangue, neutrófilos, acidófilos ou eosinófilos, basófilos, linfócitos e monócitos. Cada um dos leucócitos tem uma função definida e atua de forma diferenciada no sistema imunológico. Os fagócitos mononucleares ou macrófagos têm como função realizar a fagocitose dos agentes invasores e apresentação dos antígenos aos linfócitos T. Cerca de 65% dos leucócitos presentes no sangue são neutrófilos e estas células participam ativamente da fagocitose de bactérias e das reações inflamatórias. Os mastócitos estão presentes no tecido conjuntivo e são células grandes que produzem mediadores químicos que desempenham funções de defesa. Os basófilos possuem a mesma função dos mastócitos, mas são encontrados no sangue e não no tecido conjuntivo. Eosinófilos são leucócitos especializados para matar parasitas. Se o sangue do indivíduo estiver com a taxa de eosinófilos alta (leucocitose eosinofílica) é um grande indicador de infecção parasitária (de Mello Motta Junior 2006). Medula Óssea A medula óssea é responsável pela geração das células do sangue (linfócitos). Tanto os linfócitos B e T são gerados na medula óssea. Os linfócitos B desenvolvem-se na medula óssea enquanto os linfócitos T migram para o timo onde se desenvolvem. Durante a diferenciação da célula sanguínea em linfócito B, é produzido um anticorpo em sua superfície. Um anticorpo tem como funções principais reconhecer o 76

92 5.2 Sistemas Imunológicos Artificiais antígeno e realizar a função efetora (de Castro Silva & Timmis 2003). Barreiras de Defesa Os seres humanos possuem duas barreiras de defesa contra os patógenos. A primeira grande barreira é chamada de sistema imunológico inato ou natural, pois ela aparece no nascimento. Este tipo de defesa não tem especificidade contra os invasores. A segunda grande barreira é conhecida como sistema imunológico adaptativo, pois as células de defesa que atuam nesta barreira se adaptam para combater aos patógenos. A reação para cada tipo de patógeno é diferente, isto é, o sistema imunológico se adapta para combater a invasão. A Figura 5.5 apresenta a atuação do sistema imunológico na presença de invasores. Figura 5.5: Atuação do Sistema Imunológico Sistema Inato O sistema inato é composto de várias linhas de defesa. A primeira camada de defesa são as barreiras físicas, como pele e mucosas. A segunda camada são as barreiras bioquímicas como ácido clorídrico no estômago e o ph da vagina. Estas barreiras atuam para impedir que os patógenos invadam o corpo do hospedeiro. O sistema imunológico inato é a parte do sistema imunológico que não se adapta a patógenos específicos, isto é, ele é uma resposta genérica para qualquer tipo de patógeno. Ele provê uma linha defesa rápida, dando tempo para o sistema imune adaptativo construir uma resposta mais específica. As células que atuam nesta fase, leucócitos polimorfonucleares, monócitos, macrófago, neutrófilos polimorfonucleares e os eosinófilos, matam os microrganismos através da fagocitose 77

93 5.2 Sistemas Imunológicos Artificiais Além das células, o sistema inato também possui o sistema complemento que é composto por cerca de 30 proteínas dispersas no sangue. Quando uma proteína é ativada, todas as outras são ativadas e provocam a lise das células invasoras. Lise pode ser definido como rompimento da membrana das bactérias, resultando na destruição da mesma. Sistema Adaptativo O sistema adaptativo é assim chamado porque ele se adapta ou aprende a reconhecer determinados tipos de patógenos que são então memorizados para aumentar a velocidade para respostas futuras (Hofmeyr 2000). O aprendizado do sistema adaptativo ocorre durante a primeira fase de resposta, quando um novo tipo de invasor entra no organismo. A primeira reposta é lenta, torna-se aparente apenas após vários dias da infecção inicial e leva até três semanas para acabar com a infecção. Após a primeira reposta a uma infecção, o sistema imune memoriza o tipo de patógeno que causou a infecção. Se o corpo for infectado novamente pelo mesmo tipo de patógeno, a resposta será mais rápida, pois a fase de aprendizado não será necessária (Hofmeyr 2000). Distinção do próprio do não próprio As células que compõe o sistema imunológico devem conseguir diferenciar as células que pertencem ao organismo dos invasores. Este é um problema que ocorre durante a fase detecção e é sempre descrito como a distinção do próprio do não próprio (no qual são elementos do corpo, e patógeneos/toxinas, respectivamente) (Hofmeyr 2000). Resposta humoral e mediada por células A resposta específica pode ser dividida em humoral e mediada por células. A resposta humoral está relacionada com a interação direta entre antígeno e anticorpo e a imunidade mediada por células tem relação com a ação dos linfócitos com os antígenos. Reconhecimento dos Antígenos O reconhecimento dos antígenos é realizado tanto pelos linfócitos T quanto pelos B. A superfície das células B e T possuem uma determinada forma que se encaixa na superfície do antígeno para ocorrer o reconhecimento (de Castro Silva & Timmis 2003). 78

94 5.2 Sistemas Imunológicos Artificiais O reconhecimento imunológico ocorre em nível molecular e é baseado na complementariedade entre a região de ligação do receptor e uma porção do antígeno chamada epítopo. Enquanto os anticorpos possuem um único tipo de receptor, os antígenos podem possuir múltiplos epítopos, significando que um único antígeno pode ser reconhecido por diferentes moléculas de anticorpo (de Castro Silva 2001). Os anticorpos são específicos a cada tipo de antígeno e são produzidos pelos linfócitos B. Se o sistema imune entrar em contato mais de uma vez com um determinado patógeno, a produção de anticorpos é mais intensa e mais rápida (resposta imune secundária). Os princípios da seleção clonal e da maturação da afinidade explicam como o sistema imune reage aos patógenos e como ele melhora a capacidade de reconhecer e eliminar patógenos. Seleção Clonal e Maturação da Afinidade A teoria da seleção clonal estabelece que quando um patógeno invade o organismo, os anticorpos o reconhecem e começam a se proliferar. Algumas destas células se tornarão células efetoras e outras serão células de memória. As células efetoras secretam anticorpos em grandes quantidades, e as células de memória são utilizadas em futuras invasões do mesmo patógeno (efeito vacina). Após o reconhecimento do antígeno, as células sofrem clonagem e mutação. A clonagem é a produção de cópias da célula pai. Existe um mecanismo de seleção que garante que as células filhas que melhor reconhecerem o antígeno são selecionadas para se tornarem células de memória (de Castro Silva & Timmis 2003; de Castro Silva 2001; Hofmeyr 2000). Quanto maior o grau de ligação entre antígeno e receptor da célula, afinidade, maior será o número de células clones gerados. Durante a reprodução celular, as células sofrerão mutações somáticas em altas taxas e em conjunto com uma força de seleção, as células com alta afinidade em relação ao patógeno diferenciam em células de memória. Este processo de mutação somática mais seleção é conhecido como maturação da afinidade. Assim, a maturação da afinidade é o processo que envolve a mutação e a seleção dos melhores clones e quanto maior a afinidade maior será força de ligação entre patógeno, melhor será o reconhecimento e a resposta imunológica (de Castro Silva & Timmis 2003). A seleção clonal pode ser definida como o processo de reconhecimento do antígeno, proliferação de células e diferenciação em células de memória (de Castro Silva & Timmis 2003). 79

95 5.2 Sistemas Imunológicos Artificiais Hipermutação Somática A mutação ocorrida no processo de maturação da afinidade é chamada de mutação somática. Devido as altas taxas de mutação que ocorrem durante a clonagem é dado o nome de hipermutação somática (de Castro Silva & Timmis 2003). As taxas de mutação dependem da afinidade da célula, isto é, quanto maior a afinidade menor será a taxa de mutação. Teoria da Rede Imunológica Segundo a teoria da rede imunológica, as moléculas de anticorpos têm porções de seus receptores que reconhecem também outros anticorpos. Esta comunicação entre células do sistema imunológico é chamada de rede imunológica (de Castro Silva & Timmis 2003). A resposta imune específica constitui a reação do hospedeiro a uma substância estranha, e compreende uma série de interações celulares que resultam na elaboração de produtos específicos. Existem três características gerais da resposta imune específica que distinguem das respostas inespecíficas: (1) especificidade (2) heterogeneidade e (3) memória. Cada linfócito virgem que penetra na corrente circulatória é portador de receptores de antígeno com apenas uma única especificidade (monoespecífico). A especificidade desses receptores é determinada por um mecanismo genético especial que atua durante o desenvolvimento dos linfócitos na medula óssea e no timo. Assim, embora um linfócito individual seja portador de um receptor de especificidade única, a especificidade de cada linfócito é diferente e os milhões de linfócitos, cada um com uma especificidade diferente, formam o repertório. Nos órgãos linfóides periféricos, os patógenos selecionam um linfócito individual que expressa um receptor de superfície de uma única especificidade de ligação ao antígeno, estimulando-o a proliferar e a se diferenciar, focalizando assim a resposta imune adaptativa naquele patógeno. Esse processo de seleção é denominado seleção clonal e é utilizado também para impedir o surgimento de células auto-reativas. Os clones de linfócitos com receptores que se ligam fortemente aos constituintes próprios no timo e na medula óssea são eliminados por apoptose para que o conjunto circulante de linfócitos seja tolerante aos componentes próprios. Do ponto de vista de vista de reconhecimento de padrões no sistema imunológico, a característica mais importante das células B e T é que ambas possuem moléculas receptoras em superfícies capazes de reconhecer antígenos. O receptor de antígeno da célula B (BCR - B cell receptor) é o anticorpo ligado à 80

96 5.2 Sistemas Imunológicos Artificiais membrana, e que será secretado quando a célula for ativada. A principal função da célula B incluem a produção e secreção de anticorpos como resposta aos agentes patogênicos. Cada célula B produz um tipo específico de anticorpo, capaz de reconhecer e se ligar a uma determinada proteína. A secreção e ligação de anticorpos a antígenos constituem formas de sinalizar outras células para que estas façam a ingestão, processamento e/ou remoção da substância ligada. As células T tem como função regular as ações de outras células e o ataque direto às células infectadas do organismo hospedeiro. Estas células precisam discriminar entre o próprio e o não próprio. A terceira característica marcante da resposta imune específica é a memória. A memória é a propriedade que resulta no aumento da resposta específica através da proliferação e diferenciação após uma exposição subseqüente a um imunógeno. Isso leva a uma elaboração intensificada de produtos celulares. O aprendizado ocorre durante a primeira resposta para o determinado tipo de patógeno não encontrado antes pelo sistema imune. A primeira reposta é lenta, sempre a primeira apenas torna-se aparente após vários dias da infecção inicial, e levando até três semanas para acabar com a infecção. Após a primeira reposta limpar uma infecção, o sistema imune retém memória do tipo de patógeno que causou a infecção. Se o corpo for infectado novamente pelo mesmo tipo de patógeno, o sistema imune não tem que aprender novamente a reconhecer o patógeno, porque ele se lembra da sua aparência específica, e irá montar uma resposta secundária mais rápida (Hofmeyr 2000) Algoritmos Imunológicos Artificiais Sistemas Imunológicos Artificiais (de Castro Silva & Timmis 2003) podem ser definidos como sistemas computacionais inspirados na imunologia, observando funções imunológicas, princípios e mecanismos para resolver problemas. O sucesso dos algoritmos imunológicos artificiais nas áreas de reconhecimento e classificação de padrões, otimização, análise de dados, segurança computacional e robótica tem atraído muita atenção de pesquisas na área de computação e engenharia. Os algoritmos imunológicos podem ser divididos em baseados em população e rede. Os algoritmos baseados em população podem ser de modelos clonais ou seleção negativa. Os baseados em rede podem ser modelos contínuos ou discretos (de Castro Silva & Timmis 2003). 81

97 5.2 Sistemas Imunológicos Artificiais Clonal Selection Algorithm (CLONALG) Este algoritmo foi desenvolvido para realizar tarefas de reconhecimento de padrões e otimização multimodal. Segundo (de Castro Silva & Zuben 2002) o algoritmo de seleção clonal é usado para explicar o comportamento de um sistema enquanto algoritmos evolucionários são inspirados em seu desenvolvimento. O Algoritmo 5 apresenta o Algoritmo de Seleção Clonal. Algoritmo 5: Algoritmo CLONALG Gere um conjunto de N candidatos a solução (repertório de anticorpos) no shape-space que depende do problema a ser resolvido; enquanto o critério de parada seja satisfeito faça Selecione n 1 células de alta afinidade em relação ao conjunto de antígenos a ser reconhecido ou à função de otimização a ser otimizada; Clone as células selecionadas. O número de cópias é proporcional a afinidade, isto é, quanto maior a afinidade maior o número de clones gerados; Faça a hipermutação das células selecionadas com a taxa inversamente proporcional à taxa de mutação; Selecione as n 2 clones que sofreram mutação para compor o novo repertório; fim Maturação da Afinidade O processo de maturação da afinidade é útil para aumentar a capacidade de reconhecimento dos anticorpos em relação aos antígenos. O processo de mutação ocorre em altas taxas e então é conhecido como hipermutação somática. A taxa de mutação é proporcional à afinidade do candidato. Quando possui alta afinidade, o candidato possui baixa mutação e isto é utilizado para conseguir um ajuste fino (de Castro Silva & Timmis 2003). Com baixa afinidade, altas taxas de mutação são empregadas para se obter passos maiores. Como não se sabe qual a solução ótima do problema, é necessário acompanhar a evolução da afinidade. Dado um repertório de células iniciais, o primeiro passo é realizar a clonagem da primeira célula e realizar a mutação da mesma. A mutação é diferente para cada célula, pois depende do fator de mutação multiplicado por um número aleatório. A Equação 5.5 ilustra o cálculo da afinidade normalizada α (D ) = exp ( ρ D ) (5.5) 82

98 5.2 Sistemas Imunológicos Artificiais O parâmetro α é a taxa de hipermutação somática, D é a afinidade normalizada e ρ controla a suavidade da exponencial Artificial Immune Network - Ainet A teoria da rede imunológica estabelece que todas as células e moléculas do sistema imunológico têm a capacidade de reconhecer-se independentemente da ausência ou presença de antígenos. Segundo a teoria da rede imunológica, as moléculas de anticorpos têm porções de seus receptores que reconhecem também outros anticorpos. Esta comunicação entre células do sistema imunológico é chamada de rede imunológica (de Castro Silva & Timmis 2003). Artificial Immune Network (Ainet) é um algoritmo baseado nos conceitos imunológicos. Foi introduzido em (de Castro Silva & Zuben 2001) e pode ser utilizado para compressão de dados, clusterização, incluindo problemas não linearmente separáveis de muitas dimensões. Ele foi inspirado na teoria da rede imunológica e pode ser definido como um grafo ponderado composto por um conjunto de nós, denominados de anticorpos, e conjuntos pares de nós chamados de conexões, com um valor característico associado, chamado de peso (de Castro Silva & Timmis 2002). O Algoritmo Ainet (de Castro Silva & Timmis 2002) está descrito no Algoritmo Opt-ainet A rede Opt-ainet é uma versão da rede Ainet para otimização e pode ser definido como um algoritmo evolucionário inspirado no sistema imunológico humano. O algoritmo é inicializado com um número qualquer de células e este valor não é importante, pois durante o processo de execução novas células são adicionadas enquanto outras são retiradas. Este algoritmo tem como características essenciais: a) tamanho da população ajustável dinamicamente, b) exploração do espaço de busca, c) localização de múltiplos ótimos, d) capacidade de manter soluções de ótimos locais e e) definição de um critério de parada (de Castro Silva & Timmis 2002). Este tipo de algoritmo foi desenvolvido primariamente para valores reais e foi adaptado neste trabalho para números binários. O termo network cell é um indivíduo da população que possui um valor binário, que representa um conjunto de LSPs para um determinada instância de teste. A função objetivo do problema define a aptidão de cada célula e seu valor é calculado em função da formulação matemática do programa. Os clones são células idênticas da célula pai que sofrerão mutação somática proporcional à sua aptidão. O algoritmo Opt-ainet (de Castro Silva & Timmis 2002) 83

99 5.2 Sistemas Imunológicos Artificiais Algoritmo 6: Ainet Inicialização: crie uma população P de anticorpos aleatoriamente; enquanto o número máximo de iterações seja atingido faça para cada padrão antigênico s do conjunto S faça Seleção Clonal e expansão: determine a afinidade de cada elemento da rede em relação ao antígeno apresentado; Selecione N1 anticorpos de maior afinidade e reproduza-os proporcionalmente a sua afinidade; Maturação de afinidade: os clones passam por um processo de mutação inversamente proporcional a sua afinidade; Re-selecione os anticorpos com as N2 maiores afinidades para entrar no conjunto de memória; Metadinâmica: elimine todas as células de memória que possuírem uma afinidade em relação ao antígeno menor do que o limiar; Interações Clonais: determine as interações entre todos os elementos do conjunto de memória; Supressão Clonal: elimine todas as células de memória em que a afinidade entre elas seja maior do que um limiar s; fim Interações da rede: determine a similaridade entre cada par de anticorpos da rede; Supressão da rede: elimine todos os anticorpos da rede em que a afinidade entre eles seja maior do que a constante s; Diversidade: introduza na rede um número N3 de anticorpos gerados aleatoriamente; fim pode ser vista no Algoritmo 7. No passo 1, o programa é iniciado a partir da geração de um conjunto de células iniciais com valores aleatórios. O programa então entra em um loop que representa a evolução do algoritmo. No passo 4 é calculado a aptidão de cada célula da rede. Neste trabalho, cada palavra binária de cada célula é avaliada através de uma função objetivo que calcula o custo total para o conjunto de LSPs da rede. Neste passo também é calculada a aptidão normalizada de cada célula em função da aptidão da célula de maior valor. Este parâmetro será importante na realização da seleção clonal do algoritmo. Mantendo a célula pai, são gerados N clones da mesma. A quantidade de clones gerados depende da natureza do problema a ser resolvido. Os clones servirão para realizar uma busca no espaço de soluções do problema e por isso, quanto maior o espaço de busca, mais clones serão necessários para o sucesso do algoritmo. O processo de geração de clones consiste apenas na cópia da célula pai. Deve ser ressaltado que 84

100 5.2 Sistemas Imunológicos Artificiais Algoritmo 7: Opt-ainet Inicialize aleatoriamente uma população de células (o número inicial de células não é relevante); enquanto o critério de parada não é encontrado faça enquanto o erro médio da população não é significativamente diferente da iteração prévia faça Determine o fitness de cada célula e normalize o vetor de fitness; Gere um Nc clones de cada célula; Realize a mutação de cada clone proporcionalmente ao fitness de sua célula pai, mas mantenha célula pai Determine o fitness de todos os clones da população ; Para cada clone, selecione a célula com o maior fitness e calcule o fitness médio da população selecionada; fim Determine a afinidade de todas as células da rede. Suprima todas com exceção das com maior fitness daquelas células cujas afinidades são menores do que o limiar de supressão σ s e determine o número de células de rede, chamadas células de memória, após a supressão; Introduza um percentual d de células geradas aleatoriamente; fim neste ponto os valores de aptidão e aptidão normalizada já devem estar disponíveis para cada célula. A geração dos clones é o primeiro passo da seleção clonal, pois estes clones serão gerados para sofrerem mutação e assim explorarem novos pontos no espaço de busca. O processo de mutação utilizado foi o de bit a bit e a taxa de mutação varia para cada clone de acordo com sua afinidade. Assim, o valor presente na célula sofrerá uma mutação proporcional ao parâmetro de mutação global e a sua afinidade normalizada. Isso implica que quanto maior a afinidade normalizada menor será a mutação sofrida pelos clones da célula e isso pode ser considerado um processo de seleção parecido com os utilizados nos Algoritmos Genéticos. As Equações 5.6 e 5.7 apresentam o cálculo do parâmetro de mutação da célula. O parâmetro c é a célula clone após a mutação, c é a célula clone inicial, N(0, 1) é uma variável aleatória gaussiana de média 0 e desvio padrão σ = 1, β é o parâmetro que controla o decaimento da exponencial e f é a aptidão normalizada da célula clone. c = c + α N(0, 1) (5.6) α = 1 β e f (5.7) 85

101 5.2 Sistemas Imunológicos Artificiais O processo de manter a célula pai para ser avaliada em conjunto com os clones é uma estratégia elitista. Assim, uma boa célula não é eliminada mantendo na execução uma solução já existente. Para cada célula pai são gerados N clones que sofrerão mutação e depois devem ser avaliados através da função objetivo. No passo 5 é calculado a aptidão para cada clone gerado, para que um processo de seleção dos melhores possa ser realizado no próximo passo. No passo 6 é selecionado o melhor clone através da aptidão de todos os mesmos. Se a aptidão do melhor clone for superior à célula pai, este clone será mantido e continuará na próxima geração tornando-se uma célula de memória. As células de memória serão mantidas nas próximas gerações e elas possuem os melhores valores do processo de seleção citado nos passos anteriores. O processo de 4 até 10 se repete até que o erro médio não seja superior ao da iteração anterior. A cada novo processo de geração de clones é calculada a aptidão média da população. No passo 12 é calculada a diferença entre as aptidões médias entre gerações subseqüentes. Se a aptidão média for inferior ao erro de supressão (parâmetro global passado no início do programa) o programa sai do loop e continua. Caso não seja ele retorna ao passo 3. Este loop funciona como um processo de otimização local onde tenta-se homogeneizar a população para a exploração de uma mesma região no espaço. No passo 12, após a população atingir um estado estável, as células interagem entre si através do cálculo da diferença de afinidades, e células similares são retiradas para evitar redundâncias. Isso é feito através da definição de um valor máximo, onde são mantidas células cuja a diferença de aptidão seja superior a um determinado limiar. Estas células de memória ficarão presentes no sistema para a próxima geração e serão importantes por guardar os melhores valores e continuar o processo de otimização. Após a remoção de um conjunto de células é necessário inserir novas células na rede. Estas células são geradas aleatorias e o percentual de geração é um parâmetro passado como opção do programa. Assim, o processo se reinicia com um conjunto de células de memória e da adição de novas células aleatórias implica na adição de novos pontos no espaço de busca do problema. Este algoritmo apresenta o custo computacional para cada iteração O(N L) ou O(N 2 ), onde N é o tamanho da população corrente e L é o tamanho de cada vetor. Entre os passos 2a e 2e o custo é O(NL) e quando o mesmo executa também o passo 2g o custo computacional é O(N 2 ). O algoritmo de Opt-ainet foi desenvolvido primariamente para trabalhar com valo- 86

102 5.2 Sistemas Imunológicos Artificiais res reais enquanto o algoritmo CLONALG trabalha com número inteiros. Enquanto o CLONALG trabalha com um população estática o Opt-ainet tem sua população ajustável dinamicamente. A entrada de novos indivíduos no Opt-ainet somente é permitido quando não existe melhora significativa na aptidão média da população. Em (Campelo, Guimares, Igarashi, Ramrez, & Noguchi 2006) são realizadas modificações no Opt-ainet como critérios de estabilização parciais, inclusão de um esquema específico para trabalhar com problemas com restrições e o uso da maturação hipercúbica, mas estas modificações são adequadas para problemas eletromagnéticos. Para problemas de otimização em redes de computadores estas modificações no Opt-ainet não são funcionais. Antes da implementação do algoritmo, para a resolução do problema de otimização de redes MPLS, foi desenvolvido um programa em Matlab para reproduzir os resultados apresentados no trabalho (de Castro Silva & Timmis 2002). Este algoritmo utilizou a codificação de valores reais. A função objetivo utilizada de este foi a g(x, y) = x sin(4 π x) y sin(4 π y + π) + 1. O programa desenvolvido possibilitou reproduzir os resultados do trabalho de de Castro (de Castro Silva & Timmis 2002) e foram conseguidos os mesmos resultados do Algoritmo Genético Algoritmo B-Cell Célula B é um tipo de célula sanguínea que pertence ao grupo de células brancas chamadas linfócitos. As células B são as únicas do corpo que produzem anticorpos e são específicas para um determinado tipo de antígeno. Esta especifidade é devido a presença de um anticorpo em sua superfície, que atua como um receptor de específico a um determinado material. O receptor B-Cell é chamado de receptor B-Cell (BCR - B cell receptor). O algoritmo B-Cell é apresentado na Listagem 8. O funcionamento do algoritmo é semelhante a atuação da mesma no sistema imune humano (Kelsey & Timmis 2003). Quando um B-Cell encontra um antígeno, uma resposta imune é produzida e o anticorpo então tentará se ligar com o antígeno, até que ele seja neutralizado. Se a afinidade entre o antígeno e o anticorpo for alta, suas B-cells tornam-se estimuladas, resultando na produção de clones mutados. Com estas novas B-cells adicionadas para a rede imunológica, uma quantidade de no mínimo das B-cells estimuladas são removidas ou morrem. Isto é, de fato, baseado no princípio de Charles Robert Darwin 87

103 5.2 Sistemas Imunológicos Artificiais e para manter a diversidade do sistema imunológico (Kelsey & Timmis 2003). Algoritmo 8: Algoritmo B-Cell Gere um conjunto de N candidatos a solução (repertório de anticorpos) no shape-space que depende do problema a ser resolvido; enquanto o critério de parada seja satisfeito faça Selecione n 1 células de alta afinidade em relação ao conjunto de antígenos a ser reconhecido ou a função de otimização a ser otimizada; Clone as células selecionadas. O número de cópias é proporcional a afinidade, isto é, maior a afinidade maior o número de clones gerados; Faça a hipermutação das células selecionadas com a taxa inversamente proporcional a taxa de mutação; Selecione as n 2 clones que sofreram mutação para compor o novo repertório; fim Algoritmo Cop-ainet O algoritmo Copt-ainet é uma extensão do modelo Ainet utilizado para resolver problemas de otimização combinatória. Tem como principais diferenças os passos de maturação fraca da afinidade, maturação intensiva da afinidade e tamanho mínimo da rede. O algoritmo é apresentado na Listagem 9 (de Souza, Zuben, de Castro Silva, & Sousa 2004). Neste caso afinidade e fitness tem diferentes significados. Fitness é valor de uma célula quando a mesma é submetida a função objetivo e a afinidade indica o grau de similaridade entre duas células. O conceito de afinidade é utilizado pelo algoritmo para regular o número de células e preservar a diversidade da população. A supressão de células ocorre quando a afinidade entre as mesmas é inferior a um determinado limiar. A otimização local é feita a cada iteração através os processos de seleção clonal e mutação. A mutação é realizada de forma semelhante aos outros algoritmos, através da proporcionalidade com o fitness. No processo de clonagem cada célula gera N clones e nenhuma célula pai tem vantagem sob as demais. Isso contribui para a otimização multimodal do algoritmo. Se algum clone tiver um valor de fitness superior ao pai, o mesmo será substituído. Para manter a diversidade, é aplicado um operador semelhante ao algoritmo Optainet. Ao chegar em um estado estável algumas células similares são removidas da rede e isso é chamado de supressão. Através deste operador é possível manter a diversidade da população. 88

104 5.2 Sistemas Imunológicos Artificiais Algoritmo 9: Algoritmo Copt-ainet Inicialização: crie uma população P de anticorpos aleatoriamente; enquanto a condição de parada não seja satisfeita faça enquanto a instabilidade da rede faça Clonagem da população; Hipermutação da população; Aplica algoritmo de seleção ; fim Supressão Clonal: elimine todas as células de memória em que a afinidade entre elas seja maior do que um limiar s; se a população atual for menor do que o tamanho mínimo estipulado então Gerar novos anticorpos para completar a população; fim se os K melhores não obtiveram melhorias nas K iterações então Aplicar operador de maturação fraca; fim Aplicar maturação intensiva nos k melhores; fim O processo de maturação ocorre quando nenhuma das k melhores soluções melhorou durante um número pré-definido de iterações. O processo de maturação é implementado através de uma busca local e na proposta inicial do algoritmo é usado o procedimento de Busca Tabu. Ao terminar o procedimento de otimização é realizado um procedimento de maturação intensiva dos k melhores indivíduos, sendo que na proposta inicial do algoritmo foi utilizado Busca Tabu. 89

105 CAPÍTULO 6 Experimentos e Resultados O objetivo deste capítulo é apresentar os experimentos realizados e os resultados computacionais obtidos neste trabalho. Na primeira parte do capítulo serão apresentadas as ferramentas de hardware e software utilizadas para o desenvolvimento do trabalho e a segunda parte apresenta o sistema desenvolvido. 6.1 Ferramentas Utilizadas O ambiente Linux foi utilizado como base em todo o trabalho desta tese, desde o desenvolvimento do software, realização de simulações, processamento e análise de dados e escrita do texto. Durante o período de trabalho diversas distribuições foram empregadas: Fedora 7.0, Slackware 10.3, Slackware 11.0, Opensuse 10.3 e Opensuse Optou-se por trabalhar no ambiente Linux devido à sua total integração com as ferramentas de desenvolvimento empregadas e por possuir linguagens avançadas, que permitem a implementação de scripts para automatização de tarefas e processamento de arquivos texto com grande volumes de dados (superiores a 700MB). O software foi desenvolvido utilizando diferentes linguagens de programação: C++ para a criação do ambiente de otimização, python para a parte gráfica do programa, awk para processamento de arquivos, bash para automatização dos testes e simulações, tcl/tk para a simulação no ns2. Para o desenvolvimento utilizando a linguagem C++, fez-se uso do ambiente de desenvolvimento Eclipse Europa, uma ferramenta gratuita e multiplataforma. O editor vim foi utilizado para a implementação da interface 90

106 6.1 Ferramentas Utilizadas gráfica em python, criação dos scripts em bash e processamento de arquivos em awk. Toda a análise estatística, gráficos e a implementação de alguns algoritmos foram realizadas utilizando o software Matlab. Não foi utilizado nenhum toolbox ou ferramenta adicional do software Matlab e a opção pelo mesmo foi devido a disponibilidade de uma licença deste software. Deve ser ressaltado que as ferramentas implementadas e funções utilizadas são compatíveis com os softwares gratuitos scilab e octave. Inicialmente o sistema foi implementado para rodar em um notebook Toshiba Satellite 1410, com um processador Celeron, memória de 512MB e disco rígido de 80GB, mas este sistema apresentou sérios problemas pois possuía pouca memória RAM para realização dos testes. O sistema foi então portado para um notebook Dell Latitude D520, com processador Core 2 Duo, 1GB de RAM e disco rígido de 120GB. Como as simulações no ns2 geram arquivos de resultados muito grandes, é interessante utilizar um disco rígido externo ao sistema. As simulações com o ns2 foram realizadas em uma unidade externa de disco rígido com capacidade total de 500 GB. As simulações do ns2 devem ser preferencialmente realizadas em discos rígidos de baixa rotação e mais robustos. Discos de notebooks não são adequados para acomodar estes tipos de simulações, pois o processo de gravação pode levar a danificação do disco rígido. Recomenda-se a utililzação de estações de trabalho dotadas com processadores rápidos e grande quantidade de memória este tipo de tarefa. Outro fator que influencia diretamente na velocidade de execução é a quantidade de memória RAM disponível. Esta quantidade varia em função do número de LSPs que o sistema irá alocar. Recomenda-se o uso de computadores com mais de 1GB de memória RAM. A velocidade de execução é influenciada pelo desempenho do computador. Sugerese que este sistema seja rodado em processadores Core 2 Duo ou processadores com um único núcleo, mas de alta velocidade. Algumas partes do programa podem ser paralelizadas e esta será uma tarefa para um trabalho futuro. Com a paralelização dos algoritmos de otimização reduzirá o tempo de convergência significativamente. 6.2 Sistema Desenvolvido O programa começa sua execução lendo o arquivo contendo os dados da topologia de simulação. Nele estão contidas todas as informações necessárias: número de nós, matriz adjacência, matriz de capacidade, que contém a capacidade de cada enlace na rede, matriz de atraso, que armazena o atraso em cada enlace, matriz de custo, que armazena o custo operacional de se manipular cada enlace, matriz de perdas que armazena o percentual de perda por enlace e matriz de flutuação, que armazena a 91

107 6.2 Sistema Desenvolvido flutuação de cada enlace. A Figura 6.1 apresenta o diagrama da Topologia Mesh e a Figura 6.2 apresenta o arquivo de configuração que a descreve. Todas as informações são armazenadas em um registro, que será utilizado todas as vezes que se faz necessário obter dados sobre a topologia de trabalho. Todas as topologias são armazenadas em um mesmo diretório e somente a topologia desejada é carregada durante a execução do programa. O registro que armazena a topologia é genérico, isto é, os campos serão os mesmos, independentemente da topologia a ser utilizada, alterandose apenas os valores. Para adicionar uma nova topologia, basta então criar um novo arquivo de configuração no diretório específico e configurar os parâmetros desejados. A definição da topologia de trabalho é realizada via interface gráfica ou por linha de comando. A Figura 6.3 apresenta o diagrama simplificado do programa desenvolvido. Figura 6.1: Topologia Mesh O programa lê também o arquivo contendo informações sobre as requisições de LSPs de um conjunto de fontes. Este arquivo possui as seguintes informações para cada LSP: número de requisições, nó de origem, nó de destino, capacidade requisitada [Mbps], atraso máximo permitido [s], máxima flutuação permitida [s], máximo erro permitido [%], tamanho de pacote médio [bytes], variância [Mbps], índice de autosimilaridade e tipo de fonte utilizada (1 para CBR ou 2 para Poisson). A Figura 6.4 apresenta um arquivo de configuração para um conjunto de 5 LSPs. A partir destes dados, o programa executa o algoritmo de K caminhos mínimos, onde calcula para cada LSP um conjunto K caminhos alternativos entre fonte e destino. Uma forma simples de implementação do algoritmo de k caminhos mínimos é calcular o menor caminho, retirar sucessivamente a aresta de menor custo e calcular o menor caminho a partir desta nova configuração. Mais informações sobre o algoritmo de k caminhos mínimos pode ser encontrado nos trabalhos (Martins, Pascoal, & Santos 1998) e (Minieka 1974). Antes da otimização é necessário a codificação automática dos dados lidos. Como 92

108 6.2 Sistema Desenvolvido # num_nos 6 # matriz de adjacencias # capacidade dos enlaces [bps] E6 0 10E E6 0 05E6 10E E E6 10E E6 05E E E6 10E6 0 10E E6 0 10E6 0 # custo dos enlaces em [ms] # atraso em [ms] # jitter em [ms] # perdas [%] Figura 6.2: Arquivo da Topologia Mesh a codificação depende do algoritmo a ser utilizado, optou-se por fazer uma função de mapeamento e outra de codificação. Estas funções recebem o conjunto de LSPs, os caminhos calculados e gera indivíduos/células/cromossomos e as armazena em uma estrutura comum a todos os algoritmos de otimização. Através do algoritmo de otimização escolhido previamente é iniciado o processo que realiza iterações, até que a máxima iteração seja alcançada. O programa aceita outros critérios de parada, como a estagnação do melhor resultado por gerações sucessivas e por tempo de simulação. A função objetivo é outra parte do software bastante complexa e demanda bastante tempo de processamento. Nela é aplicada a formulação do problema de otimização e a cada iteração são atualizados os custos do problema. Restrições garantem que a seleção de LSPs não exceda a largura de faixa disponível no enlace e obedeça a outras políticas como balanceamento de carga, redução do custo total de alocação e garantia das solicitações das fontes. Quando alguma restrição é violada, aplica-se uma penalização no indivíduo ou célula e o custo é do indivíduo é então atualizado. Após a execução do algoritmo de otimização, o software retorna diversas informações tais como: custo do caminho selecionado, capacidade residual, capacidade utilizada, estimativa de atraso por LSP, expoente de Hurst agregado, LSPs alocados por enlace e capacidade efetiva. Após o término de todas as iterações o sistema retorna dois scripts para o software ns2. Estes scripts são desenvolvidos através das informações presentes nos arquivos 93

109 6.2 Sistema Desenvolvido de topologia, de requisições das fontes e do resultado do algoritmo de otimização. Um script utiliza o roteamento IP tradicional e no outro são aplicados os resultados do algoritmo de otimização para criar uma rede MPLS. A cada nova simulação é possível realizar um estudo comparativo entre as duas tecnologias de roteamento, IP e MPLS. Deve ser ressaltado que o ns2 não suporta simulações com mais do que 50 LSPs. Foram realizados testes com duas funções objetivo. A primeira tem como meta a definição de LSPs em uma rede MPLS, reduzindo o custo operacional e obedecendo as restrições de capacidade. Nestes testes foram realizado estudos comparativos entre as diversas heurísticas implementadas. A partir destes testes foi escolhida a melhor heurística para implementar a próxima função objetivo. A segunda função objetivo trabalha com o estabelecimento de LSPs, reduzindo o custo operacional de toda a rede, e com a definição de caminhos, fazendo o balanceamento de carga, atendendo os requisitos de atraso em um ambiente de tráfego auto-similar. 6.3 Restrição de Capacidade Para validar o sistema foi utilizado uma função objetivo que minimiza o custo de operação e obedece as restrições de capacidade dos enlaces. O problema de alocação de LSPs pode ser expresso como um problema de roteamento com restrições. Podese definir a topologia de rede como um grafo G = (V, E, C), onde V representa um conjunto de nós roteadores, E representa os enlaces e C as restrições associadas ao grafo. O nosso problema pode ser enunciado como segue: Problema: Qual o conjunto de LSPs que satisfaz as restrições impostas pelo sistema e minimize o custo de alocação? Neste trabalho foi utilizado a formulação matemática proposta por (Girish, Zhou, & Hu 2000) e contém as seguintes considerações: os roteadores são denominados LSRs; U é conjunto de LSRs de origem e destino; F é o conjunto de LSPs; e D é o conjunto de demandas associadas a F. Além disso, o modelo matemático possui os seguintes parâmetros: u l LSR de origem de um enlace; v l LSR de destino de um enlace; µ l Largura de banda de um enlace; e a l custo de um enlace. A variável de decisão x ij indica se o LSP será roteado ou não pelo enlace: { 1, se o LSP i F é roteado no enlace l E x ij = 0, caso contrário 94

110 6.3 Restrição de Capacidade O modelo para o problema é dado por Minimize(Z R ) = a l λ i x il, (6.1) l E i F sujeito a x il λ i x il µ l, l E (6.2) i F l u l =n l v l =n l u l =n l v l =n x il = 1, n U i s i = n (6.3) x il = 1, n U i d i = n (6.4) x il = 0, n V i s i n, d i n (6.5) x il {0, 1}, i F, l E (6.6) A restrição (6.2) assegura que a capacidade do enlace não será excedida. O conjunto de restrições (6.3) e (6.4) assegura que todos os LSPs originados e terminados, respectivamente, em um LSR serão roteados. A restrição (6.5) assegura que os LSPs são roteados através de nós intermediários. A restrição (6.6) especifica que todas as variáveis de decisão poderão assumir valores 0 ou 1. Para cada requisição enviada são gerados k caminhos mínimos e estes caminhos são obtidos através da retirada de arestas de menor custo do menor caminho. Este procedimento garante soluções sem a sobrecarga nas arestas de menor custo. Os k menores caminhos representam possíveis soluções para o problema, isto é, um LSP. Utilizou-se a codificação binária para definição dos indivíduos, onde cada possível caminho foi representado por um valor binário. A fim de padronizar os testes foram definidos dois caminhos mínimos para cada LSP e todas as topologias foram testadas em requisições de 50 a 500 LSPs. Com 50 LSPs e com dois caminhos possíveis por LSP tem-se cromossomos de 50 bits, o que equivale a 2 50 combinações no espaço de busca. Para 500 LSPs o espaço de busca equivale a combinações. Os testes foram realizados em quatro topologias selecionadas de acordo com seu número de nós e enlaces. A topologia Carrier, apresentada na figura 6.5(a), é uma versão modificada de um backbone IP e é muito utilizada em simulações (de Andrade Oliveira 2005). A topologia 10 nós, apresentada na figura 6.5(b), possui 10 nós interconectados e foi proposta neste trabalho. A topologia Mesh, apresentada na figura 6.5(c), possui seis nós e é interessante para realização de simulações e para 95

111 6.3 Restrição de Capacidade obter resultados numéricos em problemas complexos (de Andrade Oliveira 2005). A topologia Dora, apresentada na figura 6.5(d), foi utilizada nos trabalhos (Boutaba, Szeto, & Iraqi 2002; Dias, Camponogara, Farines, & Willrich 2003). Foram rodados 100 testes para cada combinação de algoritmo, topologia e número de requisições. Dois tipos de heurísticas foram utilizadas: Algoritmos Genéticos e Sistemas Imunológicos Artificiais Algoritmos Genéticos A partir de resultados de testes preliminares optou-se por trabalhar com populações com 30 indivíduos, taxa de cruzamento de 70%, taxa de mutação de 1%, mutação bit a bit e elitismo simples. Foram executados 100 testes para cada combinação de algoritmos de: seleção(roleta (ROL), Torneio (TOR), AmostragemDeterminística (DSA) e Stochastic Remainder Sampling (SRS)), cruzamento (Um Ponto de Corte (1PT), Dois Pontos de Corte (2PT) e Uniforme (UNI)) e topologias de 10 Nós, Dora, Mesh e Carrier. Outro teste realizado foi do método de Cruzamento Ortogonal (OCX), que funciona como método de cruzamento e seleção. Os resultados apresentados foram obtidos através de 100 testes para cada combinação com o número máximo de gerações limitado a Deve ser ressaltado que, por se tratar de um problema NP completo, o resultado ótimo é desconhecido. A partir de testes iniciais optou-se por trabalhar com 30 indivíduos, taxa de cruzamento de 70% e taxa de mutação de 1%. A Figura 6.6 apresenta os resultados para as simulações para 50, 100 e 500 LSPs e os gráficos apresentados mostram o intervalo de confiança calculado para α = 5%. Os resultados para as simulações com 50 LSPs estão apresentados nas Figuras 6.6(a), 6.6(b), 6.6(c),6.6(d). A Figura 6.6(a) apresenta os resultados obtidos para as simulações com a topologia 10 nós, a Figura 6.6(b) com a topologia Carrier, a Figura 6.6(c) com a topologia Dora e a Figura 6.6(d) com a topologia Mesh. Para as simulações com 50 LSPs, pode-se observar que com todos as combinações de métodos de cruzamento e de seleção foram obtidos os mesmos valores de custo total. Outra conclusão é que todos os métodos comportaram-se da mesma maneira, independente da topologia utilizada. O desvio para todos os testes realizados foi igual a zero, isto é, não existe variabilidade em relação aos resultados obtidos. Os resultados para as simulações com 100 LSPs estão apresentados nas Figuras 6.6(e), 6.6(f), 6.6(g), 6.6(h). A Figura 6.6(e) apresenta os resultados obtidos para as simulações com a topologia 10 nós, a Figura 6.6(f) com a topologia Carrier, a Figura 6.6(g) com a topologia Dora e a Figura 6.6(h) com a topologia Mesh. Para 100 LSPs todos os algoritmos obtiveram os mesmos valores, com exceção do método OCX na 96

112 6.3 Restrição de Capacidade topologia 10 nós. Ele apresentou um resultado pior de 0, 050% em relação aos outros métodos. Sua variabilidade foi de 0, 25 e o custo médio foi de 500, 25 contra 500 dos demais algoritmos. Os outros métodos comportaram-se de maneira semelhante e não houve variabilidade ao se aplicar 100 testes. Os resultados para as simulações com 500 LSPs estão apresentados nas Figuras 6.6(i), 6.6(j), 6.6(k),6.6(l). A Figura 6.6(i) apresenta os resultados obtidos para as simulações com a topologia 10 nós, a Figura 6.6(j) com a topologia Carrier, a Figura 6.6(k) com a topologia Dora e a Figura 6.6(l) com a topologia Mesh. Para este conjunto de testes verificou-se grande variabilidade nos resultados encontrados. Para a topologia 10 nós os melhores métodos foram os que aplicaram o método de seleção de torneio e o pior resultado foi obtido ao se utilizar o método OCX. O método de seleção torneio reduziu o custo total em 6% em relação ao método da roleta, 8% em relação aos métodos SRS e DSA e 42% em relação ao método OCX. A combinação do torneio com cruzamento em dois pontos obteve o melhor resultado para esta topologia. A diferença entre o melhor e o pior método foi de 71% e isto implica que a escolha do método é essencial para o sucesso do estudo. Na topologia Carrier o melhor resultado foi obtido com o método OCX, entretanto esta melhora foi apenas de 0, 06%. O pior resultado para esta topologia foi o método SRS/2PT, com uma piora de 7% em relação ao melhor resultado. Para a topologia Dora o melhor resultado foi obtido com método torneio/2pt e o pior resultado com o método SRS/2PT. A melhora entre o melhor e o pior resultado foi de 8%. Para a topologia Mesh o melhor resultado foi encontrado utilizando o método OCX e o pior resultado foi o SRS/1PT. A melhora obtida entre o melhor e o pior resultado foi de 1%. O método que apresentou melhores resultados e menor variabilidade para todas as simulações foi o método de seleção torneio com o cruzamento em 2 pontos. Independente do método de cruzamento utilizado, o método de seleção torneio apresentou bons resultados para todas as topologias. O método OCX apresentou bons resultados para três topologias, mas na 10 nós apresentou o pior resultado. Repetiu-se então o experimento por duas vezes e não se constatou nenhum erro. Para este tipo de problema sugere-se testar dois métodos: o torneio com dois pontos e o cruzamento OCX. 97

113 6.3 Restrição de Capacidade Matriz de Capacidades Matriz de Adjacências Matriz de Custo Matriz de Atraso Leitura da Topologia de Rede Número de Requisições Estrutura com os K caminhos para cada LSP Leitura das Requisições Origem Destino Taxa de Transmissão Perda de Pacote Tamanho Médio de Pacote Hurst Atraso Flutuação Calcula K caminhos para cada LSP Algoritmos Genéticos Seleção: Roleta, Torneio, DSA e SRS Cruzamento: 1 ponto, 2 pontos e uniforme Ortogonal Roda Algoritmo de Otimização Sistemas Imunológicos Artificiais opt-ainet BCA copt-ainet - Busca Tabu copt-ainet - Grasp Resultados 1. Melhor combinação de LSPs 2. LSPs por Enlace 3. Tráfego por Enlace 4. Estimativa do Atraso por Enlace 5. Pacote Médio por Enlace 6. Hurst Agregado por Enlace 7. Variância Agregada por Enlace gera script para simulação no ns2 com a tecnologia MPLS gera script para simulação no ns2 com roteamento IP 98 Figura 6.3: Sistema Desenvolvido

114 6.3 Restrição de Capacidade # Arquivo de Carregamento dos LSPs # no de lsps 5 # fonte destino capacidade atraso jitter erro Hurst tamanho variância fonte Figura 6.4: Arquivo de Requisições Mesh (a) Carrier (b) 10 nós (c) Mesh (d) Dora Figura 6.5: Exemplos de topologias 99

115 6.3 Restrição de Capacidade Topologia 10 nós Custo Médio ROL/1PT ROL/2PT ROL/UNI TOR/1PT TOR/2PT TOR/UNI DSA/1PT DSA/2PT DSA/UNI SRS/1PT SRS/2PT SRS/UNI OCX (a) 10 nós - 50 LSPs Topologia Carrier Topologia Dora Custo Médio ROL/1PT ROL/2PT ROL/UNI TOR/1PT TOR/2PT TOR/UNI DSA/1PT DSA/2PT DSA/UNI SRS/1PT SRS/2PT SRS/UNI OCX ROL/1PT ROL/2PT ROL/UNI TOR/1PT TOR/2PT TOR/UNI DSA/1PT DSA/2PT DSA/UNI SRS/1PT SRS/2PT SRS/UNI OCX Custo Médio (b) Carrier - 50 LSPs (c) Dora - 50 LSPs Topologia Mesh Custo Médio ROL/1PT ROL/2PT ROL/UNI TOR/1PT TOR/2PT TOR/UNI DSA/1PT DSA/2PT DSA/UNI SRS/1PT SRS/2PT SRS/UNI OCX Topologia 10 nós (d) Mesh - 50 LSPs Custo Médio ROL/1PT ROL/2PT ROL/UNI TOR/1PT TOR/2PT TOR/UNI DSA/1PT DSA/2PT DSA/UNI SRS/1PT SRS/2PT SRS/UNI OCX (e) 10 nós LSPs Topologia Carrier Topologia Dora Custo Médio ROL/1PT ROL/2PT ROL/UNI TOR/1PT TOR/2PT TOR/UNI DSA/1PT DSA/2PT DSA/UNI SRS/1PT SRS/2PT SRS/UNI OCX ROL/1PT ROL/2PT ROL/UNI TOR/1PT TOR/2PT TOR/UNI DSA/1PT DSA/2PT DSA/UNI SRS/1PT SRS/2PT SRS/UNI OCX Custo Médio (f) Carrier LSPs (g) Dora LSPs Topologia Mesh Custo Médio ROL/1PT ROL/2PT ROL/UNI TOR/1PT TOR/2PT TOR/UNI DSA/1PT DSA/2PT DSA/UNI SRS/1PT SRS/2PT SRS/UNI OCX Topologia 10 nós (h) Mesh LSPs Custo Médio ROL/1PT ROL/2PT ROL/UNI TOR/1PT TOR/2PT TOR/UNI DSA/1PT DSA/2PT DSA/UNI SRS/1PT SRS/2PT SRS/UNI OCX (i) 10 nós LSPs Topologia Carrier Topologia Dora Custo Médio ROL/1PT ROL/2PT ROL/UNI TOR/1PT TOR/2PT TOR/UNI DSA/1PT DSA/2PT DSA/UNI SRS/1PT SRS/2PT SRS/UNI OCX ROL/1PT ROL/2PT ROL/UNI TOR/1PT TOR/2PT TOR/UNI DSA/1PT DSA/2PT DSA/UNI SRS/1PT SRS/2PT SRS/UNI OCX Custo Médio (j) Carrier LSPs (k) Dora LSPs Topologia Mesh Custo Médio ROL/1PT ROL/2PT ROL/UNI TOR/1PT TOR/2PT TOR/UNI DSA/1PT DSA/2PT DSA/UNI SRS/1PT SRS/2PT SRS/UNI OCX Figura 6.6: Custo médio para 50 LSPs para um AG (l) Mesh LSPs 100

116 6.3 Restrição de Capacidade Estes testes possibilitaram que a escolha do melhor método para a resolução do problema. Utilizando o método de seleção torneio e cruzamento em dois pontos, foram realizadas alterações no algoritmo, com o objetivo de melhoria dos resultados computacionais. O primeiro método foi a utilização do método de alteração das taxas de cruzamento e de mutação de forma dinâmica. Foram realizados 100 testes com este método e os resultados foram semelhantes aos anteriores, mas com um tempo computacional 10% superior. Através da combinação dos métodos de cruzamento em dois pontos e de seleção via torneio, foram obtidos os melhores resultados. Foi proposto neste trabalho um Algoritmo Genético com busca local utilizando o Greedy Randomized Adaptative Search Procedure (Grasp) (Goldbarg & Luna 2000), com o intuito de melhorar os resultados encontrados e acelerar o processo de convergência. Grasp é uma técnica interativa, que visa a diversificar as soluções encontradas através de um critério que equilibra uma estratégia inteligente de escolha e um procedimento aleatório de geração de soluções viáveis (Goldbarg & Luna 2000). Esta heurística possui duas fases. Na primeira fase uma solução é gerada e na segunda fase uma busca local na vizinhança é aplicada. A Listagem 10 apresenta um algoritmo Grasp aplicado ao problema de seleção de LSPs. Na fase da construção é feita uma varredura em uma lista de candidados. A cada novo indivíduo selecionado da lista é alterado um bit do cromossomo do mesmo e é verificado se ocorre ou não uma melhora na aptidão do mesmo. Esta verificação pode ser realizada exaustivamente em todo o cromossomo, ou pode-se aleatoriamente selecionar um conjunto de bits ou um número máximo de trocas. Se a aptidão é melhorada, este indivíduo alterado e sua aptidão melhorada são então armazenados. Este tipo de abordagem é uma função adaptativa gulosa. Ela é adaptativa porque, quando ocorre melhora na aptidão, é armazenado este valor e utilizado na próxima iteração. O procedimento torna-se probabilístico quando seleciona-se aleatoriamente indivíduos dentro desta lista restrita de candidados. Neste algoritmo, pode-se controlar se o procedimento é mais aleatório ou mais guloso, através de um parâmetro de controle. Quando a lista de candidatos é composta por todos os elementos da população, o procedimento é totalmente guloso. Quando existe um número restrito de candidatos na lista de candidatos, o procedimento torna-se aleatório. Após este procedimento é realizada uma busca local dentro da solução construída na fase anterior. A busca local consiste em realizar operações de troca de bits na solução construída tentando uma melhoria na solução. Com a aplicação do Algoritmo Genético Híbrido houve melhorias em relação aos resultados obtidos pela combinação do AG Simples (torneio e cruzamento em dois 101

117 6.3 Restrição de Capacidade Algoritmo 10: Grasp para Minimização f = ; para x=0 até GRASPmax faça Construção; BuscaLocal; se f(s) < f então s s; f f(s); fim s s ; Retorne s; fim pontos). O procedimento Grasp impacta negativamente no tempo de execução, pois este procedimento implica na execução de mais funções do que o AG simples. Entretanto procedimentos de paralelização podem ser empregados para aumentar a velocidade da busca local. Na topologia Mesh houve melhoria de 1, 1%, na topologia de 10 nós melhoria de 20, 86%, na topologia Dora melhoria de 13, 77% e na Carrier melhoria de 10, 54% Algoritmo Opt-ainet O problema de otimização de redes MPLS apresentado neste trabalho utiliza a codificação binária para a resolução do problema. Entretanto, o algoritmo Opt-ainet foi desenvolvido primariamente para trabalhar com valores reais e para que pudesse ser aplicado ao problema estudado o mesmo foi alterado para trabalhar com valores binários. Duas modificações importantes foram realizadas: (a) geração de valores iniciais e (b) processo de mutação. Neste algoritmo, o tamanho da célula depende do número de caminhos para cada LSP. Para 50 LSPs e dois caminhos para cada, tem-se uma célula de tamanho de 50 bits. Os caminhos são gerados através do algoritmo de k caminhos mínimos, que funciona a partir da leitura da topologia e das demandas de LSPs na rede. Cada célula da rede receberá uma palavra binária gerada aleatoriamente e o conjunto de células será a população da rede. O número de células iniciais não são importantes, pois o algoritmo se ajusta removendo e adicionando células. A segunda alteração importante é no processo de mutação. Por-se tratar da codificação binária, o processo de mutação ocorre sempre realizando a complementação do bit e este processo é realizado bit a bit. A mutação é proporcional à aptidão normalizada do indivíduo. 102

118 6.3 Restrição de Capacidade Ajuste de Parâmetros O primeiro parâmetro avaliado é a influência do número de novas células adicionadas à rede no percentual de convergência. O teste foi realizado com a topologia de 10 nós e 50 LSPs. Estes testes visam encontrar a relação ótima do número de clones para melhoria do desempenho do algoritmo. O número de células iniciais não é importante, pois este algoritmo ajusta automaticamente o número de indivíduos da rede. A Figura 6.7 apresenta o percentual de convergência do algoritmo em função do número de células adicionadas. Como pode ser observado no gráfico, a convergência é de 100% a partir da adição de mais de 40% células à rede. 110 Células Adicionadas Convergência Percentual (%) Percentual de Células Adicionadas (%) Figura 6.7: Percentual de células adicionadas Dentre os resultados deve ser escolhido o que necessita do menor tempo e como critério de desempate a menor quantidade de iterações. A Figura 6.8 relaciona o tempo de convergência com o número de células adicionadas e a Figura 6.9 apresenta o número de iterações necessárias para convergência em função do número de células adicionadas. Na Figura 6.8 pode ser observado que o menor tempo para se obter convergência de 100% foi obtido através da adição de 50% novas células à rede. Na Figura 6.9 pode ser observado que o menor número de iterações foi conseguido com 70% de novas células adicionadas à rede. Através das Figuras 6.8 e 6.9, pode-se concluir que os melhores resultados foram 103

119 6.3 Restrição de Capacidade 90 Tempo de Convergência [s] Tempo [s] % 20% 30% 40% 50% 60% 70% 80% 90% 100% Percentual de Células Adicionadas Figura 6.8: Tempo de convergência Opt-ainet 5.5 Número de Iterações para Convergência 5 Iterações % 20% 30% 40% 50% 60% 70% 80% 90% 100% Percentual de Células Adicionadas Figura 6.9: Número de iterações e número de células adicionadas obtidos através da adição de 50% novas células à rede. A Figura 6.10 apresenta a convergência do algoritmo Opt-ainet em função da variação do número clones. Pode-se observar que a partir de 20 clones a convergência 104

120 6.3 Restrição de Capacidade foi de 100%. 110 Número de Clones Convergência Percentual (%) Número de Clones Figura 6.10: Convergência em função do número de clones As Figuras 6.11(a) e 6.11(b) apresentam os resultados do tempo de convergência em função do número de clones da rede. Com 40 clones foi obtido o menor tempo e a partir deste valor o tempo necessário para convergência aumenta em função do número de clones na rede. As Figuras 6.12(a) e 6.12(b) apresentam os resultados do número de iterações para convergir em função do número de clones. Através dos resultados obtidos com as simulações, pode-se concluir que com 45 clones obtêm-se os melhores resultados. Simulações com Opt-ainet A partir dos parâmetros anteriores, foram realizadas simulações para as topologias 10 nós, Carrier, Dora e Mesh para 50, 100 e 500 LSPs. Foram realizadas 100 simulações para cada topologia e os gráficos foram gerados com intervalo de confiança de 95%. A Figura 6.13 apresenta os resultados para 50 LSPs. A Figura 6.14 apresenta os resultados para 100 LSPs. A Figura 6.15 apresenta os resultados para 500 LSPs. A Figura 6.16 o tempo de convergência para o algoritmo Opt-ainet para as diferentes topologias para a simulação com 500 LSPs. Os resultados apresentados aqui indicam que é viável o desenvolvimento de sis- 105

121 6.3 Restrição de Capacidade 120 Tempo de Convergência [s] Tempo [s] Número de Clones (a) Tempo de convergência - 5 a 25 clones 65 Tempo de Convergência Tempo [s] Número de Clones (b) Tempo de convergência - 30 a 100 clones Figura 6.11: Tempo de convergência em função do número de clones temas de otimização utilizando o algoritmo Opt-ainet. Na próxima parte do trabalho serão apresentados os resultados obtidos com o algoritmo B-Cell Algoritmo B-Cell Este é outro algoritmo inspirado no sistema imunológico, que possui poucos parâmetros para ajuste. O primeiro teste tem como objetivo avaliar qual a taxa de mu- 106

122 6.3 Restrição de Capacidade 3000 Número de Iterações para Convergência Iterações Número de Clones (a) Iterações para Convergência - 5 a 25 clones 35 Número de Iterações para Convergência Iterações Número de Clones (b) Iterações para Convergência - 30 a 100 clones Figura 6.12: Iterações para Convergência tação produz melhores resultados para uma determinada instância. A Figura 6.17 apresenta os gráficos da avaliação da taxa de mutação em função da convergência do algoritmo B-Cell. O melhor resultado foi obtido com taxa de mutação de 50%. Para avaliar o desempenho do algoritmo, foram rodadas 100 simulações para cada tipo de topologia. Os gráficos foram plotados com um intervalo de confiança de 95%. A Figura 6.18 apresenta a simulação para todas as topologias com 50 LSPs. A Figura 6.19 apresenta a simulação para todas as topologias com 100 LSPs. A Figura

123 6.3 Restrição de Capacidade 380 Simulação 50 LSPs Custo nós Carrier Dora Mesh Topologias Figura 6.13: Simulação com 50 LSPs e Opt-ainet 800 Simulação para 100 LSPs Custo nós Carrier Dora Mesh Topologias Figura 6.14: Simulação com 100 LSPs e Opt-ainet apresenta a simulação para todas as topologias com 500 LSPs Algoritmo Copt-ainet Este algoritmo utiliza um algoritmo de busca local em duas fases: na maturação fraca e na maturação forte da afinidade. Para este algoritmo foram realizadas duas simulações, uma com o algoritmo tradicional, aplicando-se Busca Tabu na maturação 108

124 6.3 Restrição de Capacidade 9000 Simulação 500 LSPs 8000 Custo nós Carrier Dora Mesh Topologias Figura 6.15: Simulação com 500 LSPs e Opt-ainet 5500 Tempo Médio de Convergência Tempo [s] Dora 10 nós Mesh Carrier Topologias Figura 6.16: Tempo de convergência para 500 LSPs fraca e forte, e outra simulação com a aplicação da Busca Tabu na maturação fraca e o método Grasp na maturação forte. A Busca Tabu (BT) é um método de busca local que consiste em explorar o espaço de soluções, movendo-se de uma solução para outra que seja seu melhor vizinho. 109

125 6.3 Restrição de Capacidade 1.44 x 104 Avaliação da Taxa de Mutação Melhor Resultado Taxa de Mutação [%] 1.34 x 104 Avaliação da Taxa de Mutação Melhor Resultado Taxa de Mutação [%] Figura 6.17: Avaliação da Taxa de Mutação Esta estratégia, juntamente com uma estrutura de memória para armazenar as soluções geradas (ou características dessas), possibilita escapar dos ótimos locais (Souza 2008). Uma das diferenças entre a Busca Tabu e o Grasp é que o segundo não possui memória. BT utiliza memória para armazenar o histórico de soluções, para tentar escapar dos ótimos locais. Para um problema de minimização, a BT explora a vizi- 110

126 6.3 Restrição de Capacidade 400 Simulação 50 LSPs nós Carrier Dora Mesh Custo Topologias Figura 6.18: Custo para 50 LSPs 800 Simulação 100 LSPs Custo nós Carrier Dora Mesh Topologias Figura 6.19: Custo para 100 LSPs nhança da solução e se for encontrado uma solução melhor, esta torna-se a solução corrente. Ele utiliza uma lista de tamanho fixo que armazena todos os movimentos proibidos. A Listagem 11 apresenta o algoritmo de Busca Tabu (Souza 2008). Computacionalmente o algoritmo BT é muito mais complexo do que o Grasp e por isso gasta maior tempo computacional. 111

127 6.3 Restrição de Capacidade Simulação 500 LSPs Custo nós Carrier Dora Mesh Topologias Figura 6.20: Custo para 500 LSPs Algoritmo 11: Busca Tabu // Melhor solução obtida até então ; s s ; // Contador do número de iterações ; Iter 0 ; // Iteração mais recente que forneceu s ; MelhorIter 0 ; Inicializa a função de de aspiração A ; enquanto f(s) > f min and Iter MelhorIter < BT max faça Iter Iter + 1 ; Seja s s m o melhor elemento de V N(s) tal que o movimento m não seja tabu (m T ) ou s atenda a condição de aspiração (f(s ) < A(f(s)))) ; Atualize a lista Tabu; s s ; se (f(s) < f(s ) então s s; M elhoriter Iter; fim Atualiza a função de aspiração A; fim s s ; Retorne s; Foram realizadas simulações com as topologias 10 nós, Dora, Carrier e Mesh. Para cada topologia foram feitos 100 experimentos e os gráficos foram plotados com 112

128 6.3 Restrição de Capacidade intervalo de confiança de 95%. A Figura 6.21 apresenta o resultado para a simulação com 50 LSPs. 380 Simulação 50 LSPs Custo nós Carrier Dora Mesh Topologias Figura 6.21: Copt-ainet (BT): custo para 50 LSPs 800 Custo para 100 LSPs Busca Tabu nós Carrier Dora Mesh Custo Topologias Figura 6.22: Copt-ainet (BT): custo para 100 LSPs Para as simulações com o método Grasp foram realizados 100 testes para cada conjunto de LSPs. Os gráficos foram plotados com intervalo de confiança de 95%. A Figura 6.24 apresenta o resultado da utilização do Grasp como algoritmo para maturação forte. 113

129 6.3 Restrição de Capacidade 9000 Simulação 500 LSPs 8000 Custo nós Carrier Dora Mesh Topologias Figura 6.23: Copt-ainet (BT): custo para 500 LSPs 380 Simulação Grasp 50 LSPs Custo nós Carrier Dora Mesh Topologias Figura 6.24: Copt-ainet (Grasp): custo para 50 LSPs A Figura 6.25 apresenta o resultado da utilização do Grasp como algoritmo para maturação forte. A Figura 6.26 apresenta o resultado da utilização do Grasp como algoritmo para maturação forte. 114

130 6.3 Restrição de Capacidade 800 Simulação Grasp 100 LSPs Custo nós Carrier Dora Mesh Topologias Figura 6.25: Copt-ainet (Grasp): custo para 100 LSPs 9000 Simulação Grasp 500 LSPs 8000 Custo nós Carrier Dora Mesh Topologias Figura 6.26: Copt-ainet (Grasp): custo para 500 LSPs Comparação dos Resultados Para avaliar os resultados de todos os algoritmos foi criado uma tabela que apresenta todos os resultados de forma resumida. A Tabela 6.1 apresenta todos os resultados obtidos com o desenvolvimento dos algoritmos apresentados anteriormente. 115

131 6.3 Restrição de Capacidade Tabela 6.1: Custo Médio das Instâncias Aplicando Diferentes Algoritmos Métodos Mesh 10 nós Dora Carrier BCA/Média 382,45 762, ,50 252,20 501, ,10 295,00 590, ,25 310,00 620, ,80 BCA/Desvio 2,51 2,51 40,03 2,49 2,32 275,33 0,00 0,00 335,46 0,00 0,00 200,69 Opt-ainet/Média 380,00 760, ,00 250,00 500, ,00 295,00 590, ,00 310,00 620, ,25 Opt-ainet/Desvio 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 18,47 Copt-ainet-Tabu/Média 380,00 760, ,00 250,00 500, ,00 295,00 590, ,00 310,00 620, ,95 Copt-ainet-Tabu/Desvio 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 11,31 Copt-ainet-Grasp/Média 380,00 760, ,00 250,00 500, ,00 295,00 590, ,00 310,00 620, ,50 Copt-ainet-Grasp/Desvio 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 6,91 GA(ROL/1PT)/Média 380,00 760, ,15 250,00 500, ,10 295,00 590, ,95 310,00 620, ,85 GA(ROL/1PT)/Desvio 0,00 0,00 24,76 0,00 0,50 183,28 0,00 0,00 183,17 0,00 0,00 119,09 GA(ROL/2PT)/Média 380,00 760, ,30 250,00 500, ,15 295,00 590, ,45 310,00 620, ,80 GA(ROL/2PT)/Desvio 0,00 0,00 23,81 0,00 0,00 190,91 0,00 0,00 200,37 0,00 0,00 110,41 GA(ROL/UNI)/Média 380,00 760, ,05 250,00 500, ,90 295,00 590, ,40 310,00 620, ,60 GA(ROL/UNI)/Desvio 0,00 0,00 22,29 0,00 0,00 171,35 0,00 0,00 192,73 0,00 0,00 116,46 GA(TOR/1PT)/Média 380,00 760, ,60 250,00 500, ,35 295,00 590, ,05 310,00 620, ,20 GA(TOR/1PT)/Desvio 0,00 0,00 15,83 0,00 0,00 137,05 0,00 0,00 152,66 0,00 0,00 82,56 GA(TOR/2PT)/Média 380,00 760, ,80 250,00 500, ,05 295,00 590, ,05 310,00 620, ,50 GA(TOR/2PT)/Desvio 0,00 0,00 17,14 0,00 0,00 142,23 0,00 0,00 147,28 0,00 0,00 77,48 GA(TOR/UNI)/Média 380,00 760, ,05 250,00 500, ,05 295,00 590, ,15 310,00 620, ,60 GA(TOR/UNI)/Desvio 0,00 0,00 18,88 0,00 0,00 149,1 0,00 0,00 136,86 0,00 0,00 85,17 GA(DSA/1PT)/Média 380,00 760, ,40 250,00 500, ,75 295,00 590, ,15 310,00 620, ,20 GA(DSA/1PT)/Desvio 0,00 0,00 24,65 0,00 0,00 156,59 0,00 0,00 183,24 0,00 0,00 116,04 GA(DSA/2PT)/Média 380,00 760, ,45 250,00 500, ,35 295,00 590, ,50 310,00 620, ,75 GA(DSA/2PT)/Desvio 0,00 0,00 22,13 0,00 0,00 187,08 0,00 0,00 187,92 0,00 0,00 113,9 GA(DSA/UNI)/Média 380,00 760, ,10 250,00 500, ,10 295,00 590, ,80 310,00 620, ,80 GA(DSA/UNI)/Desvio 0,00 0,00 18,57 0,00 0,00 160,99 0,00 0,00 171,54 0,00 0,00 88,22 GA(SRS/1PT)/Média 380,00 760, ,30 250,00 500, ,15 295,00 590, ,65 310,00 620, ,25 GA(SRS/1PT)/Desvio 0,00 0,00 26,23 0,00 0,00 237,88 0,00 0,00 248,99 0,00 0,00 136,14 GA(SRS/2PT)/Média 380,00 760, ,90 250,00 500, ,25 295,00 590, ,70 310,00 620, ,15 GA(SRS/2PT)/Desvio 0,00 0,00 28,03 0,00 0,00 259,30 0,00 0,00 248,86 0,00 0,00 109,19 GA(SRS/UNI)/Média 380,00 760, ,30 250,00 500, ,40 295,00 590, ,45 310,00 620, ,55 GA(SRS/UNI)/Desvio 0,00 0,00 22,53 0,00 0,00 231,12 0,00 0,00 230,58 0,00 0,00 110,58 GA(OCX)/Média 380,00 760, ,40 250,00 500, ,10 295,00 590, ,30 310,00 620, ,80 GA(OCX)/Desvio 0,00 0,00 15,27 0,00 1,10 254,81 0,00 0,00 144,76 0,00 0,00 72,88 GA com Grasp/Média 380,00 760, ,00 250,00 500, ,00 295,00 590, ,00 310,00 620, ,92 GA com Grasp/Desvio 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 0,00 27,09 116

132 6.3 Restrição de Capacidade Através dos resultados obtidos com as simulações realizadas pode-se concluir que os algoritmos que apresentaram os melhores resultados foram o: Copt-ainet com Grasp, Copt-aiNet com Busca Tabu, Opt-aiNet e o Algoritmo Genético Híbrido. Para as instâncias de até 100 LSPs todos os algoritmos, com exceção do BCA, apresentaram resultados semelhantes. Nestes casos deve-se optar pelo Algoritmo Genético devido a sua reduzida complexidade que é refletida no tempo de simulação. Quando se deseja otimizar um conjunto superior a 100 LSPs, deve-se optar pelos algoritmos imunológicos, pois os mesmos apresentaram resultados superiores às abordagens com Algoritmos Genéticos Simulação no ns2 Para validar os resultados apresentados pelo software foi desenvolvido uma simulação no ns2, utilizando a topologia 10 nós com 10 LSPs. Foram realizadas 10 experimentos com estas condições e optou-se por se utilizar o Algoritmo Genético, o algoritmo de seleção torneio e o cruzamento em dois pontos, sendo que os resultados foram retornados do sistema de otimização desenvolvido. As 10 fontes utilizadas eram de taxa de constante de bits e s resultados dos LSPs estão descritos a seguir: LSP [ 0] LSP [ 1] LSP [ 2] LSP [ 3] LSP [ 4] LSP [ 5] LSP [ 6] LSP [ 7] LSP [ 8] LSP [ 9] A Figura 6.27 apresenta a topologia simulada, suas fontes e os sorvedouros de tráfego. A Tabela 6.2 apresenta os resultados das simulações realizadas. 117

133 6.3 Restrição de Capacidade Figura 6.27: Simulação Topologia Mesh Tabela 6.2: Comparativo dos Resultados para 10 LSPs na Topologia Mesh Sem MPLS MPLS Sem MPLS MPLS Sem MPLS MPLS Fluxo Atraso [ms] Atraso [ms] Perda [%] Perda [%] Taxa [Mbps] Taxa [Mbps] 0 3,55 3,55 0,00 0, ,70 3,55 0,00 0, ,55 3,55 0,00 0, ,97 4,97 0,00 0, ,01 6,39 0,00 0, ,55 3,55 0,00 0, ,44 3,55 0,00 0, ,55 3,55 0,00 0, ,86 4,97 0,00 0, ,01 5,18 99,57 0, O atraso total da rede sem MPLS foi de 82, 28 ms, sendo que para a rede com MPLS o atraso foi de 42, 81 ms. Isso correspondeu a uma redução de 47, 97% no atraso total da rede. A taxa de utilização da rede foi 10, 74% superior ao se utilizar MPLS, o que correspondeu a 2 Mb de tráfego na rede. Houve reduções significativas na perda de pacotes, principalmente no fluxo 10. As informações sobre a flutuação foram omitidas, pois as mesmas eram insignificantes. 6.4 Modelo para Tráfego Auto-Similar O objetivo de cada provedor de acesso é reduzir o custo operacional e maximizar os lucros de operação. O modelo será desenvolvido para a redução do custo de ope- 118

134 6.4 Modelo para Tráfego Auto-Similar ração de toda a rede, porém sem deixar de garantir as necessidades dos clientes da operação. Para atingir esse objetivo, para cada enlace será definido um custo de operação que implica no gasto total do uso do enlace E n. Caso o custo de operação seja o mesmo para todos os enlaces, o estabelecimento de um LSP dependerá de um montante de recursos R vezes o número de saltos necessários para estabelecimento do mesmo. Indiretamente, o algoritmo trabalhará com a redução do número de saltos na rede, pois quanto maior o número de saltos maior será o custo para a criação de um LSP. Ao se reduzir o número de saltos, o tempo gasto para o processamento dos pacotes nos nós (menos roteadores no LSP) diminui e facilitam-se as políticas de re-roteamento, pois menos roteadores serão envolvidos para troca de LSPS na rede. Como os enlaces possuem capacidade limitada, o algoritmo deve ser capaz de alocar um conjunto de LSPs obedecendo estas restrições, isto é, o conjunto de LSPs alocados em um enlace não deve ser superior à capacidade do enlace. Isso é uma restrição para o problema de otimização e, quando esta condição for violada, a função objetivo do problema é penalizada. Assim, os indivíduos que representam esta possível solução terão uma menor probabilidade de serem selecionados nos mecanismos de evolução dos algoritmos implementados. O balanceamento de carga é fundamental para os provedores de acesso e por isso o processo de alocação deve ser tal que contribua para a distribuição de recursos de forma equilibrada. a maior capacidade disponível. Os recursos devem ser alocados nos enlaces que possuam No início a capacidade disponível em cada enlace é a capacidade total do enlace. A medida que os LSPs são alocados, a capacidade disponível vai diminuindo e esta quantidade pode ser calculada pela diferença entre a capacidade disponível no enlace e a capacidade a ser alocada. Este mecanismo simples de privilegiar a alocação de LSPs em enlaces que tenham a maior capacidade disponível contribui para o balanceamento de carga em toda a rede. Um benefício indireto é a redução do atraso, pois de acordo com a teoria de enfileiramento, o atraso aumenta com a taxa de ocupação em uma fila. Neste trabalho será usado uma função de custo que é baseada nas medidas de congestionamento propostas por Fortz e Throup (Fortz & Thorup 2004). Com cada arco a ɛ A, associa-se uma função de custo como função da utilização do enlace la c a, que significa a proximidade da utilização do enlace l a em relação a capacidade c a. φ = aɛa φ a (l a ) (6.7) Geralmente, φ favorece o encaminhamento de fluxos em arcos com menor utiliza- 119

135 6.4 Modelo para Tráfego Auto-Similar ção e o custo aumenta progressivamente até atingir um máximo de penalidade. Para cada arco a ɛ A, φ a é uma função contínua com φ a (0) = 0 e derivada, dada por 1 para 0 l a /c a < 1/3, 3 para 1/3 l a /c a < 2/3, 10 para 2/3 l a /c a < 9/10, φ la = 70 para 9/10 l a /c a < 1, 500 para 1 l a /c a < 11/10, 5000 para 11/10 l a /c a < Para dar suporte a aplicações que necessitem de QoS é necessário um modelo de otimização que contabilize a taxa de transmissão e atraso. A variação do atraso e a perda de pacotes são condições da dinâmica da rede e ficam difíceis de serem calculados através de fórmulas analíticas. Estas duas condições devem ser medidas durante a operação da rede e fazerem parte de algum mecanismo de previsão e reroteamento. Assim, pode-se definir que o problema básico de roteamento para QoS é encontrar um caminho que satisfaça múltiplas restrições. Uma possibilidade é definir uma função e gerar uma única métrica com múltiplos parâmetros, mas isso não garante que os requisitos de QoS pode ser satisfeitos ou não (Wang & Crowcroft 1996). Em (Wang & Crowcroft 1996) foram propostas três regras de composição para múltiplas métricas. Seja d(i, j) uma métrica para um enlace (i, j). Para qualquer caminho p = (i, j, k,..., m, n), a métrica d é aditiva se obedece a Equação 6.8 e pode ser aplicada para calcular o atraso, variação do atraso e custo. d(p) = d(i, j) + d(j, k) d(m, n) (6.8) A Equação 6.9 apresenta a métrica multiplicativa. d(p) = d(i, j) d(j, k)... d(m, n) (6.9) A Equação 6.10 apresenta a métrica côncava e pode ser aplicada para calcular a largura de faixa. d(p) = min[d(i, j), d(j, k),..., d(m, n)] (6.10) Para calcular a perda de pacotes a regra de composição é definida na Equação d(p) = 1 ((1 d(i, j)) (1 d(j, k))... (1 d(m, n)) (6.11) Em (Wang & Crowcroft 1996) foi mostrado que o prolema de encontrar caminhos sujeito a duas ou mais restrições aditivas ou multiplicativas em qualquer possível 120

136 6.4 Modelo para Tráfego Auto-Similar Algoritmo 12: Algoritmo proposto por Wang Faça d ij = se b ij < B; Faça L = {1}, D i = b 1i para todo i 1 ; enquanto Encontre k ɛl tal que D k = min i ɛ L D i faça se D k > D, então não existe um caminho então Algoritmo é terminado; fim se L contém um nó m, o caminho é encontrado então L := L k; Algoritmo terminado; fim Para todo i ɛl, Di := min[d i, D k + d ki ] fim combinação é NP-completo. Neste trabalho foi proposto um algoritmo para encontrar caminhos em um grafo com múltiplas restrições, Algoritmo 12. Este algoritmo trabalha com duas fases: na primeira fase são eliminados todos os enlaces que não satisfazem as necessidades de largura de faixa e na segunda fase encontra-se o menor atraso para o nó m usando o algoritmo de Dijkstra. Considere um grafo direto G = (N, A) com N nós e A arcos, no qual cada arco (i, j) possui os seguintes parâmetros b ij e d ij que são respectivamente, a quantidade de largura de faixa disponível no arco (i, j) e o atraso de propagação no arco (i, j). Para simplificar a notação, seja b ij = 0 e d ij = se o arco (i, j) não é um arco do grafo. Dado um caminho direto p = (i, j, k,..., l, m), a operação width(p) é definida como a largura de faixa maior do grafo width(p) = min[b ij, b jk,..., b lm ] e o tamanho do caminho (p) como a soma do atraso de propagação (p) = d ij + d jk d lm Dado dois nós i e m de um grafo, e duas restrições W e D, o problema de roteamento de QoS é então encontrar um caminho p entre i e m tal que p B e o tamanho de (p D). Através dos resultados apresentados neste capítulo e na modelagem de tráfego de auto-similar, propõe-se um modelo de otimização para roteamento de QoS em redes multimídia com perfil de tráfego auto-similar, utilizando o protocolo MPLS. Para aumentar a velocidade foram gerados indivíduos que correspondem apenas a caminhos válidos. Este procedimento assegura que não serão realizados testes adicionais durante a evolução do programa, para verificar se o indivíduo é uma solução válida ou não. Para isso basta utilizar um esquema de codificação que gere apenas indivíduos válidos. Outra técnica utilizada na geração dos indivíduos foi a definição de caminhos através de um algoritmo de k caminhos mínimos. O número de caminhos a ser gerado 121

137 6.4 Modelo para Tráfego Auto-Similar é um parâmetro da função, pois para cada topologia existe um conjunto de caminhos que pode satisfazer esta opção. Quando a topologia apresenta um grau muito pequeno para todos os nós, limitando o número de caminhos possíveis, inviabiliza um número alto de caminhos mínimos. A versão básica do algoritmo proposto neste trabalho é apresentada na Listagem 13. Os algoritmos de otimização foram apresentados no Capítulo 5 e podem ser utilizados qualquer um dos algoritmos citados. Algoritmo 13: Algoritmo Proposto Leitura do nome da topologia de simulação; Leitura dos dados da topologia a ser simulada; Leitura do número de requisições; Leitura das requisições das fontes; Leitura do número de caminhos; Calculo dos k caminhos para cada LSP; Mapeamento e Codificação dos k caminhos; Escolha do algoritmo de otimização; enquanto critério de parada for satisfeito faça Execute o algoritmo de otimização; fim Crie simulação no ns2 com o resultado da simulação: com MPLS e sem MPLS; Para calcular a função objetivo do problema foi utilizado o algoritmo apresentado na Listagem 14. Para validar este modelo de otimização foi proposto uma simulação utilizando traços de tráfego reais com as seguintes características: 20 fontes de 1, 1 Mbps, variância de 269, 36x10 9, coeficiente de Hurst de 0, 80 e limite de atraso de no máximo de 10 ms para cada LSP. A topologia de simulação é apresentada na Figura 6.28, e possui seis nós que compõem o núcleo da rede (nó 0 ao 5), 20 nós geradores (nó 6 ao 25), 20 nós sorvedouros (nó 26 ao 45) e todos os enlaces com capacidade de 10 Mbps e atraso de 1 ms. A Figura 6.29 apresenta o perfil de tráfego injetado em cada um dos nós da rede. Este tráfego é injetado através de um arquivo que representa um traço real de tráfego. O custo operacional de todos os enlaces é o mesmo e assim a utilização de qualquer enlace por LSP gera o mesmo ônus de operação. Para cada requisição existe um par que define a origem e o destino dos pacotes. Os 20 pares estão descritos a seguir: (6 16), (7 7), (8 18), (9 19), (10 20), (11 21), (6 26), (7 27), (8 28), (9 29), (10 30), (11 31), (12 32), (13 33), (14 34), (15 35), (16 36), (17 37), (18 38), (19 39), (20 40), (21 41), (22 42), (23 43), (24 44) e (25 45). 122

138 6.4 Modelo para Tráfego Auto-Similar Algoritmo 14: Cálculo da Função Objetivo Calcule os LSPs que passam por cada enlace da rede; Calcule o pacote médio em cada enlace; Calcule a variância agregada para cada enlace (Equação 4.27); Calcule o coeficiente de Hurst agregado para cada enlace (Equação 4.27); Calcule a capacidade efetiva para cada enlace (Equação 4.24); Calcule a capacidade residual para cada enlace ; Calcule a penalidade ; Calcule o atraso de cada enlace (Equação 4.25); Calcule o custo total de operação para todos os LSPs; para todos os LSPs faça Calcule o atraso para cada LSP ; se Atraso do LSP i > Atraso Desejado do LSP i então Gere uma penalidade ; fim Atualize a penalidade total; fim Calcule a aptidão total do indivíduo; Figura 6.28: Simulação com Tráfego Auto-similar Foram realizadas simulações para a tecnologia MPLS e para o roteamento IP. Todos os testes foram realizados durante um período de 100 segundos e todas as fontes iniciaram e terminaram a transmissão simultaneamente. O tempo de simulação foi 123

MPLS. Redes de Longa Distância Prof. Walter Cunha

MPLS. Redes de Longa Distância Prof. Walter Cunha Redes de Longa Distância Prof. Walter Cunha Vantagens do Multiprotocol Label Switching (MPLS) em relação às redes IP puras: Possibilitar a utilização de switches no roteamento principalmente em backbones

Leia mais

Redes WAN MPLS. Redes de Longa Distância Prof. Walter Cunha

Redes WAN MPLS. Redes de Longa Distância Prof. Walter Cunha Redes WAN MPLS Redes de Longa Distância Prof. Walter Cunha Vantagens do Multiprotocol Label Switching (MPLS) em relação às redes IP puras: Possibilitar a utilização de switches no roteamento Principalmente

Leia mais

PROJETO DE REDES www.projetoderedes.com.br

PROJETO DE REDES www.projetoderedes.com.br PROJETO DE REDES www.projetoderedes.com.br CENTRO UNIVERSITÁRIO DE VOLTA REDONDA UniFOA Curso Tecnológico de Redes de Computadores Disciplina: Redes Convergentes II Professor: José Maurício S. Pinheiro

Leia mais

Prof. Samuel Henrique Bucke Brito

Prof. Samuel Henrique Bucke Brito - QoS e Engenharia de Tráfego www.labcisco.com.br ::: shbbrito@labcisco.com.br Prof. Samuel Henrique Bucke Brito Introdução Em oposição ao paradigma best-effort (melhor esforço) da Internet, está crescendo

Leia mais

Qualidade de serviço. Determina o grau de satisfação do usuário em relação a um serviço específico Capacidade da rede de atender a requisitos de

Qualidade de serviço. Determina o grau de satisfação do usuário em relação a um serviço específico Capacidade da rede de atender a requisitos de Qualidade de serviço Determina o grau de satisfação do usuário em relação a um serviço específico Capacidade da rede de atender a requisitos de Vazão Atraso Variação do atraso Erros Outros Qualidade de

Leia mais

MPLS MultiProtocol Label Switching

MPLS MultiProtocol Label Switching MPLS MultiProtocol Label Switching Cenário Atual As novas aplicações que necessitam de recurso da rede são cada vez mais comuns Transmissão de TV na Internet Videoconferências Jogos on-line A popularização

Leia mais

MPLS Multi-Protocol Label Switching

MPLS Multi-Protocol Label Switching MPLS Multi-Protocol Label Switching Adilson Eduardo Guelfi Volnys Borges Bernal Luis Gustavo G. Kiatake Agenda Introdução Arquitetura de Rede Conceitos MPLS Conclusões Introdução MPLS is the enabling technology

Leia mais

Há dois tipos de configurações bidirecionais usados na comunicação em uma rede Ethernet:

Há dois tipos de configurações bidirecionais usados na comunicação em uma rede Ethernet: Comunicação em uma rede Ethernet A comunicação em uma rede local comutada ocorre de três formas: unicast, broadcast e multicast: -Unicast: Comunicação na qual um quadro é enviado de um host e endereçado

Leia mais

REDES MPLS. Roteiro. Protocolos anteriores ao MPLS. Demanda crescente por largura de banda.

REDES MPLS. Roteiro. Protocolos anteriores ao MPLS. Demanda crescente por largura de banda. REDES MPLS PARTE 1 PROFESSOR: MARCOS A. A. GONDIM Roteiro Protocolos anteriores ao MPLS. Motivações para o uso de Redes MPLS. O Cabeçalho MPLS. Label Switch Router (LSR). Switched Path (LSP). Forwarding

Leia mais

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos

MÓDULO 7 Modelo OSI. 7.1 Serviços Versus Protocolos MÓDULO 7 Modelo OSI A maioria das redes são organizadas como pilhas ou níveis de camadas, umas sobre as outras, sendo feito com o intuito de reduzir a complexidade do projeto da rede. O objetivo de cada

Leia mais

Rede de Computadores II

Rede de Computadores II Rede de Computadores II Slide 1 Roteamento Determinar o melhor caminho a ser tomado da origem até o destino. Se utiliza do endereço de destino para determinar a melhor rota. Roteador default, é o roteador

Leia mais

MultiProtocol Label Switching - MPLS

MultiProtocol Label Switching - MPLS MultiProtocol Label Switching - MPLS Prof. S. Motoyama Rede IP Tradicional ROT - roteador ROT ROT ROT ROT ROT ROT ROT ROT ROT uvem IP ROT ROT 2 Encaminhamento de pacote na rede tradicional Prefixo Enderereço

Leia mais

CAMADA DE REDE. UD 2 Aula 3 Professor João Carneiro Arquitetura de Redes 1º e 2º Semestres UNIPLAN

CAMADA DE REDE. UD 2 Aula 3 Professor João Carneiro Arquitetura de Redes 1º e 2º Semestres UNIPLAN CAMADA DE REDE UD 2 Aula 3 Professor João Carneiro Arquitetura de Redes 1º e 2º Semestres UNIPLAN Modelo de Referência Híbrido Adoção didática de um modelo de referência híbrido Modelo OSI modificado Protocolos

Leia mais

3 Qualidade de serviço na Internet

3 Qualidade de serviço na Internet 3 Qualidade de serviço na Internet 25 3 Qualidade de serviço na Internet Além do aumento do tráfego gerado nos ambientes corporativos e na Internet, está havendo uma mudança nas características das aplicações

Leia mais

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 5-1. A CAMADA DE TRANSPORTE Parte 1 Responsável pela movimentação de dados, de forma eficiente e confiável, entre processos em execução nos equipamentos conectados a uma rede de computadores, independentemente

Leia mais

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

TRANSMISSÃO DE DADOS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 3-1. A CAMADA DE REDE (Parte 1) A camada de Rede está relacionada à transferência de pacotes da origem para o destino. No entanto, chegar ao destino pode envolver vários saltos em roteadores intermediários.

Leia mais

Gerenciamento de redes

Gerenciamento de redes Gerenciamento de redes Gerenciamento de Serviços Gerenciamento de QoS (Qualidade de serviço) slide 1 Qualidade de serviços: aplicações de multimídia: áudio e vídeo de rede ( mídia contínua ) QoS rede oferece

Leia mais

PROJETO DE REDES www.projetoderedes.com.br

PROJETO DE REDES www.projetoderedes.com.br PROJETO DE REDES www.projetoderedes.com.br Curso de Tecnologia em Redes de Computadores Disciplina: Redes I Fundamentos - 1º Período Professor: José Maurício S. Pinheiro AULA 6: Switching Uma rede corporativa

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Prof. Marcelo Gonçalves Rubinstein Programa de Pós-Graduação em Engenharia Eletrônica Faculdade de Engenharia Universidade do Estado do Rio de Janeiro Ementa Introdução a Redes de

Leia mais

Capítulo 7 CAMADA DE TRANSPORTE

Capítulo 7 CAMADA DE TRANSPORTE Capítulo 7 CAMADA DE TRANSPORTE SERVIÇO SEM CONEXÃO E SERVIÇO ORIENTADO À CONEXÃO Serviço sem conexão Os pacotes são enviados de uma parte para outra sem necessidade de estabelecimento de conexão Os pacotes

Leia mais

Tabela de roteamento

Tabela de roteamento Existem duas atividades que são básicas a um roteador. São elas: A determinação das melhores rotas Determinar a melhor rota é definir por qual enlace uma determinada mensagem deve ser enviada para chegar

Leia mais

Redes de computadores. Redes para Internet

Redes de computadores. Redes para Internet Redes de computadores Redes para Internet Milhões de elementos de computação interligados: hospedeiros = sistemas finais Executando aplicações distribuídas Enlaces de comunicação fibra, cobre, rádio, satélite

Leia mais

Capítulo 7 CAMADA DE TRANSPORTE

Capítulo 7 CAMADA DE TRANSPORTE Capítulo 7 CAMADA DE TRANSPORTE INTRODUÇÃO (KUROSE) A Camada de Rede é uma peça central da arquitetura de rede em camadas A sua função é a de fornecer serviços de comunicação diretamente aos processos

Leia mais

Fundamentos de Redes de Computadores. Elementos de Redes Locais

Fundamentos de Redes de Computadores. Elementos de Redes Locais Fundamentos de Redes de Computadores Elementos de Redes Locais Contexto Implementação física de uma rede de computadores é feita com o auxílio de equipamentos de interconexão (repetidores, hubs, pontos

Leia mais

Arquitetura de Rede de Computadores

Arquitetura de Rede de Computadores TCP/IP Roteamento Arquitetura de Rede de Prof. Pedro Neto Aracaju Sergipe - 2011 Ementa da Disciplina 4. Roteamento i. Máscara de Rede ii. Sub-Redes iii. Números Binários e Máscara de Sub-Rede iv. O Roteador

Leia mais

Márcio Leandro Moraes Rodrigues. Frame Relay

Márcio Leandro Moraes Rodrigues. Frame Relay Márcio Leandro Moraes Rodrigues Frame Relay Introdução O frame relay é uma tecnologia de chaveamento baseada em pacotes que foi desenvolvida visando exclusivamente a velocidade. Embora não confiável, principalmente

Leia mais

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento Professor Rene - UNIP 1 Roteamento Dinâmico Perspectiva e histórico Os protocolos de roteamento dinâmico são usados

Leia mais

Redes WAN. Prof. Walter Cunha

Redes WAN. Prof. Walter Cunha Redes WAN Conceitos Iniciais Prof. Walter Cunha Comutação por Circuito Todos os recursos necessários em todos os subsistemas de telecomunicação que conectam origem e destino, são reservados durante todo

Leia mais

Fornecer serviços independentes da tecnologia da subrede; Esconder do nível de transporte o número, tipo e a topologia das subredes existentes;

Fornecer serviços independentes da tecnologia da subrede; Esconder do nível de transporte o número, tipo e a topologia das subredes existentes; 2.3 A CAMADA DE REDE! Fornece serviços para o nível de transporte, sendo, freqüentemente, a interface entre a rede do cliente e a empresa de transporte de dados (p.ex. Embratel).! Sua principal função

Leia mais

Teleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010

Teleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010 Teleprocessamento e Redes (MAB-510) Gabarito da Segunda Lista de Exercícios 01/2010 Prof. Silvana Rossetto (DCC/IM/UFRJ) 1 13 de julho de 2010 Questões 1. Qual é a diferença fundamental entre um roteador

Leia mais

Prof. Samuel Henrique Bucke Brito

Prof. Samuel Henrique Bucke Brito - Switch na Camada 2: Comutação www.labcisco.com.br ::: shbbrito@labcisco.com.br Prof. Samuel Henrique Bucke Brito Introdução A conexão entre duas portas de entrada e saída, bem como a transferência de

Leia mais

MPLS. Multi Protocol Label Switching

MPLS. Multi Protocol Label Switching MPLS Multi Protocol Label Switching Nome: Edson X. Veloso Júnior Engenheiro em Eletrônica Provedor de Internet desde 2002 Integrante da equipe de instrutores da MikrotikBrasil desde 2007 Certificado Mikrotik:

Leia mais

Serviços de Comunicações. Serviços de Comunicações. Módulo 7 Qualidade de Serviço em redes IP. condições de rede existentes em cada momento

Serviços de Comunicações. Serviços de Comunicações. Módulo 7 Qualidade de Serviço em redes IP. condições de rede existentes em cada momento Módulo 7 Qualidade de Serviço em redes IP 7.1. O porquê da Qualidade de Serviço 7.2. Mecanismos para QoS 7.3. Modelo de Serviços Integrados - IntServ 7.4. Modelo de Serviços Diferenciados - DiffServ 1

Leia mais

QoS em Redes IP: Arquitetura e Aplicações

QoS em Redes IP: Arquitetura e Aplicações QoS em Redes IP: Arquitetura e Aplicações Mário Meireles Teixeira mario@deinf.ufma.br Motivação Atualmente, funcionam sobre as redes IP aplicações cujos requisitos elas não foram projetadas para atender

Leia mais

Cap 01 - Conceitos Básicos de Rede (Kurose)

Cap 01 - Conceitos Básicos de Rede (Kurose) Cap 01 - Conceitos Básicos de Rede (Kurose) 1. Quais são os tipos de redes de computadores e qual a motivação para estudá-las separadamente? Lan (Local Area Networks) MANs(Metropolitan Area Networks) WANs(Wide

Leia mais

Redes de Computadores II INF-3A

Redes de Computadores II INF-3A Redes de Computadores II INF-3A 1 ROTEAMENTO 2 Papel do roteador em uma rede de computadores O Roteador é o responsável por encontrar um caminho entre a rede onde está o computador que enviou os dados

Leia mais

Entendendo como funciona o NAT

Entendendo como funciona o NAT Entendendo como funciona o NAT Vamos inicialmente entender exatamente qual a função do NAT e em que situações ele é indicado. O NAT surgiu como uma alternativa real para o problema de falta de endereços

Leia mais

Arquiteturas de Rede. Prof. Leonardo Barreto Campos

Arquiteturas de Rede. Prof. Leonardo Barreto Campos Arquiteturas de Rede 1 Sumário Introdução; Modelo de Referência OSI; Modelo de Referência TCP/IP; Bibliografia. 2/30 Introdução Já percebemos que as Redes de Computadores são bastante complexas. Elas possuem

Leia mais

REDES DE COMPUTADORES

REDES DE COMPUTADORES REDES DE COMPUTADORES 09/2013 Cap.3 Protocolo TCP e a Camada de Transporte 2 Esclarecimentos Esse material é de apoio para as aulas da disciplina e não substitui a leitura da bibliografia básica. Os professores

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores CAMADA DE REDE DHCP NAT IPv6 Slide 1 Protocolo DHCP Protocolo de Configuração Dinâmica de Hospedeiros (Dynamic Host Configuration Protocol DHCP), RFC 2131; Obtenção de endereço de

Leia mais

Software de rede e Modelo OSI André Proto UNESP - São José do Rio Preto andre.proto@sjrp.unesp.br O que será abordado Hierarquias de protocolos (camadas) Questões de projeto relacionadas às camadas Serviços

Leia mais

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br

REDES DE COMPUTADORES Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com.br - Aula 2 - MODELO DE REFERÊNCIA TCP (RM TCP) 1. INTRODUÇÃO O modelo de referência TCP, foi muito usado pela rede ARPANET, e atualmente usado pela sua sucessora, a Internet Mundial. A ARPANET é de grande

Leia mais

Multiprotocol Label Switching. Protocolos em Redes de Dados- Aula 08 -MPLS p.4. Motivação: desempenho. Enquadramento histórico

Multiprotocol Label Switching. Protocolos em Redes de Dados- Aula 08 -MPLS p.4. Motivação: desempenho. Enquadramento histórico Multiprotocol Label Switching Protocolos em Redes de Dados - Aula 08 - MPLS Luís Rodrigues ler@di.fc.ul.pt DI/FCUL Objectivo: Conciliar as tecnologias baseadas em comutação (switching) com o encaminhamento

Leia mais

Aula-19 NAT, IP Móvel e MPLS. Prof. Dr. S. Motoyama

Aula-19 NAT, IP Móvel e MPLS. Prof. Dr. S. Motoyama Aula-19 NAT, IP Móvel e MPLS Prof. Dr. S. Motoyama 1 NAT Network address translation Resto da Internet 138.76.29.7 10.0.0.4 Rede local (ex.: rede doméstica) 10.0.0/24 10.0.0.1 10.0.0.2 10.0.0.3 Todos os

Leia mais

Interconexão de redes locais. Repetidores. Pontes (Bridges) Hubs. Pontes (Bridges) Pontes (Bridges) Existência de diferentes padrões de rede

Interconexão de redes locais. Repetidores. Pontes (Bridges) Hubs. Pontes (Bridges) Pontes (Bridges) Existência de diferentes padrões de rede Interconexão de redes locais Existência de diferentes padrões de rede necessidade de conectá-los Interconexão pode ocorrer em diferentes âmbitos LAN-LAN LAN: gerente de um determinado setor de uma empresa

Leia mais

1 INTRODUÇÃO Internet Engineering Task Force (IETF) Mobile IP

1 INTRODUÇÃO Internet Engineering Task Force (IETF) Mobile IP 1 INTRODUÇÃO Devido ao crescimento da Internet, tanto do ponto de vista do número de usuários como o de serviços oferecidos, e o rápido progresso da tecnologia de comunicação sem fio (wireless), tem se

Leia mais

ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia

ADDRESS RESOLUTION PROTOCOL. Thiago de Almeida Correia ADDRESS RESOLUTION PROTOCOL Thiago de Almeida Correia São Paulo 2011 1. Visão Geral Em uma rede de computadores local, os hosts se enxergam através de dois endereços, sendo um deles o endereço Internet

Leia mais

Roteamento e Comutação

Roteamento e Comutação Roteamento e Comutação Design de Rede Local Design Hierárquico Este design envolve a divisão da rede em camadas discretas. Cada camada fornece funções específicas que definem sua função dentro da rede

Leia mais

Protocolos em Redes de Dados. Enquadramento histórico. Modo de funcionamento FEC. Antecedentes IP Switching Tag Switching. Exemplo de.

Protocolos em Redes de Dados. Enquadramento histórico. Modo de funcionamento FEC. Antecedentes IP Switching Tag Switching. Exemplo de. Multiprotocol Label Switching Aula 07 FCUL 2005-20056 Objectivo: Conciliar as tecnologias baseadas em comutação (switching) com o encaminhamento IP. Aplicações: Aumentar o desempenho. Engenharia de tráfego.

Leia mais

Aula 08 MPLS 2004-2005 FCUL. Protocolos em Redes de Dados. Luís Rodrigues. Enquadramento. Modo de funcionamento. Antecedentes MPLS.

Aula 08 MPLS 2004-2005 FCUL. Protocolos em Redes de Dados. Luís Rodrigues. Enquadramento. Modo de funcionamento. Antecedentes MPLS. Aula 08 FCUL 2004-2005 Multiprotocol Label Switching Objectivo: Conciliar as tecnologias baseadas em comutação (switching) com o encaminhamento IP. Aplicações: Aumentar o desempenho. Engenharia de tráfego.

Leia mais

Prof. Samuel Henrique Bucke Brito

Prof. Samuel Henrique Bucke Brito - Roteamento www.labcisco.com.br ::: shbbrito@labcisco.com.br Prof. Samuel Henrique Bucke Brito Roteamento Roteamento é a técnica que define por meio de um conjunto de regras como os dados originados em

Leia mais

Capítulo 10 - Conceitos Básicos de Roteamento e de Sub-redes. Associação dos Instrutores NetAcademy - Julho de 2007 - Página

Capítulo 10 - Conceitos Básicos de Roteamento e de Sub-redes. Associação dos Instrutores NetAcademy - Julho de 2007 - Página Capítulo 10 - Conceitos Básicos de Roteamento e de Sub-redes 1 Protocolos Roteáveis e Roteados Protocolo roteado: permite que o roteador encaminhe dados entre nós de diferentes redes. Endereço de rede:

Leia mais

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE

APLICAÇÃO REDE APLICAÇÃO APRESENTAÇÃO SESSÃO TRANSPORTE REDE LINK DE DADOS FÍSICA 1/5 PROTOCOLOS DE REDE 1/5 PROTOCOLOS DE O Modelo OSI O OSI é um modelo usado para entender como os protocolos de rede funcionam. Para facilitar a interconexão de sistemas de computadores, a ISO (International Standards Organization)

Leia mais

Assumiu em 2002 um novo desafio profissional como empreendedor e Presidente do Teleco.

Assumiu em 2002 um novo desafio profissional como empreendedor e Presidente do Teleco. O que é IP O objetivo deste tutorial é fazer com que você conheça os conceitos básicos sobre IP, sendo abordados tópicos como endereço IP, rede IP, roteador e TCP/IP. Eduardo Tude Engenheiro de Teleco

Leia mais

Trabalhos Relacionados 79

Trabalhos Relacionados 79 Trabalhos Relacionados 79 6 Avaliação e Testes Neste capítulo são apresentados alguns testes que foram realizados com o a solução de Gerenciamento de Mobilidade (API SIP User Agent) e com o sistema publish/subscribe

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Camada de Rede Aula 6/2006 UEM/DIN/Elvio/1023-1224 1 Camada de Rede É a camada mais baixa que trata da comunicação fim-a-fim Função de encaminhar os pacotes da fonte até o destino

Leia mais

MÓDULO 8 Modelo de Referência TCP/IP

MÓDULO 8 Modelo de Referência TCP/IP MÓDULO 8 Modelo de Referência TCP/IP A internet é conhecida como uma rede pública de comunicação de dados com o controle totalmente descentralizado, utiliza para isso um conjunto de protocolos TCP e IP,

Leia mais

Roteamento em Redes de Computadores

Roteamento em Redes de Computadores Roteamento em Redes de Computadores José Marcos Câmara Brito INATEL - Instituto Nacional de Telecomunicações INATEL - Instituto Nacional de Telecomunicações 01/08/00 1 Introdução Objetivo Tipos de rede

Leia mais

Redes WAN Conceitos Iniciais. Prof. Walter Cunha

Redes WAN Conceitos Iniciais. Prof. Walter Cunha Redes WAN Conceitos Iniciais Prof. Walter Cunha Comutação por Circuito Todos os recursos necessários em todos os subsistemas de telecomunicação que conectam origem e destino, são reservados durante todo

Leia mais

Aulas 22 & 23. Controle de Fluxo e de Congestionamento. Eytan Modiano MIT

Aulas 22 & 23. Controle de Fluxo e de Congestionamento. Eytan Modiano MIT Aulas 22 & 23 Controle de Fluxo e de Congestionamento Eytan Modiano MIT 1 Controle de Fluxo Controle de fluxo: mecanismo fim a fim para controlar o tráfego entre fonte e destinatário. Controle de congestionamento:

Leia mais

Camadas de Transporte, Sessão & Apresentação. Função. Camadas REDES x TRANSPORTE. Redes de Computadores Prof. Leandro C. Pykosz

Camadas de Transporte, Sessão & Apresentação. Função. Camadas REDES x TRANSPORTE. Redes de Computadores Prof. Leandro C. Pykosz Camadas de Transporte, Sessão & Apresentação Redes de Computadores Prof. Leandro C. Pykosz Função A camada de Transporte fica entre as camadas de nível de aplicação (camadas 5 a 7) e as de nível físico

Leia mais

Estudo Experimental da Tecnologia MPLS: Avaliação de Desempenho, Qualidade de Serviço e Engenharia de Tráfego

Estudo Experimental da Tecnologia MPLS: Avaliação de Desempenho, Qualidade de Serviço e Engenharia de Tráfego Estudo Experimental da Tecnologia MPLS: Avaliação de Desempenho, Qualidade de Serviço e Engenharia de Tráfego Roberto Willrich (INE-UFSC) Roberto A. Dias (CEFET-SC), Fernando Barreto, Renato D. V. de Oliveira,

Leia mais

Segurança de redes com Linux. Everson Scherrer Borges Willen Borges de Deus

Segurança de redes com Linux. Everson Scherrer Borges Willen Borges de Deus Segurança de redes com Linux Everson Scherrer Borges Willen Borges de Deus Segurança de Redes com Linux Protocolo TCP/UDP Portas Endereçamento IP Firewall Objetivos Firewall Tipos de Firewall Iptables

Leia mais

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo

Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Arquitetura de Redes: Camadas de Protocolos (Parte I) Prof. Eduardo Introdução O que é Protocolo? - Para que os pacotes de dados trafeguem de uma origem até um destino, através de uma rede, é importante

Leia mais

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET

ICORLI. INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET INSTALAÇÃO, CONFIGURAÇÃO e OPERAÇÃO EM REDES LOCAIS e INTERNET 2010/2011 1 Protocolo TCP/IP É um padrão de comunicação entre diferentes computadores e diferentes sistemas operativos. Cada computador deve

Leia mais

Centro Tecnológico de Eletroeletrônica César Rodrigues. Atividade Avaliativa

Centro Tecnológico de Eletroeletrônica César Rodrigues. Atividade Avaliativa 1ª Exercícios - REDES LAN/WAN INSTRUTOR: MODALIDADE: TÉCNICO APRENDIZAGEM DATA: Turma: VALOR (em pontos): NOTA: ALUNO (A): 1. Utilize 1 para assinalar os protocolos que são da CAMADA DE REDE e 2 para os

Leia mais

Aula 03 Regras de Segmentação e Switches

Aula 03 Regras de Segmentação e Switches Disciplina: Dispositivos de Rede II Professor: Jéferson Mendonça de Limas 4º Semestre Aula 03 Regras de Segmentação e Switches 2014/1 19/08/14 1 2de 38 Domínio de Colisão Os domínios de colisão são os

Leia mais

Redes de Computadores. Camada de Transporte

Redes de Computadores. Camada de Transporte Redes de Computadores Camada de Transporte Objetivo! Apresentar as características da camada de transporte da arquitetura TCP/IP! Apresentar os serviços fornecidos pela camada de transporte! Estudar os

Leia mais

Packet Tracer 4.0: Overview Session. Conceitos e práticas

Packet Tracer 4.0: Overview Session. Conceitos e práticas Packet Tracer 4.0: Overview Session Conceitos e práticas Processo de Flooding ou Inundação envia informações por todas as portas, exceto aquela em que as informações foram recebidas; Cada roteador link-state

Leia mais

Capítulo 4 - Roteamento e Roteadores

Capítulo 4 - Roteamento e Roteadores Capítulo 4 - Roteamento e Roteadores 4.1 - Roteamento Roteamento é a escolha do módulo do nó de origem ao nó de destino por onde as mensagens devem transitar. Na comutação de circuito, nas mensagens ou

Leia mais

Gerencia de Rede (Desempenho) Professor: Guerra (Aloivo B. Guerra Jr.)

Gerencia de Rede (Desempenho) Professor: Guerra (Aloivo B. Guerra Jr.) Gerencia de Rede (Desempenho) Professor: Guerra (Aloivo B. Guerra Jr.) Tópicos Gerencia de Rede Motivação da Gerência Desafios Principais Organismos Padronizadores Modelo Amplamente Adotado As Gerências

Leia mais

Na Figura a seguir apresento um exemplo de uma "mini-tabela" de roteamento:

Na Figura a seguir apresento um exemplo de uma mini-tabela de roteamento: Tutorial de TCP/IP - Parte 6 - Tabelas de Roteamento Por Júlio Cesar Fabris Battisti Introdução Esta é a sexta parte do Tutorial de TCP/IP. Na Parte 1 tratei dos aspectos básicos do protocolo TCP/IP. Na

Leia mais

BC-0506: Comunicação e Redes Aula 04: Roteamento

BC-0506: Comunicação e Redes Aula 04: Roteamento BC-0506: Comunicação e Redes Aula 04: Roteamento Santo André, Q011 1 Roteamento Princípios de Roteamento O que é... Sistemas Autônomos Roteamento Interno e Externo Principais Tipos de Algoritmos Distance-Vector

Leia mais

Este tutorial apresenta os conceitos básicos do Multi Protocol Label Switching (MPLS) utilizado em redes IP.

Este tutorial apresenta os conceitos básicos do Multi Protocol Label Switching (MPLS) utilizado em redes IP. MPLS Este tutorial apresenta os conceitos básicos do Multi Protocol Label Switching (MPLS) utilizado em redes IP. Eduardo Tude Engenheiro de Teleco (IME 78) e Mestre em Teleco (INPE 81) tendo atuado nas

Leia mais

Configuração de Roteadores e Switches CISCO

Configuração de Roteadores e Switches CISCO Configuração de Roteadores e Switches CISCO Introdução ao CISCO IOS Protocolo MPLS Módulo - VI Professor do Curso de CISCO Prof. Robson Vaamonde, consultor de Infraestrutura de Redes de Computadores há

Leia mais

Faculdade Lourenço Filho Curso de Redes de Computadores. TRABALHO DE TELEFONIA IP Serviços Diferenciados - QoS

Faculdade Lourenço Filho Curso de Redes de Computadores. TRABALHO DE TELEFONIA IP Serviços Diferenciados - QoS Faculdade Lourenço Filho Curso de Redes de Computadores TRABALHO DE TELEFONIA IP Serviços Diferenciados - QoS Equipe: Afonso Sousa, Jhonatan Cavalcante, Israel Bezerra, Wendel Marinho Professor: Fabio

Leia mais

Roteamento IP & MPLS. Prof. Marcos Argachoy

Roteamento IP & MPLS. Prof. Marcos Argachoy REDES DE LONGA DISTANCIA Roteamento IP & MPLS Prof. Marcos Argachoy Perfil desse tema O Roteador Roteamento IP Protocolos de Roteamento MPLS Roteador Roteamento IP & MPLS Hardware (ou software) destinado

Leia mais

Redes de Computadores II

Redes de Computadores II Redes de Computadores II Prof. Celio Trois portal.redes.ufsm.br/~trois/redes2 Roteamento Dinâmico As principais vantagens do roteamento dinâmico são: Simplifica o gerenciamento da rede. Viável em grandes

Leia mais

O modelo ISO/OSI (Tanenbaum,, 1.4.1)

O modelo ISO/OSI (Tanenbaum,, 1.4.1) Cenário das redes no final da década de 70 e início da década de 80: Grande aumento na quantidade e no tamanho das redes Redes criadas através de implementações diferentes de hardware e de software Incompatibilidade

Leia mais

Rede de Computadores

Rede de Computadores Escola de Ciências e Tecnologia UFRN Rede de Computadores Prof. Aquiles Burlamaqui Nélio Cacho Luiz Eduardo Eduardo Aranha ECT1103 INFORMÁTICA FUNDAMENTAL Manter o telefone celular sempre desligado/silencioso

Leia mais

REDES DE COMPUTADORES. Camada de Rede. Prof.: Agostinho S. Riofrio

REDES DE COMPUTADORES. Camada de Rede. Prof.: Agostinho S. Riofrio REDES DE COMPUTADORES Camada de Rede Prof.: Agostinho S. Riofrio Agenda 1. Introdução 2. Funções 3. Serviços oferecidos às Camadas superiores 4. Redes de Datagramas 5. Redes de Circuitos Virtuais 6. Comparação

Leia mais

Aula 6 Modelo de Divisão em Camadas TCP/IP

Aula 6 Modelo de Divisão em Camadas TCP/IP Aula 6 Modelo de Divisão em Camadas TCP/IP Camada Conceitual APLICATIVO TRANSPORTE INTER-REDE INTERFACE DE REDE FÍSICA Unidade de Dados do Protocolo - PDU Mensagem Segmento Datagrama /Pacote Quadro 01010101010100000011110

Leia mais

Introdução Introduç ão Rede Rede TCP/IP Roteame Rotea nto nto CIDR

Introdução Introduç ão Rede Rede TCP/IP Roteame Rotea nto nto CIDR Introdução as Redes TCP/IP Roteamento com CIDR LAN = Redes de Alcance Local Exemplo: Ethernet II não Comutada Barramento = Broadcast Físico Transmitindo ESCUTANDO ESCUTANDO A quadro B C B A. DADOS CRC

Leia mais

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores

Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores Faculdade Integrada do Ceará FIC Graduação em Redes de Computadores Disciplina Redes de Banda Larga Prof. Andrey Halysson Lima Barbosa Aula 5 Multiprotocol Label Switching (MPLS) Sumário Definição; Histórico;

Leia mais

Introdução à Computação Móvel IP Móvel. Movimentação de Host. Movimentação de Host. Francisco José da Silva e Silva

Introdução à Computação Móvel IP Móvel. Movimentação de Host. Movimentação de Host. Francisco José da Silva e Silva Introdução à Computação Móvel IP Móvel Francisco José da Silva e Silva Francisco Silva 1 Movimentação de Host Francisco Silva 2 Movimentação de Host Se um host não estiver no enlace identificado por seu

Leia mais

CAMADA DE TRANSPORTE

CAMADA DE TRANSPORTE Curso Técnico de Redes de Computadores Disciplina de Fundamentos de Rede CAMADA DE TRANSPORTE Professora: Juliana Cristina de Andrade E-mail: professora.julianacrstina@gmail.com Site: www.julianacristina.com

Leia mais

Como medir a velocidade da Internet?

Como medir a velocidade da Internet? Link Original: http://www.techtudo.com.br/artigos/noticia/2012/05/como-medir-velocidade-da-suainternet.html Como medir a velocidade da Internet? Pedro Pisa Para o TechTudo O Velocímetro TechTudo é uma

Leia mais

Capítulo 3: Implementar a segurança por meio de VLANs

Capítulo 3: Implementar a segurança por meio de VLANs Unisul Sistemas de Informação Redes de Computadores Capítulo 3: Implementar a segurança por meio de VLANs Roteamento e Switching Academia Local Cisco UNISUL Instrutora Ana Lúcia Rodrigues Wiggers Presentation_ID

Leia mais

Rede de Computadores II

Rede de Computadores II Slide 1 Técnicas para se alcançar boa qualidade de serviço Reserva de recursos A capacidade de regular a forma do tráfego oferecido é um bom início para garantir a qualidade de serviço. Mas Dispersar os

Leia mais

Protocolos Hierárquicos

Protocolos Hierárquicos Protocolos Hierárquicos O que é a Internet? Milhões de elementos de computação interligados: hospedeiros = sistemas finais Executando aplicações distribuídas Enlaces de comunicação fibra, cobre, rádio,

Leia mais

Unidade 2.1 Modelos de Referência

Unidade 2.1 Modelos de Referência Faculdade INED Curso Superior de Tecnologia: Banco de Dados Redes de Computadores Disciplina: Redes de Computadores Prof.: Fernando Hadad Zaidan 1 Unidade 2.1 Modelos de Referência 2 Bibliografia da disciplina

Leia mais

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. alexandref@ifes.edu.br. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim

Redes TCP/IP. Prof. M.Sc. Alexandre Fraga de Araújo. alexandref@ifes.edu.br. INSTITUTO FEDERAL DO ESPÍRITO SANTO Campus Cachoeiro de Itapemirim Redes TCP/IP alexandref@ifes.edu.br O que é a Internet? Milhões de elementos de computação interligados: hospedeiros = sistemas finais Executando aplicações Enlaces de comunicação: fibra, cobre, rádio,

Leia mais

FACULDADE PITÁGORAS. Prof. Ms. Carlos José Giudice dos Santos cpgcarlos@yahoo.com.br www.oficinadapesquisa.com.br

FACULDADE PITÁGORAS. Prof. Ms. Carlos José Giudice dos Santos cpgcarlos@yahoo.com.br www.oficinadapesquisa.com.br FACULDADE PITÁGORAS DISCIPLINA FUNDAMENTOS DE REDES REDES DE COMPUTADORES Prof. Ms. Carlos José Giudice dos Santos cpgcarlos@yahoo.com.br www.oficinadapesquisa.com.br Material elaborado com base nas apresentações

Leia mais

(Open System Interconnection)

(Open System Interconnection) O modelo OSI (Open System Interconnection) Modelo geral de comunicação Modelo de referência OSI Comparação entre o modelo OSI e o modelo TCP/IP Analisando a rede em camadas Origem, destino e pacotes de

Leia mais

Redes de Computadores. Trabalho de Laboratório Nº7

Redes de Computadores. Trabalho de Laboratório Nº7 Redes de Computadores Curso de Eng. Informática Curso de Eng. de Electrónica e Computadores Trabalho de Laboratório Nº7 Análise do tráfego na rede Protocolos TCP e UDP Objectivo Usar o Ethereal para visualizar

Leia mais

Equipamentos de Redes. Professor Leonardo Larback

Equipamentos de Redes. Professor Leonardo Larback Equipamentos de Redes Professor Leonardo Larback Componentes de Expansão e Segmentação Pontos de rede localizados à distâncias maiores que o limite estabelecido pela mídia utilizada, o aumento no número

Leia mais

Consulte a exposição. Qual declaração descreve corretamente como R1 irá determinar o melhor caminho para R2?

Consulte a exposição. Qual declaração descreve corretamente como R1 irá determinar o melhor caminho para R2? 1. Que duas declarações descrevem corretamente os conceitos de distância administrativa e métrica? (Escolha duas.) a) Distância administrativa refere-se a confiabilidade de uma determinada rota. b) Um

Leia mais

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4

Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Sistemas Distribuídos Capítulos 3 e 4 - Aula 4 Aula passada Threads Threads em SDs Processos Clientes Processos Servidores Aula de hoje Clusters de Servidores Migração de Código Comunicação (Cap. 4) Fundamentos

Leia mais

Prefixo a ser comparado Interface 1 0 10 1 111 2 Senão 3

Prefixo a ser comparado Interface 1 0 10 1 111 2 Senão 3 PEL/FEN Redes de Computadores 015/1 Segunda Lista de Exercícios Prof. Marcelo Gonçalves Rubinstein 1) Descreva os principais serviços providos pela camada rede. ) Cite as diferenças entre datagrama e circuito

Leia mais