Desempenho HTTP em links de alta latência

1

Tenho usuários que usaram anteriormente o FTP para transferências de arquivos em caminhos de alta latência para o servidor local. Eles mudaram para HTTP para essas transferências (não por opção) e o desempenho da transferência de arquivos é seriamente degradado. O tamanho da janela TCP para os servidores dos usuários foi otimizado para FTP e a latência da rede.

Dependendo da implementação do HTTP no servidor de origem (ou seja, serviço da web), é possível que o HTTP use ou efetue um tamanho pequeno / padrão da janela TCP?

    
por Chuck N. 09.02.2015 / 18:18

1 resposta

0

Não, HTTP e FTP transferem arquivos via TCP basicamente puro. O mesmo ajuste TCP que funcionou para FTP deve funcionar para HTTP.

O problema de desempenho que você está vendo provavelmente está no cliente HTTP ou nas implementações de servidor envolvidas; eles provavelmente não estão usando o TCP de forma eficiente. Por exemplo, boas implementações são cuidadosas ao usar buffers contínuos para sempre manter o pipe TCP cheio. As implementações ingênuas só entregam um buffer de cada vez ao TCP e aguardam que ele seja totalmente enviado antes de entregar um novo. Isso faz com que o pipe continue drenando parcialmente entre buffers, o que é uma das piores coisas que você pode fazer para links de alta latência. Se você tivesse um cliente FTP ou servidor que cometeu esse mesmo erro, seu desempenho seria tão ruim quanto um cliente ou servidor HTTP que cometeu esse erro.

Observe que este é apenas um exemplo de como uma implementação ingênua pode não estar usando o TCP de maneira eficiente; Eu não estou necessariamente dizendo que isso é o que está acontecendo no seu caso, mas é uma possibilidade definida.

    
por 09.02.2015 / 18:28

Tags