• Nenhum resultado encontrado

Proposta de um AQM Distribuído Simples para Melhoria do Desempenho do TCP em Roteadores Sem Fio

N/A
N/A
Protected

Academic year: 2021

Share "Proposta de um AQM Distribuído Simples para Melhoria do Desempenho do TCP em Roteadores Sem Fio"

Copied!
10
0
0

Texto

(1)

Proposta de um AQM Distribuído Simples para Melhoria do

Desempenho do TCP em Roteadores Sem Fio

Marcos Talau1

, Mauro Fonseca2

, Anelise Munaretto3 1

Departamento Acadêmico de Informática Universidade Tecnológica Federal do Paraná (UTFPR)

84016-210 – Ponta Grossa – PR – Brasil 2

Programa de Pós-Graduação em Informática (PPGIa) Pontifícia Universidade Católica do Paraná – PUCPR

80215-901 – Curitiba – PR – Brasil 3

Programa de Pós-Graduação em Engenharia Elétrica e Informática Industrial (CPGEI) Universidade Tecnológica Federal do Paraná (UTFPR)

80230-901 – Curitiba – PR – Brasil

talau@users.sf.net, mauro.fonseca@ppgia.pucpr.br, anelise@utfpr.edu.br

Abstract. This paper presents a cross-layer mechanism to improve the

performance of TCP in networks where the router has only one network interface, such as in adhoc wireless network. The method is compatible with any TCP implementation and acts as an active queue management (AQM), performing the change of the window field of the TCP header as the rate of use of the router queue. Comparative tests were conducted with Droptail and RED. The results indicated that the method increased throughput and fairness between flows, and also reduced the number of losses and delays.

Resumo. Este artigo apresenta um mecanismo cross-layer para melhorar o

desempenho do TCP em redes onde o roteador tem apenas uma interface

de rede, como em redes sem fio adhoc. O método é compatível com

qualquer implementação TCP e atua como um gerenciador de fila ativa (AQM), realizando a alteração do valor do campo janela dos cabeçalhos TCP de acordo com a taxa de utilização da fila do roteador. Foram realizados testes comparativos com o Droptail e o RED. Os resultados indicaram que o novo método aumentou a vazão e a justiça entre os fluxos, e também reduziu o número de perdas e atrasos.

1. Introdução

O protocolo de controle de transmissão (TCP) é um protocolo da camada de transporte que oferece transferência confiável de dados, serviço orientado a conexão, controle de fluxo, e controle de congestionamento [Kurose e Ross 2010]. O controle de fluxo é utilizado para que a fonte e o receptor informem a quantidade de dados que conseguem receber a cada momento, e o controle de congestionamento é uma medida que tenta prever a quantidade de dados que a rede irá suportar, isso normalmente é feito com o uso de algoritmos, como o slow-start [Jacobson 1988], utilizados pelas fontes TCP.

Já é bastante conhecido que o controle de congestionamento presente no protocolo de transporte TCP não funciona adequadamente em redes onde o meio físico está

(2)

sujeito a falhas, como em redes sem fio [Balakrishnan et al. 1995] [Leung e Yeung 2004] [Zhang et al. 2008] [Zhang e Feng 2009].

Alguns trabalhos da literatura sugerem que mecanismos no meio da rede podem auxiliar no controle de congestionamento. Em [Jain e Dovrolis 2003] foi verificado que com a informação sobre a banda disponível é possível determinar a taxa de transmissão mais adequada, não sendo necessário adotar mecanismos de controle, como, por exemplo, o slow-start. [Floyd e Jacobson 1993]: neste trabalho os autores afirmam que o gateway é o local mais eficaz para se detectar um congestionamento. Em [Hasegawa e Murata 2006] foi-se verificado que talvez a melhor forma para se evitar um congestionamento seja feita a partir de ações no meio da rede, que naturalmente refletem nos pontos finais de uma conexão TCP. Outros trabalhos, como em [Jiang et al. 2009], sugerem a redução da complexidade das implementações TCP; a atuação de mecanismos no meio da rede podem favorecer tal processo.

