為什麼檔案傳輸在 Windows 上速度慢得可怕,但在 Linux 上速度卻很快?

為什麼檔案傳輸在 Windows 上速度慢得可怕,但在 Linux 上速度卻很快?

我意識到這可能是一個無法回答的問題,但這裡是:

我有一個嵌入式板,我為它編寫了很多軟體;該板可以透過網頁瀏覽器發送新的韌體映像(此處的圖像不是圖片,而是板上運行的軟體的更新)。 Web 瀏覽器在一般電腦上運作並由嵌入式板提供服務。因此,您在電腦上開啟瀏覽器,輸入嵌入式板的 IP 位址,嵌入式板會提供一個頁面,讓您為此嵌入式板選擇新的韌體映像。

現在,我一直在 Linux 上開發這個;我的意思是嵌入式板的軟體,因此我使用的瀏覽器已經在我的 Linux 機器上。當我嘗試在 Windows 上重複此操作時,速度太慢了!

用Wireshark來看,Windows機器發出一個包含新韌體資料的資料包,嵌入式板在400μs(四百微秒)後發出一個ACK。 Windows 機器立即發出下一個資料包,並且在幾百微秒後再次返回 ACK。

然而,此四資料包突發之後的下一個資料包將在五秒後發送,並且重複快速的四資料包序列。

這種情況繼續下去,有四個資料包突發,然後有五秒的間隙。當您有 586K 的檔案時,速度會變得非常慢。

如果使用 Linux 機器傳送文件,則傳送整個映像需要幾秒鐘的時間。

我在兩台 Windows 機器和兩台 Linux 機器上嘗試過他的方法,結果都一樣。我已經很多年沒有「正確」使用 Windows 了,而且我根本不知道如何解決它。我想知道這是否可能是防火牆問題(但為什麼它會讓東西通過,儘管很慢?)。

任何人都可以對此做出任何說明或就為什麼會這樣提出任何建議嗎?我很樂意告訴我的客戶只使用 Linux,但我認為這不會很好! ;~)

編輯:

我已經添加了 pcap 文件,以防它們有幫助。請注意,我中途停止了 Windows,因為它太慢了。 Linux下完成檔案傳輸。 Windows 上傳 pcap 速度慢

Linux快速上傳pcap

答案1

好吧,懷疑了。我的軟體中的 TCP Win 大小。我增加了它,現在在兩個平台上都運作良好。以防萬一其他人遇到這種事...

相關內容