我正在尝试将大型(50 MB - 32 GB)文件上传到Google.Drive。我正在使用google-api-dotnet,它提供上传逻辑和加密支持。主要问题是上传速度慢。
我浏览了api source code。每个文件都由块上传(我将块大小设置为4 MB)每个块都通过新的HttpRequestMessage实例上传。一旦api服务启动,就会创建HttpClient,并将其重用于所有请求。
上传速度为600 kbytes / s且稳定,而我的上行速度快10倍。
我使用Wireshark捕获了流量: 每个块被分成数百或数千个小TLS包。对于每个包装好的小TLS,预计会有确认。因此产生的速度非常低。
但是当我启动Fiddler代理时,速度变得和我的上行链路一样快。 TLS数据包并行传输速度非常快,稍后会收到确认:
我在5台PC上使用Win7尝试了我的代码,并且都显示出类似的低上传速度。但是当我尝试使用Win10 PC时 - 速度非常好。 我也尝试了Google.Drive客户端应用程序,它在速度方面遇到了同样的问题。 我试图搜索这种行为,但我没有找到任何东西。
答案 0 :(得分:1)
问题很可能是Google链接,而不是其他任何问题。我已经上传到带有chrome的谷歌驱动器的东西,除了我的上传链接是巨大的(50mbps以上),谷歌似乎有限。
答案 1 :(得分:0)
SSLv3 / TLSv1的最大记录大小为16kB,因此您可以与旧版本握手。我认为谷歌针对用户SPDY / HTTP2 protocole进行了优化,可以在同一个连接中并行发送。也许你的客户不是......