NewsGeneration: um serviço oferecido pela RNP desde 1997


ISSN 1518-5974
Boletim bimestral sobre tecnologia de redes
produzido e publicado pela  RNP – Rede Nacional de Ensino e Pesquisa
17 de setembro de 1999 | volume 3, número 5

volta à página inicial de NewsGeneration

Nesta edição:

NewsGeneration:



TCP Sobre ATM

Ney Figueirôa de Senna Filho <>
Andrey Santana da Rocha Dias <>
Luciano Brandão Cruz <>

Rede Nacional de Ensino e Pesquisa (RNP)

Introdução
O protocolo TCP
Extensões do TCP para alto desempenho
A tecnologia ATM
Controle de congestionamento para ATM
TCP sobre ATM
Aspectos do TCP para redes ATM
Conclusão
Referências bibliográficas
Sites relacionados

O surgimento da tecnologia Modo de Transferência Assíncrona (ATM) gerou novos desafios, principalmente relacionado ao uso futuro do consagrado TCP. Este artigo apresenta uma síntese dos principais trabalhos referentes ao desempenho do TCP em redes ATM. São apresentados os principais conceitos do protocolo TCP e da tecnologia ATM, de forma que nos permita formar um panorama para estudo do comportamento do TCP sobre ATM e encontrar soluções que viabilizem sua utilização. Serão também enfatizadas situações referentes ao congestionamento causados pela junção TCP/ATM.

^

Introdução

ATM foi a tecnologia escolhida pelo ITU-TS (antigo CCITT) para a integração dos diversos serviços na RDSI-FL (Rede Digital de Serviços Integrados de Faixa Larga), também sendo empregado para redes locais de alta velocidade. Neste contexto, o tráfego de dados, chamado de tráfego ABR (Available Bit Rate), na qual se enquadra o TCP, é o que apresenta os requisitos mais fortes.

O TCP tem se apresentado como um protocolo de transporte de sucesso para qualquer ambiente de rede, desde redes locais até redes de longa distância, independente da tecnologia empregada (Ethernet, FDDI, satélite, etc.). No entanto, para redes de alta velocidade ATM, diversas anomalias no seu desempenho vem sendo detectadas. Por exemplo, um transferência de arquivo via FTP que obteve uma vazão de 1,1313 Mbps através de uma rede Ethernet, pode obter apenas 0,366 Mb/s através de um caminho ATM de 100 Mbps [CL94]. Considerando o uso difundido do protocolo TCP/IP, este trabalho procura dar o embasamento conceitual para entender o comportamento do TCP sobre o ATM.

A primeira seção faz a apresentação do protocolo TCP, dando ênfase aos mecanismos de controle de tráfego. A segunda seção, por sua vez, apresenta as propostas de extensões do protocolo TCP para redes de alto desempenho. Nas seções seguintes, é feita uma introdução ao Modo de Transferência Assíncrono (ATM) e a alguns aspectos dos mecanismos de controle de congestionamento utilizados em tais redes. A quarta seção apresenta, de forma bastante simplificada, como é o esquema de suporte ao TCP via ATM. Por fim, na quinta seção, são discutidas as principais questões acerca do precário o desempenho do TCP sobre o ATM.

^

O protocolo TCP

O TCP (Transmission Control Protocol) é um protocolo de comunicação que provê um serviço de entrega contínua e confiável através da sua orientação à conexão, reconhecimento positivo e retransmissão. O Controle de fluxo do TCP utiliza o mecanismo de janela deslizante, onde o destino deve retornar um aviso de janela (window advertisement) para indicar o tamanho do seu buffer, de forma a regular a quantidade de dados (janela) que o transmissor pode enviar sem receber reconhecimento.

CONTROLE DE CONGESTIONAMENTO

Um dos principais fatores que tornaram o TCP tão difundido é a sua capacidade de se adaptar rapidamente a variações na carga oferecida e na banda disponível, utilizando a perda de pacote como forma de retroalimentação.

O controle de congestionamento da maioria das implementações atuais de TCP (BSD 4.3 Tahoe) segue a proposta de Van Jacobson [Jac88], similar ao projetado para a arquitetura DECnet por Jain, Ramakrishnan e Chiu [JRC87]. O mecanismo baseia-se na idéia de que a taxa de chegada deve ser igual à taxa suportada pelo ponto da rede com maior estrangulamento (gargalo), ou seja, o transmissor deve usar os ACKs como "clock" para transmissão (ver a Figura 1).

Figura 1: Controle de Congestionamento pelo Fluxo

