При передаче информации по некачественным каналам связи возможно появление искажений передаваемой информации. Эти искажения требуют выявления и исправления. Контроль приемника может осуществляется побайтно и пакетно.
Побайтный метод означает, что каждый передаваемый байт дополняется битом четности или нечетности. В случае, когда количество единиц передаваемых информационным байтом четное бит четности равен нулю, если нечетное - единице или наоборот. При использовании такого метода вероятность не обнаружения ошибки довольно велика, такая ситуация возможна при наличии четкого количества ошибок в информационных битах или при одновременном искажении информационного и контрольного битов.
Пакетный метод заключается в том, что в конец каждого передаваемого пакета добавляется контрольная сумма длиной, как правило, 8,16 или 32 бита, которая включает в себя информацию обо всех битах пакета. Метод подсчета контрольной суммы выбирается таким образом, чтобы она достаточно надежно выявляла ошибки и при этом ее вычисления были бы не слишком сложными. Обычно используются контрольные суммы следующих видов:
· Суммы по модулю двух всех байтов пакета (при этом однократные ошибки обнаруживаются с вероятностью 100%, двукратные с вероятностью 7/8). Искажение нескольких битов выявляется при помощи такого метода достаточно плохо. Достоинство метода контрольной суммы – простота вычисления.
· Арифметическая сумма всех байтов или слов пакета. При вычислении отбрасываются старшие разряды для сохранения разрядности контрольной суммы (8 или 16). Однократные ошибки обнаруживаются с вероятностью 100% двукратные с вероятностью 31/32 (в худшем случае). Такая наихудшая ситуация наблюдается, когда в каждом из 8-ми разрядов всех байт пакета присутствует половина логических нулей и половина логических единиц, двукратная ошибка не выявляется, если в одном разряде один из битов переходит из нуля в единицу, а другой бит в этом же разряде из единицы в ноль, что не меняет общей суммы. Арифметическая сумма также легко вычисляется программным методом.
· Циклическая контрольная сумма. Применение данного метода связывают с необходимостью повышения вероятности обнаружения ошибки. При вычислении циклической контрольной суммы весь пакет рассматривается как двоичное число разрядности N, где N – количество бит в пакете. Для вычисления контроля суммы это число делится по модулю двух на некоторое постоянное число выбранное специальным образом. Частное от деления отбрасывается, а остаток используется в качестве контроля суммы. Этот метод выявляет однократные ошибки с вероятностью 100%, а любое другое количество ошибок с вероятностью , где n – количество разрядов контрольной суммы. В качестве делителя выбирается число простое (в смысле деления по модулю двух), а его разрядность берется на единицу больше, чем требуемая разрядность контрольной суммы.