Интернет-Университет Информационных Технологий
   http://www.INTUIT.ru
Основы локальных сетей
Лекция #10: Алгоритмы сети Ethernet/Fast Ethernet: версия для печати и PDA
В данной лекции излагается метод управления обменом CSMA/CD, используемый в широко распространенных сетях семейства Ethernet, оказывающий существенное влияние на их особенности и характеристики. Кроме того, рассматривается алгоритм формирования и свойства помехоустойчивого циклического кода CRC, который применяется для обнаружения ошибок из-за наводок и помех в получаемых по сети данных.

В данной главе предлагается подробно рассмотреть два основных алгоритма, применяемых в самой распространенной сегодня сети Ethernet/Fast Ethernet. Речь идет о методе управления обменом (доступа) CSMA/CD и о методе вычисления циклической контрольной суммы (помехоустойчивого циклического кода) пакета CRC.

Эти же самые алгоритмы используются во многих других локальных сетях. Например, метод доступа CSMA/CD применяется в сетях IBM PC Network, AT&T Starlan, Corvus Omninet, PC Net, G-Net и др. Если говорить об алгоритме вычисления циклической контрольной суммы CRC, то он стал фактическим стандартом для любых локальных сетей. Таким образом, все, что представлено в данной главе, относится ко многим локальным сетям.

Метод управления обменом CSMA/CD

Как уже говорилось в главе 3, метод управления обменом CSMA/CD (Carrier-Sense Multiple Access with Collision Detection – множественный доступ с контролем несущей и обнаружением коллизий) относится к децентрализованным случайным (точнее, квазислучайным) методам. Он используется как в обычных сетях типа Ethernet, так и в высокоскоростных сетях (Fast Ethernet, Gigabit Ethernet). Поскольку характеристики и области применения этих популярных на практике сетей связаны именно с особенностями используемого метода доступа, его стоит рассмотреть более подробно.

Сначала о названии метода. В ранней сети типа Alohanet, работавшей с 1970 г. на Гавайских островах, использовался радиоканал и установленный на спутнике ретранслятор (отсюда слово «несущая» в названии метода), а также сравнительно простой метод доступа CSMA (без обнаружения коллизий). В сетях типа Ethernet и Fast Ethernet в качестве несущей выступает синхросигнал, «подмешиваемый» к передаваемым данным таким образом, чтобы обеспечить надежную синхронизацию на приемном конце. Это реализуется за счет организации (при необходимости) дополнительных принудительных переходов сигнала между двумя (как в коде Манчестер-П) или тремя электрическими уровнями (как в коде типа 8В6Т, используемом в сегменте Fast Ethernet 100BaseT4 на основе четырех неэкранированных витых пар). По сравнению с классическим методом CSMA в методе CSMA/CD добавлено обнаружение конфликтов (коллизий) во время передачи, что повышает скорость доставки информации.

При описании временных диаграмм сетей типа Ethernet и Fast Ethernet, а также предельных размеров пакетов (кадров) широко используются следующие термины:

  • IPG (interpacket gap, межпакетная щель) – минимальный промежуток времени между передаваемыми пакетами (9,6 мкс дляEthernet / 0,96 мкс для Fast Ethernet). Другое название – межкадровый интервал.
  • ВТ (Bit Time, время бита) – интервал времени для передачи одного бита (100 нс для Ethernet / 10 нс для Fast Ethernet).
  • PDV (Path Delay Value, значение задержки в пути) – время прохождения сигнала между двумя узлами сети (круговое, то есть удвоенное). Учитывает суммарную задержку в кабельной системе, сетевых адаптерах, повторителях и других сетевых устройствах.
  • Collision window (окно коллизий) – максимальное значение PDV для данного сегмента.
  • Collision domain (область коллизий, зона конфликта) – часть сети, на которую распространяется ситуация коллизии, конфликта.
  • Slot time (время канала) – максимально допустимое окно коллизий для сегмента (512• ВТ).
  • Minimum frame size – минимальный размер кадра (512 бит).
  • Maximum frame size – максимальный размер кадра (1518 байт).
  • Maximum network diameter (максимальный диаметр сети) -максимальная допустимая длина сегмента, при которой его окно коллизий не превышает slot time, времени канала.
  • Truncated binary exponential back off (усеченная двоичная экспоненциальная отсрочка) – задержка перед следующей попыткой передачи пакета после коллизии (допускается максимум 16 попыток). Вычисляется она по следующей формуле:

    RAND(0,2min(N,10)) x 512 x ВТ

    где N – значение счетчика попыток, RAND(a, b) – генератор случайных нормально распределенных целых чисел в диапазоне а...b, включая крайние значения. Дискрет изменения данного параметра равен минимальной длине пакета или максимально допустимой двойной задержке распространения сигнала в сети (PDV).