Levando em consideração principalmente os problemas do TCP em redes sem fio, e a recomendação do uso de mecanismos no meio da rede, neste trabalho é proposto um método cross-layer, compatível com qualquer implementação TCP, para atuar como gerenciador de fila ativa (AQM), visando melhorar o desempenho do protocolo TCP onde o roteador tem apenas uma interface de rede, como em redes sem fio adhoc.

Na próxima Seção é apresentado o método e sua implementação no ns-3. A Seção 3 traz detalhes das simulações realizadas. Seguindo com os resultados (Seção 4), finalizando com as conclusões.

2. A Proposta

Uma das causas de um congestionamento de rede (em um tempo t) é a transmissão de dados em quantidade superior às capacidades (no instante t) da rede. Buscando evitar este e outros problemas, neste artigo é proposto o método cross-layer denominado ECC (early congestion control). O método é um AQM derivado (fork) do Droptail, possuindo todas as suas características e comportamentos. O que o diferencia do Droptail é a criação de um recurso: a alteração do valor do campo janela do cabeçalho TCP de segmentos que estiverem saindo da fila, isto é realizado com a aplicação da Equação 1.

f(w) =

 Q−q

Q ·w q > Q · t

w caso contrário (1)

onde Q representa o tamanho total (em bytes) da fila do roteador; q ⊂ Q e indica a quantidade de bytes da fila que estão sendo utilizados; t é uma constante entre [0, 1]; e w corresponde ao valor, em bytes, da janela do cabeçalho TCP. Quando a quantidade de bytes utilizados na fila, q, for superior ao limiar Q · t, o valor do campo janela do cabeçalho TCP do segmento é reduzido proporcionalmente à porcentagem (Q−qQ ) de bytes disponíveis (livres) na fila; caso isto não ocorra o valor do campo janela permanece o mesmo.

O objetivo do ECC é a realização de um controle adicional da vazão dos fluxos TCP para evitar que a fila do roteador fique cheia, e assim inicie um congestionamento. Ele é compatível com qualquer implementação TCP, e para utilizá-lo é somente necessário a sua instalação em um roteador da rede.

(3)

Apesar do nome ser semelhante, é importante destacar que o ECC tem um comportamento diferente do AQM RED (random early detection). O RED utiliza um mecanismo para monitorar a média do tamanho da fila realizando um descarte probabilístico de segmentos, enquanto o ECC funciona da mesma forma que o Droptail, ou seja, realiza o descarte de pacotes apenas quando a fila estiver cheia, além de possuir a característica própria de reduzir o valor do campo janela do cabeçalho TCP proporcionalmente a quantidade de bytes disponíveis na fila.

O ECC tem um comportamento de redução do valor do campo janela dos segmentos TCP de forma proporcional ao nível de utilização da fila do roteador, quanto mais a fila fica cheia, mais as janelas são reduzidas. Este comportamento foi criado para tentar se evitar que a fila fique cheia. Nas Figuras 1 e 2 são exibidas as taxas de utilização da fila de um roteador durante uma simulação; na Figura 2 o método ECC foi utilizado, e na outra o AQM padrão (Droptail). Pode se observar que o ECC manteve o uso da fila mais controlado, apresentando uma baixa variação.

0 20000 40000 60000 80000 100000 0 50 100 150 200 250 300 350

uso da fila (em bytes)

tempo (segundos)

Figura 1. Taxa de utilização da fila do roteador com o uso do AQM Droptail.

0 20000 40000 60000 80000 100000 0 50 100 150 200 250 300 350

uso da fila (em bytes)

tempo (segundos)

(4)

