Циклические избыточные проверки

Cyclic Redundancy Check -CRC. Это наиболие часто используемые коды с проверкой на четность.

Пусть

K- длина последовательности битов данных ,
L- длина CRC (число проверочных битов).

Удобно обозначать биты данных через Циклические избыточные проверки - student2.ru , Циклические избыточные проверки - student2.ru ,..., Циклические избыточные проверки - student2.ru , Циклические избыточные проверки - student2.ru и представлять последовательность в виде многочлена S(D) :

Циклические избыточные проверки - student2.ru

При этом степени переменной D сохраняют порядок битов.

CRC представляется другим многочленом:

Циклические избыточные проверки - student2.ru

Тогда передаваемую информацию и CRC вместе можно представить многочленом:

Циклические избыточные проверки - student2.ru

Многочлен C(D) , представляющий CRC определяется как

Циклические избыточные проверки - student2.ru

где Циклические избыточные проверки - student2.ru - порождающий многочлен- многочлен степениL , который задает конкретный код CRC. Операция деления многочленов является обычным делением многочленов, но коэффициенты принимают только двоичные значения, а арифметические операции над коэффициентами выполняются по модулю 2 (1+1=0 , 0-1=1).

Например:

Данные 101011 Циклические избыточные проверки - student2.ru

Порождающий многочлен 10011 Циклические избыточные проверки - student2.ru

Циклические избыточные проверки - student2.ru получаем кодовое слово 1010110100

Поскольку степень многочлена g(D) не превышает L,то степень остатка не превышает L-1. Если степень C(D)получалась меньше, чем L-1, то соответствующие старшие оэффициенты Циклические избыточные проверки - student2.ru , ... полагаются равными 0.

Вычисление CRC на практике обычно реализуется аппаратно.

Пусть z(D)- частное от деления Циклические избыточные проверки - student2.ru наg(D).

Тогда Циклические избыточные проверки - student2.ru = g(D)*z(D)+C(D).

Вычтем C(D) по модулю 2 из обеих частей этого равенства.
x(D) = Циклические избыточные проверки - student2.ru + C(D) = g(D)z(D)
Таким образом, все кодовые слова делятся наg(D).
Например, в предыдущем примере:

Циклические избыточные проверки - student2.ru Пустьx(D)передается, а принятая последовательность y(D) отличается от x(D) из-за ошибок в канале связи.

y(D) = x(D)+e(D),

где e(D) - многочлен, представляющий последовательность ошибок.

Несовпадения коэффициентов y(D) и x(D) отмечены в многочлене e(D) единичными коэффициентами.

Т.к.x(D) нацело делится на g(D) , то остаток [ y(D)/g(D) ] = остаток [ e(D)/g(D) ]

Если ошибки не возникли e(D) = 0,остаток = 0.

Если остаток не равен нулю, то принятая последовательность содержит ошибки.

Возможен случай, когда e(D) № 0 , а остаток = 0. Если e(D)является кодовым словом e(D) = g(D) z(D),то обнаружить ошибки нельзя. g(D) имеет по крайней мере 2 ненулевых члена ( Циклические избыточные проверки - student2.ru и 1 ) , следовательно g(D)z(D)тоже должно иметь min 2ненулевых члена ( z(D) № 0 ).

Пусть возникла одиночная ошибка Циклические избыточные проверки - student2.ru .

Циклические избыточные проверки - student2.ru при любомI. Следовательно, все одиночные ошибки обнаруживаются.

Поскольку разница между степенями Циклические избыточные проверки - student2.ru и 1 равнаL, то степени старшего и младшего членов g(D)z(D)также отличаются по крайней мере на L (Z(D) № 0). Если e(D)- кодовое слово, то длина пакета ошибок не меньше L+1.

Пусть возникла двойная ошибка, например

Циклические избыточные проверки - student2.ru

Циклические избыточные проверки - student2.ru не делится на g(D). e(D) нельзя обнаружить, если Циклические избыточные проверки - student2.ru делится на g(D).

Для любого g(D) существует min числоn, для которого Циклические избыточные проверки - student2.ru делится на g(D) Циклические избыточные проверки - student2.ru .

А для любого L>0 существуют примитивные многочлены , для которых Циклические избыточные проверки - student2.ru .

Если g(D) - примитивный многочлен степени L , и если длина кадра меньше Циклические избыточные проверки - student2.ru , то Циклические избыточные проверки - student2.ru не может делиться на g(D). Все двойные ошибки обнаруживаются при этом. На практике для вычисления CRCиспользуется порождающий многочлен g(D),который получается произведением примитивного многочлена степени L-1и многочлена (D+1).

(D+1) позволяет обнаруживать любое нечетное число ошибок.

У такого кода минимальное расстояние >=4 ,

способность обнаруживать пакеты ошибок >=L ,

вероятность обнаружения ошибок в случайной последовательности Циклические избыточные проверки - student2.ru .