Алгоритм доступа к сети

На рис. 10.1 показана структурная схема алгоритма доступа к сети в соответствии с методом CSMA/CD для одного из абонентов, имеющих данные (кадры) для передачи.

В начале из кадра, предназначенного для передачи, абонент (узел) формирует пакет. Далее при обозначении блоков информации, передаваемых по сети при использовании алгоритма CSMA/CD, понятия «кадр» и «пакет» не различаются, что не совсем правильно, но соответствует сложившейся практике.

Если после подготовки пакета сеть свободна, то абонент (узел) имеет право начать передачу. Но в первую очередь он должен проверить, прошло ли минимально допустимое время IPG после предыдущей передачи (блок 1 на рисунке). Только по окончании времени IPG абонент может начать передачу битов своего пакета (блок 2 на рисунке).

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

Если после передачи какого-то бита обнаружена коллизия, то передача пакета прекращается. Абонент (узел) усиливает коллизию, передавая 32-битовый сигнал ПРОБКА (JAM) и начинает готовиться к следующей попытке передачи (блок 3 на рисунке). Сигнал ПРОБКА гарантирует, что факт наличия коллизии обнаружат все абоненты, участвующие в конфликте.

После передачи сигнала ПРОБКА абонент, обнаруживший коллизию, увеличивает значение счетчика числа попыток (перед началом передачи счетчик был сброшен в нуль). Максимальное число попыток передачи должно быть не более 16, поэтому если счетчик попыток переполнился, то попытки передать пакет прекращаются. Считается, что в этом случае сеть сильно перегружена, в ней слишком много коллизий. Эта ситуация – аварийная, и обрабатывается она на более высоких уровнях протоколов обмена.

Если же количество попыток не превысило 16, то производится вычисление величины задержки по приведенной формуле, а затем и выдержка вычисленного временного интервала. Случайный характер величины задержки с высокой степенью вероятности гарантирует, что у всех абонентов, участвующих в конфликте, задержки будут различными. Затем попытка передать пакет повторяется с начала. Абонент, у которого вычисленная задержка будет меньше, начнет следующую передачу первым и заблокирует все остальные передачи.

Структурная схема алгоритма доступа к сети в соответствии с методом CSMA/CD
Рис. 10.1.  Структурная схема алгоритма доступа к сети в соответствии с методом CSMA/CD

Если в момент возникновения заявки на передачу (после окончания подготовки пакета) сеть занята другим абонентом, ведущим передачу, то данный абонент ждет освобождения сети (блок 5 на рисунке). После освобождения сети он должен выждать время IPG после предыдущей передачи по сети до начала собственной передачи. Это связано с конечным быстродействием узлов, осуществляющих проверку наличия несущей (занятости среды каким-либо передающим абонентом).

Таким образом, получается, что метод CSMA/CD не только не предотвращает коллизии, наоборот, он их предполагает и даже провоцирует, а затем разрешает. Например, если заявки на передачу возникли у нескольких абонентов во время занятости сети, то после ее освобождения все эти абоненты одновременно начнут передачу и образуют коллизию. Коллизии появляются и в случае свободной сети, если заявки на передачу возникают у нескольких абонентов одновременно. В обоих случаях под словом «одновременно» понимается «в пределах интервала двойного прохождения сигнала по сети», то есть в пределах 512-битовых интервалов. Точно так же в пределах 512-битовых интервалов обнаруживаются все коллизии в сети.