O ECC tem uma limitação importante: ele só funciona em roteadores que tenham somente uma interface de rede, como em redes sem fio adhoc. Isto é explicado no caso a seguir: o ECC alterou o campo janela do cabeçalho TCP dos segmentos enviados pelo receptor, para que ela ficasse compatível com a quantidade de bytes livres da fila do roteador, desta forma a fonte TCP irá transmitir sua rajada de acordo com a janela do receptor e também com a capacidade atual da fila do roteador. Se o roteador tem mais de uma interface (logo, mais de uma fila), por exemplo, duas, os segmentos da fonte irão trafegar pela fila f1, e os do receptor irão trafegar pela fila f 2, logo o método não irá funcionar conforme o esperado.

Exemplo de funcionamento da proposta: Considere que um roteador tem uma fila com capacidade de 100 KB. O nível de utilização do ECC foi definido para 40% da fila

(t = 0.4), logo, quando o nível de utilização da fila atingir esta porcentagem o valor do

campo janela dos segmentos TCP começará a ser alterado. Após um intervalo de tempo o roteador passa a ter 65 KB na fila, este valor, que equivale a 65% da fila, é maior que o nível de utilização definido, logo, quando um segmento (com janela TCP = 30000) for sair da fila a sua janela será atualizada para 10500, ou seja, o campo janela foi reduzido de acordo com a porcentagem de bytes disponíveis na fila do roteador.

2.1. Implementação no ns-3

O método foi implementado no simulador de rede ns-3, uma escolha natural seria a utilização do ns-2, porém ele não oferece uma implementação TCP que suporte o uso de janelas [ns-2-Limitations 2011]. O ns-3 é um simulador de rede baseado em eventos discretos projetado para modelar tráfego real de redes de computadores, é também um software livre (GPLv2), e seu código fonte é orientado a objetos escrito em linguagem C++ [ns-3 2013]. Neste trabalho foi utilizado a versão 3.18 (a última lançada até o presente).

A implementação foi feita junto ao módulo wifi. Neste, o AQM padrão fica na classe WifiMacQueue. Utilizou-se herança desta classe para criar uma nova. Na nova classe foi reescrito o método de Dequeue, que é responsável pela retirada de pacotes da fila, realizando ao seu término o retorno do respectivo pacote. Os códigos do ECC foram inseridos antes deste retorno ser realizado, sendo retornado um pacote possivelmente atualizado pelo método, possivelmente pois o ECC age apenas quando o nível t é atingido.

3. Modelo de Simulação

Os testes foram realizados em uma rede sem fio adhoc, onde os nós foram posicionados para existir um nó central com um conjunto de n nós a esquerda, e n nós a direita. A Figura 3 ilustra a topologia. A rede adhoc foi configurada para utilizar o padrão IEEE 802.11a, com método de transmissão OFDM a 6 Mbps1. Para o nó central ser utilizado como roteador na comunicação entre os nós da esquerda/direita foi utilizado o protocolo de roteamento on-demand distance vector (AODV).

Nas simulações os nós da esquerda foram configurados para serem fontes TCP

([F 1, F n]), e os da direita receptores TCP ([R1, Rn]). Durante a simulação cada fonte fez

uma conexão com um receptor, e dados foram transmitidos até o término da simulação.

(5)

F1 F2 F3 Fn R1 R2 R3 Rn

Figura 3. Topologia adhoc utilizada nas simulações.

As fontes foram configuradas para utilizar o gerador de tráfego BulkSendApplication (ns-3), que gera dados a uma taxa constante.

Demais configurações: o AQM foi configurado apenas no nó central; variável t do ECC: 38.8 KB; tamanho da fila: 97 KB; RED: os parâmetros foram ajustados conforme o procedimento presente em [Wille et al. 2004], ficando: minth: 3 KB, maxth: 48.5 KB, Qw/wq: 0.002, tamanho médio dos segmentos: 530 bytes; tamanho dos segmentos TCP: 1000 bytes; algoritmo de controle de congestionamento: TCP New Reno.

4. Resultados

O método proposto foi comparado ao Droptail e ao RED através de simulações no ns-3 com a utilização da topologia apresentada na seção anterior. Cada simulação foi executada durante o tempo de seis minutos.

