![]() |
![]() |
Из примера на предыдущей странице мы знаем, как dvdisaster воссоздает
данные, используя всё еще читаемые части носителя в совокупности с
данными для исправления ошибок. Чтобы получить максимум отдачи от dvdisaster, полезно понимать основы метода исправления ошибок. Пользуясь случаем, мы можем опровергнуть неправильное предположение, которое можно то и дело услышать - данные для исправления ошибок не являются просто копией последних 20% секторов носителя. Это был бы и в самом деле дешевый трюк ;-) |
||
80%![]() |
20% |
|||
![]() |
Пример: Пин-код для ящика письменного стола Анны
У Анны есть стол, в котором ящики открываются, только если ввести в кодовый замок числа "8 6 2 3". Поскольку в этих ящиках нет какой-либо деликатной информации, она решает записать числа прямо на поверхности стола:

Анна предусмотрительна и предполагает, что одно из чисел станет нечитаемым, если на него случайно капнут чернила. Поэтому она записывает также и сумму этих четырех чисел ("+" и "=" - добавлены только для ясности):

Через какое-то время на числа, действительно, попало чернильное пятно:

Но это не проблема, раз Анна может вновь вычислить недостающее число x, переписав все еще читаемые части уравнения:
8 + x + 2 + 3 = 19, отсюда
x = 19 - 8 - 2 - 3, и, следовательно, x = 6.
Легко видеть, что любое из первоначальных пяти чисел может быть восстановлено по оставшимся четырем. Этот пример также демонстрирует некоторые важные свойства исправления ошибок:
![]() |
Для данного набора данных (например, числа "8 6 2 3")
дополнительные данные для исправления ошибок (например, сумма "19") могут быть созданы
таким образом, что потерянное данное может быть вновь рассчитано по оставшимся данным. Такой же принцип используется в dvdisaster; защищаемая последовательность чисел есть ничто иное, как ISO-образ CD, DVD или BD. |
Концепция избыточности может быть объяснена следующим образом:
Приведенный выше пример не обобщается на схему исправления ошибок для восстановления более одного недостающего значения данных. Чтобы сделать это, требуется более мощная система уравнений, которая может быть решена для более чем одного недостающего значения. dvdisaster использует код Рида-Соломона, у которого есть такие качества; однако необходимая для этого математика не преподается в школе. Поэтому заинтересованные читатели отсылаются к соответствующим книгам по теории кодирования.