O TCP utiliza um mecanismo de janela de congestionamento com início gradual (slow start) e diminuição multiplicativa (multiplicative decrease). Dessa forma, o transmissor possui uma variável chamada janela de congestionamento e outra chamada tamanho limite da janela (ssthresh), passando a determinar o número de pacotes à transmitir pelo menor valor entre a janela de congestionamento e o obtido pelo aviso de tamanho de janela.

No modo de aumento gradual, a janela de congestionamento inicia com um pacote e, para cada reconhecimento de pacote, ocorre um incremento unitário da mesma (Figura 2). O resultado é uma janela duas vezes maior a cada RTT, permitindo um avanço rápido para a taxa de transmissão disponível.

Figura 2: Comportamento da Janela de Congestionamento

Para cada perda de pacote detectado por timeout, o tamanho limite da janela é diminuída pela metade (multiplicative decrease) e a janela de congestionamento cai para um pacote, de forma a diminuir o volume de tráfego e a taxa de retransmissão exponencialmente. Continuando a perda de pacotes, os timeouts de retransmissão são aumentados exponencialmente.

O modo de prevenção de congestionamento é acionado quando a janela de congestionamento ultrapassar o limite máximo de janela (ssthresh) que corresponde à metade da janela anterior ao congestionamento. Neste caso, passa-se a incrementar unitariamente a janela de congestionamento quando todos os pacotes da janela forem reconhecidos (aumento linear ao invés de exponencial).

A figura abaixo ilustra o esquema descrito anteriormente.

Figura 3: Esquema de Controle de Congestionamento no TCP

^

Extensões do TCP para alto desempenho

O TCP foi projetado para operar em praticamente qualquer meio de transmissão e taxa de transmissão. Ele apresenta um bom desempenho na faixa de 300 bps a 800 Mbps, com atrasos de ida e volta na faixa de 1ms a 100s. A questão do desempenho do TCP não depende exclusivamente da taxa de transmissão, mas sim do produto da taxa de transferência e do atraso de ida e volta. Este produto banda-atraso mede a quantidade de dados para "preencher" o duto de comunicação. Para o TCP, representa a quantidade de dados não reconhecidos que devem ser transmitidos.

O RFC-1323 [JBB-92] trata dos problemas de desempenho enfrentados pelo TCP em vias de comunicação com grande produto banda-atraso através do aumento do limite da janela e da utilização de marcas de tempo (timestamps). Como o TCP usa um campo de 16 bits para descrever a janela do transmissor, a janela máxima seria de 64 Kbytes, limitando a carga oferecida. A proposta de aumentar para 2 GB (32 bits) permite que aplicações de alta velocidade não tenham suas janelas restringidas. Além disso, como os timeouts do TCP são determinados por amostragens do RTT, esta estimativa se torna grosseira, necessitando de mecanismos mais precisos como marcas de tempo. Outra finalidade das marcas de tempo é a proteção contra reutilização de números seqüenciais, que pode ocorrer devido à larga janela em vias com grande produto banda-atraso.

^

A tecnologia ATM

É esperado que as futuras redes de alta velocidade venham a utilizar a tecnologia ATM, onde a informação é transmitida através de pequenas células (ver Figura 4) de tamanho fixo com 48 bytes de carga e 5 bytes de cabeçalho. O tamanho fixo das células reduz a variação do atraso tornando a rede adequada à integração de tráfego de voz, vídeo e dados, além de permitir a comutação rápida por hardware.

A tecnologia ATM é orientada a conexão, sendo necessário informar aos comutadores intermediários os requisitos de serviço e os parâmetros do tráfego. São utilizados os identificadores de caminho virtual (VPI) e de canal virtual (VCI) para identificar as conexões.

Figura 4: Célula ATM

A tecnologia ATM consiste em três camadas (física, ATM, e de adaptação ATM) e nos elementos que os usuários quiserem colocar acima. Para a camada física, o ATM não prescreve um determinado conjunto de regras, apenas afirma que as células ATM podem ser enviadas através de qualquer fio ou fibra, por isto o ATM foi projetado para ser independente do meio de transmissão [AST94].

A camada ATM trata do transporte das células, da geração e extração do cabeçalho das mesmas, do estabelecimento e liberação de circuitos virtuais, além do controle de congestionamento.

Como, em geral, a maioria das aplicações não trabalha diretamente com as células, foi definida uma camada acima desta, para que os usuários enviem pacotes maiores do que uma célula. Para transportar unidades maiores que 48 bytes, uma camada de adaptação é requerida para fazer a segmentação e remontagem de datagramas da camada superior.

A CAMADA DE ADAPTAÇÃO ATM - AAL