As simulações foram executadas com 4, 8, 12, 16, e 20 fluxos; os nós da esquerda foram utilizados como fontes TCP, e os da direita como receptores, cada nó fonte/receptor criou apenas um fluxo, logo para se aumentar o número de fluxos, mais nós fontes/receptores foram criados.

Cada simulação foi executada 50 vezes, com diferentes sementes de números aleatórios. Nelas foram coletados dados referentes a vazão (recebida), perdas, e atraso e justiça. Os dados que são apresentados nas próximas subseções são referentes a média das 50 rodadas com um intervalo de confiança de 95%.

4.1. Vazão

Foi coletada a vazão (throughput) recebida pelos receptores[R1, Rn]. A Figura 4 exibe a vazão total (somatória de R1 até Rn).

Com a mudança do número de fluxos o método proposto teve pouca variação da vazão; o RED apresentou um comportamento semelhante, porém com média 27,41% menor. No Droptail a vazão foi bastante reduzida em função do número de fluxos; e comparado ao ECC seu desempenho foi em média 7,31% menor.

4.2. Perdas

As perdas registradas foram do nó central onde o AQM estava presente. Elas ocorreram quando a fila ficou cheia (Droptail/ECC), ou quando o AQM produziu (RED). A Figura 5 exibe o número total de perdas.

(6)

0 20000 40000 60000 80000 100000 4 8 12 16 20 vazão (recebida) em KB número de fluxos Droptail RED ECC

Figura 4. Vazão recebida pelos receptores[R1, Rn].

0 5000 10000 15000 20000 4 8 12 16 20 total de perdas número de fluxos Droptail RED ECC

Figura 5. Número total de perdas (o ECC registrou poucas perdas (média de 25) por isso quase não aparece no gráfico).

O uso do ECC levou a poucas (média de 25) perdas no roteador, por isto na Figura 5 os dados referentes ao método quase não aparecem. O baixo número de perdas com a utilização do ECC era previsto, pois o comportamento de reduzir a janela dos segmentos de acordo com o nível de utilização da fila leva a uma redução da taxa de transmissão das fontes. O Droptail e o RED tiveram o número de perdas em função do número de fluxos, comparado ao ECC, o número de perdas foi muito maior, porém, nestes métodos as perdas são esperadas e necessárias.

As perdas na rede ativam mecanismos de controle de congestionamento das fontes TCP, um outro fator também considerado na ativação é o recebimento de três ACKs

(7)

duplos (triple dupacks). Um ACK duplicado é enviado quando um segmento fora de ordem é recebido, a recepção de três indica congestionamento na rede [Stevens 1997]. A Figura 6 exibe o número total de triple dupacks registrados nas simulações. Comparado ao Droptail e ao RED, o ECC registrou um número bastante reduzido de triple dupacks. Com o menor registro de triple dupacks pode-se dizer que a rede ficou menos congestionada.

0 10000 20000 30000 40000 50000 60000 70000 4 8 12 16 20

número de triple dupacks

número de fluxos Droptail

RED ECC

Figura 6. Número total de Triple dupacks.

4.3. Atraso e Justiça

O atraso refere-se ao tempo utilizado para um pacote ir da fonte até o destino final. A Figura 7 apresenta o atraso médio.

0 5 10 15 20 4 8 12 16 20

atraso (em segundos)

número de fluxos Droptail

RED ECC

(8)

Pode-se observar que o atraso aumentou de acordo com o número de fluxos. Comparando, o ECC teve um atraso médio de 12,63% menor que o Droptail, e 42,54% menor que o RED.

Analisando isoladamente os AQMs Droptail e ECC: o algoritmo do Droptail é mais rápido que o do ECC pois não realiza a atualização de segmentos TCP, porém na prática o ECC causou uma redução de atrasos na rede, pois o seu uso trouxe redução de congestionamento de rede.

