通过多个套接字传输文件是否比仅使用一个套接字更快?
Is transmitting a file over multiple sockets faster than just using one socket?
在这个旧的 project(从 2002 年开始)中,它说如果你将一个文件分成多个块,然后使用不同的套接字传输每个块,它会比整体传输快得多使用一个插座。我还记得(很多年前)读过一些下载管理器也使用这种技术。这有多准确?
鉴于具有大 windows 或小 RTT 的单个 TCP 连接可以使任何网络饱和 link,我看不出您期望从多个 TCP 会话中获得什么好处。每个新片段都将以慢启动开始,因此传输速率低于已建立的连接。
TCP 已经有了用于高吞吐量、高延迟连接 ("window scale option") 和处理数据包丢失的代码。尝试通过并行连接对此进行改进通常会产生更多失败案例和增加数据包丢失的负面影响(由于单个连接上的 TCP 可以管理的拥塞)。
多个 TCP 会话仅在您从 不同的 对等点同时获取并且网络瓶颈在您的本地网络之外(如 bittorrent)或服务器正在使用带宽时才有用每个连接的限制(此时您正在优化服务器,而不是 TCP 或网络)。
在这个旧的 project(从 2002 年开始)中,它说如果你将一个文件分成多个块,然后使用不同的套接字传输每个块,它会比整体传输快得多使用一个插座。我还记得(很多年前)读过一些下载管理器也使用这种技术。这有多准确?
鉴于具有大 windows 或小 RTT 的单个 TCP 连接可以使任何网络饱和 link,我看不出您期望从多个 TCP 会话中获得什么好处。每个新片段都将以慢启动开始,因此传输速率低于已建立的连接。
TCP 已经有了用于高吞吐量、高延迟连接 ("window scale option") 和处理数据包丢失的代码。尝试通过并行连接对此进行改进通常会产生更多失败案例和增加数据包丢失的负面影响(由于单个连接上的 TCP 可以管理的拥塞)。
多个 TCP 会话仅在您从 不同的 对等点同时获取并且网络瓶颈在您的本地网络之外(如 bittorrent)或服务器正在使用带宽时才有用每个连接的限制(此时您正在优化服务器,而不是 TCP 或网络)。