Having moved quite large amount of data (~1TB) over the network from one storage to another, I noticed the file on target system differs from the original.
Setup: PC (Windows 7 64) with Windows Sharing -> 1000BaseT network 2x 1G switch -> PC (Windows XP) as Windows Sharing client or NAS with Windows Sharing (probably Samba?) -> 1000BaseT network 1x 1G switch -> PC (Windows 7 64) as Windows Sharing client
Procedure: Copy from share with Total Commander - no error reported -> Synchronize dirs in Total Commanded (compare by content) - some files differ -> Total Commander's Diff (double click in Synchronize dirs output) - some of files marked as different do show difference, some of them are reported as being the same this time. I've tried PC-PC and PC-NAS and both is the same.
I have examined one of the files (~60GB one) and it seems the differences are always single byte having value 0 on original and 128 on target. They are randomly spread all over the file, about 10 of them. Re-running the diff shows some of them persist and some of them are changed, but there's about the same amount of them.
EDIT: To answer syneticon-dj's suspicion about TC, I have to note I have written a simple C# application which reads two files using .NET API and compares them byte by byte. This is how I got the diff info in previous paragraph.
It seems the network transfer fails one bit in every 6 gigabytes or so. How is it possible? Is it normal behaviour? How come it passes the checksums at TCP level? How can I tell what's wrong and what should be replaced?
EDIT: If network transfer is unlike to be the cause of errors, what could be the real cause?