ファイル転送が Windows ではひどく遅いのに、Linux では速いのはなぜでしょうか?

ファイル転送が Windows ではひどく遅いのに、Linux では速いのはなぜでしょうか?

これは答えるのが不可能な質問かもしれないとわかっていますが、答えてみましょう:

私は組み込みボードを持っていて、そのために大量のソフトウェアを書いています。このボードには、Web ブラウザー経由で新しいファームウェア イメージ (ここでのイメージは画像ではなく、ボードで実行されるソフトウェアの更新です) を送信できます。Web ブラウザーは通常のコンピューターで実行され、組み込みボードによって提供されます。つまり、コンピューターでブラウザーを開き、組み込みボードの IP アドレスを入力すると、組み込みボードは、この組み込みボードの新しいファームウェア イメージを選択できるページを提供します。

さて、私はこれを Linux 上で開発してきました。つまり、組み込みボード用のソフトウェア、つまり私が使用したブラウザは Linux マシン上にあったのです。これを Windows 上で繰り返そうとすると、ものすごく遅くなります。

Wireshark で確認すると、Windows マシンは新しいファームウェア データを含むパケットを送信し、組み込みボードは 400μs (400 マイクロ秒) 後に ACK を送信します。Windows マシンはすぐに次のパケットを送信し、数百マイクロ秒後に再び ACK が返されます。

ただし、この 4 パケット バーストの後の次のパケットは 5 秒後に送信され、高速の 4 パケット シーケンスが繰り返されます。

この状態が続き、4 パケットのバーストと 5 秒のギャップが続きます。586K のファイルがある場合、これは非常に遅くなります。

Linux マシンを使用してファイルを送信する場合、画像全体を送信するのに数秒かかります。

私はこれを 2 台の Windows マシンと 2 台の Linux マシンで試しましたが、結果は同じでした。私は何年も Windows を「適切に」使用しておらず、使い方がまったくわかりません。ファイアウォールの問題なのではないかと疑っています (しかし、それならなぜ、ゆっくりとはいえ、ファイルを通過させてしまうのでしょうか)。

どなたか、この件について何かおわかりになる方、または、なぜそうなるのかについて何か提案をいただけませんか? 顧客に Linux だけを使うように伝えたいのですが、うまくいかないと思います! ;~)

編集:

役に立つかもしれないので、pcap ファイルを追加しました。Windows 版は遅いので途中で停止したことに注意してください。Linux 版はファイル転送を完了します。 Windows アップロードが遅い pcap

Linux 高速アップロード pcap

答え1

わかりました。ソフトウェアの TCP Win サイズを変更しました。サイズを大きくしたら、両方のプラットフォームで正常に動作するようになりました。他の誰かがこのような問題に遭遇した場合に備えて...

関連情報