损坏的文件复制 Windows 2012 -> VPN -> Windows 2012

损坏的文件复制 Windows 2012 -> VPN -> Windows 2012

我在通过 Cisco ASA5505 VPN 将文件从一台 Windows 2012 服务器复制到另一台服务器时遇到问题。我在 Win2008 服务器上也做过类似的设置,但从未遇到过问题(这端是同一个 ASA5505)

对于大约每 20 个文件(每天一次或两次)中大约有 1 个文件(大小约为 20MB 或更大),我往往会遇到数据损坏的情况。

损坏通常表现为约 5 个损坏区域(有时全部位于文件的 1MB 部分内),每个区域约 12 个字节长,整个文件总计约 60 个损坏字节。文件大小不变。

我已经在本机 SQLServer log-ship-copy 和 robocopy 中看到了这种情况。

与此相关的是,当我使用 Windows 拖放复制 40GB 文件时,复制通常在 15-30GB 左右后失败(或复制时出现一些损坏)。当我复制 Win2012 -> VPN -> SBS2011,然后复制 SBS2011 -> Win2012 时,这种情况似乎不会发生。

ASA5505 上似乎未启用压缩。标准 NetMonitor SMBErrors 跟踪中未发现任何错误。

答案1

这是 VPN(或网络 - TBC)的问题,而不是 Windows 的问题。

以下是我发现的方法。

在 VPN 两端运行 Microsoft 网络监视器后,我成功捕获了与损坏文件内容相关的 TCP/IP 数据包。在远程端捕获的数据包没有损坏。在目标端捕获的数据包已损坏。

为了找到坏的网络数据包,我十六进制转储了文件的正确版本和错误版本,然后使用 KDiff3 比较十六进制。然后,我在 NetMonitor 捕获中搜索了文件损坏前出现的 4 字节十六进制模式。我找不到这个模式,所以我在损坏后尝试了另一个模式,找到了它,然后通过字节向后追溯到有问题的块(第一个模式跨越了数据包边界)。

相关内容