从 XP 到 Windows 2008 R2 的 SMB 访问

从 XP 到 Windows 2008 R2 的 SMB 访问

事情是这样的...我从 Windows XP 客户端到 Windows 2008R2 服务器的文件复制速度非常慢。以下是事实:Windows XP 到 Windows 2K3:快 Windows XP 到 Windows 2K8:非常慢 Windows 7 到 Windows(任何):快

尽管显而易见的解决方案是升级到 Windows 7,但是我们有 900 台台式机,因此这不是短时间内的选择。

我已经尝试了所有方法:禁用 SMB2.0、禁用安全签名、更改 TCP 窗口大小、禁用 W2K8 自动调整、升级驱动程序等。

我们消除了网络;服务器和客户端都连接到同一个核心交换机(无跳跃、无路由器、相同的 VLAN)。

使用数据包捕获实用程序监控网络后,我们发现 W2K8 和 XP 计算机之间交换的 SMB 数据包非常小(256 字节);尽管 MTU 设置正确(1500),并且没有任何碎片。事实上,这些 SMB 数据包在 IP 数据报上显示窗口为 65535 或接近。

使用相同应用程序制作的相同跟踪,但不是使用 W2K8 共享,而是使用 Windows XP 共享(速度很快),显示 4096 字节的 SMB 数据包。如有必要,我可以发布跟踪。

那么,为什么 XP->W2K8 协商安排了 24 字节的 SMB 负载,而 XP->XP 协商安排了 4096 个 SMB 数据包呢?

有什么想法吗?我缺少这些……

答案1

解决了!

机会锁被禁用。这导致预读缓存无法工作,并且交换的 SMB 数据包非常小。

启用机会锁后,我们会看到 4096 字节(4K)的 SMB 数据包,这是 NTFS 块的大小。

现在一切都好。

相关内容