Solução de problemas de latência de rede com Wireshark

A latência da rede é o atraso na transmissão de solicitações ou dados da origem ao destino em um ecossistema de rede. Vamos ver como você pode solucionar problemas de latência de rede.

Qualquer ação que exija o uso da rede, como abrir uma página da Web, clicar em um link ou abrir um aplicativo e jogar um jogo online, é chamada de atividade. A atividade de um usuário é a solicitação e o tempo de resposta de um aplicativo da Web é o tempo que leva para responder a essa solicitação.

Esse atraso de tempo também inclui o tempo que um servidor leva para concluir a solicitação. Como resultado, é definido como o ida e volta – o tempo que uma requisição leva para ser registrada, processada e então recebida pelo usuário, onde é decodificada.

O termo “baixa latência” refere-se a atrasos de transferência de dados que são relativamente curtos. Por outro lado, longos atrasos ou latência excessiva são indesejáveis, pois degradam a experiência do usuário.

Como corrigir a latência da rede?

Existem muitas ferramentas e softwares disponíveis na Internet para analisar e solucionar problemas de uma rede. Alguns são pagos, e alguns são gratuitos. No entanto, existe uma ferramenta chamada Wireshark, que é um aplicativo de código aberto e licenciado GPL usado para capturar os pacotes de dados em tempo real. O Wireshark é o analisador de protocolo de rede mais popular e comumente usado no mundo.

Ele irá ajudá-lo a capturar pacotes de rede e exibi-los em detalhes. Você pode usar esses pacotes para análise em tempo real ou offline, uma vez que ele captura os pacotes de rede. Este aplicativo permite que você examine seu tráfego de rede sob um microscópio, filtrando e detalhando-o para encontrar a origem dos problemas, auxiliando na análise de rede e, finalmente, na segurança da rede.

O que causa atraso na rede?

Alguns dos principais motivos para a conectividade de rede lenta, incluindo:

  • Alta latência
  • Dependências do aplicativo
  • perda de pacotes
  • Dispositivos de interceptação
  • Tamanhos de janela ineficientes

E neste artigo, examinamos cada causa de atraso de rede e como resolver os problemas com o Wireshark.

  10 ferramentas para transformar suas planilhas do Google em uma API

Examinando com o Wireshark

Alta latência

Alta latência refere-se ao tempo que leva para os dados transitarem de um endpoint para outro. O impacto da alta latência nas comunicações de rede é enorme. No diagrama abaixo, vemos o tempo de ida e volta de um download de arquivo em um caminho de alta latência como exemplo. O tempo de latência de ida e volta geralmente pode exceder um segundo, o que é inaceitável.

  • Vá para Estatísticas do Wireshark.
  • Selecione a opção Gráfico de fluxo TCP.
  • Escolha o gráfico de tempo de ida e volta para descobrir quanto tempo leva para o download de um arquivo.

O Wireshark é usado para calcular o tempo de ida e volta em um caminho para ver se esta é a causa do desempenho da rede de comunicação do protocolo de controle de transmissão (TCP) com falha. O TCP é usado em vários aplicativos, incluindo navegação online, transmissão de dados, protocolo de transferência de arquivos e muitos outros. Em muitos casos, o sistema operacional pode ser ajustado para funcionar de forma mais eficaz em canais de alta latência, especialmente quando os hosts estão usando o Windows XP.

Dependências do Aplicativo

Alguns aplicativos dependem de outros aplicativos, processos ou comunicações de host. Suponha que seu aplicativo de banco de dados, por exemplo, dependa da conexão com outros servidores para buscar itens do banco de dados. Nesse caso, o desempenho lento nesses outros servidores pode prejudicar o tempo de carregamento do aplicativo local.

Considere, por exemplo, uma experiência de navegação na Web em que o servidor de destino se refere a vários outros sites. Por exemplo, para carregar a página principal do site, www.espn.com, você deve primeiro visitar 16 hosts que fornecem anúncios e conteúdo para a página principal www.espn.com.

Na figura acima, a janela HTTP Load Distribution no Wireshark exibe uma lista de todos os servidores usados ​​pela página inicial www.espn.com.

perda de pacotes

Um dos problemas mais comuns que encontro nas redes é a perda de pacotes. A perda de pacotes ocorre quando os pacotes de dados não são entregues corretamente do remetente ao destinatário pela Internet. Quando um usuário visita um site e começa a baixar os elementos do site, os pacotes perdidos causam retransmissões, aumentando a necessidade de baixar os arquivos da web e retardando o processo geral de download.

Além disso, quando um aplicativo usa TCP, os pacotes ausentes têm um impacto particularmente negativo. Quando uma conexão TCP detecta um pacote descartado, a taxa de transferência diminui automaticamente para compensar problemas de rede.

  O Geek Squad pode reparar seu PS4?

Ele melhora gradualmente para um ritmo mais aceitável até que o próximo pacote seja descartado, resultando em uma redução significativa na taxa de transferência de dados. Os downloads de arquivos grandes, que deveriam fluir facilmente pela rede, sofrem significativamente com a perda de pacotes.

