Контроль достовірності передачі
При передачі даних по складним розподіленим мережах, у яких лінії зв'язку, схильні до дій перешкод, вживають низку заходів для забезпечення контролю за достовірністю (відсутність помилок). Контроль достовірності передачі вимагає введення деякої надмірності в передану інформацію. Надмірність може вводитися як на рівні окремих переданих символів або їх груп, так і на рівні переданих кадрів.
У надлишкові поля передавач (Tx) поміщає код, який вираховується за певними правилами і з корисною інформацією.
Приймач (Rx) порівнює цей код з тим значенням, яке він вирахував сам. Чи не збіг значень свідчить про спотворення інформації, а збіг - про високу ймовірність правильної передачі.
Ймовірність виявлення помилки залежить від схеми контролю і співвідношення розмірів інформаційного і контрольного полів.
- Найнадійніша схема - це контроль паритету.
- Сама неекономічна - це дублювання інформації.
- Саме надійне виявлення дає CRC-контроль.
Схема з обчисленням контрольної суми знаходиться між паритетом і CRC.
Дублювання інформації. Зводиться до повторення Tx одного і того ж елемента двічі. Приймач перевіряє збіг копій. Дубль може повертатися і приймачем (Rx). Передавач, прийнявши його порівнює з тим, що послав і на підставі цього робить висновок про правильність передачі.
Дублюватися може кожен біт, кожен байт або кадр.
Дублювання може застосовуватися лише для окремих коротких елементів кадру.
Дублювання призводить до 100% накладних витрат.
Контроль паритету. Використовує контрольний біт, що доповнює число одиничних біт контрольованого елемента до парного (контроль парності) або непарного (контроль непарності) значення, в залежності від прийнятого угоди.
Контроль паритету дозволяє виявляти тільки помилки непарної кратності. Спотворення 2, 4 і т.д. біт контрольованої області залишаться непоміченими.
Крім горизонтального, контроль може бути і вертикальним. При горизонтальному контролі біт паритету P вводиться в кожен рухаючись символ. При вертикальному контролі для кожної групи символів (в даному випадку 8 байт) біти паритету підраховуються для кожної позиції і збираються в окремий контрольний символ.
Можливо також поєднання горизонтального і вертикального контролю.
Контрольні суми. Застосовуються для контролю цілого кадру або декількох його полів. Для них в кадрі визначено спеціальне поле (1, 2 або 4 байти). У контрольній сумі в згорнутому вигляді зберігається характеристика всіх інформаційних бітів. Розрядність контрольного коду визначає розрядність сумміруемих слів. Існує два варіанти підрахунку контрольної суми:
сума по модулю 2 всіх байтів або слів пакета (xor).
Легко вважається програмним шляхом, але погано виявляє спотворення кількох близьких бітів.
арифметична сума всіх байтів або слів пакета. При її обчисленні відкидаються старші розряди переповнення.
Чим більше довжина кадру при тій же довжині контрольного коду, тим менше ймовірність виявлення помилок. виявлення помилок
Надмірна циклічний код (CRC).
Приклад: CRC - 4 біти.
10011 - дільник (просте число). Його розрядність на одиницю більше, ніж необхідна розрядність CRC. Для 8-розрядного CRC береться 9 (для 4 - 5; для 16 - 17)
При розподілі замість віднімання застосовують додавання по модулю 2.
Для 17 біт дільник визначається:
Використовується більш складний алгоритм. Обчислення програмним шляхом складне. Застосовується апаратна реалізація. Надійність методу вище. Ймовірність виявлення помилок становить 99,9984%.
N - кількість біт в пакеті. Для обчислення CRC це число ділиться на деяке постійне число, вибране спеціальним чином. Приватне від цього ділення відкидається, а залишок використовується в якості контрольної суми.
Кадр, як довге двійкове число з нульовим полем CRC ділиться на поліном і залишок цього поділу по модулю 2 поміщається в поле CRC переданих даних. Приймач ділить прийнятий кадр разом з полем CRC на той же поліном і порівнює залишок від ділення з певним еталоном.