【问题标题】:Fastest way to transfer files between two adjacent computers [closed]在两台相邻计算机之间传输文件的最快方法[关闭]
【发布时间】:2012-05-28 16:49:50
【问题描述】:
我有两台相邻的计算机,都运行最新版本的 Ubuntu。两台电脑都有:
- 多个 USB 2.0 端口
- RJ-45 连接
- 5400RPM 硬盘
- Express Card 卡槽
- PCMCIA II 型
我想在规定的时间内传输尽可能多的数据。
什么是最快的物理媒体在两台计算机之间传输数据而不交换硬盘驱动器?
传输高熵数据的最快协议(不一定基于 TCP/IP)是什么?如果是 TCP/IP,需要进行哪些调整以获得最佳性能?
【问题讨论】:
标签:
networking
file-upload
file-io
ftp
file-transfer
【解决方案1】:
首先,RJ-45 不是一种介质,而只是一种连接器类型。因此,您的以太网连接可以是 10BASE-T (10 Mbit) 和 10GBASE-T (10 Gbit) 之间的任何值。使用以太网时,链路速度由双方支持的最低通用速度等级定义。
USB Hi-Speed 模式指定为 480 Mbit/s (60 MByte/s),但典型的最大速度接近 (40 MByte/s ) 由于协议开销。此速度仅适用于直接 USB 主机到客户端的连接,但您有 2 个 USB 主机,因此您需要在中间使用某种设备来处理客户端部分。我想这也会降低可实现的数据速率。
通过以太网,您拥有一个简单的即插即用技术和众所周知的(套接字)API。传输速度取决于链接类型:
最大。 TCP/IP 数据传输速率(取自here):
- 快速以太网(100Mbit):11.7 MByte/s
- 千兆以太网(1000Mbit):117.6 MByte/s
【解决方案2】:
USB 2.0 规范导致 480 Mbit/s 的速率,即 60 MB/s。
以太网取决于所使用的网卡 (NIC),并在较小程度上取决于所使用的布线。如果两个 NIC 均为 1Gbit/s,它们都将自动协商为 1 Gbit/s,转换为 125 MB/s。如果一个或两个 NIC 仅支持 100 Mbit/s,那么它们将自动协商到 100 Mbit/s,您的速度将为 12.5 MBytes/s。
无线也是一个选项,802.11n 支持高达 600 Mb/s (75 MB/s) - 比 USB 2.0 更快。
USB 3.0 是最新的 USB 规范,最高支持 5 Gb/s (625 MB/s)。
当然,实际吞吐量会有所不同,并取决于许多其他因素,例如布线、干扰、延迟等。
TCP 与 UDP 协议取决于您需要的连接类型以及应用程序处理丢弃数据包的能力等。TCP 建立初始连接的初始成本较高,但传输可靠且运行时间长交易可能是最快的。 UDP 创建连接的成本更低,但您可能会丢弃数据包。
最大传输单元 (MTU) 是一个可以对基于 IP 的网络产生重大影响的参数。选择正确的 MTU 取决于几个因素。互联网上有很多关于这方面的文章。
其他调整是基本的,例如关闭已知的聊天应用程序,如果您在 Windows 上,则关闭 netbios 服务等(谷歌上很多点击以加快 tcp)。