Помехоустойчивое кодирование: различия между версиями

Содержимое удалено Содержимое добавлено
Нет описания правки
(нет различий)

Версия от 14:38, 4 сентября 2006

Аннотация

Здесь мы рассмотрим основные принципы и методы надёжной и эффективной передачи данных между двумя машинами, соединёнными проводом. Под проводом следует понимать любую физическую среду передачи данных. Посредством этой физической среды

нужно научиться передавать биты так, чтобы они безошибочно

принимались получателем точно в той последовательности, в какой они были переданы.

Канальный уровень

На уровне канала данных решается ряд проблем, присущих

только этому уровню:

  • реализация сервиса для сетевого уровня,
  • объединение битов, поступающих с физического уровня \\ в кадры,
  • обработка ошибок передачи, управление потоком кадров.

Основная задача канального уровня --- обеспечить сервис сетевому уровню, а это значит помочь передать данные с сетевого уровня одной машины на сетевой уровень другой машины.

Разбиение на кадры

Сервис, создаваемый канальным уровнем для сетевого, опирается на сервис, создаваемый физическим уровнем. На физическом уровне протекают потоки битов. Значение посланного бита не обязательно равно принятому, и количество посланных битов не обязательно равно количеству принятых. Всё это требует специальных усилий на канальном уровне по обнаружению и исправлению ошибок.

Типовой подход к решению этой проблемы --- разбиение потока битов на кадры и подсчёт контрольной суммы для каждого кадра при посылке данных.

Контрольная сумма - это, в общем смысле, функция от содержательной части кадра (слова длины m), область значений которой - слова фиксированной длины r.

Эти r бит добавляются обычно в конец кадра. При приёме контрольная сумма вычисляется заново и сравнивается с той, что храниться в кадре. Если они различаются, то это признак ошибки передачи. Канальный уровень должен принять меры к исправлению ошибки, например, сбросить плохой кадр, послать сообщение об ошибке тому кто прислал этот кадр. Разбиение потока битов на кадры --- задача не простая. Один из способов --- делать временную паузу между битами разных кадров. Однако, в сети, где нет единого таймера, нет гарантии, что эта пауза сохраниться или, наоборот, не появятся новые. Так как временные методы ненадёжны, то применяются другие. Здесь мы рассмотрим четыре основных:

  • счетчик символов;
  • вставка специальных стартовых и конечных символов или последовательностей бит;
  • специальная кодировка на физическом уровне.