ZeroWindowProbe (Zero Window)
Abaixo um exemplo de como a sintaxe desse erro aparece:
Isso acontece quando o tamanho da Janela em uma máquina/servidor permanece em zero por um período de tempo especificado. Significa que o servidor não pode receber mais informações no momento e a transmissão TCP é interrompida até que possa processar as informações em seu buffer de recebimento. O TCP trabalha com MTU (Maximum Transfer Unit) Unidade Maxima de transferencia; que é quantos bytes um unico cabeçalho TCP transporta (Geralemente configurado para 1500), mas normalmente transporta menos. E o TCP Window, no protocolo TCP, orientado a conexão, estabelece um hand-shake para iniciar a transmissão. Precisa a cada “X” pacotes TCP enviar uma confirmação de que aquela sequencia foi enviada corretamente e que o transmissor pode enviar a proxima sequencia de pacotes TCP. Quando um dispositivo inicia uma conexão TCP com um servidor, ele informa ao dispositivo quantos dados pode receber pelo Tamanho da Janela. Em muitas máquinas com sistema Windows, esse valor é de cerca de 64512 bytes. À medida que a sessão TCP é iniciada e o dispositivo começa a enviar dados, o servidor diminui o tamanho da janela à medida que esse buffer é preenchido. Ao mesmo tempo, o servidor está processando os dados no buffer e os esvaziando, abrindo espaço para mais dados. Através dos quadros TCP ACK, o servidor informa o dispositivo de quanto espaço há nesse buffer. Se o tamanho da janela TCP cair para 0, o servidor não poderá receber mais dados até que processe e abra o buffer novamente. Nesse caso, o Protocolo alertará uma “Janela Zero” (ZeroWindowProbe), como na imagem acima. É como se o servidor estivesse dizendo: Ei!, pare de enviar dados pois não tenho buffer/memória para processá-los na velocidade que voce está enviando! Apesar do transmisor e receptor ter negociado uma janela X de dados até o ACK o receptor não está dando conta do recado e não está processando dados com velocidade suficiente. A mensagem adicional que encontramos [TCP Previous segment lost] ocorre em consequencia informando que o Server não viu uma mensagem que deveria ter visto.
Possíveis causas
- Limitação de memória RAM alocada para o protocolo
- Proxy das sessões TCP
- Processamento físico do Servidor
Possível solução
As soluções apresentadas abaixo cabem ao cliente e ao fornecedor da plataforma de rastreamento ou monitoramento verificarem:
- Ajustar o sistema operacional para dedicar mais memória RAM ao TCP.
- Garantir que apenas o Firewall (e nada mais) esteja tentando fazer proxy das sessões TCP.
- Verificar se o Software que roda no Servidor está configurado para usar uma quantidade limitada de RAM no sistema operacional host, se for o caso, com o aumento do numero de conexões e mantendo sempre a mesma quantidade de RAM disponivel, haveria menos recursos para o TCP.