Переместив довольно большой объем данных (~ 1 ТБ) по сети из одного хранилища в другое, я заметил, что файл в целевой системе отличается от исходного.
Настройка: ПК (Windows 7 64) с Windows Sharing -> 1000BaseT сетевой коммутатор 2x 1G -> ПК (Windows XP) в качестве клиента Windows Sharing или NAS с Windows Sharing (возможно, Samba?) -> 1000BaseT сетевой коммутатор 1x 1G -> ПК (Windows 7 64) в качестве клиента общего доступа Windows
Процедура: Скопировать из общего ресурса с Total Commander - об ошибке не сообщается -> Синхронизировать каталоги в Total Commander (сравнить по содержимому) - некоторые файлы отличаются -> Разница Total Commander (двойной щелчок в выводе Синхронизировать каталоги) - некоторые файлы, отмеченные как разные, отображаются разница, некоторые из них, как сообщается, на этот раз одинаковы. Я пробовал ПК-ПК и ПК-NAS, и оба одинаковы.
Я проверил один из файлов (~ 60 ГБ один), и кажется, что различия всегда являются однобайтовыми со значением 0 на оригинале и 128 на цели. Они случайным образом распределяются по всему файлу, около 10 из них. Повторный запуск diff показывает, что некоторые из них сохраняются, а некоторые изменяются, но их примерно столько же.
РЕДАКТИРОВАТЬ: Чтобы ответить на подозрение syneticon-dj о TC, я должен отметить, что я написал простое приложение на C #, которое читает два файла с использованием .NET API и сравнивает их побайтно. Вот как я получил информацию о разнице в предыдущем абзаце.
Кажется, что передача по сети терпит неудачу один бит каждые 6 гигабайт или около того. Как это возможно? Это нормальное поведение? Почему он проходит контрольные суммы на уровне TCP? Как я могу сказать, что не так и что следует заменить?
РЕДАКТИРОВАТЬ: Если передача по сети вряд ли является причиной ошибок, что может быть реальной причиной?