O principal objetivo da criação da AAL (ATM Adaptation Layer) foi o de proteger as camadas superiores da mecânica de dividir os dados em células na origem e ter de reagrupá-los de novo no destino. Devido às aplicações terem diferentes necessidades a ITU definiu os serviços da AAL organizada nos seguintes pontos principais:

Em virtude de tais serviços, foram criados quatro tipos de protocolos: AAL1, AAL2, AAL 3/4, AAL5 (ver Figura 5). O AAL1 é destinado para a classe de serviço com taxa de bit constante - CBR (constant bit rate),como a voz. O AAL2 é destinado para a classe VBR (variable bit rate), de taxa variável, com requisitos de tempo entre origem e destino, como o vídeo. O AAL3/4 é um fusão para suportar a classe ABR (available bit rate), com a não orientação à conexão, como dados. O AAL5 corresponde a um enxugamento do AAL3/4 em termos de cabeçalhos e é o mais utilizado para dados TCP.

Figura 5: Serviços ATM

A camada AAL é dividida em duas partes principais. A parte superior é chamada de subcamada de convergência (convergence sublayer). Ela oferece uma interface para a aplicação, e consiste em uma subparte que é comum a todas as aplicações e em outra específica de serviços. A parte mais baixa da AAL é chamada de subcamada de segmentação e remontagem (SAR - Segmentation And Reassembly). Basicamente, a subcamada SAR cuida de células enquanto que a de convergência cuida de mensagens.

AAL5

Os pacotes de dados são segmentados pelo AAL5 em fragmentos de 48 bytes e complementados se necessário. A última célula do pacote apresenta um bit diferenciador e um finalizador de 8 bytes que contém o tamanho total dos dados do pacote e um código de correção de erros. As células são armazenadas até que a última célula chegue para que o tamanho e erro sejam verificados. Só depois elas são repassadas para a camada de protocolo superior.

^

Controle de congestionamento para ATM

CONGESTIONAMENTO: DEFINIÇÃO

Congestionamento é uma condição causada pela sobrecarga de datagramas em um ou mais pontos de encaminhamento (gateways). Quando ocorre congestionamento sem um mecanismo de controle, o receptor e o transmissor apenas percebem um aumento no atraso, respondendo com retransmissões, o que acaba por agravar o estado de saturação da rede.

ABORDAGEM POR TAXA

O ATM Fórum optou por controlar diretamente a banda da conexão através do controle por taxa. Este tipo de abordagem efetua controle de fluxo fim a fim, mas também permite segmentação do loop de controle com comutadores sendo fontes ou destinos virtuais. Além disso, permite que o comutador altere um único bit EFCI (Explicit Forward Congestion Indication) como indicação de congestionamento ou atualize, dinamicamente, a taxa máxima no campo de uma célula especial RM, o que dá uma grande flexibilidade na arquitetura [BF95].

Parâmetros da conexão:

Campos das células RM:

A operação básica do controle por taxa se inicia no estabelecimento da conexão, onde os parâmetros são passados à rede. A fonte, então, passa a transmitir segundo a taxa permitida ACR (Allowed Cell Rate), que é inicialmente igual ao ICR (Initial Cell Rate), e deve estar entre o MCR (taxa mínima) e o PCR (taxa de pico). Uma célula RM é enviada no início da transmissão a cada (Nrm-1) células, sendo que a fonte armazena a taxa permitida (ACR) no campo CCR, e a taxa desejada (geralmente PCR) no campo ER (Explicit Rate).

Os comutadores podem alterar o CCR ou "setar" o CI na célula RM como forma de reação ao congestionamento. O destino deve retornar a célula RM, invertendo o bit de direção (DIR) e "setando" o EFCI caso a última célula de dados tenhao o EFCI setado. Quando uma célula RM é recebida como retorno, caso contenha CI = 0, a fonte deve aumentar a taxa segundo o AIR, implementando uma retroalimentação positiva. Caso contrário, a fonte deve diminuir sua taxa pelo fator RDF, a cada intervalo entre duas células RM, até o MCR, implementando uma diminuição exponencial contínua. Nos dois casos, a taxa da fonte deve ser sempre ajustada para o mínimo de ACR e o campo ER da célula RM.

ABORDAGEM POR CRÉDITO

Esta abordagem foi proposta por H.T. Kung [KC93] e apoiada por v&acaute;rias empresas fabricantes de equipamentos ATM. O esquema por crédito equivale a um controle de fluxo por janela para cada enlace (link). O intuito é diminuir o atraso da retroalimentação. Assim, o receptor deve declarar a sua capacidade de armazenamento para aquela conexão através do envio de créditos, sendo que o transmissor só pode transmitir uma quantidade equivalente aos créditos que possui. Este método exige filas separadas (buffers) por canal virtual (VC) em cada nó. O transmissor só envia após ter recebido um crédito do receptor, indicando o espaço de armazenamento.

