我試圖上傳大(50 MB - 32 GB)文件到Google.Drive。我正在使用提供上傳邏輯和加密支持的google-api-dotnet。主要問題是上傳速度緩慢。C#HttpClient緩慢上傳速度
我通過api查看source code。每個文件都通過塊上傳(我將塊大小設置爲4 MB)每個塊都通過新的HttpRequestMessage實例上傳。一旦api服務啓動並重新用於所有請求,就會創建HttpClient。
上傳速度爲600 kbytes/s,穩定,而我的上傳速度快了10倍。
我用Wireshark捕獲流量: 每個塊被分成幾百或幾千個小TLS包。對於每個小型TLS包裝,預計會有確認。所以最終的速度非常低。
但是當我開始Fiddler代理時,速度變得和我的上行鏈路一樣快。 的TLS數據包正在並行非常快,確認稍後接收:
我想我在5 PC的代碼Win7和所有表現出類似的低上傳速度。但是當我在Win10 PC上試用時 - 速度非常好。 另外我嘗試了Google.Drive客戶端應用程序,它的速度也一樣。 我試圖搜索這種行爲,但我沒有找到任何東西。
- 爲什麼4 MB的塊被分成4 KB的TLS包?我可以增加TLS數據包大小嗎?
- 如何讓TLS數據包與Fiddler並行發送?
- 或者還有其他的方法來提高上傳速度嗎?
我不知道這是否是在https://ask.wireshark.org/questions/38768/slow-upload-speed-from-windows-stations-to-ssl-hosts中描述的問題的變體,其中某些軟件( Fiddler)正在解決,但你使用HttpClient不是。 –
我會嘗試https://github.com/Redth/HttpTwo –
我面臨同樣的問題。你有沒有發現任何解決這個問題? – Mayuresh