C#HttpClient缓慢上传速度

我正在尝试将大型(50 MB到32 GB)的文件上传到Google.Drive。我正在使用提供上传逻辑和加密支持的google-api-dotnet。主要的问题是上传速度很慢。

我通过api source code查看。每个文件都是通过chunks上传的(我将块大小设置为4 MB)每个块通过新的HttpRequestMessage实例上传。一旦api服务启动并重用所有请求,就会创建HttpClient。

上传速度为600 kbytes / s,而且我的上行速度是10倍。

我用Wireshark捕获了流量:
 
每个块被分成数百或数千个小的TLS数据包。并且对于每个小的TLS包装预期确认。所以结果的速度非常低。

但是,当我启动Fiddler代理服务器时,速度会像上行链路那样快。
TLS数据包并行进行得非常快,后续接收到确认信息:

我用Win7在5台PC上试过我的代码,并且都显示出类似的低速上传速度。但是当我尝试Win10 PC – 速度非常好。
我也尝试过Google.Drive客户端应用程序,并且速度相同。
我试图搜索这个行为,但我没有找到任何东西。

>为什么4 MB的块分为4 KB TLS数据包?可以增加TLS数据包的大小吗?
>如何使Fiddler的TLS数据包并行发送?
>还是有其他增加上传速度的方法?

这是很有可能的问题是谷歌链接,而不是其他任何事情。我已经将东西上传到谷歌驱动器与铬,除了我的上传链接是巨大的(50mbs up),谷歌似乎有限。
翻译自:https://stackoverflow.com/questions/33857823/c-sharp-httpclient-slow-uploading-speed

转载注明原文:C#HttpClient缓慢上传速度