Este post técnico aborda os mecanismos de controle de congestionamento, com foco na camada de transporte.
Quando múltiplos dispositivos tentam enviar um volume excessivo de dados simultaneamente, a rede pode ficar sobrecarregada.
Esse fenômeno, conhecido como congestionamento, resulta em degradação de desempenho, com pacotes sendo atrasados ou até mesmo perdidos.
O Que é Controle de Congestionamento e Onde Ele Ocorre?
O controle de congestionamento é uma responsabilidade compartilhada entre a camada de rede e a camada de transporte.
- Camada de Rede: É onde o congestionamento é detectado, pois os roteadores são os componentes que sofrem com o excesso de tráfego e filas de pacotes.
- Camada de Transporte: É a origem do problema, pois são as entidades de transporte (protocolos como o TCP) que enviam os pacotes para a rede.
Portanto, a solução mais eficaz para mitigar o congestionamento é fazer com que os protocolos da camada de transporte reduzam a taxa de envio de pacotes.

A Internet depende fundamentalmente desses mecanismos para manter sua estabilidade e performance.
O Objetivo Real: Alocação Otimizada de Banda
O propósito do controle de congestionamento vai além de simplesmente evitar o colapso da rede. O objetivo principal é alcançar uma alocação de largura de banda que seja simultaneamente:
- Eficiente: Utiliza toda a capacidade disponível da rede.
- Justa: Distribui a capacidade de forma equitativa entre as entidades concorrentes.
- Adaptativa: Responde rapidamente a variações na demanda de tráfego.
Uma alocação que atenda a esses critérios garante alto desempenho sem sobrecarregar a infraestrutura.

A Relação Entre Carga, Vazão (Goodput) e Atraso
É crucial entender a dinâmica entre a carga oferecida à rede e o desempenho resultante.
- Goodput (Vazão Efetiva): Refere-se à taxa de pacotes úteis que chegam com sucesso ao destino. Inicialmente, o
goodput
aumenta de forma linear com a carga. Contudo, à medida que a carga se aproxima da capacidade máxima do enlace, o crescimento dogoodput
desacelera devido ao acúmulo de pacotes em buffers e ao aumento da probabilidade de perdas. - Atraso (Delay): Em baixa carga, o atraso é relativamente constante e representa o tempo de propagação. À medida que a carga aumenta, o atraso cresce exponencialmente, pois os pacotes passam mais tempo em filas nos roteadores.
Se um protocolo de transporte for mal projetado e retransmitir pacotes que foram apenas atrasados (e não perdidos), a rede pode entrar em um estado de colapso de congestionamento.

Nesse cenário de colapso de congestionamento, os transmissores enviam pacotes incessantemente, mas a quantidade de dados úteis entregues diminui drasticamente.
Maximizando a Eficiência com a Métrica de Potência
O ponto de “início do congestionamento” é onde o desempenho começa a se degradar. Para operar a rede de forma eficiente, é desejável alocar banda até um ponto pouco antes do aumento acentuado do atraso, ou seja, abaixo da capacidade teórica máxima.
Para identificar esse ponto ótimo, Kleinrock (1979) propôs a métrica de Potência (Power), definida pela seguinte relação:

A Potência de uma conexão aumenta com a carga enquanto o atraso permanece baixo.
No entanto, ela atinge um pico e depois começa a cair quando o atraso aumenta de forma acentuada.
A carga que corresponde à Potência máxima representa o ponto de operação mais eficiente para a rede.
Conclusão: Operando no Ponto Ideal
Em resumo, o controle de congestionamento na camada de transporte não visa apenas prevenir o colapso da rede, mas sim encontrar uma alocação de banda que maximize a eficiência.
Ao monitorar métricas como vazão e atraso, e utilizando conceitos como a Potência, os algoritmos de controle de congestionamento buscam manter a rede operando em seu ponto de maior rendimento, garantindo uma comunicação rápida e estável para todos os usuários.
Veja mais:
O que é protocolo de roteamento ?
Como funciona a camada de rede
Protocolo HTTP – Como funciona?
Tutorial: Como usar o WHOIS ou RDAP
https://datatracker.ietf.org/doc/html/rfc9293

Juliana Mascarenhas
Data Scientist and Master in Computer Modeling by LNCC.
Computer Engineer