Если коллизия обнаруживается раньше 480 – битового интервала, то в результате в сети образуются пакеты, длина которых меньше нижнего установленного предела в 512 – битовых интервалов (64 байта) даже с добавлением сигнала ПРОБКА. Такие пакеты (кадры) называются карликовыми (runt frames). Если же коллизия обнаруживается в конце 512-битового интервала (после 480 – битового интервала), то в результате может получиться пакет допустимой длины (вместе с сигналом ПРОБКА). Такие пакеты называть карликовыми не совсем корректно. Сигнал ПРОБКА, образующий 32 последних бита пакета, выступает в виде контрольной суммы пакета. Однако вероятность того, что ПРОБКА будет соответствовать правильной контрольной сумме пакета, бесконечно мала (примерно 1 случай на 4,2 миллиарда).

Коллизии (наложения пакетов в процессе передачи) могут и должны обнаруживаться до окончания передачи. Действительно, анализ принятого в конце каждого пакета поля FCS, фактически содержащего помехоустойчивый циклический код CRC (Cyclic Redundancy Check), привел бы неоправданному снижению скорости передачи.

Практически коллизии обнаруживаются либо самим передающим абонентом, либо повторителями в сети, возможно, задолго до окончания передачи заведомо испорченного пакета. Если учесть, что длина пакетов в локальной сети типа Ethernet / Fast Ethernet может лежать в диапазоне от 64 до 1518 байт, то досрочное прекращение передачи и освобождение линии означает заметное повышение эффективности использования ее пропускной способности.

Первым признаком возникновения коллизии является факт получения сигнала ПРОБКА передающим абонентом во время передачи пакета. Другие признаки связаны с неверным форматом пакетов, передача которых была досрочно прекращена из-за возникновения коллизии:

  • длина пакета меньше 64 байт (512 бит);
  • пакет имеет неверную контрольную сумму FCS (точнее, неверный циклический код);
  • длина пакета не кратна восьми.

Наконец, в таких сетях как Ethernet используется код Манчестер-П и аппаратный способ определения коллизии, основанный на анализе отклонения среднего значения сигнала от нуля.

Даже при загруженной сети для одного абонента число подряд следующих коллизий обычно не превышает 3. Этому способствует случайный характер возникновения запроса на передачу и случайная дискретная величина отсрочки следующей попытки передачи при возникновении коллизии. Число коллизий тем больше, чем больше диаметр (размер) сегмента и чем дальше расположены друг от друга абоненты с интенсивным трафиком.

Оценка производительности сети

Вопрос об оценке производительности сетей, использующих случайный метод доступа CSMA/CD, не очевиден из-за того, что существуют несколько различных показателей. Прежде всего, следует упомянуть три связанные между собой показателя, характеризующие производительность сети в идеальном случае – при отсутствии коллизий и при передаче непрерывного потока пакетов, разделенных только межпакетным интервалом IPG. Очевидно, такой режим реализуется, если один из абонентов активен и передает пакеты с максимально возможной скоростью. Неполное использование пропускной способности в этом случае связано, кроме существования интервала IPG, с наличием служебных полей в пакете Ethernet (см. рис. 10.2).

Пакет максимальной длины является наименее избыточным по относительной доле служебной информации. Он содержит 12304 бит (включая интервал IPG), из которых 12000 являются полезными данными.

Поэтому максимальная скорость передачи пакетов (или, иначе, скорость в кабеле – wire speed) составит в случае сети Fast Ethernet

108 бит/с/ 12304 бит ≈ 8127,44 пакет/с.

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

8127,44 пакет/с x 1500 байта ≈ 12,2 Мбайт/с.

Наконец, эффективность использования физической скорости передачи сети, в случае Fast Ethernet равной 100 Мбит/с, по отношению только к полезным данным составит