A diferença de atrasos entre os fluxos foi utilizada para definir a justiça. Para gerar este dado: em cada rodada foi calculado o desvio padrão dos atrasos, após isso foi calculado a média e o intervalo de confiança do desvio padrão dos atrasos de todas as rodadas. A Figura 8 exibe estes dados. O desvio padrão dos atrasos também cresceu com o aumento do número de fluxos, o método ECC registrou o menor valor em cada teste, em comparação com os outros métodos isso indica que os fluxos tiveram um atraso mais uniforme, o que caracteriza uma maior justiça entre os fluxos; em números o ECC foi em média 112% mais justo que o Droptail.

0 1 2 3 4 5 6 7 8 4 8 12 16 20

desvio padrão dos atrasos

número de fluxos Droptail

RED ECC

Figura 8. Desvio padrão dos atrasos.

4.4. Análise Geral

Verificando os dados das simulações realizadas pode-se concluir que o ECC foi eficaz em reduzir o congestionamento de rede, e consequentemente aumentar o desempenho do protocolo TCP. O uso do seu mecanismo de atualização de janelas em função do nível de utilização da fila do roteador levou a uma maior vazão, poucas perdas, e a um menor atraso.

Com o crescimento do número de fluxos a disputa por recursos de um roteador aumenta, se o aumento não for controlado a fila irá ficar cheia, resultando em perdas de pacotes. As fontes TCP conseguem detectar estas perdas, e quando isso acontece é feita uma redução da taxa de transmissão (de acordo com o algoritmo de controle de congestionamento que ela utiliza). Então, quando o número de fluxos aumenta, se as

(9)

técnicas de controle de congestionamento utilizadas não regularem adequadamente os recursos que a rede possuí, a vazão total (soma de todos os fluxos) irá ser reduzida. A utilização do ECC conseguiu manter a vazão constante, independentemente do número de fluxos.

As perdas na fila do roteador ocorrem quando ela fica cheia. O mecanismo do ECC foi eficiente em evitar que ela ficasse cheia; poucas perdas foram registradas com o seu uso.

A utilização do ECC também reduziu bastante o número de ACKs triplos, e um pouco do atraso, o que indica que a rede ficou menos congestionada.

5. Conclusões

Este trabalho apresentou um método (chamado de ECC), que atua como AQM, para melhorar o desempenho do protocolo TCP em redes onde o roteador tem apenas uma interface de rede, como em redes sem fio adhoc. O ECC baseia-se no ajuste do campo janela dos segmentos TCP de acordo com a taxa de utilização da fila do roteador. O método foi comparado com o Droptail e o RED, sendo coletados dados referentes a vazão, perdas, atrasos, e justiça.

Comparado aos outros métodos, o método proposto produziu uma maior vazão. O número de perdas foi bastante reduzido, assim como o número de ACKs triplos. O atraso também foi menor, e a justiça entre fluxos foi maior.

O uso do ECC reduziu significativamente o número de ACKs triplos (Triple

dupacks). É esperado que o desempenho do TCP aumente ainda mais com a utilização

de algoritmos de controle de congestionamento que utilizem este número de uma melhor forma que o TCP New Reno.

Os resultados dos testes realizados indicaram que o método melhorou o desempenho do protocolo TCP. Testes futuros podem ser feitos com a utilização de fluxos UDP; diferentes topologias adhoc; uso de topologias sem fio em infraestrutura; diferentes algoritmos de controle de congestionamento nas fontes; e redes sem fio com maiores velocidades.

Referências

Balakrishnan, H., Seshan, S., e Katz, R. H. (1995). Improving reliable transport and handoff performance in cellular wireless networks. Wireless Networks, 1(4):469–481. Floyd, S. e Jacobson, V. (1993). Random early detection gateways for congestion

avoidance. IEEE/ACM Transactions on Networking (TON), 1(4):397–413.

Hasegawa, G. e Murata, M. (2006). TCP symbiosis: congestion control mechanisms of TCP based on Lotka-Volterra competition model. In Interperf ’06: Proceedings from

