Je viens d' apprendre sur les .rev
fichiers avec WinRAR - où , si vous avez un volume de RAR 10 parties, par exemple, plus un .rev
(récupération) volume - le .rev
volume sera en mesure de « réparer » tout un corrompu .rar
volume.
Comment est-ce possible? Je ne comprends pas comment un volume pourrait avoir toutes les données pour réparer tout ou partie des volumes individuellement cassés.
Je suppose que c'est peut-être possible au lieu que les volumes ne soient pas divisés "linéairement", comme j'imagine, où chaque volume RAR contient des fichiers distincts et individuels de l'ensemble emballés à l'intérieur; mais plutôt, peut-être que la .rev
réparation est possible lorsque les volumes RAR sont considérés comme un fichier continu de bits et d'octets, pour ainsi dire, et qu'il y a peut-être une sorcellerie CRC (ah hem, "réparation") impliquée pour corriger les octets corrompus.
Mais je ne comprends tout simplement pas comment vous pouvez avoir 9 volumes de travail avec 1 endommagé, mais avoir un volume de récupération qui peut réparer l' un des volumes. Comment un volume peut-il contenir des données de "tous" les volumes?
la source
Réponses:
Prenons un cas vraiment simple.
Vous disposez de quatre volumes et d'un volume de récupération, chacun contenant 1 bit d'informations:
Le volume de récupération contiendrait le résultat de chacun de ces bits XOR d ensemble:
Ainsi, notre volume de récupération contient le bit unique
1
.Maintenant, disons que le volume 1 échoue.
Si nous XOR les volumes 2, 3 et 4 restants avec le bit de récupération à la place du volume défaillant, nous obtenons:
Donc, cela nous dit que le volume 1 contenait
1
, car il est le résultat de l'équation.Imaginons plutôt que le volume 2 soit mort, alors nous remplaçons sa valeur dans l'équation par le bit de récupération:
Nous savons donc que le volume 2 contenait
0
, car il est le résultat de l'équation.Si le volume 3 ou 4 échouait, ils produiraient tous les deux
1
dans cette équation.Ainsi, en cas de défaillance de l'un des volumes, le volume de récupération peut être utilisé pour reconstruire les données en fonction des volumes restants. Il s'agit probablement de la forme de correction d'erreur la plus simple que vous puissiez avoir. Si deux volumes ont échoué, vous ne pouvez rien récupérer.
la source
Pour un moyen très simple de comprendre comment cela pourrait être, imaginez si le volume de récupération contenait la somme des autres volumes. Avec une liste de nombres, manquant l'un d'eux, et leur somme, vous pouvez toujours reconstruire le nombre manquant.
Par exemple, considérez ces 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 numéro 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 ayez eu le 20 et qu'il vous manquait le 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 n'importe quel numéro manquant.
la source