損壞的檔案複製 Windows 2012 -> VPN -> Windows 2012

損壞的檔案複製 Windows 2012 -> VPN -> Windows 2012

我在透過 Cisco ASA5505 VPN 將檔案從一台 Windows 2012 伺服器複製到另一台伺服器時遇到問題。我對 Win2008 伺服器進行了類似的設置,但從未發現過問題(此端相同的 ASA5505)

對於大約每 20 個大約 20MB 或更多的檔案(每天一次或兩次)中的大約 1 個,我傾向於發生資料損壞。

損壞往往以大約 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 位元組十六進位模式。我找不到這個模式,所以我在損壞後嘗試了另一種模式,找到了它,然後向後通過位元組到有問題的區塊(第一個模式跨越了資料包邊界)。

相關內容