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

Publicados: 2021-10-07

Latência de 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 a viagem de ida e volta - o tempo que leva para uma solicitação ser registrada, processada e, em seguida, recebida pelo usuário, onde é decodificada.

O termo “baixa latência” refere-se a atrasos na 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 em uma rede. Alguns são pagos e outros 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 do mundo.

Ele o ajudará 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 o tráfego da rede em um microscópio, filtrando e detalhando para encontrar a origem dos problemas, auxiliando na análise da rede e, em última análise, na segurança da rede.

O que causa atraso na rede?

Algumas das principais razões para a lenta conectividade de rede, incluindo:

  • Alta latência
  • Dependências de aplicativos
  • Perda de pacote
  • 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.

Examinando com Wireshark

Alta latência

A alta latência se refere ao tempo que os dados levam para transitar de um ponto de extremidade para outro. O impacto da alta latência nas comunicações de rede é enorme. No diagrama abaixo, vemos o tempo de ida e volta do download de um arquivo em um caminho de alta latência como exemplo. O tempo de latência de ida e volta pode frequentemente exceder um segundo, o que é inaceitável.

wirehark4

  • 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 essa é a causa do desempenho defeituoso da rede de comunicações do Transmission Control Protocol (TCP). O TCP é usado em várias aplicações, 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 ter um desempenho mais eficaz em canais de alta latência, principalmente quando os hosts estão usando o Windows XP.

Dependências de aplicativos

Alguns aplicativos dependem de outros aplicativos, processos ou comunicações do 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 do www.espn.com.

wirehark-3

Na figura acima, a janela Distribuição de carga HTTP no Wireshark exibe uma lista de todos os servidores usados ​​pela página inicial www.espn.com.

Perda de pacote

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, pacotes perdidos causam retransmissões, aumentando a probabilidade 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 os problemas de rede.

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. Downloads de arquivos grandes, que de outra forma deveriam fluir facilmente pela rede, sofrem significativamente com a perda de pacotes.

Qual é a aparência de 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 os 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 receptor não confirmou o recebimento de um pacote de dados, o remetente atinge o tempo limite e retransmite o pacote de dados.

wirehark

O Wireshark indica que ocorreu o congestionamento da 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 pacote e atraso significativo em uma rede.

Para melhorar a velocidade da rede, é essencial identificar o local exato da perda de pacotes. Quando ocorre a perda de pacotes, movemos o Wireshark pelo caminho até que não haja mais perda de pacotes visível. Estamos "upstream" do ponto de entrega de pacotes neste momento, portanto, sabemos onde concentrar nossos esforços de depuração.

Dispositivos de interceptação

Os 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 vinculação. Por exemplo, se a priorização de tráfego estiver habilitada, podemos testemunhar a latência extra injetada em um fluxo com um nível de baixa 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 com base em TCP da rede. Vamos começar definindo cada uma dessas janelas e seu impacto na largura de banda da rede.

Janela Deslizante

Conforme 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 perda de transmissões na rede, grandes 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.

Janela do receptor

A janela do receptor da pilha TCP é um espaço de buffer. Quando os dados são recebidos, eles são armazenados neste espaço de buffer até que um aplicativo os pegue. A janela do receptor é preenchida quando um aplicativo não acompanha a taxa de recepção, levando a um cenário de “janela zero”. Toda a transmissão de dados para o host deve ser interrompida quando um receptor anunciar 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.

wirehark2

A imagem acima exibe 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 continuamente durante uma comunicação de rede íntegra 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 receptor. 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 da 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 grandes quantidades de dados e, se possível, recuperar dados da janela do receptor.

Empacotando

Analisamos 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 exatamente como os raios X, e as varreduras CAT oferecem visibilidade do corpo humano para diagnósticos precisos e imediatos. Essa ferramenta se tornou 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.