OK, sussed isso. Eu era o tamanho do TCP Win no meu software. Eu aumentei e funciona bem em ambas as plataformas agora. Apenas no caso de alguém mais se deparar com esse tipo de coisa ...
Eu percebo que isso pode ser uma pergunta impossível de responder, mas aqui vai:
Eu tenho uma placa incorporada para a qual escrevi uma carga de software; esta placa pode ser enviada uma nova imagem de firmware (imagem aqui não é uma imagem, mas uma atualização do software que será executado na placa) através de um navegador da web. O navegador da Web é executado em um computador comum e é servido pela placa incorporada. Assim, você abre um navegador em um computador, digita o endereço IP da placa embarcada e a placa incorporada fornece uma página para permitir que você escolha uma nova imagem de firmware para essa placa incorporada.
Agora, desenvolvi isso no Linux; Quero dizer, o software para a placa embarcada e, portanto, o navegador que usei, esteve em minhas máquinas Linux. Quando tento repetir isso no Windows, é um cachorro lento!
Olhando para ele 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 do Windows envia imediatamente o próximo pacote e o ACK, novamente, é retornado novamente após algumas centenas de microssegundos.
No entanto, o próximo pacote após este burst de quatro pacotes é enviado cinco segundos depois, e a seqüê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 fica muito lento.
Se você enviar o arquivo usando uma máquina Linux, levará alguns segundos para enviar a imagem inteira.
Eu tentei o seu em duas máquinas Windows e duas máquinas Linux com resultados idênticos. Eu não tenho usado o Windows "corretamente" em anos e eu não sei o meu caminho em torno de tudo isso. Eu estou querendo saber se pode ser um problema de firewall (mas por que isso deixaria as coisas passarem, ainda que lentamente?).
Alguém pode lançar alguma luz sobre isso ou fazer alguma sugestão sobre o porquê seria por favor? Eu adoraria poder dizer ao meu cliente apenas para usar o Linux, mas não acho que isso vá cair bem! ; ~)
Editar:
Eu adicionei arquivos pcap no caso de eles ajudarem. Por favor note, eu parei o Windows uma parte como é tão lento. O Linux conclui a transferência de arquivos. Windows carrega lentamente o pcap
OK, sussed isso. Eu era o tamanho do TCP Win no meu software. Eu aumentei e funciona bem em ambas as plataformas agora. Apenas no caso de alguém mais se deparar com esse tipo de coisa ...