8127,44 пакет/с x 12000 бит/ 108 бит/с ≈ 98%.

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

Для реальных сетей, в частности Fast Ethernet с большим числом активных абонентов N пропускная способность на уровне 12,2 Мбайт/с для какого-либо абонента является пиковым, редко реализуемым значением. При одинаковой активности всех абонентов средняя пропускная способность для каждого из них составит 12,2/N Мбайт/с, а на самом деле может оказаться еще меньше из-за возникновения коллизий, ошибок в работе сетевого оборудования и влияния помех (в случае работы локальной сети в условиях, когда кабельная система подвержена влиянию больших внешних электромагнитных наводок). Влияние помех, так же как и поздних конфликтов (late collision) в некорректных сетях, отслеживается с помощью анализа поля FCS пакета.

Для реальных сетей более информативен такой показатель производительности, как показатель использования сети (network utilization), который представляет собой долю в процентах от суммарной пропускной способности (не поделенной между отдельными абонентами). Он учитывает коллизии и другие факторы. Ни сервер, ни рабочие станции не содержат средств для определения показателя использования сети, этой цели служат специальные, не всегда доступные из-за высокой стоимости такие аппаратно-программные средства, как анализаторы протоколов.

Считается, что для загруженных систем Ethernet и Fast Ethernet хорошим значением показателя использования сети является 30%. Это значение соответствует отсутствию длительных простоев в работе сети и обеспечивает достаточный запас в случае пикового повышения нагрузки. Однако если показатель использования сети значительное время составляет 80...90% и более, то это свидетельствует о практически полностью используемых (в данное время) ресурсах, но не оставляет резерва на будущее. Впрочем, для реальных сетей, к примеру Fast Ethernet, это скорее гипотетическая ситуация.

На рис. 10.2 приведена зависимость показателя использования сети от времени при условии, что предложенная нагрузка (offered load), то есть текущий запрос на пропускную способность, линейно возрастает. Сначала показатель использования сети также линейно повышается, но затем конкуренция за владение средой передачи порождает коллизии, и рассматриваемый показатель достигает максимума (точка полной нагрузки на графике). При дальнейшем увеличении предложенной нагрузки показатель использования сети начинает уменьшаться, особенно резко после точки насыщения. Это «плохая» область работы сети. Считается, что сеть работает хорошо, если и предложенная нагрузка, и показатель использования сети высоки.

Зависимость показателя использования сети от времени при линейном увеличении предложенной нагрузки (1 – наилучшая область работы, 2 – приемлемая, 3 – плохая)
Рис. 10.2.  Зависимость показателя использования сети от времени при линейном увеличении предложенной нагрузки (1 – наилучшая область работы, 2 – приемлемая, 3 – плохая)

Некоторые авторы предлагают для широко распространенного понятия «перегрузка» (overload) сетей на основе метода доступа CSMA/CD следующее определение: сеть перегружена, если она не может работать при полной нагрузке в течение 80% своего времени (при этом 20% времени показатель использования сети недопустимо мал из-за коллизий). После точки насыщения наступает крах Ethernet (Ethernet collapse), когда возрастающая предложенная нагрузка заметно превышает возможности сети. Стоит заметить, что реально маловероятно, чтобы предложенная нагрузка постоянно увеличивалась во времени и надолго превышала пропускную способность сети типа Fast Ethernet. Более того, любой детерминированный метод доступа не может обеспечить реализацию сколь угодно большой предложенной нагрузки, существующей продолжительное время. Если данный вариант детерминированного метода доступа не использует, как и метод CSMA/CD, систему приоритетов, то никакой из абонентов не может захватить сеть более чем на время передачи одного пакета, однако передача данных отдельными пакетами с долгими паузами между ними ведет к снижению скорости передачи для каждого абонента. Преимущество детерминированных методов состоит в возможности простой организации системы приоритетов, что полезно из-за наличия определенной иерархии в любом крупном коллективе.

