并行 TCP 连接的数据传输速度较慢

Posted

技术标签:

【中文标题】并行 TCP 连接的数据传输速度较慢【英文标题】:Slower data transfer with parallel TCP connections 【发布时间】:2016-10-12 19:02:18 【问题描述】:

我使用 TCP AsyncSocket 通过本地连接(使用主机作为本地 IP 地址)将大文件从一台机器传输到另一台机器。

首先,我为单个 TCP 套接字连接进行了设置,感觉数据传输速度很慢。大约 1mb/秒。

为了让它更快,我创建了 10 个 TCP 套接字(在不同线程上的不同端口上连接)并开始同时读取文件分区。但这没有任何区别。传输速率与单个 TCP 套接字连接的传输速率几乎相同(甚至更慢)。

有什么想法吗?为什么多个 TCP 套接字不并行传输数据?有什么方法或建议可以通过 TCP 快速传输文件?

【问题讨论】:

【参考方案1】:

仅当 I/O 通道未饱和且任务受单核限制时,并行化 I/O 操作才有帮助。

很可能,添加额外的 I/O 通道实际上会减慢速度,因为您现在有多个客户端在争夺稀缺资源。

你需要弄清楚的是你的瓶颈在哪里?只有量化了性能问题的实际原因,您才能解决它。

【讨论】:

谢谢。我尝试了 FTP、Netcat 等。我收到了几乎相似的数据传输速度。路由器和活动客户端数量等其他因素也略有不同。所以,没关系。

以上是关于并行 TCP 连接的数据传输速度较慢的主要内容,如果未能解决你的问题,请参考以下文章

Tcp/Udp 三次握手四次挥手

OpenMP 并行代码运行速度较慢

为啥我的 MATLAB 神经网络在使用并行处理时训练速度较慢?

Xcode 10 并行测试套件测试速度较慢,测试数量较少

OpenMP 中的 C++ 动态内存分配速度较慢,即使对于非并行代码段也是如此

网络基础之 Http