Quais os impactos de retransmissões na rede e por que alarmar seus clientes?

Entenda o conceito de retransmissões e em que ponto elas se tornam realmente problemáticas para a rede e seus usuários.

Em uma rede TCP saudável, retransmissões ocorrem e são normais. O protocolo TCP foi projetado para garantir a entrega das mensagens que transmite e emprega alguns mecanismos para isso. Um dos problemas a serem contornados é a perda ou corrompimento de pacotes enquanto eles se deslocam pela rede. Se um pacote se perde no caminho ou chega corrompido, ele precisa ser retransmitido para que a mensagem não fique incompleta ou errada. O TCP especifica os mecanismos da retrasmissão e algumas das técnicas empregadas são o Fast Retransmit e o Selective ACK ou simplesmente ​SACK, que é descrito na RFC 2018.

Basicamente, quem está transmitindo precisa receber de volta uma confirmação de recebimento do destino (Ack) para cada pacote enviado. Quando essa confirmação demora muito, o pacote é retransmitido. Após algumas tentativas de retransmissão sem sucesso a conexão é encerrada e o host é dado como inacessível.

Princípio da retransmissão:

Indo um pouco mais a fundo, logo no início da comunicação TCP, o transmissor define um timer de retransmissão baseado no RTT (round-trip time). O RTT é calculado sobre tempo de envio e confirmação dos primeiros bytes. Também chamado de tempo de ida e volta, esse valor é ajustado de tempos em tempos enquanto a comunicação não for encerrada, de acordo com a velocidade com que os pacotes são confirmados.

Caso o timer se esgote antes da confirmação de recebimento do pacote, ocorre o RTO (retransmission timeout), gerando a retransmissão do segmento. Quando o problema é grave, pode acontecer de vários pacotes serem enviados e não serem confirmados. Nesse caso o transmissor pausa o envio de pacotes por no mínimo 1 segundo, retomando o envio posteriormente.

A perda de pacotes pode acontecer por diversos fatores e, quando existe um aumento do volume de retransmissões na rede, isto indica que algo precisa de atenção.

A seguir, apenas alguns dos mais comuns causadores de perda de pacotes:

  • Interferência eletromagnética

  • Conector defeituoso

  • Falha de hardware

  • Switching loop

  • Equipamento sobrecarregado

  • Gargalo na rede

É importante lembrar que em alguns casos o pacote foi recebido e o ACK foi enviado de volta, mas não chegou até quem enviou.

O impacto mais significativo do alto número de retransmissões na rede é, sem dúvida, no throughput. Em um exemplo prático, suponhamos que em 15 minutos, 60GB de dados trafeguem em sua rede e que, nesse período, 15% do total de pacotes tenha sido retransmitido. Se todos os pacotes tivessem o mesmo tamanho, isso poderia representar 9GB de tráfego extra em sua rede. Isso em apenas 15 minutos! Neste caso, está claro que existe um problema importante de perda de pacotes na rede e será preciso investigar a origem do problema.

Mas então onde olhar primeiro?

Através da análise das transações em sua rede, é possível identificar onde se concentram as retransmissões. Com ajuda do Zerum Falcon, podemos montar um dashboard que permita localizar um agressor, que como vimos, pode estar em qualquer lugar da sua rede. Caso as retransmissões se concentrem em maior número em determinado grupo de máquinas, pode haver problemas com algum switch ou outro componente de rede, por exemplo. Se ficar claro que a maior ocorrência é em determinado host ou serviço, pode estar havendo uma sobrecarga, já que pode estar faltando recursos para o host responder novas requisições. E no caso das retransmissões estarem bem distribuídas em todas as transações, pode ser que seu switch de núcleo esteja trabalhando próximo do limite.

Qual o índice de retransmissão da sua rede hoje? Seja qual for a origem da perda de pacotes em sua rede, a retransmissão causada tem impacto direto na qualidade dos serviços prestados aos seus clientes. Com o tamanho e complexidade das redes de hoje, identificar esse impacto é tarefa muito mais complicada sem a ajuda certa.