Использование помехоустойчивых кодов для обнаружения ошибок в сети

Сигналы, непосредственно передаваемые по последовательным линиям (типа витой пары, коаксиального кабеля или телефонной линии), подвержены влиянию ряда факторов, воздействие которых может привести к возникновению ошибок в принятой информации. Ошибки могут возникать вследствие влияния на канал связи наводок и помех естественного или искусственного происхождения, а также вследствие изменения конфигурации системы передачи информации с временным нарушением или без нарушения целостности канала связи (например, в случае подключения новых абонентов к существующей локальной информационной сети). Некоторые из ошибок могут быть обнаружены на основании анализа вида принятого сигнала, так как в нем появляются характерные искажения. Примером может служить код Манчестер-II, используемый в сетях Ethernet. На передающем конце линии этот код обязательно содержит переход с низкого электрического уровня на высокий или обратно в середине каждого тактового интервала, требуемого для передачи одного бита информации. Он также имеет среднюю составляющую, близкую к нулю. Эти свойства кода Манчестер-II могут использоваться для обнаружения разного рода ошибок. В частности, отличие средней составляющей сигнала от нуля является одним из признаков возникновения коллизий (наложений пакетов от разных абонентов), характерных для метода доступа CSMA/CD в сетях типа Ethernet. Однако сколько-нибудь серьезную систему обнаружения ошибок, вызванных воздействием помех с непредсказуемым поведением, на этой основе построить невозможно. Стандартные протоколы обмена информации в сетях предусматривают введение обязательного поля для размещения помехоустойчивого (корректирующего) кода. Если в результате обработки принятого пакета обнаружится несоответствие принятого и вновь вычисленного помехоустойчивого кода, с большой долей вероятности можно утверждать, что среди принятых бит имеются ошибочные. Передачу такого пакета нужно будет повторить (в расчете на случайный характер помех).

Способы снижения числа ошибок в принятой информации

Имеется разрыв между требованиями к верности, принимаемой информации и возможностями каналов связи. В частности, стандартами международных организаций ITU-T и МОС установлено, что вероятность ошибки при телеграфной связи не должна превышать 3 x 10-5 (на знак), а при передаче данных – 10-6 (на единичный элемент, бит). На практике допустимая вероятность ошибки при передаче данных может быть еще меньше – 10-9. В то же время каналы связи (особенно проводные каналы большой протяженности и радиоканалы) обеспечивают вероятность ошибки на уровне 10-3...10-4 даже при использовании фазовых корректоров, регенеративных ретрансляторов и других устройств, улучшающих качество каналов связи.

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

Характеристики и разновидности помехоустойчивых кодов

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

Помехоустойчивый код характеризуется тройкой чисел (n, k, d0), где n – общее число разрядов в передаваемом сообщении, включая проверочные (г), k=n-r – число информационных разрядов, d0минимальное кодовое расстояние между разрешенными кодовыми комбинациями, определяемое как минимальное число различающихся бит в этих комбинациях. Число обнаруживаемых (tо) и (или) исправляемых (tи) ошибок (разрядов) связано с параметром d0 соотношениями:

d0 ≥ tо +1,

d0 ≥ 2tи +1,

d0 ≥ tо + tи+ 1

Иногда используются дополнительные показатели избыточности,производные от приведенных выше характеристик n,k: R = г / n – относительная избыточность, v = k / n – относительная скорость передачи.

Классификация помехоустойчивых кодов
Рис. 10.3.  Классификация помехоустойчивых кодов