O que acontece quando um pacote é perdido? É discutível. A perda de pacotes pode assumir duas formas se o programa estiver operando via TCP. Em um exemplo, o receptor monitora pacotes com base em seus números de sequência e detecta um pacote ausente. O cliente faz três solicitações para o pacote ausente (confirmações duplas), resultando em um reenvio. Quando um remetente observa que um destinatário não confirmou o recebimento de um pacote de dados, o remetente expira e retransmite o pacote de dados.

O Wireshark indica que ocorreu um congestionamento de rede e várias confirmações causam a retransmissão do tráfego problemático codificando-o por cores. Um alto número de confirmações duplicadas indica perda de pacotes e atraso significativo em uma rede.

Para melhorar a velocidade da rede, é fundamental identificar o local exato da perda de pacotes. Quando ocorre a perda de pacotes, movemos o Wireshark pelo caminho até que nenhuma perda de pacote seja visível. Estamos “upstream” do ponto de entrega do pacote neste momento, então sabemos onde focar nossos esforços de depuração.

Dispositivos de interceptação

Guardas de tráfego de rede são dispositivos de interconexão que fazem escolhas de encaminhamento, como switches, roteadores e firewalls. Quando ocorre perda de pacotes, esses dispositivos devem ser investigados como um motivo provável.

A latência pode ser adicionada ao caminho por esses dispositivos de ligação. Por exemplo, se a priorização de tráfego estiver habilitada, podemos testemunhar uma latência extra injetada em um fluxo com baixo nível de prioridade.

Tamanhos de janela ineficientes

Além do sistema operacional da Microsoft, existem outras “janelas” na rede TCP/IP.

  • Janela Deslizante
  • Janela do Receptor
  • Janela de controle de congestionamento

Essas janelas juntas constituem o desempenho de comunicação baseado em TCP da rede. Vamos começar definindo cada uma dessas janelas e seu impacto na largura de banda da rede.

Janela Deslizante

À medida que os dados são confirmados, a janela deslizante é utilizada para transmitir os próximos segmentos TCP pela rede. O remetente recebe confirmações para fragmentos de dados transmitidos, a janela deslizante se expande. Desde que não haja transmissões perdidas na rede, maiores quantidades de dados podem ser transferidas. Quando um pacote é perdido, a janela deslizante diminui porque a rede não pode gerenciar o aumento da quantidade de dados na linha.

  Você tem que cancelar a WWE Network?

Janela do Receptor

A janela receptora da pilha TCP é um espaço de buffer. Quando os dados são recebidos, eles são armazenados nesse espaço de buffer até que um aplicativo os pegue. A janela do receptor fica cheia quando um aplicativo não acompanha a taxa de recepção, eventualmente levando a um cenário de “janela zero”. Toda transmissão de dados para o host deve ser interrompida quando um receptor anuncia uma condição de janela zero. A taxa de transferência cai para zero. Um método conhecido como Window Scaling (RFC 1323) permite que um host aumente o tamanho da janela do receptor e diminua a probabilidade de um cenário de janela zero.

A imagem acima mostra um atraso de 32 segundos nas comunicações de rede devido a um cenário de janela zero.

Janela de congestionamento

A janela de congestionamento define a quantidade máxima de dados que a rede pode manipular. A taxa de transmissão de pacotes do remetente, a taxa de perda de pacotes da rede e o tamanho da janela do receptor contribuem para esse número. A janela de congestionamento aumenta constantemente durante uma comunicação de rede saudável até que a transferência seja concluída ou atinja um “teto” estabelecido pela integridade da rede. As capacidades de transmissão do remetente ou o tamanho da janela do destinatário. Cada nova conexão inicia o procedimento de negociação do tamanho da janela novamente.

Dicas para uma rede saudável

  • Aprenda a utilizar o Wireshark como uma tarefa de primeira resposta para descobrir de forma rápida e eficiente a origem do baixo desempenho.
  • Identifique a origem da latência do caminho de rede e, se possível, reduza-a a um nível aceitável.
  • Localize e resolva a origem da perda de pacotes.
  • Examine o tamanho da janela de transmissão de dados e, se possível, reduza-o.
  • Examine o desempenho dos dispositivos de interceptação para ver se eles adicionam latência ou descartam pacotes.
  • Otimize os aplicativos para que possam fornecer maiores quantidades de dados e, se possível, recuperar dados da janela do receptor.

Encerrando 👨‍🏫

Examinamos os principais motivos dos problemas de desempenho da rede, mas um fator que não deve ser esquecido é a falta de compreensão do comportamento das comunicações da rede. O Wireshark fornece visibilidade de rede como raios-X, e as varreduras CAT oferecem visibilidade do corpo humano para diagnósticos precisos e imediatos. Esta ferramenta tornou-se uma ferramenta vital para localizar e diagnosticar problemas de rede.

Agora você deve examinar e resolver o desempenho da rede por meio de vários filtros e ferramentas usando o Wireshark. 👍