Избыточные
коды как средство обеспечения надежности передачи информации.
Каналы
для передачи данных не идеальны. Часто в каналах присутствуют шумы из-за которых
посланная информация искажается и появляются ошибки. Поэтому часто используют
коды коррекции ошибок или избыточные коды для того, чтобы детектировать ошибку
передачи. Смысл этих кодов заключается в следующем: при передаче некоторой
последовательности данных к ним прибавляется контрольная сумма. Контрольная
сумма может вычисляться по разным алгоритмам и отличается по вычислительной
сложности и по способности обнаруживать ошибки.
Это,
например, может быть бит чётности (контроль по паритету). Он вычисляется как
сумма единиц (в двоичной системе счисления). Однако он обладает слишком большой
избыточностью и невысокими диагностическими способностями. Из-за этого он редко
используется.
В
настоящее время наиболее популярным является циклический избыточный код
(Cyclic
Redundancy
Check,
CRC).
Он широко применяется не только в вычислительных сетях, но и при записи данных
на диски или дискеты. Метод основан на рассмотрении исходных данных в виде
одного многоразрядного двоичного числа. Например, кадр стандарта Ethernet,
состоящий из 1024 байт, будет рассматриваться как одно число, состоящее из 8192 бит. В качестве контрольной
информации рассматривается остаток от деления этого числа на известный делитель
R.
Обычно в качестве делителя выбирается 17ти или 33ёх разрядное число, чтобы
остаток от деления имел длину 16 разрядов (2 байт) или 32 разряда (4 байт). При
получении кадра данных снова вычисляется остаток от деления на этот же делитель
R,
но при этом к данным прибавляется и содержащаяся в нём контрольная сумма. Если
остаток от деления на R
равен нулю, то делается вывод об отсутствии ошибок в полученном кадре, в
противном случае кадр считается искажённым.
Этот
метод обладает высокой вычислительной сложностью, но его диагностические
способности гораздо выше, чем у методов контроля по паритету (чётности). Метод
CRC
обнаруживает все одиночные ошибки, двойные ошибки и ошибки в нечётном числе бит.
Метод обладает также невысокой степенью избыточности. Например, для кадра
Ethernet
размером
в 1024 байт контрольная информация длиной в 4 байт составляет только
0,4%.