Существующие помехоустойчивые коды можно разделить на ряд групп, только часть из которых применяются для обнаружения ошибок в передаваемых по сети пакетах (на рис. 10.3 используемые для этой цели группы выделены утолщенными стрелками). В группе систематических (линейных) кодов общим свойством является то, что любая разрешенная комбинация может быть получена в результате линейных операций над линейно-независимыми векторами. Это способствует упрощению аппаратной и программной реализации данных кодов, повышает скорость выполнения необходимых операций. Простейшими систематическими кодами являются биты четности/нечетности. Они не позволяют обнаружить ошибки четной кратности (то есть ошибки одновременно в двух, четырех и т.д. битах) и поэтому используются при невысоких требованиях к верности принимаемых данных (или при малой вероятности ошибок в линии передачи). Примером может служить бит Parity (соответствие) в установках режимов работы последовательного порта с помощью команды MODE (MS DOS). Несмотря на ограниченные возможности обнаружения ошибок, биты четности / нечетности имеют большое значение в теории помехоустойчивого кодирования. Одни из первых математически обоснованных и практически использованных ранее для защиты информации в запоминающих устройствах помехоустойчивых кодов – коды Хэмминга представляют собой простую совокупность перекрестных проверок на четность/нечетность. Циклические коды могут рассматриваться как обобщенные проверки на четность/ нечетность (см. далее).

Циклические коды (CRC)

Циклические коды – это семейство помехоустойчивых кодов, включающее в себя в качестве одной из разновидностей коды Хэмминга. В целом оно обеспечивает большую гибкость с точки зрения возможности реализации кодов с необходимой способностью обнаружения и исправления ошибок, определяемой параметром d0, по сравнению с кодами Хэмминга (для которых d0=3 или d0=4). Широкое использование циклических кодов на практике обусловлено также простотой реализации соответствующих кодеров и декодеров.

Основные свойства и само название циклических кодов связаны с тем, что все разрешенные комбинации бит в передаваемом сообщении (кодовые слова) могут быть получены путем операции циклического сдвига некоторого исходного кодового слова:

(a0a1…an-2an-1);

(an-1a0a1…an-2);

……………………….

Циклические коды задаются с помощью так называемых порождающих полиномов (многочленов) g(x) или их корней. Порождающий полином имеет вид

G(x)=gr xr + gr-1 xr-1 + … + g0

где gi={0,1}, x=2. Кроме того, вводятся полином исходного cообщения

u(x) = uk-1 xk-1 + uk-2 xk-2 + … +u0

и кодированного сообщения

A(x) = an-1 xn-1 + an-2 xn-2 + … + a0

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

Последовательность кодирования на примере циклического кода (7,4,3), имеющего g(x) = x3 + x + 1, следующая:

1) информационная часть сообщения записывается в виде полинома:

u(x) = uk-1 xk-1 + uk-2 xk-2 + … +u0

В рассматриваемом примере k=4 и для сообщения 0111 получается

u(x) = x2 + x + 1

2) u(x) умножается xr, что соответствует циклическому сдвигу исходного сообщения на r разрядов влево:

u(x) x3 = (x2 + x + 1) x3 = x5 + x4 + x3

3) полученный многочлен делится на g(x):

u(x)•xr/q(x) = c(x) ⊕ R(x)/q(x)

где c(x) – полином-частное с максимальной степенью (k—1);

R(x) – полином-остаток с максимальной степенью (r-1);

– обозначение поразрядной операции суммирования по модулю 2 (исключающее ИЛИ). Кодированное сообщение представляется в виде

A(x)=u(x)xr ⊕ R(x)


Таким образом, в этом случае

A(x) = (x5 + x4 + x3) ⊕ x = x5 + x4 + x3 + x

Передаваемое кодированное сообщение в обычной двоичной форме имеет вид

 0111       010
  ↔         ↔
k – бит   r – бит

Один из возможных вариантов аппаратурной реализации кодера для рассматриваемого примера изображен на рис. 10.4 вместе с последовательностью сигналов, подтверждающей получение тех же проверочных разрядов (010) на восьмом такте (r + k + 1=8). Кодер представляет собой сдвиговый регистр с обратными связями, организуемыми с помощью элементов М2 (исключающее ИЛИ, сумматор по модулю 2). Структура обратных связей полностью определяется ненулевыми коэффициентами порождающего полинома g(x). На первых восьми тактах ключ Кл. находится в верхнем положении, формируются проверочные разряды. Затем ключ Кл устанавливается в нижнее положение, что соответствует разрыву цепей обратных связей и передаче непосредственно в канал связи или на

