Je viens d’apprendre à connaître les fichiers .rev
avec WinRAR - où, si vous avez un volume RAR en 10 parties, par exemple, plus un volume .rev
(récupération) - le volume .rev
pourra "réparer" n’importe quel un volume .rar
corrompu.
Comment est-ce possible? Je ne comprends pas comment un volume peut avoir toutes les données pour réparer tous les volumes cassés individuellement.
J'imagine qu'il est peut-être possible, au lieu que les volumes ne soient pas divisés "de manière linéaire", comme je l'imagine, où chaque volume RAR contient des fichiers distincts et distincts du tout emballé à l'intérieur; mais peut-être plutôt, la réparation de .rev
est-elle possible lorsque les volumes RAR sont considérés comme un fichier continu de bits et d'octets, pour ainsi dire, et qu'il existe peut-être une sorcellerie de CRC (ah euh, "travail de réparation") impliquée dans la réparation d'octets corrompus .
Mais je ne comprends tout simplement pas comment vous pouvez avoir 9 volumes de travail dont 1 endommagé, tout en ayant un volume de récupération capable de réparer tout un des volumes. Comment un volume peut-il contenir des données de "tous" les volumes?
Prenons un cas très simple.
Vous avez quatre volumes et un volume de récupération, chacun contenant 1 bit d'information:
========================================================
Volumes: = Volume 1 = Volume 2 = Volume 3 = Volume 4 = Recovery =
=----------=----------=----------=----------=----------=
Bits: = 1 = 0 = 1 = 1 = 1 =
========================================================
Le volume de récupération contiendrait le résultat de chacun de ces bits XOR d ensemble:
1 XOR 0 XOR 1 XOR 1 = 1
Notre volume de récupération contient donc le bit unique 1
.
Maintenant, disons que le volume 1 échoue.
Si nous XOR les volumes restants 2, 3 et 4 avec le bit de récupération à la place du volume défaillant, nous obtenons:
1 XOR 0 XOR 1 XOR 1 = 1
^
Donc, cela nous dit que le volume 1 contenait 1
, puisque c'est le résultat de l'équation.
Supposons que le volume 2 soit mort à la place, nous remplaçons donc sa valeur dans l'équation par le bit de récupération:
1 XOR 1 XOR 1 XOR 1 = 0
^
Nous savons donc que le volume 2 contenait 0
, puisqu'il est le résultat de l'équation.
Si le volume 3 ou 4 échouait, ils produiraient tous deux 1
dans cette équation.
Ainsi, si l'un des volumes échoue, le volume de récupération peut être utilisé pour reconstruire les données en fonction des volumes restants. C'est probablement la forme la plus simple de correction d'erreur que vous puissiez avoir. Si deux volumes échouent, vous ne pouvez rien récupérer.
Pour un moyen très simple de comprendre comment cela pourrait être, imaginez si le volume de reprise contenait la somme des autres volumes. Avec une liste de nombres, l’un manquant et leur somme, vous pouvez toujours reconstruire le nombre manquant.
Par exemple, considérons ces nombres à deux chiffres, 13, 88, 17, 43. Si vous saviez qu'il y avait un numéro manquant et que les deux derniers chiffres de la somme de tous les nombres étaient 81, vous pourriez trouver le nombre manquant. 13 + 88 + 17 + 43 = 161. Le seul nombre à deux chiffres que vous pouvez ajouter à cela pour faire un nombre qui se termine par 81 est 20.
Supposons que vous avez 20 et qu'il vous manque 43. 13 + 88 + 17 + 20 = 138. Le seul nombre à deux chiffres que vous pouvez ajouter à cela pour faire un nombre qui se termine par 81 est 43.
Ainsi, le numéro de récupération vous permet de trouver un numéro manquant.