gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 03:30:07 27 4
gpt4 key购买 nike

我想到了 tcp 慢启动算法和通过 tcp/ip 网络传输许多文件时的常见问题。

如果您传输许多小文件(即大小:50kb,数量:10,000),这将比一次传输相同数量的数据(50kb * 10,000 = 500,000 kb)花费更长的时间。对我来说,这可能是一个原因,tcp slowstart 是其中一个原因(当然还有其他的东西,比如开销……)。

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

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

请不要将此视为“为什么我的文件传输速度慢?”的重复,我在问慢启动算法是否是传输许多小文件速度慢的原因。

最佳答案

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

解决方案是明智地使用连接。如果您需要发送很多东西,请重用单个连接(模型 HTTP 1.1)。

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

关于.net - TCP 慢启动算法是许多单个文件传输缓慢的原因吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37484321/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com