DISPUTA CRÉDITO X TAXA

A abordagem por crédito permite um controle eficiente e perda nula, enquanto que o esquema por taxa pode causar a perda de células, que poderia ser minimizada com maior espaço de armazenamento. Entretanto, em comutadores de alta capacidade, que pode atender milhões de VC's, qualquer gerenciamento por VC aumentaria muito a complexidade, justificando a derrota da abordagem por crédito para a abordagem por taxa por 7 votos contra 104 no ATM Fórum. Entretanto, reconhece-se a adequacidade do controle por crédito para redes locais e do controle por taxa para redes de longa distância [RN95].

^

TCP sobre ATM

 

Figura 6: Esquema de TCP sobre ATM

Para serviços CBR e VBR, a rede ATM provê garantias para uma Qualidade de Serviço (QoS) [Byte94] a partir de parâmetros como banda e atraso. Para estes serviços, o controle de congestionamento é realizado pelo controle de admissão e alocação de banda, sendo que as conexões são rejeitadas no chamado tempo de estabelecimento da conexão. Para serviços ABR, com sua característica de melhor atendimento possível (best-effort), os requisitos não são especificados, e a rede deve prover dinamicamente uma fatia justa da banda disponível. É neste caso onde se encaixa o TCP, e o controle de congestionamento deve ser, portanto, realizado por mecanismos reativos.

^

Aspectos do TCP para redes ATM

A QUESTÃO DA FRAGMENTAÇÃO

Como os datagramas de protocolos de camadas superiores são fragmentados em células ATM, a perda de uma única célula torna a transmissão das restantes daquele datagrama em um desperdício de banda. Para evitar este desperdício, podem ser empregados os mecanismos EPD (Early Packet Discard) e PPD (Partial Packet Discard), propostos por Romanow e Floyd [RF95], onde as demais células que compõem o datagrama corrompido são descartadas.

A COMPRESSÃO DE ACKS

Como observado em [Mo92], a compressão de ACKs é um fenômeno que atrapalha o controle de congestionamento do TCP (Figura 1) porque o espaçamento dos ACKs não representa mais o espaçamento do gargalo. Este fenômeno é agravado quando pacotes são fragmentados em células ATM e multiplexados em linhas de transmissão comuns, porque com o AAL5, os pacotes são encaminhados quando a célula final é recebida, acarretando reconhecimentos simultâneos [PR95].

A QUESTÃO DA SINCRONIZAÇÃO

Com a multiplexação estatística e o descarte de células na falta de recursos numa rede ATM, ocorre a perda de células (e, conseqüentemente, de pacotes) de várias conexões TCP, causando um colapso simultâneo das janelas, que eram grandes devido à alta velocidade, para o modo slow start. Como os comutadores ATM não apresentam buffers grandes como os roteadores convencionais devido à alta velocidade, a banda disponibilizada é muito maior que o suficiente para esvaziar os buffers. Desta forma, o crescimento lento da janela no modo de prevenção de congestionamento não permite uma boa utilização da banda disponível. Um aumento da capacidade de buffer e algoritmos adicionais de controle de congestionamento com interação entre TCP e ATM para evitar a sincronização das janelas foram propostos por Perloff e Reiss [PR95].

A QUESTÃO DA DETECÇÃO DO CONGESTIONAMENTO

O TCP depende de perda de pacotes (timeout para retransmissão ou três ACKs repetidos) como indicação de congestionamento, podendo receber mensagens ICMP (source quench) mas que são raramente utilizadas devido ao consumo de banda. Como em redes de alta velocidade, filas grandes representam atrasos maiores, uma forma explícita de retroalimentação para indicar congestionamento antes da formação de filas é importante.

Uma forma para complementar o controle de congestionamento a nível de camada de transporte é a utilização de um mecanismo de prevenção de congestionamento nos roteadores, como o gateway RED (Random Early Detection), proposto por Floyd e Van Jacobson [FJ93] e de notificação explícita de congestionamento (ECN) proposto em [FloECN].

Com RED, o gateway indica congestionamento através da marcação ou descarte randômico de um pacote assim que for ultrapassado o tamanho médio de fila. Outras vantagens do RED são a prevenção de sincronização global e a prevenção de descarte desnecessário de células ATM de pacotes TCP. Com RED e ECN, poder-se-ia ter o controle de congestionamento independente do ATM notificando o TCP, de forma mais eficiente do que por perda de pacote, nas bordas da rede ATM. Outras formas de detecção de congestionamento seriam através de múltiplos limites no tamanho da fila no comutador, da derivada do tamanho da fila, da estimativa da banda demandada e da estimativa da variação do atraso [BF95].

