Por que uma transferência de arquivos pode ser terrivelmente lenta no Windows, mas rápida no Linux?

Por que uma transferência de arquivos pode ser terrivelmente lenta no Windows, mas rápida no Linux?

Sei que essa pode ser uma pergunta impossível de responder, mas aqui vai:

Eu tenho uma placa incorporada para a qual escrevi muitos softwares; esta placa pode receber uma nova imagem de firmware (a imagem aqui não é uma imagem, mas uma atualização do software que será executado na placa) através de um navegador web. O navegador da web é executado em um computador comum e é servido pela placa incorporada. Então, você abre um navegador em um computador, digita o endereço IP da placa incorporada e a placa incorporada exibe uma página para permitir que você escolha uma nova imagem de firmware para esta placa incorporada.

Agora, estou desenvolvendo isso no Linux; Quero dizer, o software da placa incorporada e, portanto, o navegador que usei está em minhas máquinas Linux. Quando tento repetir isso no Windows, fica muito lento!

Olhando para isso com o Wireshark, a máquina Windows envia um pacote contendo novos dados de firmware, a placa embarcada envia um ACK 400μs (quatrocentos microssegundos) depois. A máquina Windows envia imediatamente o próximo pacote e o ACK, novamente, é retornado após algumas centenas de microssegundos.

No entanto, o próximo pacote após esta explosão de quatro pacotes é enviado cinco segundos depois, e a sequência rápida de quatro pacotes é repetida.

Isso continua, com rajadas de quatro pacotes e intervalos de cinco segundos. Quando você tem um arquivo de 586K, isso o torna dolorosamente lento.

Se você enviar o arquivo usando uma máquina Linux, levará alguns segundos para enviar a imagem inteira.

Eu tentei o dele em duas máquinas Windows e duas máquinas Linux com resultados idênticos. Não uso o Windows "corretamente" há anos e não sei como lidar com isso. Estou me perguntando se pode ser um problema de firewall (mas então por que isso permitiria a passagem de coisas, embora lentamente?).

Alguém pode esclarecer isso ou fazer alguma sugestão sobre por que seria, por favor? Eu adoraria poder dizer ao meu cliente para usar Linux, mas não acho que isso cairia bem! ;~)

Editar:

Adicionei arquivos pcap caso eles ajudem. Observe que parei o Windows no meio do caminho, pois ele é muito lento. O Linux completa a transferência do arquivo. Carregamento lento do Windows pcap

Linux upload rápido pcap

Responder1

OK, percebi. Eu era o tamanho TCP Win no meu software. Aumentei e agora funciona bem em ambas as plataformas. Caso alguém mais se depare com esse tipo de coisa...

informação relacionada