Учебники

DCN – обнаружение и исправление ошибок

Существует много причин, таких как шум, перекрестные помехи и т. Д., Которые могут помочь повреждению данных во время передачи. Верхние уровни работают на некотором обобщенном представлении сетевой архитектуры и не осведомлены о фактической аппаратной обработке данных. Поэтому верхние уровни ожидают безошибочной передачи между системами. Большинство приложений не будет функционировать ожидаемым образом, если они получат ошибочные данные. Такие приложения, как передача голоса и видео, могут не быть подвержены этому воздействию, и с некоторыми ошибками они могут по-прежнему работать хорошо.

Канальный уровень использует некоторый механизм контроля ошибок, чтобы гарантировать, что кадры (битовые потоки данных) передаются с определенным уровнем точности. Но чтобы понять, как ошибки контролируются, важно знать, какие типы ошибок могут возникать.

Типы ошибок

Может быть три типа ошибок:

  • Ошибка одного бита

    Ошибка одного бита

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

  • Ошибка нескольких бит

    Ошибка нескольких бит

    Кадр получен с более чем одним битом в поврежденном состоянии.

  • Взрывная ошибка

    Взрывная ошибка

    Кадр содержит более 1 поврежденных последовательных битов.

Ошибка одного бита

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

Ошибка нескольких бит

Кадр получен с более чем одним битом в поврежденном состоянии.

Взрывная ошибка

Кадр содержит более 1 поврежденных последовательных битов.

Механизм контроля ошибок может включать два возможных способа:

  • Обнаружение ошибок

  • Исправление ошибки

Обнаружение ошибок

Исправление ошибки

Обнаружение ошибок

Ошибки в принятых кадрах обнаруживаются с помощью проверки четности и проверки циклическим избыточным кодом (CRC). В обоих случаях несколько дополнительных битов отправляются вместе с фактическими данными, чтобы подтвердить, что биты, полученные на другом конце, такие же, как они были отправлены. Если контр-проверка на стороне получателя не пройдена, биты считаются поврежденными.

Проверка четности

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

Отправитель при создании кадра считает число 1 в нем. Например, если используется четность, а число 1 является четным, то добавляется один бит со значением 0. Таким образом, число 1 остается четным. Если число 1 нечетное, для его добавления добавляется четный бит со значением 1.

Четный паритет

Приемник просто считает количество 1 в кадре. Если счет 1 равен четному и используется четная четность, кадр считается не поврежденным и принимается. Если счетчик 1с является нечетным и используется нечетная четность, кадр все еще не поврежден.

Если один бит переходит при передаче, получатель может обнаружить его, посчитав количество единиц. Но когда ошибочно более одного бита, получателю очень трудно обнаружить ошибку.

Циклическая проверка избыточности (CRC)

CRC – это другой подход для определения, содержит ли принятый кадр достоверные данные. Этот метод включает двоичное разделение отправляемых битов данных. Делитель генерируется с использованием полиномов. Отправитель выполняет операцию деления передаваемых битов и вычисляет остаток. Перед отправкой фактических битов отправитель добавляет остаток в конце фактических битов. Фактические биты данных плюс остаток называются кодовым словом. Отправитель передает биты данных в виде кодовых слов.

CRC

На другом конце приемник выполняет операцию деления над кодовыми словами с использованием того же делителя CRC. Если остаток содержит все нули, биты данных принимаются, в противном случае считается, что при передаче произошло повреждение данных.

Исправление ошибки

В цифровом мире исправление ошибок может быть сделано двумя способами:

  • Коррекция ошибок в обратном направлении Когда получатель обнаруживает ошибку в полученных данных, он отправляет запрос назад отправителю для повторной передачи блока данных.

  • Прямое исправление ошибок Когда получатель обнаруживает некоторую ошибку в полученных данных, он выполняет код с исправлением ошибок, который помогает ему автоматически восстанавливаться и исправлять некоторые виды ошибок.

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

Прямое исправление ошибок Когда получатель обнаруживает некоторую ошибку в полученных данных, он выполняет код с исправлением ошибок, который помогает ему автоматически восстанавливаться и исправлять некоторые виды ошибок.

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

Чтобы исправить ошибку в кадре данных, получатель должен точно знать, какой бит в кадре поврежден. Чтобы найти бит по ошибке, избыточные биты используются в качестве битов четности для обнаружения ошибок. Например, мы берем слова ASCII (7-битные данные), затем может потребоваться 8 видов информации, которые нам нужны: первые семь бит, чтобы сообщить нам, какой бит это ошибка и еще один бит, чтобы сказать, что нет ошибки.

Для m битов данных используется r избыточных битов. r битов могут предоставить 2r комбинаций информации. В кодовом слове бита m + r существует вероятность того, что сами r биты могут быть повреждены. Таким образом, число используемых r битов должно сообщать о расположении m + r битов плюс информация об отсутствии ошибок, то есть m + r + 1.