Wireshark – o que aconteceu?

Wireshark – o que aconteceu?

Esse problema do Wireshark está me deixando louco há algumas horas. O que está acontecendo aqui?

192.168.2.100 é um servidor Apache que atende um arquivo estático.

192.168.2.196 é um cliente incorporado que baixa o arquivo.

Parece que 192.168.2.196 está baixando o arquivo com alegria e então ele simplesmente começa a ignorar 192.168.2.100 e, portanto, a conexão para e eventualmente termina?

Isso está correto e por que o cliente pode estar fazendo isso?

Imagem Wireshark - clique aqui

Responder1

Os sintomas indicam claramente que há um gargalo no processamento de recebimento do lado do cliente.

O rastreamento mostra que o buffer de recebimento na pilha de rede do cliente (aparentemente LwIP) está sendo preenchido - Especificamente, o tamanho da janela nas confirmações do cliente está diminuindo à medida que uma série de pacotes são recebidos do servidor, até que o buffer de recebimento seja completamente preenchido e um " ZeroWindow" é enviado do cliente para o servidor para solicitar que pare de enviar dados.

Isso normalmente indica que a leitura do aplicativo do soquete não está drenando o buffer de recebimento rápido o suficiente para permitir que a pilha da rede acompanhe os pacotes que chegam.

As retransmissões frequentes do servidor, combinadas com ACKs atrasados ​​do cliente, sugerem que as condições no cliente também estão impactando negativamente o processamento de pacotes recebidos de nível inferior na pilha da rede.

Você mencionou que o host do cliente era um dispositivo incorporado e também comentou que seu aplicativo parece estar bloqueado em lwip_read(). A espera sugere que outro recurso de E/S ou CPU ou gargalo de agendamento pode estar impedindo que seu thread de leitura obtenha tempo de CPU suficiente para acompanhar a transferência de arquivos. Contudo, os ACKs atrasados ​​sugerem que pode haver um problema mais amplo. Sem saber mais sobre o dispositivo incorporado, é difícil solucionar problemas ainda mais.

O LwIP também tem restrições especiais relacionadas ao atendimento de chamadas de rede que podem ser aplicadas à sua implementação - Consulteesta página de armadilhas do LwIP.

Espero que esta informação seja útil para resolver seu problema.

informação relacionada