Пример формирования циклического кода (сигнал обратной связи отличен от нуля на 5-м и 6-м тактах)
Рис. 10.4.  Пример формирования циклического кода (сигнал обратной связи отличен от нуля на 5-м и 6-м тактах)

модулятор проверочных разрядов. Для временного хранения информационной части сообщения с целью последующей ее передачи вместе с проверочными разрядами кодер, очевидно, должен быть дополнен сдвиговым регистром длиной в k разрядов, ключами и соответствующими цепями управления. Однако в целом аппаратурные затраты при реализации кодеров в случае циклических кодов невелики – общее число триггеров и элементов М2 (исключая регистр временного хранения информационной части сообщения) не превышает 2r и не зависит от длины информационной части сообщения.

Двухвходовый элемент М2, на один из входов которого подается в последовательной форме сообщение, на выходе формирует бит четности или нечетности (в зависимости от значения сигнала на втором входе элемента М2-0 или 1) для этого сообщения. В схеме кодера (рис. 10.4) элементы М2 включены между отдельными триггерами сдвигового регистра,причем сигналы обратной связи, поступающие на «свободные» входы элементов М2 (не связанные с передачей собственно сообщения через сдвиговый регистр), зависят как от предшествующих разрядов сообщения, так и от структуры обратных связей, принятой в кодере. В результате циклический код, формируемый таким кодером, можно считать совокупностью обобщенных бит четности и нечетности, тип которых (четность или нечетность) не определен заранее и может динамически меняться от такта к такту.

Порождающие полиномы, представляющие собой так называемые неприводимые многочлены (делятся лишь на единицу и на самих себя), табулированы для разных значений n, k и d0. Практически в компьютерных сетях используются циклические коды длиною в 2 или 4 байта (16 или 32 бита), а параметры n, k и d0 в явном виде не указываются. Это связано с возможностью выбора различной длины поля данных в пакете на этапе установления и выбора параметров соединения при неизменной длине поля циклического кода. Теоретическая вероятность ошибки при приеме в случае использования циклического кода не хуже pош ≤ 1/2r, так что для выполнения условия стандарта pош ≤ 10-6 необходимое число проверочных разрядов r ≥ log2106 ≈ 20. Кроме случайно распределенных,циклический код позволяет обнаруживать подряд следующие ошибки (так называемые пакеты ошибок) длиною l = r или меньше. Это особенно важно в связи с возможностью возникновения продолжительных во времени помех, действующих на протяженные линии передачи в компьютерных сетях.

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

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

Следует сделать два замечания относительно сложившейся терминологии. Понятие «циклические коды» достаточно широкое, тем не менее на практике его обычно используют для обозначения только одной разновидности, описанной выше и имеющей в англоязычной литературе название CRC (Cyclic Redundancy Check – циклическая избыточная проверка). Более того, поле пакета или кадра, фактически содержащее код CRC,часто называется «контрольной суммой» (FCS – контрольная сумма кадра), что в принципе не верно, так как контрольная сумма формируется иначе. Однако именно этот термин получил широкое распространение.

Перспективными с точки зрения аппаратурной реализации представляются коды БЧХ (коды Боуза – Чаудхури – Хоквингема), так же, как и коды Хэмминга, входящие в семейство циклических кодов. Коды БЧХ не слишком большой длины (примерно до п=1023) оптимальны или близки к оптимальным кодам, то есть обеспечивают максимальное значение d0 при минимальной избыточности. Эти коды уже нашли практическое применение в цифровых системах записи звука (речи, музыки), причем в варианте, предусматривающем исправление обнаруженных ошибок. Относительно невысокие частоты дискретизации звуковых сигналов (48 или 96 кГц) не препятствуют проведению дополнительных вычислений так жестко, как в случае высокоскоростных сетей.

© 2003-2005 INTUIT.ru. Все права защищены.