Janela zero de TCP através de um proxy: identifique o receptor
Localize o controle de fluxo TCP no lado cliente ou servidor de um proxy antes de atribuir um download travado ao escalonamento de janela ou ao tamanho do buffer.
Um rastreamento de pacotes mostra TCP ZeroWindow. Antes de alterar um parâmetro do kernel, identifique a extremidade que anuncia o zero.
Essa extremidade descreve sua capacidade de recepção naquela conexão TCP. Ela não anuncia quanta largura de banda o proxy inteiro tem. Uma sonda de janela zero permite ao emissor descobrir se a capacidade anunciada mudou; as sondas sozinhas não provam perda de pacotes nem um proxy com defeito.
browser <-- TCP A --> proxy <-- TCP B --> website
São conversas TCP separadas. Suponha que o navegador pare de ler uma resposta grande e anuncie zero em A. O proxy pode acabar parando de esvaziar B à medida que seus próprios buffers enchem. Uma janela zero posterior em B pode ser consequência do cliente lento, não o problema original.
A situação inversa é possível durante um envio. Se a aplicação de destino parar de consumir dados, sua janela em B pode fechar. A pressão pode então viajar de volta para o cliente através dos buffers do proxy.
Coloque as observações em ordem
- Registre as extremidades da conexão e o sentido da transferência afetada.
- Identifique qual extremidade anunciou primeiro uma janela de recepção que encolhe ou é zero.
- Verifique se a aplicação dela estava lendo, parada em outra operação ou limitada por recursos.
- Compare o momento na outra conexão do proxy antes de atribuir a causa original.
Os rótulos de análise de janela do Wireshark são interpretações úteis da captura, não uma instrução para aumentar todo buffer de recepção. O escalonamento de janela também precisa ser interpretado à luz da negociação da conexão.
Testar outra extremidade de uma lista de proxies e ver a transferência se recuperar é uma evidência útil de que o caminho mudou. Por si só, porém, não prova que a implementação de TCP de um sistema operacional fosse defeituosa. Mantenha a explicação ligada ao processo receptor e à conexão onde a espera começou.