^

Conclusão

O desempenho de conexões TCP em redes ATM de alta velocidade é fundamental considerando a importância do protocolo TCP/IP nas transferências de dados. A partir dos mecanismos de controle de congestionamento da camada ATM, percebe-se a preocupação em obedecer requisitos de perda de células através de mecanismos reativos.

A forma do controle de congestionamento com abordagem por taxa influenciará definitivamente o desempenho de controles de congestionamento de camadas superiores. A interação entre o TCP e os controle de congestionamento da camada ATM é relevante também para outros protocolos da camada de transporte como IPX, NFS, etc. De forma que o entendimento das causas do fraco desempenho do TCP sobre ATM possa ajudar na definição de modificações no TCP e no controle de congestionamento do ATM.

Para o leitor mais interessado, existem alguns sites com links que contribuem de modo significativo para o estudo mais aprofundado deste tema. Eles encontram-se relacionados na seção Sites Relacionados logo abaixo.

^

Referências bibliográficas

[AST94] Tanenbaum, Andrew S., "Redes de Computadores", Editora Campus, 1994.

[BF95] F. Bonomi, K.W. Fendick, "The Rate-Based Flow Control Framework for the Available Bit Rate ATM Service", IEEE Network, 03/95.

[Byte94] Juliano, Mark, "ATM Traffic Control", http://www.byte.com/art/9412/sec10/art5.htm
Byte Magazine,12/94.

[CL94] D. Comer, J.C. Lin, "TCP Buffering and Perfomance Over an ATM Network", Technical Report CSD-TR 94-026, Purdue University, 03/94.

[FJ93] S. Floyd, V. Jacobson, "Random Early Detection Gateways for Congestion Avoidance", IEEE/ACM Transactions on Networking, vol.1, no.4, 08/93.

[FloECN] S. Floyd, "TCP and Explicit Congestion Notification".

[Jac88] V. Jacobson, "Congestion Avoidance and Control", ACM Computer Comunication Review, vol.18, 08/88. Proceedings of the Sigcomm'88 Symposium in Stanford, CA, ftp://ftp.ee.lbl.gov/papers/congavoid.ps.Z. ,08/88.

[JBB92] V. Jacobson, D. Borman, R. Braden, "TCP extensions for high perfommance", RFC-1323, IETF, 05/92.

[JRC87] R. Jain, K.K. Ramakrishnan, D.M. Chiu, "Congestion Avoidance in Computer Networks with a Connectionless Network Layer", Digital Equipment Corporation, Technical Report, DEC-TR-506, 08/87. Também em C. Patridge, Ed., "Innovations in Internetworking", Artech House, 1988.

[KC93] H.T. Kung, A. Chapman, "The FCVC (Flow-Controlled Virtual Channels) Proposal for ATM Networks", versão 2.0, 1993. Proc. 1993 International Conf. on Network Protocols, San Francisco, California, 10/93.

[Mo92] J.C. Mogul, "Observing TCP Dynamics in Real Networks", ACM Communications, 08/92.

[PR95] M. Perloff, K. Reiss, "Improvements to TCP Perfomance in High-Speed ATM Networks", Communications of the ACM, 02/95, vol.38,no.2.

[RF95] A. Romanow, S. Floyd, "Dynamics of TCP Traffic over ATM Networks", IEEE Journal on Selected Aread in Communications, vol.13, no.4, 05/95, ftp: ftp://playground.sun.com/pub/tcp_atm/tcp_forum.7_93.ps. ftp://playground.sun.com/pub/tcp_atm/tcpatm_extended.*.ps.
ftp://ftp.ee.lbl.gov/papers/tcp_atm.ps.Z.

[RN95] K.K. Ramakrishnan, P. Newman, "Integration of Rate and Credit Schemes for ATM Flow Control", IEEE Network, 03/95.

^

Sites relacionados

Detailed Behavior of TCP over ATM: http://www.eecs.harvard.edu/
~rtm/tcp-atm/tcp-atm-1.html

Harvard Computer Science Network Laboratory:
http://www.eecs.harvard.edu/networking

Um dos autores citados neste artigo (H. T. Kung) possui também diversos artigos, livros e simulações referentes a ATM, sua home page é http://www.eecs.harvard.edu/htk

^

NewsGeneration, um serviço oferecido pela RNP – Rede Nacional de Ensino e Pesquisa
Copyright © RNP, 1997 – 2004