Warum kann eine Dateiübertragung unter Windows furchtbar langsam sein, unter Linux aber schnell?

Warum kann eine Dateiübertragung unter Windows furchtbar langsam sein, unter Linux aber schnell?

Mir ist klar, dass diese Frage möglicherweise unmöglich zu beantworten ist, aber hier ist sie:

Ich habe eine eingebettete Platine, für die ich jede Menge Software geschrieben habe. Dieser Platine kann über einen Webbrowser ein neues Firmware-Image gesendet werden (mit Image ist hier kein Bild gemeint, sondern ein Update der Software, die auf der Platine ausgeführt wird). Der Webbrowser wird auf einem normalen Computer ausgeführt und von der eingebetteten Platine bedient. Sie öffnen also einen Browser auf einem Computer, geben die IP-Adresse der eingebetteten Platine ein und die eingebettete Platine zeigt eine Seite an, auf der Sie ein neues Firmware-Image für diese eingebettete Platine auswählen können.

Ich habe das Ganze unter Linux entwickelt. Die Software für die eingebettete Platine und der verwendete Browser waren auf meinen Linux-Rechnern. Wenn ich versuche, das Ganze unter Windows zu wiederholen, ist es hundelangsam!

Betrachtet man es mit Wireshark, sendet der Windows-Rechner ein Paket mit neuen Firmware-Daten, die eingebettete Platine sendet 400 μs (vierhundert Mikrosekunden) später eine ACK. Der Windows-Rechner sendet sofort das nächste Paket und die ACK wird nach einigen hundert Mikrosekunden erneut zurückgegeben.

Das nächste Paket nach diesem Burst aus vier Paketen wird jedoch fünf Sekunden später gesendet und die schnelle Vier-Paket-Sequenz wird wiederholt.

Dies setzt sich fort, mit Bursts von vier Paketen und dann fünfsekündigen Pausen. Bei einer Datei von 586 KB wird es dadurch quälend langsam.

Wenn Sie die Datei mit einem Linux-Computer senden, dauert das Senden des gesamten Bildes einige Sekunden.

Ich habe es auf zwei Windows- und zwei Linux-Rechnern mit identischen Ergebnissen versucht. Ich habe Windows seit Jahren nicht mehr „richtig“ verwendet und kenne mich damit überhaupt nicht aus. Ich frage mich, ob es vielleicht ein Firewall-Problem ist (aber warum lässt sie dann Dinge durch, wenn auch langsam?).

Kann das bitte jemand erklären oder Vorschläge machen, warum das so ist? Ich würde meinem Kunden gerne sagen, er soll einfach Linux verwenden, aber ich glaube nicht, dass das gut ankäme! ;~)

Bearbeiten:

Ich habe PCAP-Dateien hinzugefügt, falls sie helfen. Bitte beachten Sie, dass ich das Windows-Programm mittendrin angehalten habe, da es so langsam ist. Das Linux-Programm schließt die Dateiübertragung ab. Langsamer Upload von Windows PCAP

Schneller Linux-Upload-PCAP

Antwort1

OK, habs rausgefunden. Ich habe die TCP-Win-Größe in meiner Software geändert. Ich habe sie erhöht und jetzt funktioniert es auf beiden Plattformen einwandfrei. Nur für den Fall, dass noch jemand auf so etwas stößt …

verwandte Informationen