CAPÍTULO 4 Sistema de Gerenciamento Adaptativo de Largura de Banda em Roteadores, 4.1 Estrutura do Sistema de Gerenciamento Adaptativo de Largura de Banda 4.1.1 Módulo Monitoramento O Módulo Monitoramento, conforme fluxograma apresentado na Figura 34, realiza duas tarefas, a saber: i) leitura dos dados sobre o tráfego nas interfaces de conexão com as LANs do roteador; ii) a atualização das séries temporais relativas a cada uma das interfaces. Após esses passos, é verificado se a quantidade de amostras já atingiu o valor estipulado de 1024 observações. Caso tenha atingido, o algoritmo segue seu fluxo de execução para o Módulo Predição, caso contrário, aguarda-se o tempo de um segundo e realiza-se nova leitura dos dados. Lê Dados SNMP Início Atualiza Séries Temporais Completou séries temporais? Módulo Predição Módulo Controle Aguarda 1s Não Sim Figura 34: Fluxograma do módulo Monitoramento. No Módulo Monitoramento ocorre a coleta das informações sobre o tráfego nas interfaces de conexão com as LANs do roteador. Essas informações são obtidas com 81 auxílio do Protocolo SNMP, que armazena na MIB diversas informações sobre os equipamentos em uma rede de computadores (STALLINGS, 2007). Optou-se por utilizar o Protocolo SNMP, com o objetivo de se estabelecer portabilidade ao SGALB, já que muitos dispositivos saem de fábrica com um agente SNMP implementado (STALLINGS, 2007). Desse modo, com alterações mínimas, o SGALB poderia ser adaptado para funcionar em outros elementos da rede. Outro fator que influenciou na escolha do Protocolo SNMP é a possibilidade de, em trabalhos futuros, utilizar o SGALB, com pequenas adaptações, como um sistema distribuído, atuando em outros componentes da rede. Com isso, abre-se a possibilidade de melhorar o desempenho da rede, no que tange ao gerenciamento da largura de banda. A leitura do tráfego nas interfaces de conexão com as LANs do roteador, realizada na etapa Lê Dados SNMP. Um dos objetos gerenciáveis na MIB do SNMP é chamado de ifInOctets, identificado pelo OID 1.3.6.1.2.1.2.2.1.16 . Na Figura 35 é possível identificá-lo por meio da árvore hierárquica da MIB, esse objeto é uma das ramificações da subárvore interfaces. O objeto ifInOctets é, na verdade, um contador incremental de bytes. Desse modo, para obter a quantidade de bytes que trafegaram na interface, no instante t, é necessário que seja subtraído o valor retornado por esse objeto no instante 𝑡 pelo valor que esse retornou no instante 𝑡 − 1. Como o objeto ifInOctets acumula a quantidade de bytes passantes em uma dada interface, é definido do tipo Counter32, gauge, em ASN.1. Assim, em qualquer momento que se fizer a leitura desse objeto, ele estará com o valor exato da quantidade de bytes acumulada de 32 bits. Evidentemente, uma vez que o valor do objeto ifInOctets varia entre 0 a 4.294.967.296, ajustes relativos a extrapolação do tamanho máximo do objeto são considerados para efeitos de cálculo; esse objeto é atualizado a cada instante em que há chegada de bytes na interface de rede. O intervalo entre cada observação de tráfego nas interfaces do roteador é de um segundo. Entretanto, para efeitos de predição de tráfego, o intervalo de observações não implica grandes efeitos, pois, de acordo com a metodologia utilizada neste trabalho, cada série temporal analisada passa por um ajuste de parâmetros que melhor descreva as características da série temporal, conforme descrito no Capítulo segundo. 82 Root-Node ccit (0) iso (1) joinnt (2) org (3) internet (1) dod (6) directory (1) mib-2 (1) interfaces (2) ifinoctets (16) Figura 35: Estrutrua herárquica do objeto gerenciável ifOutOctets. O Protocolo SNMP possui uma limitação de leitura dos objetos na MIB. O intervalo mínimo entre as leituras desses objetos é de um segundo. Entretanto, caso seja necessário realizar observações em um intervalo maior de tempo, isso será possível. É importante ressaltar que essa restrição mínima entre os intervalos de leitura nos objetos da MIB não está relacionada à atualização que esses sofrem (STALLINGS, 2007). Para que fosse possível realizar a coleta das informações sobre tráfego nas interfaces de conexão com as LANs do roteador, fez-se necessária a configuração do intervalo de leitura do agente SNMP. Por padrão, esse tempo é de trinta segundos, mas neste trabalho, o tempo foi ajustado para um segundo. Caso o SGALB estivesse atuando de forma distribuída, não seria necessário nenhum ajuste, pelo contrário, talvez fosse 83 necessário aumentar o intervalo entre as coletas, para não haver inundação da rede e o aumento de processamento nos sistemas gerenciados, devido ao excesso de requisições SNMP. Os comandos utilizados para a configuração do SNMP podem ser vistos no Apêndice A1. Após a leitura, é feito o armazenamento das informações referente aos tráfegos das interfaces de conexão com as LANs, gerando, assim, as séries temporais correspondentes ao tráfego de cada interface. A janela de observação, ou seja, o tamanho de cada série temporal é de 1024 amostras. Esse tamanho de amostra foi definido com base em testes realizados e apresentados na Seção 4.3. 4.1.2 Módulo Predição O Módulo Predição é responsável por fazer a previsão do próximo valor das séries temporais geradas no Módulo Monitoramento. Um fluxograma desse módulo pode ser visto na Figura 36. São duas as tarefas básicas desse módulo: aplicação de filtros, utilizando transformadas wavelets; e previsão dos próximos valores da série, por meio da modelagem ARIMA. Na etapa Processamento Wavelet, a série obtida, correspondente ao tráfego real em um intervalo de tempo, é submetida à transformada wavelet discreta de Haar. O intuito, ao realizar esse processo, é a aplicação de um filtro para reduzir ruídos que possam interferir na análise da série por meio do modelo ARIMA. A escolha da wavelet Haar ocorreu pelo seu custo computacional ser baixo em relação às outras wavelets, já que seus cálculos são mais simples, conforme mostrado no Capítulo segundo. Encontram-se, na literatura, evidências de que a wavelet Haar possui melhor acurácia na predição do tráfego de rede, dessa forma, esse fator também influenciou em sua utilização no SGALB (NALATWAD, et al., 2006; ADDISON, 2002). Optou-se por levar em consideração o desempenho computacional na escolha da Wavelet Haar, conforme apresentada no Capítulo segundo, pois o trabalho proposto nesta Dissertação de Mestrado realiza realocação dinâmica de largura de banda, e em trabalhos futuros serão contemplados experimentos cujo tempo de realocação será reduzido, o que pode tornar-se um problema, caso seja utilizada uma transformada wavelet que requer cálculos mais complexos. 84 Módulo Monitoramento Início Processamento Wavelet Módulo Predição Modelagem ARIMA Figura 36: Fluxograma do Módulo Predição. Para realizar a redução do ruído nas séries temporais, duas políticas podem ser utilizadas, hard threshold e soft threshold, conforme mencionado no Capítulo segundo. Para o SGALB, a política escolhida foi a hard. Essa escolha foi decorrente dos testes realizados, conforme descritos na Seção 4.3, por apresentar predições mais precisas. Com isso, comprova-se mais uma vez que a política hard é a mais indicada para redução de ruídos em séries temporais provenientes do tráfego de redes (SILVA, 2004). Utilizando o universal threshold, que é determinado com base no desvio padrão dos coeficientes wavelets, calculou-se o threshold, levando-se em consideração a escala wavelet (DONOHO, et al., 1994), conforme apresentado no Capítulo segundo. Encontra- se, na literatura, trabalhos cujo universal threshold é utilizado, obtendo-se bons resultados quando a precisão da predição (KARIM, et al., 2002; KWON, et al., 2006; BOTO- GIRALDA, et al., 2010). Consideração esses trabalhos e a evidenciação de melhor acurácia na predição do tráfego, por meio de experimentos apresentados na Seção 4.3, optou-se por sua utilização no SGALB. 85 O script do software R utilizado no processo de redução de ruídos encontra-se disponível no Apêndice A3. Para esse processo, foi utilizado o pacote wavethresh, versão 4.6.1 (NASON, 2012). Foram utilizadas as funções wd(a), para realização da transformada wavelet, threshold.wd(a), para a redução do ruído e a wr(a), para realizar a transformada wavelet inversa. A etapa Modelagem ARIMA é a responsável por receber as séries, devidamente suavizadas na etapa anterior, ou seja, com a redução de ruídos. Para a estimação do modelo ARIMA que melhor descreva a série, é utilizada a metodologia de Box-Jenkins, descrita no Capítulo segundo. Assim, após a identificação dos modelos adequados às séries, é realizada a predição dos índices futuros de cada uma. A escolha da modelagem ARIMA para análise das séries temporais obtidas a partir do tráfego nas interfaces de conexão com as LANs de um roteador se deu levando em consideração a característica não-estacionária dessas séries. Modelos ARIMA conseguem melhor descrever a maioria das séries temporais existentes, já que, quando essas são não- estacionárias, é realizada uma diferenciação entre os índices das séries. Já quando essas séries apresentam estacionariedade, o modelo ARIMA se reduz a um modelo ARMA. Desse modo, o método é genérico e não sofre grandes impactos caso as características das séries temporais em análise sejam modificadas (BOX, et al., 1994; MORETTIN, et al., 2006; LEVINE, et al., 2008). Um estudo comparativo, realizado por meio de testes, analisando a acurácia de diferentes técnicas de predição sobre séries temporais provenientes de tráfego de rede de computadores, pode ser observado na Seção 4.3. Nesse estudo, evidencia-se a eficácia do modelo ARIMA associado às transformadas wavelets. Para análise das séries temporais, foi utilizada a modelagem ARIMA, implementada nos pacotes forecast e tseries, do software R. As funções utilizadas foram, arima(a), para modelagem; Box.test(a) para identificar o modelo ARIMA adequado à série temporal; e predict(a), para realizar a predição da série. O script referente a essas tarefas pode ser encontrado no Apêndice A3. 4.1.3 Módulo Controle O Módulo Controle possui quatro etapas. Nesse módulo, com base na predição e em políticas pré-estabelecidas, são realizadas realocações na largura de banda das 86 interfaces de conexão com as LANs do roteador. A Figura 37 apresenta o fluxograma do Módulo Controle. Módulo Monitoramento Início Módulo Predição Analisa Predição Realiza realocação? Aplica Política Libera Controle Descarta Séries Temporais Não Sim Sistema em Espera Figura 37: Fluxograma do Módulo Controle. Na etapa Analisa Predição, os valores preditos para cada uma das séries correspondentes ao tráfego das interfaces do roteador são somados, e é verificado se essa soma é maior do que a capacidade máxima admissível de largura de banda da interface de conexão com a WAN. Caso esse valor seja maior, é identificada então a necessidade de realizar a realocação da largura de banda, e então o fluxo de execução do algoritmo segue para a etapa Aplica Política. Caso contrário, o fluxo segue para a etapa Libera 87 A etapa Aplica política, realiza a realocação da largura de banda, por meio da ponderação feita sobre os valores preditos, conforme a Equação (32): 𝐵𝑖 =𝑀𝑎𝑥�𝑃𝑖 (𝐾) ∑𝑛𝑗=0𝑃𝑗 ,𝐺� (32) onde: 𝐵𝑖 é a largura de banda que será disponibilizada à interface 𝑖 que se conecta com uma LAN; 𝑃𝑖 é a largura de banda prevista para a interface 𝑖 que faz conexão com uma LAN; 𝑃𝑗 é a largura de banda prevista para a interface 𝑗 que se conecta com uma LAN e 𝑛 é um valor inteiro varia de 1 até a quantidade de interfaces de conexão com as LANs; 𝐺 é a largura de banda mínima garantida à interface de conexão com a LAN; 𝑀𝑎𝑥 é uma função que determina o maior valor a ser atribuído a 𝐵, ou seja, caso o valor predito seja inferior a 𝐺, esse é atribuído a 𝐵, caso contrário é atribuído o valor predito. Neste trabalho, sabendo que a taxa de utilização da ethernet é de 40 %, estipulou-se que 40% da largura de banda disponível deve ser distribuída igualmente para as interfaces de conexão com as LANs (TANEMBAUM, et al., 2010; SAUVÉ, 2008). Desse modo, as interfaces de saída terão sua largura de banda máxima admissível sempre maior do que zero. Entretanto, esse valor poderia ser outro qualquer, que atenda às necessidades peculiares de cada rede de computadores. Ainda na etapa Aplica Política, após a ponderação da largura de banda que cada interface de conexão com a LAN terá direito, são modificados os parâmetros da disciplina de escalonamento CBQ. Assim, o mecanismo CBQ escalona, com base na largura de banda prevista para as interfaces, a largura de banda máxima admissível a que essas terão direito. Após a etapa Aplica Política, o fluxo segue para a etapa Sistema em Espera, que consiste em manter a configuração de largura de banda determinada na etapa anterior, por um período de tempo que seja a metade do tempo que foi levado para gerar as séries temporais, por exemplo, se as séries temporais possuem 1024 observações, uma feita a cada segundo, o sistema mantém a configuração da largura de banda realocada por 512 segundos. A etapa Libera Controle desabilita a limitação da largura de banda máxima admissível nas interfaces de conexão com as LANs, de modo que o tráfego possa correr 88 sem a interferência do sistema. Após esse procedimento, o fluxo de execução do algoritmo segue para a etapa Descarta Séries Temporais. Na etapa Descarta Séries Temporais, as séries temporais utilizadas na predição são descartadas. Em seguida, o fluxo de execução do sistema volta ao Módulo Monitoramento, onde novas séries são geradas para cada uma das interfaces de conexão com as LANs do roteador. 4.2 Ambiente de Testes O SGALB foi aplicado em um roteador que possui uma interface de conexão com a WAN e três interfaces de conexão com as LANs, conforme ilustra a Figura 38. As configurações do servidor em que foi implantado o roteador estão descritas no Apêndice B. Para a implementação desse sistema, considerou-se que não haveria tráfego entre as interfaces de conexão com as LANs, ou seja, interface 2, interface 3 e interface 4, caso contrário, cálculo da largura de banda máxima admissível teria de levar em consideração tal tráfego. Figura 38: Roteador com o SGALB. As três interfaces de conexão com as LANs foram conectadas a três VLANs (Virtual LANs) distintas de um switch, que possui configurações descritas no Apêndice B2. A cada uma dessas VLANs foi conectado um computador, conforme configurações descritas no Apêndice B3, que gera tráfego aleatório. Esse tráfego foi realizado utilizando 89 o protocolo HTTP (HyperText Transfer Protocol). O código-fonte do programa implementado para gerar o tráfego, para o ambiente de testes, se encontra no Apêndice A2. O ambiente de testes usa fluxos TCP de curta duração, já que esse comportamento equivale a 70% do tráfego no sentido WAN-LAN, com fluxos inferiores a dez pacotes, pois esse é o comportamento encontrado na Internet (CIULLO, et al., 2009; LABOVITZ, et al., 2009; MUSSI, et al., 2012). Propõe-se que, a título de teste, não haja diferenciação referente a fluxos longos e curtos, uma vez que o objetivo é mostrar a viabilidade do gerenciamento adaptativo da largura de banda, baseado em predição de tráfego. Entretanto, essa abordagem, encontrada na literatura (MUSSI, et al., 2012), poderia ser levada em consideração para trabalhos futuros. Para gerar tráfego nas interfaces de saída do roteador, foram criados arquivos com os seguintes tamanhos: 1KB, 10KB, 100KB, 1MB, 10MB, 100MB. Os tamanhos dos arquivos supracitados foram escolhidos de forma arbitrária, apenas para balizar a implementação do SGALB em um ambiente controlado de testes. Entretanto, em um ambiente real, o tráfego internet pode assumir comportamento diferente (NETO, 2008). Também, a título de balizamento para a implementação do SGALB, a transferência desses arquivos ocorre em ordem aleatória, em intervalos de tempo também aleatórios, no intervalo de um a dez segundos. A aleatoriedade dessa transferência de arquivos foi obtida por meio da função rand( )da linguagem de programação Perl (PERLDOC, 2012). O script de geração do tráfego supracitado pode ser visto no Apêndice A.2. Objetivou-se, com isso, estabelecer a heterogeneidade no tráfego gerado nas interfaces de conexão com as LANs, de modo a caracterizar um comportamento de fluxos TCP em uma rede de computadores. Assim, buscou-se representar o comportamento de fluxos de dados que podem surgir em uma rede, como, por exemplo, o tráfego em rajadas e a transferência contínua de grandes blocos de dados (FOROUZAN, 2006; NETO, 2008; ANELLI, et al., 2011). 4.3 Análise de Resultados Os parâmetros utilizados no SGALB foram definidos com base na acurácia de predições, obtida a partir de testes. As predições foram realizadas observando-se os 90 seguintes indicadores: o MAPE (Mean Absolute Percentage Error) e o NMSE (Normalized Meam Squared Error) (WEIGEND, et al., 1994; MYNSBRUGGE, 2010). O MAPE é a média de todos os erros absolutos percentuais e indica o tamanho médio do erro, expressado como uma porcentagem do valor observado, independentemente do erro ser positivo ou negativo. Essa é uma das medidas de erro mais usadas para se avaliar os métodos de predição (MYNSBRUGGE, 2010; HEIZER, et al., 2004). O MAPE pode ser calculado mediante a utilização da Equação (33): 𝑀𝐴𝑃𝐸 =∑ �𝑃 𝑖− 𝑅𝑖 𝑃𝑖 � 𝑛 𝑖=1 % 𝑛 (33) onde, 𝑛 é a quantidade de predições realizadas; 𝑃 é o valor predito; 𝑅 é o valor real. O NMSE é a média do quadrado do desvio entre o valor predito e o real. Esse erro é uma métrica importante para a definição do método de predição, já que os maiores desvios resultam em um peso grande para a média, enquanto os baixos valores resultam em um erro menor (WEIGEND, et al., 1994; SINGH, et al., 2007). O NSME é utilizado para definir o grau de acurácia do método de previsão, conforme apresentado na Equação (34). Um preditor ótimo apresenta NMSE = 0, já um preditor trivial apresenta NMSE = 1 e um preditor pior que o trivial, apresenta NMSE > 1 (WEIGEND, et al., 1994; SINGH, et al., 2007). O NMSE é dado por: 𝑁𝑀𝑆𝐸 =σ12 1 𝑀 ��𝑋𝑡− 𝑋�𝑡� 2 𝑀 𝑡=1 (34) onde, σ2 é a variância da série temporal no período predito; 𝑀 é a quantidade de índices preditos; 𝑋𝑡 e 𝑋�𝑡 são os valores observado e predito, respectivamente, no instante 𝑡. O MAPE e o NMSE foram calculados em predições utilizando as seguintes técnicas de predição, apresentadas no Capítulo segundo: Naïve; Média Móvel Simples; Suavização Exponencial; ARIMA; e Wavelet + ARIMA. O cálculos dos indicadores de acurácia foram realizados a partir de 3072 predições feitas em três séries temporais distintas, que podem 91 ser vistas no Apêndice C, cada uma obtida a partir de uma fonte diferente de tráfego de rede. Essas séries, denominadas TR1, TR2 e TR3, são descritas abaixo: • TR1: tráfego coletado em uma rede destinada a um laboratório de informática, voltado ao ensino; • TR2: tráfego observado na rede de um laboratório de uso geral, destinado ao acesso à internet, por alunos de uma instituição de ensino; • TR3: tráfego artificial, gerado a partir de um script que realiza a transferência de arquivos via HTTP, de seis arquivos nos tamanhos de 10KB, 100KB, 1MB, 10MB e 100MB, transferidos em ordem aleatória no intervalo também aleatório, que pode variar de um a dez segundos, ressalta- se que esse tráfego foi utilizado apenas para fins de experimentos e testes do algoritmo SGALB, porém poderia ser gerado obedecendo quaisquer outros padrões. O script que gera esse tráfego pode ser visto no Apêndice A.2. A determinação do tamanho da janela de observação utilizada no algoritmo SGALB foi feita com base em testes realizados e descritos nesta Seção. A transformada wavelet discreta utiliza séries de tamanho 2n, onde n=1,2,…, conforme mostrado no Capítulo segundo. Por esse motivo, o tamanho da janela de observação do sistema proposto deve seguir esse padrão. Após a realização dos testes, optou-se por utilizar séries de tamanho 210, devido à melhor acurácia na predição. É importante ressaltar, que modelos ARIMA apresentam baixa acurácia para séries temporais a partir de 40 observações, conforme apresentado no Capítulo segundo. Os testes realizados para determinar o tamanho da janela de observação tiveram o objetivo de investigar a acurácia da predição, utilizando-se diferentes tamanhos de janela. Conforme apresentado na Tabela 3, foram realizados testes para janelas de tamanho 2n, onde n variou de 5 até 12. As predições foram realizadas utilizando-se a Metodologia de Box-Jenkins, apresentada no Capítulo segundo. A série temporal utilizada na predição foi a TR1, supramencionada. 92 Tabela 3. Indicadores de acurácia na predição de STs com janelas de observação de tamanhos diferentes. Janela de Observação NMSE MAPE Tamanho 25 1,86290 924 Tamanho 26 1,35613 238 Tamanho 27 1,13949 145 Tamanho 28 1,02178 122 Tamanho 29 0,92517 109 Tamanho 210 0,75276 99 Tamanho 211 0,74030 89 Tamanho 212 0,73172 89 Os resultados obtidos na Tabela 3 indicam que o NMSE, para a Metodologia de Box- Jenkins, é mais satisfatório em janelas de observações a partir de 512 observações, para a série temporal TR1. Nota-se que as predições realizadas, cujas janelas de observação possuem tamanhos 210, 211 e 212, não apresentaram diferenciações significativas quanto ao NMSE. Desse modo, optou-se por utilizar a janela de observação de tamanho 210. De maneira geral, o SGALB monitora cada uma das interfaces do roteador, que fazem conexão com as LANs, por 1024 segundos e atua sobre elas por 512 segundos. Outra abordagem possível seria as STs de tamanho 1024, não serem descartadas completamente, apenas a observação mais antiga dessas, e incorporar a observação mais No documento PREDIÇÃO DE TRÁFEGO, USANDO WT E ARIMA, APLICADA AO GERENCIAMENTO ADAPTATIVO DE LARGURA DE BANDA PARA INTERFACES DE ROTEADORES (páginas 80-153)