ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 28.06.2021
Просмотров: 2720
Скачиваний: 2
На практике для этих целей обычно применяется комбинация двух методов:
а) добавление в поток информации синхронизирующих битов, заранее известных приемной стороне, что позволяет ей при ненахождении такого бита активно начать поиск синхронизации с отправителем,
б) использование высокоточных генераторов временных импульсов, что позволяет в моменты потери синхронизации производить декодирование принимаемых битов информации "по памяти" без синхронизации.
Существуют и более простые методы борьбы с последовательностями единиц, также относимые к классу скрэмблирования.
Для улучшения кода Bipolar AMI используются два метода, основанные на искусственном искажении последовательности нулей запрещенными символами.
Рис. 5. 19 Коды B8ZS и HDB3
На этом рисунке показано использование метода B8ZS (Bipolar with 8-Zeros Substitution) и метода HDB3 (High-Density Bipolar 3-Zeros) для корректировки кода AMI. Исходный код состоит из двух длинных последовательностей нулей (8- в первом случае и 5 во втором).
Код B8ZS исправляет только последовательности, состоящие из 8 нулей. Для этого он после первых трех нулей вместо оставшихся пяти нулей вставляет пять цифр: V-1*-0-V-1*. V здесь обозначает сигнал единицы, запрещенной для данного такта полярности, то есть сигнал, не изменяющий полярность предыдущей единицы, 1* - сигнал единицы корректной полярности, а знак звездочки отмечает тот факт, что в исходном коде в этом такте была не единица, а ноль. В результате на 8 тактах приемник наблюдает 2 искажения - очень маловероятно, что это случилось из-за шума на линии или других сбоев передачи. Поэтому приемник считает такие нарушения кодировкой 8 последовательных нулей и после приема заменяет их на исходные 8 нулей.
Код B8ZS построен так, что его постоянная составляющая равна нулю при любых последовательностях двоичных цифр.
Код HDB3 исправляет любые 4 подряд идущих нуля в исходной последовательности. Правила формирования кода HDB3 более сложные, чем кода B8ZS. Каждые четыре нуля заменяются четырьмя сигналами, в которых имеется один сигнал V. Для подавления постоянной составляющей полярность сигнала V чередуется при последовательных заменах.
Кроме того, для замены используются два образца четырехтактовых кодов. Если перед заменой исходный код содержал нечетное число единиц, то используется последовательность 000V, а если число единиц было четным - последовательность 1*00V.
Таким образом, применение логическое кодирование совместно с потенциальным кодированием дает следующие преимущества:
Улучшенные потенциальные коды обладают достаточно узкой полосой пропускания для любых последовательностей единиц и нулей, которые встречаются в передаваемых данных. В результате коды, полученные из потенциального путем логического кодирования, обладают более узким спектром, чем манчестерский, даже при повышенной тактовой частоте.
6. МЕТОДЫ ПЕРЕДАЧИ ДАННЫХ НА КАНАЛЬНОМ УРОВНЕ
В предыдущей лекции мы выяснили, что на физическом уровне происходит непосредственно передача битов по проводам. Однако реальная линия связи состоит не только из кабеля, но еще включает дополнительное оборудование: маршрутизаторы, коммутаторы и т.п. Это оборудование помогает управлять передачей информации в сети определенной топологии от компьютера к компьютеру. Задачей качественного, быстрого и надежного установления соединения компьютеров с помощью такого рода оборудования и занимается канальный уровень.
Рассматривая модель OSI, мы выяснили, что канальный уровень оперирует кадрами данных, поскольку работает с компьютерами, которые не обмениваются информацией по битно. Кадры образуются определенным набором бит данных. Они содержат в себе, как минимум, адрес получателя, и отправляются узлом-источником для передачи по кабелю методами физического уровня, затем оборудование сети, в зависимости от ее топологии, распознает - кому эти кадры предназначены, и отправляет их по кабелю к узлу-приемнику. Таким образом, канальный уровень - это по сути логика установки соединений в сети. С одной стороны он привязан к физическому уровню, то есть к типам используемых линий связи и методам передач физического уровня. Но с другой стороны он связан с сетевым уровнем, который уже управляет передачей информации между локальными сетями.
На канальном уровне для каждой топологии сети имеются свои правила работы - протоколы. Если на физическом уровне не решаются вопросы какой компьютер и когда может использовать кабель линии связи, то на канальном уровне важно обеспечить качественную доставку кадра от узла к узлу. Именно на канальном уровне происходит "борьба за кабель", за доставку информации к нужному узлу сети, он занимается проблемами взаимодействия станций друг с другом, обеспечением гарантии доставки кадра информации к станции в любой из используемой топологии сети.
В этой лекции мы поговорим в общем плане о форматах кадров, рассмотрим способы передачи данных на канальном уровне, методы управления обменом информации в сети с определенной топологией и т.д.
6.1. Структура типичного кадра компьютерной сети.
Информация в локальных сетях предается отдельными порциями, называемыми в различных источниках кадрами, пакетами или блоками. Использование кадров связано с тем, что в сети одновременно может происходить несколько сеансов связи, т.е. в течении одного и того интервала времени могут идти два или больше процессов передачи данных между абонентами. Кадры (пакеты) собственно и позволяют разделить во времени сеть между передающими абонентами и уравнять в правах доступа всех абонентов и обеспечить для всех абонентов интегральную скорость передачи информации. Длина кадра зависит от типа сети и составляет от 10 байт – до 10 Кбайт. Важно делить информацию на кадры и для контроля правильности передачи информации. Кадры имеют преимущества пред побайтовой (8бит) или пословной (16 бит и 32 бита) передачей, т.к. при этом уменьшается количество служебной информации и увеличивается полезная загрузка сети.
Структура кадра определяется аппаратурными особенностями данной сети, выбранной топологией и типом среды передачи информации, а также существенно зависит от используемого протокола (порядка обмена информацией).
Типичный кадр содержит в себе следующие основные поля:
-
стартовая комбинация или преамбула - обеспечивает настройку аппаратуры адаптера на прием и обработку кадров, может отсутствовать или сводится к одному стартовому биту;
-
сетевой адрес (идентификатор) принимающего абонента - индивидуальный или групповой номер, присвоенный принимающему абоненту в сети, позволяющему приемнику распознать кадр, адресованный ему лично, группе, или всем абонентам сети;
-
сетевой адрес (идентификатор) предающего абонента - индивидуальный или групповой номер, присвоенный передающему абоненту, информирует принимающего абонента, откуда пришел данный кадр, включение в кадр этого идентификатора необходимо, если приемнику могут попеременно приходить кадры от разных передатчиков;
-
служебная информация - указывает на тип кадра, его номер, размер, формат, маршрут доставки и т.д.;
-
данные - собственно предаваемая информация. Существуют управляющие кадры (сетевые команды – начало и конец связи, подтверждение приема кадра и т.д.), в которых это поле отсутствует и информационные – поле данных имеется;
-
контрольная сумма кадра - числовой код, формируемый передатчиком по определенным правилам и содержащий в свернутом виде информацию обо всем кадре, используется для проверки правильности передачи кадра на приемном конце. Приемник повторяя вычисления сделанные передатчиком сравнивает результат с контрольной суммой и делает вывод о правильности или ошибочности передачи кадра.
-
стоповая комбинация - информирует принимающего абонента об окончании кадра, обеспечивает выход аппаратуры из состояния приема. Поле может отсутствовать, если используется самосинхронизирующийся код, позволяющий детектировать факт передачи кадра.
Рис. 6.1. Структура пакета
1,2,3,4 - образуют начальное управляющее поле, 5 - поле данных, 6,7- конечное управляющее поле.
-
Передача кадров на канальном уровне
При передаче кадров данных на канальном уровне используются как дейтаграммные процедуры, работающие без становления соединения (connectionless), так и процедуры с предварительным установлением логического соединения (connection-oriented).
При дейтаграммной передаче кадр посылается в сеть "без предупреждения", и никакой ответственности за его утерю протокол не несет. Предполагается, что сеть всегда готова принять кадр от конечного узла. Дейтаграммный метод работает быстро, так как никаких предварительных действий перед отправкой данных не выполняется. Однако при таком методе трудно организовать в рамках протокола отслеживание факта доставки кадра узлу назначения. Этот метод не гарантирует доставку пакета.
Передача с установлением соединения более надежна, но требует больше времени для передачи данных и вычислительных затрат от конечных узлов. В этом случае узлу-получателю отправляется служебный кадр специального формата с предложением установить соединение. Если узел-получатель согласен с этим, то он посылает в ответ другой служебный кадр, подтверждающий установление соединения и предлагающий для данного логического соединения некоторые параметры, например идентификатор соединения, максимальное значение поля данных кадров, которые будут использоваться в рамках данного соединения, и т. п. Узел-инициатор соединения может завершить процесс установления соединения отправкой третьего служебного кадра, в котором сообщит, что предложенные параметры ему подходят. На этом логическое соединение считается установленным, и в его рамках можно передавать информационные кадры с пользовательскими данными.
Рис 6.2 Пример обмена кадрами при сеансе связи
После передачи некоторого законченного набора данных, например определенного файла, узел инициирует разрыв данного логического соединения, посылая соответствующий служебный кадр.
Заметим, что, в отличие от протоколов дейтаграммного типа, которые поддерживают только один тип кадра - информационный, протоколы, работающие по процедуре с установлением соединения, должны поддерживать несколько типов кадров - служебные, для установления (и разрыва) соединения, и информационные, переносящие собственно пользовательские данные.
В общем случае логическое соединение обеспечивает передачу данных как в одном направлении - от инициатора соединения, так и в обоих направлениях.
6.3. Методы гарантии доставки кадров информации
При установке соединения не маловажным вопросом становится обеспечение гарантии доставки кадра и обнаружение ошибок.
Рассмотрим общие подходы решению проблемы гарантии доставки кадров. Для того, чтобы гарантировать доставку всех кадров, надо обеспечить такой режим установки соединения, при котором можно было бы в любой момент времени повторить отосланный ранее кадр, в случае обнаружения его потери или искажения. Чтобы убедиться в необходимости повторной передачи данных, отправитель нумерует отправляемые кадры и для каждого кадра ожидает от приемника так называемой положительной квитанции - служебного кадра, извещающего о том, что исходный кадр был получен и данные в нем оказались корректными. Время этого ожидания ограничено - при отправке каждого кадра передатчик запускает таймер, и, если по его истечении положительная квитанция не получена, кадр считается утерянным.
Приемник в случае получения кадра с искаженными данными может отправить отрицательную квитанцию - явное указание на то, что данный кадр нужно передать повторно.
В итоге, путем обмена такого рода квитанциями, можно определить есть ли утечки информации в сети, и не просто определить, а обеспечить ее повторную передачу в случае каких-либо сбоев. Таким образом, канальный уровень обеспечивает гарантированную доставку кадров.
Организацией процесса обмена квитанциями занимается метод скользящего окна. Перед тем как рассмотреть этот, сначала познакомится с частным случаем этого метода, который называется метод с простоями.
Метод с простоями (Idle Source) требует, чтобы источник, пославший кадр, ожидал получения квитанции (положительной или отрицательной) от приемника и только после этого посылал следующий кадр (или повторял искаженный). Если же квитанция не приходит в течение тайм-аута, то кадр (или квитанция) считается утерянным и его передача повторяется.
Рис. 6.3 Обмен кадрами и квитанциями при методе с простоями
На рисунке видно, что в этом случае производительность обмена данными существенно снижается, - хотя передатчик и мог бы послать следующий кадр сразу же после отправки предыдущего, он обязан ждать прихода квитанции. Иногда использование такого метода может привести к тому, что, что время ожидания квитанции будет существенно превышать время посылки сообщения. Снижение производительности этого метода коррекции особенно заметно на низкоскоростных каналах связи
Метод скользящего окна (sliding window) работает гораздо эффективней. Для повышения коэффициента использования линии источнику разрешается передать некоторое количество кадров в непрерывном режиме, то есть в максимально возможном для источника темпе, без получения на эти кадры положительных ответных квитанций. (Далее, где это не искажает существо рассматриваемого вопроса, положительные квитанции для краткости будут называться просто квитанциями.) Количество кадров, которые разрешается передавать в непрерывном режиме, называется размером окна.
Рис. 6.4 Обмен кадрами квитанциями при методе скользящего окна
На рис.6.4. показан метод скользящего окна для окна размером в W кадров. В начальный момент, когда еще не послано ни одного кадра, окно определяет диапазон кадров с номерами от 1 до W включительно. Источник начинает передавать кадры и получать в ответ квитанции. Для простоты предположим, что квитанции поступают в той же последовательности, что и кадры, которым они соответствуют. В определенный момент t1 при получении первой квитанции окно сдвигается на одну позицию, определяя новый диапазон от 2 до (W+1). Процессы отправки кадров и получения квитанций идут достаточно независимо друг от друга. Если допустим, что в произвольный момент времени tn источник получил квитанцию на кадр с номером n. Окно сдвинулось вправо и определило диапазон разрешенных к передаче кадров от (n+1) до (W+n). Все множество кадров, выходящих из источника, можно разделить на перечисленные ниже группы: