Главная / Лекции / Компьютерные сети

Содержание данной главы 2.11. Кодирование информации при выдаче в каналы связи.

Кодирование выполняется на двух нижних уровнях (MAC-подуровень и физический уровень). Определяет способ представления данных сигналами, распространяющимися по среде передачи. В общем случае может быть двухступенчатым:
  1. Логическое кодирование
  2. Физическое кодирование
На принимающей стороне выполняется симметричное декодирование.
Логическое кодирование преобразует поток бит сформированного кадра MAC-уровня в последовательность символов, подлежащих физическому кодированию для передачи по линии связи.
Логическое кодирование позволяет решить следующие задачи:
  1. Исключить длинные монотонные последовательности нулей и единиц, неудобные для самокодирования.
  2. Обеспечить распознание границ кадра и особых состояний в непрерывном битовом потоке.
Код 4B/5B
Любая комбинация из 4-х бит заменяется на 5 в передатчике, и наоборот, в приемнике обратно 5 бит преобразуются в 4. Получается двукратная избыточность: 24=16; 25=32 комбинации, т.е. 16 входных комбинаций представляются символами из 32-комбинационного набора.

Код 4B/5B

Из набора 32 комбинаций, 16 используются для передачи 4-битных групп от 0 до 15. Оставшиеся 16 комбинаций используются для служебных целей, например, для маркировки границ кадров. Используемые комбинации тщательно подбирались, чтобы обеспечить достаточное количество передач для поддержки синхронизации с тактовым генератором.
Код 8B/10B
Используется та же схема для кодирования, т.е. 8 бит кодируются 10-битным символом. Здесь 4-кратная избыточность (28=256; 210=1024), т.к. 256 возможных входных значений кодируются 1024 выходными.
Этот код обеспечивает стабильное соотношение 0 и 1 в выходном потоке, не зависящем от входных данных. Это свойство актуально для лазерных оптических передатчиков. От данного соотношения зависит их нагрев и при колебании степени нагрева увеличивается количество ошибок приема. Применяется в гигабитной сети на оптоволокне.
Код 5B/6B - 5 бит входного потока кодируется 6-битными символами. Применяется в сетевой технологии 100VG-Any LAN.
Код 8B/6T - 8 бит входного потока кодируются шестью троичными цифрами (0, 1 или 2). Применяется в 100Base-T4.
Вставка бит - бит-ориентированная схема исключения недопустимых последовательностей бит. Здесь входной поток рассматривается как непрерывная цепочка бит, для которой последовательность из более чем пяти смежных единиц рассматривается как служебный сигнал. Если в передаваемом потоке встречается непрерывная цепочка единиц, то после каждой пятой в выходной поток Tx вставляет ноль. Rx анализирует приходящую последовательность и если после цепочки 011111 он принимает 0, то его отбрасывает, а саму цепочку 011111 присоединяет к выходному потоку данных. Если принятый бит - единица, то цепочку 0111111 рассматривает как элемент служебного символа.


2.12. Физическое кодирование.

Ни в одной из версий технологии Ethernet не применяется прямое двоичное кодирование бита 0 напряжением 0 вольт и бита 1 - напряжением +5 вольт, т.к. такой способ приводит к неоднозначности. Если одна станция посылает битовую строку 00010000, то другая станция может интерпретировать ее либо как 10000, либо как 01000, т.к. она не может отличить "отсутствие сигнала" от бита 0. Поэтому принимающей машине необходим способ однозначного определения начала, конца и середины каждого бита без помощи внешнего таймера. Кодирование сигнала на физическом уровне позволяет приемнику синхронизироваться с передатчиком по смене напряжения в середине периода битов.
Наиболее часто используемые системы кодирования:
  • NRZ (Non Return Zero) - без возврата у нулю
  • Манчестер II
  • RZ (Return to Zero) - с возвратом к нулю
Системы кодирования

