我看到很多关于通过网络复制大文件的问题,例如如何通过 RDP 更好地复制和粘贴大文件?,但我问的是稍微不同的事情。此外,不涉及远程桌面。
我和我的同事在同一个域、同一个网络,甚至可能是同一个子网(对网络了解不多,但他离我只有几个隔间,如果这有帮助的话)我们正在将一个大文件夹(总共约 20GB,最大文件大小为 16GB)从他那里传输给我。
为了回答这个问题,我们假设:
- 我们有相同的硬件,运行 Win7 64 位
- 我们的电脑在传输过程中基本上处于空闲状态
- 我们正在使用 Windows 的原生复制/粘贴功能(无第三方工具)
现在,哪个更快:
- 我将文件夹从他的共享文件夹“拉”到我的本地文件夹中,或者
- 他将文件夹从本地文件夹“推送”到我的共享文件夹中,或者
- 这两个选项实际上是一样的吗?
答案1
在理论,它们应该是相同的,因为它们使用相同的协议(SMB)来发送数据。
然而,实际上,有很多因素会影响网络传输,尤其是当涉及大量文件或非常大的文件(或两者兼有)时。
在最低级别,硬盘的读取速度总是比写入速度快。因此,通过提取数据,您将无需等待远程硬盘发送数据。远程硬盘将把数据读入缓存并等待您的机器检索数据。
SMB 也会导致速度变慢。如果在“SMB:C NT transact - Notify Change”数据包中出现延迟的 TCP/IP 确认(也称为 TCP ACK),则可能会出现 SMB 性能变慢的情况。默认情况下,只要 SMB 使用安全签名,就会发生此行为。如果配置了安全签名,则重定向器必须同步处理 SMB。重定向器必须等到当前 SMB 命令完全处理完毕后才能继续执行下一个命令。重定向器会一直等到收到来自服务器的 TCP/IP 确认。
因此,您可能会认为拉动更好。然而,情况并非总是如此。在某些情况下,尤其是在不可靠的网络上,推送实际上可以产生更好的性能。
更令人困惑的是,其他因素如总 RAM、病毒扫描程序、缓冲区大小、备份程序等都会对传输速度产生影响。
最后,仅有的确定哪个更快的方法是在你的机器上进行测试。