СтандартныеЦИП-коды сL=16:

Циклические избыточные проверки - student2.ru ЦИП-16

Циклические избыточные проверки - student2.ru ЦИП-МККТТ (CRC-CCITT)

CRC-32 используется в протоколах обмена данными HDLC и ZMODEM:

Циклические избыточные проверки - student2.ru

Модификация CRC-CCITT:

Первые 16 бит кадра инвертируются при вычислении CRC, а при передаче не инвертируются. Инвертируется остаток для CRC. В приемном модуле первые 16 бит кадра инвертируются для повторного вычисления остатка, который затем инвертируется для сравнения с принятой CRC. При этом удается избежать нулевой последовательности, удовлетворяющей CRC (линия или модем неисправны). Тогда обнаруживаются такие ошибки, как добавление или удаление нулей из начала (конца) кадра.

7. ЛВС Ethernet. Общая шина: Метод доступа.

ЛВС Ethernet: Метод доступа

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

В ЛВС Ethernet применяется метод CSMA/CD. Все рабочие станции подключены к общей шине. Действия, которые должны предприниматься для предотвращения одновременной передачи данных и для организации повторных передач регламентируются стандартом 802.3 IEEE (Разработан Международным институтом инженеров по электротехнике и радиотехнике).

При передаче данных согласно протоколу CSMA/CD станции выполняют 5 шагов:

1. Прослушивание до начала передачи. Станции непрерывно следят, не появился ли в сегменте сигнал "наличие несущей" . Присутствие этого сигнала распознается по уровню напряжения и означает, что канал занят.

2. Задержка (ожидание), если канал занят. Если станция обнаружила, что канал занят, необходимо выждать некоторое время (время отсрочки), чтобы избежать появления коллизий.

3. Передача и прослушивание коллизий. Если канал свободен не менее, чем 9,6 мс, станция может начать передачу. пакет передается по кабельной системе в обоих направлениях.

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

Трансиверы (Tranceivers-transciever-приемопередатчик) - электрические устройства, внутренние (размещенные на сетевой плате Ethernet) или внешние (выполненные в виде отдельного устройства), предназначенные для физической передачи и приема данных из среды.

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

Сигнал затора (jam- замятие бумаги, ленты, перфокарт) - сообщение длиной не менее 32 бит, не определяется, но не может совпадать с контрольной последовательностью предыдущего переданного частично пакета.

Станции, вовлеченные в коллизию, увеличивают свои счетчики числа попыток передачи на 1.

4. При возникновении коллизий ожидание перед повторной передачей. Для выбора момента повторной передачи станция станция действует согласно алгоритма отступления.(момент начала новой попытки выбирается случайным образом).

5. Повторная передача или прекращение работы. Станция может попытаться начать передачу до 16 раз, прежде чем прекратит свои попытки.

Для приема данных активная станция, подключенная к сегменту, должна выполнить 4 шага:

1. Просмотр поступающих пакетов данных и обнаружение фрагментов. Если кадр имеет допустимую длину >=64 байт, то он не является фрагментом, порожденным коллизией.

2. Проверка адреса получателя. Если пакет адресован данной станции, является широковещательным сообщением (Например, сообщение об услугах NetWare) или имеет групповой адрес (адресовано определенной группе устройств), то станция переходит к 3 шагу.

3. Проверка целостности пакета данных, если пакет поступил на станцию-получатель.

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

Проверка контрольной последовательности кадра с помощиь CRC. Если CRC некорректна, проверяется выровненность пакета. Все пакеты должны содержать целое число байт и оканчиваться на 8-битовой границе.

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

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

Стандарт 802.3 содержит спецификации кабеля, пригодные для реализации ЛВС Ethernet.

· 10Base5 (толстый коаксиальный кабель)

· 10Base2 (тонкий коаксиальный кабель)

· 10BaseT (неэкранированная витая пара проводов) добавлена к стандарту в 1991г. Определяет сети с методом доступа CSMA/CD и топологией типа звезда. Сегментом считается кабель соединяющий станцию и концентратор.

  10Base5 10Base2 10BaseT
Максимальное число отводов на сегменте
Разделение узлов не более 5 сегментов и 4репитера 5 сегментов и 4репитера 5 сегментов и 4репитера
Максимальная длина сегмента 500м 185м  
Общая длина сети 2500м 925м  
Минимальное расстояние между трансиверами 2.5м 0.5м  
Максимальная длина трансиверного кабеля 50м    
Число концентраторов не более 4    
Максим расстояние между станцией и репитером 100м    

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

· Поздней коллизией называется коллизия с пакетом, имеющим длину не менее 64 байт. Наличие таких коллизий свидетельствует о том, что сегмент длиннее, чем указано в спецификации.

· Считается, что станция уцправляет сегментом кабеля, если ею уже передано более 64 байт.

Наши рекомендации