the 2006 workshop on Interdisciplinary systems approach in performance evaluation and design of computer & communications sytems, page 11, New York, NY, USA.

ACM.

Jacobson, V. (1988). Congestion avoidance and control. In SIGCOMM ’88: Symposium

proceedings on Communications architectures and protocols, pages 314–329, New

(10)

Jain, M. e Dovrolis, C. (2003). End-to-end available bandwidth: measurement methodology, dynamics, and relation with TCP throughput. IEEE/ACM Transactions

on Networking (TON), 11(4):537–549.

Jiang, S., Zuo, Q., e Wei, G. (2009). Decoupling congestion control from TCP for multi-hop wireless networks: semi-TCP. In CHANTS ’09: Proceedings of the 4th ACM

workshop on Challenged networks, pages 27–34, New York, NY, USA. ACM.

Kurose, J. e Ross, K. (2010). Redes de computadores e a Internet: uma abordagem

top-down. Addison Wesley, São Paulo, SP.

Leung, K.-F. e Yeung, K. (2004). G-Snoop: enhancing TCP performance over wireless networks. In Computers and Communications, 2004. Proceedings. ISCC 2004. Ninth

International Symposium on, volume 1, pages 545–550, Alexandria, Egypt. IEEE

Press.

ns-2-Limitations (2011). ns-2 Limitations. http://www.isi.edu/nsnam/ns/ ns-limitations.html. Acesso em: 25 out. 2013, 23:53.

ns-3 (2013). ns-3. http://www.nsnam.org. Acesso em: 10 nov. 2013, 23:29. Stevens, R. W. (1997). RFC 2001: TCP Slow Start, Congestion Avoidance, Fast

Retransmit, and Fast Recovery Algorithms.

Wille, E. C. G., Mellia, M., Leonardi, E., e Ajmone-Marsan, M. (2004). Design and Analysis of IP Networks with End-to-End QoS Guarantees. In XXI Simpósio Brasileiro

de Telecomunicações, Belém-Pará, Brasil. Sociedade Brasileira de Telecomunicações.

Zhang, Y. e Feng, G. (2009). A new method to improve the TCP performance in wireless cellular networks. In Communications, Circuits and Systems, 2009. ICCCAS 2009.

International Conference on, pages 246–250, Milpitas, California, USA. IEEE Press.

Zhang, Y., Hu, J., e Feng, G. (2008). SNOOP-based TCP Enhancements with FDA in wireless cellular networks: A comparative study. In Communications, Circuits and

Systems, 2008. ICCCAS 2008. International Conference on, pages 181–185, Fujian

Referências

Documentos relacionados

O artigo 2º do Código Civil preleciona que “A personalidade civil da pessoa começa do nascimento com vida; mas a lei põe a salvo, desde a concepção, os direitos do

• Análise de dados de 30 espécies de aves obtidos ao longo de 24 anos concluiu que algumas aves estão a regressar vários dias mais cedo em relação à década de 80.

A tradicional visão escolar da leitura como formação foi substituída pela democratização da leitura, sem sistematização. No Brasil, a literatura infantojuvenil do

4.12 Upper panel: The symbols represent the absolute derivative of the quantity 6∆ν dr 0213 computed at maximum slope for the models with different masses and input physics considered

Pretendo, a partir de agora, me focar detalhadamente nas Investigações Filosóficas e realizar uma leitura pormenorizada das §§65-88, com o fim de apresentar e

A figura 54 apresenta os espectros de emissão para os cristais heteroestruturados RGB, GRB, BRG, RBG, GBR e BGR, com monitoramento da emissão em 440 (linha azul), 545 (linha verde)

Dicas para conservar melhor o seu barco: a- Evite deixar seu barco exposto ao Sol quando não estiver em uso b- Quando não for utilizar o seu barco diminua a pressão de ar

As resistências desses grupos se encontram não apenas na performatividade de seus corpos ao ocuparem as ruas e se manifestarem, mas na articulação micropolítica com outros