TCP慢速启动算法是许多单个文件传输缓慢的原因吗



我想到了tcp慢启动算法,以及在tcp/ip网络上传输许多文件时的一个常见问题。

如果您传输许多小文件(即大小:50kb,数量:10000),则所需时间将比同时传输相同数量的数据(50kb*10000=50000kb)要长得多。对我来说,这可能是一个原因,tcp启动缓慢是原因之一(当然还有其他一些东西,比如开销,…)

如果我正确理解慢启动,那么它会增加无需接收方确认即可传输的最大数据量。如果我们现在为每个文件建立一个新的连接,那么慢启动会在每次传输开始时导致低吞吐量,并且由于慢启动算法增加了吞吐量,因此我们的文件被传输,新的连接开始。因此,我们永远不会达到优化的吞吐率。另一方面,如果我们传输一个大文件,slowstart会优化未确认的最大数据量,因此我们可以达到更高的吞吐率。

这个假设正确吗?还有一个问题:对于c、c++和.net,slowstart的实现是一样的吗?

请不要把这看作"为什么我的文件传输很慢?"的重复,我想问慢启动算法是否是传输许多小文件很慢的原因。

不,这并不完全正确。慢速启动与连接有关,而不是通过同一连接发送的单个文件。只要建立了连接,在同一连接上发送一个大文件或10个小文件都无关紧要。

解决方案是明智地使用连接。如果您需要发送许多内容,请重用单个连接(HTTP1.1型号)

TCP协议的实现与应用程序的语言无关,它使用的是操作系统提供的相同协议栈。

最新更新