Tendo movido uma grande quantidade de dados (~ 1TB) pela rede de um armazenamento para outro, notei que o arquivo no sistema de destino é diferente do original.
Configuração: PC (Windows 7 64) com o Compartilhamento do Windows - & gt; Rede 1000BaseT 2x 1G switch - & gt; PC (Windows XP) como cliente do Windows Sharing ou NAS com Windows Sharing (provavelmente Samba?) - & gt; Rede 1000BaseT 1x 1G switch - & gt; PC (Windows 7 64) como cliente do Windows Sharing
Procedimento: Copiar de compartilhamento com o Total Commander - nenhum erro relatado - & gt; Sincronizar dirs em Total Commanded (comparar por conteúdo) - alguns arquivos são diferentes - & gt; Total Diff do Comandante (clique duas vezes na saída Sincronizar dirs) - alguns arquivos marcados como diferentes mostram a diferença, e alguns deles são reportados como sendo os mesmos desta vez. Eu tentei PC-PC e PC-NAS e ambos são os mesmos.
Eu examinei um dos arquivos (~ 60GB um) e parece que as diferenças são sempre único byte com valor 0 no original e 128 no alvo. Eles estão espalhados aleatoriamente por todo o arquivo, cerca de 10 deles. Repetindo o diff mostra alguns deles persistirem e alguns deles são alterados, mas há aproximadamente a mesma quantidade deles.
EDIT: Para responder a suspeita de syneticon-dj sobre TC, eu tenho que observar que eu escrevi um aplicativo C # simples que lê dois arquivos usando o .NET API e compara-os byte por byte. Foi assim que obtive a informação do diff no parágrafo anterior.
Parece que a transferência de rede falha um bit em cada 6 gigabytes ou mais. Como isso é possível? Isso é comportamento normal? Como é que passa as somas de verificação ao nível do TCP? Como posso saber o que está errado e o que deve ser substituído?
EDIT: Se a transferência de rede é diferente de ser a causa de erros, qual poderia ser a causa real?