NRZ - простейший код, обычный цифровой сигнал (может быть преобразован на обратную полярность или изменены уровни соответствующие нулю и единице).
Достоинства - простая реализация; не нужно кодировать и декодировать на концах. Минимальная пропускная способность при требуемой скорости (для обеспечения пропускной способности в 10Мбит/сек полоса пропускания составит 5 МГц, т.к. одно колебание равно 2 битам).
Код NRZ используется только при передаче коротких пакетов и на малой скорости. Для синхронизации передачи байта используется старт-стоповый бит.
Манчестерский код. Получил наибольшее распространение в сетях с электрическими кабелями. Является самосинхронизирующимся, т.е. несущим в себе синхроимпульс. Имеет два уровня. Логическому нулю соответствует положительный переход в центре бита, т.е. первая половина битового интервала - низкий уровень, вторая половина - высокий. Логической единице соответствует отрицательный переход в центре бита. Обязательное наличие перехода в центре бита позволяет легко выделить синхросигнал. Это дает возможность передавать информацию большими пакетами и без потерь из-за рассинхронизации. Допустимое расхождение часов - до 25 %. При передаче цепочки бит из одних нулей или едини необходима частота в 10 Мгц при скорости в 10 Мбит/сек. Для передачи последовательностей из чередующихся нулей и единиц необходимо 5 Мгц.
RZ - это трехуровневый код. После значащего уровня сигнала в первой половине передаваемого бита информации следует возврат к некоему нулевому уровню. Переход к нему происходит в середине бита. Логическому нулю при этом соответствует положительный импульс, логической единице - отрицательный. Здесь на 1 бит приходится 2 изменения уровня напряжения, поэтому для скорости в 10 Мбит/сек требуется пропускная способность в 10 МГц.


2.13. Управление потоком данных.

Это средство согласования темпа передачи данных с возможностями приемника. Хотя битовые скорости Tx и Rx должны совпадать, возможны ситуации, когда Tx передает в темпе, неприемлемом для Rx. Тогда буфера Rx переполняются и часть передаваемой информации теряется. Средства управления потоком позволяют Rx подать Tx сигнал на приостановку или продолжение передачи данных.
Средства управления потоком могут использовать либо информационный канал (полудуплекс), либо иметь дополнительный обратный канал передачи (дуплекс).
Существует управление потоком на нижних уровнях модели OSI и на верхних протокольных уровнях.
Управление потоком на нижних уровнях может быть реализовано следующими способами:
  1. XON/XOFF. Предполагает наличие двунаправленного канала передачи данных. Если Rx не успевает принимать данные, то по второй линии посылает сигнал XOFF. Tx, получив его, приостанавливает передачу. Когда Rx снова может принимать, то посылает сигнал XON, по которому Tx возобновляет передачу. Этот программный протокол используется в последовательном интерфейсе RS232C.
  2. RTS/CTS. Реализуется по одному каналу передачи с данными. CTS - это аппаратный сигнал, останавливающий передачу данных, если приемник не готов к их приему. Остановить передачу байта уже невозможно, если он пошел в линию. Сигнал RTS возобновляет передачу данных. Реализован в параллельных интерфейсах.
На верхних протокольных уровнях контроль потока реализуется методом квитирования - посылки уведомления Rx о получении данных. На каждый принятый кадр Rx отвечает коротким кадром подтверждения. Это и есть уведомление о получении кадра. Если кадр принят корректно, посылается положительное подтверждение ACK. При получении ошибочного кадра посылается отрицательное подтверждение NACK. В ответ на него, Tx посылает "плохой" кадр повторно. При отсутствии подтверждения в течение определенного времени (timeout), Tx также делает повторную передачу, но на ожидании теряется время. На протокольном уровне схема приема подтверждения может быть разной:
  1. Простейший случай - послав кадр, Tx ждет ответа и только после него посылает следующий кадр или повторяет предыдущий, если получено подтверждение NACK или истек timeout. В кадре подтверждения не требуется идентификация того кадра, в ответ на который идет подтверждение. Недостаток - темп посылки кадров ограничивается временем оборота по сети, в которое входит: время на передачу, время на прохождение кадра по сети, время реакции приемника, время передачи и прохождения подтверждения.
  2. Пакетная передача (burst transfer). Tx посылает серию последовательных кадров, на которые должен получить общее подтверждение, что экономит время. Подтверждение может быть обезличенным. Тогда в случае NACK приходится посылать повторно весь пакет кадров целиком. Если в подтверждении есть место для списка хороших и плохих кадров, то повторно можно посылать только плохие, но при этом возникает проблема идентификации кадров и подтверждений.
  3. Метод "скользящего окна" - это эффективный гибрид индивидуальных подтверждений и пакетной передачи. Tx посылает серию нумерованных кадров, зная, что приход подтверждения может задерживаться относительно своего кадра на время оборота по сети. Это время может быть предварительно определено, и ширина окна определяется числом кадров, которые можно передать на выбранной скорости передачи за время оборота. Подтверждения нумеруются в соответствии с кадрами. Если Tx не получает подтверждение на кадр, выходящий из окна наблюдения, он считает его потерянным и повторяет его передачу. При NACK повторно посылается только этот кадр. На случай повтора, Tx должен держать в буфере все кадры окна, замещая подтвержденные новыми.


назад     содержание     вперед     на главную


Rambler's Top100
Hosted by uCoz